#p2p #bitcoin #crypto

bitcoin-send-tx-p2p

通过点对点协议通过明网或tor发送比特币交易

4个版本

0.2.0 2023年11月13日
0.1.2 2022年8月15日
0.1.1 2022年8月15日
0.1.0 2022年8月15日

#286 in #bitcoin

MIT许可证

40KB
918

Bitcoin Send Tx P2P

使用比特币点对点协议将比特币交易发送到节点,仅需要交易和节点的IP地址或洋葱地址的库。

底层它创建与节点的连接并执行版本握手。然后它发送带有txid或wtxid的inv消息,并等待getdata消息。在发送带有完整交易的tx消息后断开连接。请注意,如果接收节点已具有该交易,则它不会以getdata消息响应,在这种情况下,发送函数将超时并断开连接。

安装

在您的项目目录中运行以下Cargo命令

cargo add bitcoin-send-tx-p2p

或添加以下行到您的Cargo.toml

bitcoin-send-tx-p2p = "0.2.0"

示例

use bitcoin::Transaction;

use bitcoin_send_tx_p2p::{send_tx_p2p_over_clearnet, send_tx_p2p_over_tor, Config, Error};

async fn send_tx(tx: Transaction) -> Result<(), Error> {
    let mut config = Config::default();
    config.block_height = 1000;
    send_tx_p2p_over_clearnet("127.0.0.1:8333".parse()?, tx, Some(config)).await
}

async fn send_tx_tor(tx: Transaction) -> Result<()> {
    send_tx_p2p_over_tor("cssusbltvosy7hhomxuhicmh5svw6e4z3eebgnyjcnslrloiy5m27pid.onion:8333", tx, None).await
}

依赖项

~10–22MB
~220K SLoC