我是 RPC 新手。我开发了一个可以使用很多硬币进行兑换的板。但我的板子是根据其他网站的api来为用户获取BTC地址的。我希望它是独立的。所以我在搜索,我发现我可以在服务器上设置比特币守护进程并使用 RPC(RPCuser、RPCpassword、RPCport...等)对其进行配置,然后使用 javascript 将我的板连接到比特币守护进程以获取每个用户他的比特币钱包地址。我的问题是我是 RPC javascript 开发的新手。那么您能给我一段简单的 javascript 代码吗?使用 RPC 连接到比特币守护进程并获取新的钱包地址、余额、发送和接收资金、历史记录...等?我已经在我的服务器上安装了比特币守护程序并运行了它。我只留下了 javascript 代码。这是我的bitcoin.conf文件信息:
rpcuser=username
rpcpassword=mypassword
rpcallowip=127.0.0.1
rpcallowip=xxx.xxx.xxx.xxx
rpcallowip=xxx.xxx.xxx.xxx
rpcport=8332
server=1
daemon=1
listen=1
txindex=1
您可以使用以下命令使用 cURL 从终端进行 RPC 调用:
curl --user 用户名 --data-binary '{"jsonrpc": "1", "id":"", "method": "getblockchaininfo", "params": [] }' -H '内容类型:文本/纯文本'http://localhost:8332/
它会提示输入密码。您需要输入我的密码。您将收到如下回复。
{“结果”:{“链”:“主”,“块”:516395,“标头”:516395,“bestblockhash”:“00000000000000000041e29f2cc8a69d58f5a697911aa00cac2f85e804dddbcc”,“难度”:351 1060552899.72,"中间时间":1522732888,"验证进度" :0.9999903671792401,“initialblockdownload”:false,“chainwork”:“0000000000000000000000000000000000000000016983aead48f5850394132c”,“size_on_disk”:538941354,“修剪":true,"pruneheight":515612,"automatic_pruning":true,"prune_target_size":629145600,"软分叉" :[{"id":"bip34","version":2,"reject":{"status":true}},{"id":"bip66","version":3,"reject":{ "status":true}},{"id":"bip65","version":4,"reject":{"status":true}}],"bip9_softforks":{"csv":{"status" :“活动”,“开始时间”:1462060800,“超时”:1493596800,“自”:419328},“segwit”:{“状态”:“活动”,“开始时间”:1479168000,“超时”:1510704000,”自“:481824}},“警告”:“”},“错误”:null,“id”:“”}
简单的config.conf:
rpcuser=username
rpcpassword=password
server=1
listen=1
daemon=1
upnp=1
port=8333
rpcport=8332
rpcbind=127.0.0.1
maxconnections=20
fallbackfee=0.0001
rpcallowip=127.0.0.1
deprecatedrpc=accounts
我正在使用 Node JS。您需要为比特币安装 npm。
请找到以下代码。
在航站楼
npm install bitcoin
在 AppRoutes 文件中:
var bitcoin = require('bitcoin');
var client = new bitcoin.Client({
host: Your IP Address of Node,
port: 18332,
user: UserName,
pass: Password
});
app.post("/chainInfo", function(req, res) {
console.log('BlockChainInfo: need');
client.getBlockchainInfo(function(err, info) {
if (err) {
console.log('info: completed');
return console.error(err);
}else{
console.log('info: ' + info);
res.send(info);
}
});
});