cod*_*ode 8 node.js bitcoin blockchain
我正在使用这个bitcore npm包. https://bitcore.io/api/lib
我想监视区块链上的所有事务,并读取与该事务关联的输入地址,输出地址和数量.
但我无法找到要调用的javascript方法来完成此任务.即使我无法找到这方面的例子.
我正在寻找类似的东西
var someLib = require('some-bitcore-lib')
someLib.on('transaction-found', function(){
// print everything
console.log(arguments);
// do something else;
})
Run Code Online (Sandbox Code Playgroud)
有帮助吗?我在哪里可以找到some-bitcore-lib或如何在nodejs中创建它?
如果您没有自己的节点,可以使用此处所述的blockchain.info API(https://github.com/blockchain/api-v1-client-node/tree/master/Socket)
const Socket = require('blockchain.info/Socket');
const mySocket = new Socket();
mySocket.onTransaction(function() {
console.log(arguments);
});
Run Code Online (Sandbox Code Playgroud)
您始终可以通过运行自己的节点来监视事务,而无需依赖像blockchain.info这样的服务...例如,如果您使用的是btcd(Golang)(https://github.com/btcsuite/btcd),那么您可以在此处获得有关交易的通知(http://godoc.org/github.com/btcsuite/btcrpcclient#Client.NotifyNewTransactions)
正如公认的答案所暗示的那样,使用第三方 API 将在短期内起作用。但是,如果您正在寻找一种长期、可靠、不受速率限制的解决方案;你应该运行你自己的比特币节点。当然,这取决于您的项目要求。
对于 OP 问题的可靠解决方案,我建议如下:
zmqpubrawtx=tcp://127.0.0.1:3600。这将使原始交易数据流式传输到您的 node.js 应用程序下面的 node.js 示例将使用 zeromq 订阅 bitcoind 的 zeromq 接口。然后 bitcoinjs-lib 用于解码那些原始交易。
var bitcoin = require('bitcoinjs-lib');
var zmq = require('zeromq');
var sock = zmq.socket('sub');
var addr = 'tcp://127.0.0.1:3600';
sock.connect(addr);
sock.subscribe('rawtx');
sock.on('message', function(topic, message) {
if (topic.toString() === 'rawtx') {
var rawTx = message.toString('hex');
var tx = bitcoin.Transaction.fromHex(rawTx);
var txid = tx.getId();
tx.ins = tx.ins.map(function(in) {
in.address = bitcoin.address.fromOutputScript(in.script, bitcoin.networks.bitcoin);
return in;
});
tx.outs = tx.outs.map(function(out) {
out.address = bitcoin.address.fromOutputScript(out.script, bitcoin.networks.bitcoin);
return out;
});
console.log('received transaction', txid, tx);
}
});
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请查看本指南
| 归档时间: |
|
| 查看次数: |
2383 次 |
| 最近记录: |