1 | 'use strict'
|
2 | const Random = require('../lib/random')
|
3 | const net = require('net')
|
4 | const MsgVersion = require('../lib/msg-version')
|
5 | const Constants = require('../lib/constants').Default
|
6 | const Version = require('../lib/version')
|
7 | const VarInt = require('../lib/var-int')
|
8 | const Bn = require('../lib/bn')
|
9 |
|
10 | const client = net.createConnection({ port: 8333, host: '192.168.0.105' }, () => {
|
11 |
|
12 |
|
13 |
|
14 | const versionBytesNum = Constants.Msg.versionBytesNum
|
15 | const servicesBuf = Buffer.from('0100000000000000', 'hex')
|
16 | const timeBn = Bn(Date.now())
|
17 | const addrRecvServicesBuf = Buffer.from('0100000000000000', 'hex')
|
18 | const addrRecvIpAddrBuf = Buffer.from([
|
19 | 0,
|
20 | 0,
|
21 | 0,
|
22 | 0,
|
23 | 0,
|
24 | 0,
|
25 | 0,
|
26 | 0,
|
27 | 0,
|
28 | 0,
|
29 | 255,
|
30 | 255,
|
31 | 192,
|
32 | 168,
|
33 | 0,
|
34 | 105
|
35 | ])
|
36 | const addrRecvPort = 8333
|
37 | const addrTransServicesBuf = Buffer.from('0100000000000000', 'hex')
|
38 | const addrTransIpAddrBuf = Buffer.from([
|
39 | 0,
|
40 | 0,
|
41 | 0,
|
42 | 0,
|
43 | 0,
|
44 | 0,
|
45 | 0,
|
46 | 0,
|
47 | 0,
|
48 | 0,
|
49 | 255,
|
50 | 255,
|
51 | 192,
|
52 | 168,
|
53 | 0,
|
54 | 103
|
55 | ])
|
56 | const addrTransPort = 8333
|
57 | const nonceBuf = Random.getRandomBuffer(8)
|
58 | const userAgentBuf = Buffer.from('/Satoshi:5.64/bitcoin-qt:0.4/')
|
59 | const userAgentVi = VarInt.fromNumber(userAgentBuf.length)
|
60 | const startHeightNum = 1
|
61 | const relay = 1
|
62 | const version = new Version(
|
63 | versionBytesNum,
|
64 | servicesBuf,
|
65 | timeBn,
|
66 | addrRecvServicesBuf,
|
67 | addrRecvIpAddrBuf,
|
68 | addrRecvPort,
|
69 | addrTransServicesBuf,
|
70 | addrTransIpAddrBuf,
|
71 | addrTransPort,
|
72 | nonceBuf,
|
73 | userAgentVi,
|
74 | userAgentBuf,
|
75 | startHeightNum,
|
76 | relay
|
77 | )
|
78 | console.log('here')
|
79 | const msgVersion = MsgVersion.fromVersion(version)
|
80 | console.log(version)
|
81 | console.log(msgVersion)
|
82 | const msgBuf = msgVersion.toBuffer()
|
83 | client.write(msgBuf)
|
84 | })
|
85 |
|
86 | client.on('data', data => {
|
87 | console.log('got data')
|
88 | })
|
89 |
|
90 | client.on('end', () => {
|
91 | console.log('ended')
|
92 | })
|