XDAG技术详解0-写作计划
XDAG技术详解0-写作计划
作者:社区成员Larry
对xdag项目感兴趣有段时间了,也陆续学习研究了xdag项目的代码和资料,体会颇多。
xdag是个好项目,但是,这个项目的文档写的很简陋,代码也写的很晦涩,看起来很费劲,经过了长时间的研究学习,对这个项目的代码算比较清楚了,现在把这些内容写下来,希望对后续想研究xdag的爱好者们一个参考,帮助大家能更快的理解xdag项目。
下面是写作计划和目录,有兴趣的同学可以一起探讨。
-
xdag概要
为什么需要xdag,与比特币有哪些不同。主要突出xdag提出的目的,和要解决的问题。
简要描述xdag模型,对xdag模型有个基本的概念。
-
基本概念
对后续介绍原理和代码中会遇到的一些基本概念,做一个初步的说明,有些说明后续还会更细节的讲,这里只是粗略的说明。
-
文件存储模式
详细说明xdag自身的存储结构、设计原理、二进制布局等等。
-
dnet网络工作原理
详细说明xdag的pool间同步网络(dnet)的设计原理,一些关键设计细节。
-
主链构造与决策
DAG结构主链如何构造和决策,这里是xdag项目的关键,也是最复杂的部分。这一章会详细介绍这里的细节。
包含很多子章节
- 各种块类型的介绍与工作模式
- 收到block后的构造过程
- xdag块的签名与验证过程
- 难度与算力的计算
- 如何识别主链、主链如何切换
-
挖矿(POW)
这部分主要介绍挖矿过程,pow决策过程,pool与miner交互流程,钱包与pool如何交互,pool如何分配收益给矿机等等细节。
-
xdag代码
- 运行架构
- 多线程功能
- 重点数据结构:block,block_internal。
- 重点代码流程注释
- add_block_nolock
- xdag_create_block
-
协议规范
这部分的目的是总结xdag的接口协议,方便后续其他语言可以更方便的实现对接。
- 网络协议
- dnet网络协议
- 矿池与矿机协议
- 矿池与钱包协议
- 文件存储结构
- 加解密与钱包
- 网络协议
-
改进思考
写一些个人对改进方面的思考。