主页 > 怎么看出来imtoken真伪 > 同时给200多人发比特币,程序员是这么干的

同时给200多人发比特币,程序员是这么干的

怎么看出来imtoken真伪 2023-01-18 10:56:43

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的几乎所有功能,这里不再赘述。

我之前完成的货币发行程序的主界面是这样的: