学习
实践
活动
专区
工具
TVP
写文章

六层神功,精炼区块链

欲练神功, 必先自宫?

读完本文

大约需要

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大洋的奖励.

验证账户花钱是不是有效

将未知的节点加入 , 保持网络增长

节点之间的处理数据, 先读取 和 , 然后更新他们

处理接受到的区块, 我们只关心他是不是更长

更新 , 只要以前没有的 :

发送钱, 需要先得到对方的 , 然后从我的 向他发送 .

区块链放进 网络, 将各个功能组合到一起, 一个可运行的 就成功了.

这个 在 上, 油管上配有视频,

最后祝大家练功顺利, 早日大成.

乐不思蜀 出品

微信号

个人转载内容至朋友圈和群聊天, 无需特别申请版权许可.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180225G08ELU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券