12 个版本
0.1.11 | 2021 年 3 月 29 日 |
---|---|
0.1.10 | 2021 年 3 月 28 日 |
0.1.3 | 2021 年 2 月 15 日 |
#18 在 #task-list
每月 29 次下载
345KB
7.5K SLoC
⋰·⋰ Feeless
什么是 Feeless?
Feeless 是一个 Nano 加密货币节点、钱包、工具和 Rust crate。这不是 Nano 的官方项目,而是一个用 Rust 编写的实现。官方 Nano 节点实现 在这里。
🚸 这是一个正在进行中的项目。API 可能会在 v0.2
之前不通知地更改 🚸
我决定开始这个项目作为了解 Nano 的个人冒险。我不会对我完成这个项目的未来动力做出任何承诺 🤐。
文档
请访问文档网站以获取一般信息、功能、安装、CLI 使用等更多信息。
什么是 Nano?
Nano 是一种数字货币,它显著优于 Bitcoin 和其他加密货币。
Nano 的主要特性包括
-
无交易费。
-
发送货币极快——100% 确认时间少于 1 秒。
Bitcoin 平均需要 10 分钟才能获得 ~80%1 确认。Nano 比Bitcoin 更异步——单个交易独立于网络其他部分进行投票。 -
高度去中心化。
使用 Nakamoto 系数测量,它比 Bitcoin2 3 更去中心化。
-
无通胀。
-
绿色——比 Bitcoin 节能。
有关 Nano 的更多信息,请参阅 Nano 文档:https://docs.nano.org/what-is-nano/overview/
Nano 还被称为:Nano 加密货币,Nano 币,RaiBlocks。
1. Bitcoin 白皮书第 11 节“计算”解释了,拥有 10% 矿工权力的攻击者有 ~80% 的机会超过最长的链。https://bitcoin.org/bitcoin.pdf 2. 使用多个指标和粒度衡量 Bitcoin 和 Ethereum 的去中心化 https://arxiv.org/pdf/2101.10699.pdf 3. 显示 Nakamoto 系数为 8 的代表性节点列表(写作时间 2021-02)https://nanocharts.info/任务列表
一个中期任务列表
- 种子
- 助记词(单词列表)种子生成/解析(BIP39)
- 从助记词中派生密钥(BIP33)
- 十六进制种子
- 密钥(ed25519/blake2b)
- 私钥
- 公钥
- Nano 地址
- 验证
- 解析
- 公钥之间的转换
- 纳摩尔量转换
- 原始
- 纳摩尔
- Mnano/NANO
- 工作量证明(核心)
- 与阈值进行验证
- 生成
- 动态阈值
- 区块
- 哈希
- 工作
- 状态区块
- <v18 区块
- 数据包解析器
- 解析pcap文件
- 将某些消息类型输出到控制台
- 当所有数据包成功解码时标记为完成(见下文)
- 节点
- 配置
- 初始命令行界面
- 网络
- 数据库
- ...
- 网络
- 实时(别担心,我现在只连接到自己的节点!)
- 测试
- 测试版
- 引导对等连接(peering.nano.org)
- 验证给定的对等网络
- 验证给定的对等版本
- 多个对等连接(目前只连接到一个对等节点)
- 可配置的最大对等连接限制
- 头解析
- 网络
- 版本
- 扩展
- 握手查询/响应标志
- 计数
- 区块类型
- 遥测大小
- 存在扩展参数
- 逻辑
- 重新广播
- 代表
- 发布重试(难度变化)
- 响应遥测请求
- ...
- 消息
- 节点ID握手
- 序列化(待办:需要小重构)
- 反序列化
- 发送cookie
- cookie/对等存储和逻辑
- 验证响应
- 验证签名
- 确认请求
- 序列化
- 反序列化
- 哈希对
- 区块选择器
- 处理响应
- 确认确认
- 序列化
- 反序列化
- 按哈希投票
- 区块
- 验证签名
- 保持活跃
- 序列化
- 反序列化
- 发布
- 序列化
- 反序列化
- 状态区块
- 其他区块
- 批量拉取
- 批量拉取账户
- 批量拉取区块
- 批量推送
- 遥测请求
- 序列化
- 反序列化
- 遥测确认
- 序列化
- 反序列化
- 大多数字段
- 时间戳
- 活动难度
- 验证签名
- 前端请求
- 序列化
- 反序列化
- 节点ID握手
- 存储
- 基本键值存储到文件
- 基本cookie/对等存储
- 对等节点
- 区块
- ...
- RPC
- 配置
- Rust
- 寻求代码审查
- 使用
zerocopy
或将所有核心类型存储为零拷贝并使用[u8]
和方法作为访问器。当尝试时,zerocopy
对大多数事情都有效,但与枚举有问题。可能会重新考虑。 - 在某些地方使用
thiserror
而不是anyhow
。 - Github actions CI(包括
cargo clippy
)
- 未来事项
- 与用户钱包相关的快速引导
- 性能
- 自动比较
- 工作量证明
- 服务器
- GPU
- WASM
致谢和参考
- 感谢Nano基金会辛勤的工作。
- https://github.com/nanocurrency/nano-node
- 作为真理来源的实际Nano实现。
- https://forum.nano.org/,https://old.reddit.com/r/nanocurrency/,Nano Discord: https://chat.nano.org/
- 一个非常友好的社区,帮助他人和自己。
- https://docs.nano.org/
- 一般有用信息。
- https://nanoo.tools/
- 帮助我理解状态区块和哈希的技术细节,并验证事物之间的转换。
- https://github.com/nanocurrency/protocol/blob/master/reference
- 节点协议规范。
- https://iancoleman.io/bip39/
- 帮助我测试BIP 39/BIP 44实现。
其他实现
- nano-rs (Rust) https://github.com/termhn/nano-rs
- Railroad (Rust) https://github.com/PlasmaPower/railroad
- nano-python (Python) https://github.com/orhanhenrik/nano-python-node
- gonano (Go) https://github.com/alexbakker/gonano
- Go Nano (Go) https://github.com/frankh/nano
- Node.js Nano Node (JavaScript) https://github.com/numtel/node-nano-node
- nanocurrency-node (TypeScript) https://github.com/pRizz/nanocurrency-node
- Prailude (Lua, C) https://github.com/slact/prailude
- RaiSharp (C#) https://github.com/vardthomas/Aggrex.RaiSharp
许可证
您可以选择以下任一许可证
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
贡献
除非您明确表示,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献,将按上述方式双重许可,不附加任何额外条款或条件。
依赖
~14–25MB
~375K SLoC