欲练神功, 必先自宫?
读完本文
大约需要
2+ 分钟
一个 Ruby 实现的 Blockchain 导读
是一种革命性的技术, 有些抽象, 比较复杂. 自从比特币诞生以来, 有很多技术的科普文章, 甚至是制精良的动画, 来解释其中的原理. 其中不乏精品之作.
在区块链的世界, 阅读理论的作用是有限的. 离开实践, 力有不逮, 心有余而力不逮, 是很常见的. 从白皮书到代码实现是一个飞跃, 需要一些耐心和技术储备.
积累 的设计细节, 掌握某种编程语言是需要时间的, 适合的学习材料会缩短这个过程. 并且让你妥帖的抚摸区块的皮肤, 感受其链式形体.
另一方面, 一旦制作出一个完整的 的 Demo, 这项技术瞬间与你的灵魂结合, 留下虔诚的烙印和神圣的宗教代码.
2017年末, 知名的 , 利他主义猛士 Haseeb Qureshi 先生, 发布了一个 Demo 视频及代码, 这是一场两个小时的仪式, 是赛博朋克洗礼的圣水.
对 而言, 若未曾实现一个小小的 Demo, 犹如应和了一句古话: 为人不识陈近南,就称英雄也枉然。
学习这个小项目, 犹如在你修炼区块神功时, 将 Haseeb 的刚猛内力传入你体内, 虽可以加速修炼进度, 但也存在水土不服, 心情烦躁, 走火入魔的风险.
当你吸入, 消化洋人内力时, 需要本尊这粒药引子, 去腥除骚, 护体保平安.
下面逐层介绍神功的实现目标以及必备知识.
神功第一层
钱坤大挪移,
谢逊度假夏威夷
这一层实现查账转账功能, 转账功能是根据账户余额, 进行加减计算.
此类功能用 协议的 和 实现最适合, 用来获取服务端数据, 用来更改服务端数据.
这里不需要 来呈现 UI, 使用 Ruby Web 框架 来组织 和相关的 , 在命令行终端可以看到转账信息.
客户端的 和服务端的 都非常简洁
客户端: client.rb
服务端: haseebcoin.rb
本层必要知识: , ,
神功第二层
白玉堂大破铜网阵
奸王私建冲霄楼, 铜网阵, 里面遍布是消息埋伏, 探测环境变化, 传递信息, 触动夺命机关.
中描述了一种致命的物联网, 区块链中也有类似的结构, 八卦, 不是乾, 坤, 坎, 離… 是八卦新闻的意思, 是去中心化网络.
我们建立一个能够交换电影名称的 网络.
client.rb 实现了向某端口送消息
接受两个参数, 源端口和目的端口, 源端口在某个端口说话, 比如端口 , .
在实际的去中心网络中, 这俩端口代表两个网络节点, 在本机上不同端口说话, 模拟网络中的不同的节点.
每个节点
每 秒, 说出最爱电影名称
每 8 秒, 改变最爱电影.
服务端接收并处理数据
在一个四人网络中:
初始节点运行, 第一节点在 1111 端口说出最爱电影
运行 , 第二节点在 2222 端口向第一节点 (1111 端口) 说出最爱电影
运行 , 第三节点在 3333 端口向第二节点 (2222 端口) 说出最爱电影
运行 , 第四节点在 4444 端口向第三节点 (3333 端口) 说出最爱电影
运行一段时间后, 最终, 四个节点都有对方的信息, 而且信息在不停的变化. 这就是一个简单的 网络.
神功第三层
倚天屠龙藏玄机,
武穆遗书加解密
完颜洪烈道:“岳飞无法可施,只得把那部兵书贴身藏了,写了四首甚么《菩萨蛮》、《丑奴儿》、《贺圣朝》、《齐天乐》的歪词。
这四首词格律不对,平仄不叶,句子颠三倒四,不知所云。”
“哪知其中竟是藏着一个极大的哑谜。
小王苦苦思索,终于解明了,原来这四首歪词须得每隔三字的串读,先倒后顺,反复连贯,便即明明白白。”
顶级加密算法是区块链的基石.
这一层使用非对称加密技术, 实现区块链账户.
算法能够生成公钥, 私钥, 并实现非对称加密功能.
得益于 语言的 , 我们可以很轻松的实现非对称加密和签名验证等功能.
在区块链中, 公钥是用户名, 私钥是密码, 一对密钥, 就是一个区块链账户.
解密 ciphertext:
验证 ciphertext 是不是 message:
本层必要知识: 非对称加密算法
神功第四层
老君炉里赖一年,
酿制区块出金丹
这一层实现了工作证明, 产生了区块链中的区块, 是费时费力的过程.
的特点是不可逆和无冲突, 计算过程很简单, 将 经过哈希运算, 得到 ,
是转账, 钱, 花钱的人, 收钱的人等等信息
哈希运算有很多种算法, 这里使用 算法:
同样的信息, 做同样的哈希运算, 会得到不同的 result, 我们不停的做运算, 直到得到的 result 符合某些特性, 比如 result 前几位都是 0.
验证运算结果是不是以几个 0 开始:
符合以上条件运算执行起来不是那么容易, 需要耗费大量时间, 整个过程被称为挖矿:
中会包含上一次哈希运算的结果, 所以每次哈希运算都收到了上一次运算的影响, 换句话说, 这是一个链式结构, 也就是区块链的由来.
神功第五层
区块链节节扣,
最长链扫乾坤
这一层会初始化第一个区块, 并据此, 生产一个链式结构, 形成区块链. 区块链可以存储在 结构中, 在存储的过程中, 还要验证区块是否有效.
初始化区块
挖矿, 最繁重的劳动是找
一个完整的区块是这样 出来的
初始化区块链
用 存储就可以啦:
将区块加入链条, 整个区块链在不停的增长
一定要严格的验证 是不是健康
神功第六层
六合之法, 融会贯通
朋克神教, 初现神通
所谓六合,“精气神”为内三合,“手眼身”为外三合,
其用为“眼与心合,心与气 合,气与身合,身与手合,手与脚合,脚与胯合。”
全身内外,浑然一体。
此乃少林旁支韦陀门的武功,全守六合之法。
在第一层转账交易 中, 需要用私钥对信息进行签名
第一个挖出区块, 会的到500_000大洋的奖励.
验证账户花钱是不是有效
将未知的节点加入 , 保持网络增长
节点之间的处理数据, 先读取 和 , 然后更新他们
处理接受到的区块, 我们只关心他是不是更长
更新 , 只要以前没有的 :
发送钱, 需要先得到对方的 , 然后从我的 向他发送 .
区块链放进 网络, 将各个功能组合到一起, 一个可运行的 就成功了.
这个 在 上, 油管上配有视频,
最后祝大家练功顺利, 早日大成.
乐不思蜀 出品
微信号
个人转载内容至朋友圈和群聊天, 无需特别申请版权许可.
领取专属 10元无门槛券
私享最新 技术干货