深入浅出区块链
陈浩
元界 CTO
40685 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
深入浅出区块链
15
15
1.0x
00:00/00:00
登录|注册

第36讲 | 搭建你的迷你区块链(实践篇)

代码编写8 基础类
代码编写7 commands
代码编写6 database
代码编写5 consensus
代码编写4 network
代码编写3 blockchain
代码编写2 node
代码编写1 Server
总结
分叉与合并
第一笔交易
首次挖矿
首次运行
代码编写
第36讲 | 搭建你的迷你区块链(实践篇)
参考文章

该思维导图由 AI 生成,仅供参考

上一篇文章中,我们介绍了实现一个迷你区块链的大致思路。今天,我们将通过代码编写,以及简单的功能测试,来完成我们的迷你区块链 Tinychain。
除了正常的测试案例之外,我们还可以构造一些极端测试案例,来观察 Tinychain 的分叉合并,挖矿难度调整等情况。

代码编写

通过前文的分析,我们已经了解到了实践一个迷你区块链的大致思路。接下来,我将从顶层到底层来搭建区块链。

代码编写 1 Server

从链的顶层设计来看,我们需要一个入口,那么我们就从入口开始:我需要先为整个服务做一些基础设置,最后再来 Server.run()。
所以,我们的代码大概是这样子的。
// server setup
node my_node;
mgbubble::RestServ Server{"webroot", my_node};
auto& conn = Server.bind("0.0.0.0:8000");
mg_set_protocol_http_websocket(&conn);
log::info("main")<<"httpserver started";
Server.run();
我们首先生成一个 node 实例,然后被 Server装载进去,最后设置好 Server 启动。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何通过代码编写和简单功能测试来搭建一个迷你区块链Tinychain。文章详细讲解了搭建区块链的代码编写过程,包括Server、node、blockchain、network、consensus和database等模块的设计和功能。通过代码编写7和8的示例,展示了命令行交互接口和基础类的实现。作者还分享了首次运行Tinychain和进行首次挖矿的过程,以及发送第一笔交易的操作。此外,文章还提到了区块链分叉与合并的情况,以及对Tinychain的不足之处和后续完善的展望。通过本文的总结,读者可以快速了解到搭建迷你区块链的代码编写过程和各个模块的功能特点,以及对区块链技术的理解和应用规模的思考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出区块链》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • huangshaoyan
    老师,对应的代码可以放到您的github上吗

    作者回复: 你好,已经投放哦。github.com/betachen/tinychain

    2018-06-16
    3
  • 许成浩
    老师,可以推荐几本区块链相关的书籍好吗?
    2018-06-29
    1
  • 峪五
    做事要有始有终呀. 后面都没实现完呢.
    2022-08-16归属地:浙江
    1
  • 杨家荣
    极客时间第二期 21天打卡行动 33/21 <<深入浅出区块链35,36>>搭建你的迷你区块链 今日所学: 1,搭建包含功能: 提供 P2P 节点发现和同步区块的功能; 提供创建公私钥对的功能; 提供发送交易的功能; 提供交易查询的功能; 提供余额查询的功能; 提供挖矿的功能,在任意地址上都可以发起单机挖矿; 提供基础日志,方便跟踪监视。 2,区块头的设计, 3,地址设计, 4,内存池 5,哈希计算, 6,哈希计算, 7,开发环境搭建, 8,测试环境搭建 代码 1,代码编写 1 Server, 2,代码编写 2 node, 3,代码编写 3 blockchain, 4,代码编写 4 network, 5,代码编写 5 consensus, 6,代码编写 6 database, 7,代码编写 7 commands, 8,代码编写 8 基础类,
    2020-02-07
  • 栐哥
    谢谢,请问区块链的APP是用什么开发语言做的呢?是用node.js吗?是用什么IDE开发的呢?我去下载安装
    2020-01-10
  • Eric
    陈老师,p2p network类,例子里是不是还没实现好?
    2018-12-13
  • 肖水平
    老师,代码在mac上编译不通过
    2018-06-20
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部