主页 > 怎么看出来imtoken真伪 > 同时给200多人发比特币,程序员是这么干的
同时给200多人发比特币,程序员是这么干的
ICoinService rpc = new BitcoinService(useTestnet: false);
该类库不仅支持BTC,还支持其他山寨币。 BCH我试过了,也是可以的。
5)用户名和密码必须相同
程序默认从资源文件中读取RPC用户名和密码,也可以直接在代码中修改:
rpc.Parameters.RpcUsername = "shenlongbin";rpc.Parameters.RpcPassword = "shenlongbin的程序寿命"
6)测试rpc是否连接
rpc。 平();
如果这条语句抛出异常,说明RPC连接有问题。 请检查bitcoin core是否启动,配置的用户名和密码是否正确等。
如果上述流程通过糖果比特币,则表示RPC函数已经准备就绪,接下来的任务就是构建交易数据、签名和广播消息。
读取钱包中的UTXO
UTXO 是指钱包中未花费的交易记录。
列出 utxos = rpc。 列表未花费(0);
最后一个参数0表示零确认的记录不会丢失。 此功能可用于加速交易。 请参考之前的文章《交易受阻?试试这些方法》。
可以查到每条未花费记录的挖矿时间、数量、确认号、地址。
for (int i = 0; i < utxos.Count; i++){ListUnspentResponse uns = utxos[i];GetTransactionResponse response = rpc.GetTransaction(uns.TxId);// response.BlockTime// uns.Amount.ToString(" 0.00000000") // 联合国。 确认 // uns。 地址}
建立交易
一笔比特币交易由输入和输出组成,由以下语句组成:
CreateRawTransactionRequest req = new CreateRawTransactionRequest(); req.AddInput(utxos[0].TxId, utxos[0].Vout);req.AddInput(utxos[1].TxId, utxos[1].Vout);...。 ..
选择哪个 UTXO 是你自己的责任。 过去,Bitcoin Core 钱包会为您完成,但现在您必须自己编程。
添加输出:
req.AddOutput("1BPCVbLf7Xz6Y9cKQn7WbuBbDLX6nAhtLr", (decimal)0.002);req.AddOutput("15H6LPBMEx46U6ryDUnKJoZDAqmmBMpNV6", (decimal)0.002);req.AddOutput("1DqvWgjp5i9QUzkg1B44crHUkdoRrdrrww", (decimal)0.002);req.AddOutput("19DBjYq1mgMz63axBfbViqPxWyR5vXd9Zf", (十进制)0.002);req.AddOutput(“3JvYRhX3fghSqFPM4kQ3a7i8bbbaHa8Pnn”,(十进制)0.002);
如果有变更地址,程序员还需要添加AddOutput()语句来解决糖果比特币,否则会被视为矿工赚取的手续费,编程时一定要注意。
现在可以生成交易数据了,这里raw是指未处理的数据,即未签名的交易数据。
string rawTX = rpc.CreateRawTransaction(req);
构建的交易是否有问题可以通过解码功能进行验证,涉及数万元的转账操作需谨慎。
DecodeRawTransactionResponse 响应 = rpc.DecodeRawTransaction(rawTX);
签名交易
这里需要取出钱包中的私钥对自己构建的交易数据进行签名,首先需要用钱包密码解锁钱包。
rpc.WalletPassphrase(bitcoin_core_wallet_password, 20);
为了安全起见,钱包会在 20 秒后自动重新锁定。
签名操作很简单:
SignRawTransactionResponse 响应 = rpc.SignRawTransaction(new SignRawTransactionRequest(rawTX));string signedTX = response.Hex
发送交易
签名后的交易数据可以全网广播,返回的字符串就是交易ID。
字符串 txid = rpc.SendRawTransaction(signedTX);
如果交易成功,在blockchain.info网站上可以查到刚才的TXID。
免责声明:本文仅介绍BitcoinLib编程中的主要步骤,省略了大量与异常处理相关的代码。 使用BitcoinLib不仅可以发币,还可以完成Bitcoin Core的几乎所有功能,这里不再赘述。
我之前完成的货币发行程序的主界面是这样的: