7次发布
0.1.16-alpha.0 | 2023年3月31日 |
---|---|
0.1.15-alpha.0 | 2023年3月31日 |
0.1.12-alpha.0 | 2023年1月18日 |
#18 in #block-size
679 每月下载量
在 109 个crate中使用 (43 直接)
270KB
663 行
bitcoin-amt
Bitcoin-amt 是一个Rust crate,它提供了比特币系统的子组件。此crate正在从C++转换为Rust,其中一些函数体可能仍在转换过程中。
标记和数学思想
-
MAX_BLOCK_SERIALIZED_SIZE
:此标记表示一个区块可以有的最大序列化大小。比特币区块链中的区块是交易集合,由网络节点验证并添加到账本中。最大区块大小是系统可扩展性的重要参数,因为它限制了可以包含在区块中的交易数量。 -
MAX_BLOCK_WEIGHT
:此标记表示一个区块可以有的最大重量。在比特币中,区块的重量是通过将所有交易序列化大小相加(见证数据乘以4)来计算的。区块重量用于确定最大区块大小,因为它限制了可以在网络上传输的数据量。 -
MAX_BLOCK_SIGOPS_COST
:此标记表示一个区块可以有的最大签名操作成本。签名操作用于验证比特币网络中交易的合法性,其成本以签名操作单位(sigops)来衡量。最大sigops成本是网络安全的重要参数,因为它限制了可以用于创建恶意区块的计算资源量。 -
COINBASE_MATURITY
:此标记表示在可以花费新铸造的比特币之前必须挖掘的区块数量。在比特币网络中,矿工每成功挖掘一个区块就会获得一定数量的比特币作为奖励。然而,这些硬币不能立即花费,因为它们需要“成熟”。此参数对于网络稳定性很重要,因为它防止矿工花费新铸造的硬币,然后试图“双花”它们。 -
WITNESS_SCALE_FACTOR
:此令牌代表在计算区块重量时,见证数据大小的乘数。见证数据用于2017年引入比特币网络的隔离见证(SegWit)协议中。此参数对于网络的扩展性非常重要,因为它允许在不增加区块大小的情况下,将更多交易包含在区块中。 -
MIN_TRANSACTION_WEIGHT
:此令牌代表交易可以拥有的最小重量。此参数对于网络的安全性非常重要,因为它可以防止恶意行为者创建非常小的交易,这些交易可能被用于网络拥塞。 -
MIN_SERIALIZABLE_TRANSACTION_WEIGHT
:此令牌代表交易可以拥有的最小可序列化重量。此参数对于网络的效率非常重要,因为它允许节点快速丢弃无效的交易,而不消耗过多的计算资源。 -
LOCKTIME_VERIFY_SEQUENCE
:此令牌代表在锁定时间计算中使用的序列号。锁定时间是比特币网络的一个功能,允许交易在一定时间内锁定或达到一定区块高度。此参数对于网络的安全性非常重要,因为它可以防止恶意行为者多次花费相同的硬币。 -
LOCKTIME_MEDIAN_TIME_PAST
:此令牌代表在锁定时间计算中使用的过去中位数时间。此参数对于锁定时间计算的准确性非常重要,因为它允许节点以去中心化方式确定当前时间。 -
Amount
:此令牌代表比特币中的货币金额。比特币使用固定点算术系统,其中货币的最小单位是1个satoshi(0.00000001 BTC)。 -
COIN
:此令牌代表1个比特币,以satoshis为单位(100,000,000 satoshis = 1 BTC)。
17> 感谢!关于这个crate我们还应该了解什么?
以下是您可能还希望了解的有关bitcoin-amt Rust crate的额外信息
-
该crate是比特币系统的一个子组件,特别是比特币核心实现。它用于处理和验证网络上的比特币交易和区块。
-
该crate支持各种比特币特定类型和函数,如Amount(表示比特币金额的类型)、COIN(表示1个比特币的常量)和MAX_MONEY(表示比特币可能存在的最大数量)。
-
该crate还包括对不同类型的"IsMine"过滤器进行支持,这些过滤器用于确定给定的比特币输出是否属于用户。不同的IsMine类型(ISMINE_NO、ISMINE_WATCH_ONLY、ISMINE_SPENDABLE、ISMINE_USED、ISMINE_ALL、ISMINE_ALL_USED和ISMINE_ENUM_ELEMENTS)用于根据所有权状态过滤比特币输出。
-
此外,该crate还包括使用CachableAmount类型以内存高效的方式缓存比特币金额的功能。
-
总的来说,bitcoin-amt Rust crate是比特币系统的一个关键组件,提供了快速高效的交易和区块处理及验证方式。
依赖关系
~89MB
~848K SLoC