我已经编写了一个bash脚本来模拟节点之间的事务。代码如下:
#!/bin/bash MAX_NODES=2 MY_PATH=/home/ubuntu/test CLIENT=/usr/local/bin/bit -cli declare -a addr function fcomp() {/usr/bin/awk -v n1=$1 -v n2=$2 'BEGIN{if (n1>n2) exit 0;Exit 1}'} json="'{" #获取发送地址((i = 1;我< = MAX_NODES;我+ +));张做addr[美元]= " $(美元客户机-regtest -rpcport = $ ((16500 + i)) -datadir = MY_PATH / i /美元getnewaddress myaccount)“如果(" $我" lt“MAX_NODES美元”)然后json = json \ " $ " $ {addr张[美元]}\”:0.00001,“其他json = json \ " $ " $ {addr张[美元]}\”:0.00001 " fi完成json = " $ json}”echo $ json #循环寄钱到其他节点(i = 1;我< = MAX_NODES;我+ +));$CLIENT -regtest -rpcport=$((16500 + $i))) -datadir=$MY_PATH/$i/ getbalance ' if fcomp $balance 0.002;然后$CLIENT -regtest -rpcport=$((16500 + $i)) -datadir=$MY_PATH/$i sendmany myaccount $json fi done
回声json输出:
”{mj2FrDhEomSzyQtRoGY78oVRPcQs5L5o95”:0.00001,“mkxnkT3kx9dsFS8V3qYydpL1o5F5MfwCvM”:0.00001}”
我得到以下错误:
错误解析JSON:“{"mj2FrDhEomSzyQtRoGY78oVRPcQs5L5o95":0.00001,
在代码中进行以下更改:
json="'{" to json="{", json="$json}'" to "json="$json}" and $CLIENT -regtest -rpcport=$((16500 + $i)) -datadir=$MY_PATH/$i sendmany myaccount $json"
显然,json没有被传递到bitcoin-cli。在进行这些更改之后,您的错误将消失。