正在查看用于比特币节点实现的库,如bitcoin-ruby和toshi。我想我的问题很基本,但我在这里是新手:是否有必要下载整个区块链(甚至设置一个节点)以便与它进行交互作为发送/接收事务,获取块数据或创建地址?< / p>
答案 0 :(得分:2)
您可以离线执行的操作,而无需与区块链完全同步
使用连接时可以执行的操作,而无需完全与区块链同步 -
查看面包小包等SPV钱包的实施情况,了解更多信息。
答案 1 :(得分:1)
可以在不下载整个区块链的情况下与比特币网络进行交互。
您应该检查如何与bitcoin developer guide p2p section中的同伴互动。
还有很多库允许您与比特币网络进行交互,例如,使用bitcore p2p,您可以与以下对象池进行交互:
var Pool = require('bitcore-p2p').Pool;
var Networks = require('bitcore-lib').Networks;
var pool = new Pool({network: Networks.livenet});
// connect to the network
pool.connect();
// attach peer events
pool.on('peerinv', function(peer, message) {
// a new peer message has arrived
});
// Send a message, as soon as the response arrives, the pool will emit the related event.
// If your request is a getheaders message https://en.bitcoin.it/wiki/Protocol_documentation#getheaders
// you should listen for 'peerheaders'
pool.sendMessage(message)
// will disconnect all peers
pool.disconnect()
要检查地址余额,如果您没有下载整个区块链,则应下载header chain。如果要检查块中是否有地址,可以请求merkleblock。