是否有必要运行比特币节点才能与比特币区块链进行交互?

时间:2016-09-27 08:58:11

标签: ruby bitcoin blockchain bitcoind

正在查看用于比特币节点实现的库,如bitcoin-rubytoshi。我想我的问题很基本,但我在这里是新手:是否有必要下载整个区块链(甚至设置一个节点)以便与它进行交互作为发送/接收事务,获取块数据或创建地址?< / p>

2 个答案:

答案 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

Herehere您可以找到有关spv客户端的更多信息。