2 个版本
0.1.16-alpha.0 | 2023年4月2日 |
---|---|
0.1.12-alpha.0 | 2023年1月19日 |
#14 in #bitcoind
275 个月下载量
用于 32 个crate(8 个直接使用)
4MB
11K SLoC
bitcoinnode-interface crate
bitcoinnode-interface crate 提供了一个与比特币网络交互的接口,它是对比特币核心从 C++ 到 Rust 的直接翻译的一部分。因此,一些函数体可能仍在翻译过程中。请注意,在翻译过程完成后,此系统将可测试。
节点管理
该crate提供了一些管理节点和与之交互的功能,例如连接、断开连接、禁止和解除禁止。它还允许向节点发送和接收消息。
版本管理
该crate包括用于管理比特币网络版本的功能,例如获取最佳区块哈希、共同版本和验证进度。
实用函数
该crate还提供了一些管理节点的实用函数,例如锁定和解锁发送处理、暂停和恢复接收和发送,以及端口映射。
数学思想
与该crate中的令牌相关的数学思想没有明确的说明。
令牌描述
-
NodeHSocket
:表示网络套接字的结构。 -
NodeVSend
:表示发送到节点的消息的结构。 -
NodeEvictionCandidate
:表示节点驱逐候选人的结构。 -
NodeAddrLocal
:表示节点本地地址的结构。 -
NodeVRecv
:表示从节点接收到的消息的结构。 -
Net
:表示比特币网络的结构。 -
NodeBannedListChangedFn
:处理被禁止节点列表更改的函数。 -
NodeInitMessageFn
:处理节点初始消息的函数。 -
NodeMessageBoxFn
:处理节点消息框的函数。 -
NodeNotifyAlertChangedFn
:处理网络警报更改的函数。 -
NodeNotifyBlockTipFn
:处理区块提示更改的函数。 -
NodeNotifyHeaderTipFn
:处理头部提示更改的函数。 -
NodeNotifyNetworkActiveChangedFn
:处理网络活动更改的函数。 -
NodeNotifyNumConnectionsChangedFn
:处理连接数量变化的函数。 -
NodeQuestionFn
:处理节点提问的函数。 -
NodeShowProgressFn
:显示节点进度的函数。 -
VersionEdit
:表示版本编辑的结构体。 -
VersionEditDeletedFileSet
:表示版本编辑中删除的文件集的结构体。
93> 感谢 — 你能详细介绍一下这个接口吗?
当然可以,我很乐意更详细地提供关于比特币节点接口的信息!
bitcoinnode-interface
Rust 包提供了与比特币网络交互的接口。它定义了多个结构体和函数,允许用户连接到网络上的其他节点,发送和接收消息,并执行各种操作,如挖矿区块或验证交易。
其中一些关键的结构体及其关联的方法包括
-
Net
:这个结构体代表整个网络,并提供连接到和断开与节点连接的方法,以及管理网络上已知节点集合。 -
Node
:这个结构体代表网络上的单个节点,并提供向该节点发送和接收消息的方法。 -
AddedNodeInfo
:这个结构体代表已添加到网络上已知节点集合的节点信息,包括其IP地址、端口号和各种连接标志。
除了这些结构体,这个包还定义了执行各种网络相关任务的多个函数。其中一些函数包括
-
init_logging()
:这个函数初始化节点接口的日志记录,使用户能够输出各种消息和诊断信息。 -
process_messages()
:这个函数处理来自已连接节点的传入消息,并根据这些消息的内容采取适当的行动。 -
send_messages()
:这个函数向网络上的已连接节点发送消息。 -
add_known_tx()
:这个函数将交易添加到节点的已知交易池中,如果交易有效,它最终将被挖入一个区块。 -
ban()
:如果发现某个节点在以某种方式表现不当,这个函数将禁止该节点在网络中一段时间。 -
get_nodes_stats()
:这个函数返回当前连接到网络节点的统计信息,例如它们的ping时间和提供的服务。
总的来说,bitcoinnode-interface
包提供了一个强大而灵活的接口,用于与比特币网络交互,使用户能够执行与挖掘、验证和在网络上传送交易和区块相关的各种任务。
依赖项
~103MB
~880K SLoC