3 个不稳定版本
使用旧的 Rust 2015
0.2.1 | 2019年10月9日 |
---|---|
0.2.0 | 2019年10月4日 |
0.1.0 | 2019年2月1日 |
#3 in #spv
120KB
2K SLoC
Murmel
Murmel 是一个轻量级的 Bitcoin 节点。它的主要用途是提供闪电网络堆栈和结算层。与 Bitcoin Core 节点相比,其资源需求较小。
Murmel 可以自行确定工作量最大的链,并且能够进行进一步的检查。其安全性保证至少与中本聪白皮书中的简化支付验证(SPV)部分所定义的相当。
比特币网络由全节点管理。全节点确定哪些块有效,从而决定矿工是否为其创建的块获得报酬。因此,工作量最大的链传达了全节点对比特币的看法。因此,跟随工作量最大的链,并不是跟随矿工,如普遍认为的那样,而是跟随全节点的多数意见。更多信息请参阅这里。
Murmel 不维护交易内存池,因为未确认的支付是不安全的。使用 Murmel 接受已确认的支付或作为 Lightning Network 节点的支撑。
关于名称
Murmel 是德语中“弹珠”的意思。Murmel 小巧、快速、坚硬、美丽,就像弹珠一样。
设计和实现说明
Murmel 使用 mio 实现了一个小型且快速的 P2P 引擎。网络消息通过消息队列路由到各自的处理器,然后再返回。逻辑上不同任务的处理器相互解耦,并在它们自己的线程中运行。
区块链数据持久化在 Hammersbald 数据库中。
Murmel 的过滤器实现 BIP158 已移至 rust-bitcoin 项目,在此。
Murmel 不会使用这些过滤器,直到它们作为 Bitcoin 区块链中的已提交内容可用,因为否则它们不安全:两个过滤器源之间的分歧无法在没有 UTXO 知识的客户之间解决。咨询第三方节点可能会给出另一个答案。
可以仅通过区块内容验证的过滤器,正如我在开发列表(反复)建议的那样,被否决,转而采用当前的设计,事实上一旦实施会更加方便,但只有那时。
状态
正在重构。
如何运行 Murmel
Murmel 目前还没有做任何有用的事情。
依赖项
~6–9MB
~163K SLoC