UNPKG

2 kBJavaScriptView Raw
1'use strict'
2const Random = require('../lib/random')
3const net = require('net')
4const MsgVersion = require('../lib/msg-version')
5const Constants = require('../lib/constants').Default
6const Version = require('../lib/version')
7const VarInt = require('../lib/var-int')
8const Bn = require('../lib/bn')
9
10const client = net.createConnection({ port: 8333, host: '192.168.0.105' }, () => {
11 // const hashBuf = Buffer.alloc(32)
12 // hashBuf.fill(0)
13 // const msgGetBlocks = MsgGetBlocks.fromHashes([hashBuf])
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
86client.on('data', data => {
87 console.log('got data')
88})
89
90client.on('end', () => {
91 console.log('ended')
92})