用Eclipse调试Crypti之一【选型篇】

选型篇

背景知识

区块链:

(Blockchain、Block chain)是比特币的一个重要概念,区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。该概念在中本聪的白皮书[1]中提出,中本聪创造第一个区块,即“创世区块”。

 

区块链在网络上是公开的,可以在每一个离线比特币钱包数据中查询。比特币钱包的功能依赖于与区块链的确认,一次有效检验称为一次确认。通常一次交易要获得数个确认才能进行。轻量级比特币钱包使用在线确认,即不会下载区块链数据到设备存储中。

 

二代币:

是相对于山寨币的一个概念。山寨币是参考比特币思想、原理、源代码产生的,与比特币相似的虚拟货币。

二代币则针对比特币存优去劣,力图为具体应用打造一个开放的区块链平台。

 

二代币体量对比

对于有兴趣的程序员,如果有兴趣研究区块链技术。我认为最有效的方法就是选型一款开源的二代币,揣摩其设计思想,跟踪其运行流程,观察其数据结构及流向,最终改造它并与具体应用场景结合。

这个过程其实和找女朋友类似:听说某某姑娘如何好是一个阶段,远看近看左右看又是一个阶段,仅有这些当然不够,勇敢地请她吃饭看电影,互动起来才能最终抱得美人归。

选型的原则则是:适合自己的才是最好的。

 鉴于研读代码导致巨大工作量,因此我仅仅就参与开发者的人数,以及源代码体量,对几款开源的二代币进行对比。通常这两者应该是反映项目复杂程度的重要指标。

比较结果用excel图表表示如下:


 
更详细的对比在附件的excel文件中。

从以上图表可以看出:以太坊好比一个huge girl,一眼看去也许只能看清脚趾头,要泡这妞不容易!

OpenChain则是以机构内应用为目标的,采用C#实现(作者为微软雇员)。架构的通用性打了折扣。

从license的自由度而言,NXT的GPL2相对crypti的MIT还是多了些约束。

关于各种开源协议的直观对比,可以阅读这篇文章:狗日的开源软件许可证

  Crypti采用单一的javascript语言开发,通过主侧链结构避免主链过于臃肿,侧链的DApp同样采用javascript开发,节点运行在经过安全定制的V8引擎中。体量上属于小家碧玉,但从开放性通用性上又不失大家闺秀的大气,朕喜欢!

Crypti网络与比特币网络对比

下图为比特币网络节点连接图:

  • 其中矿机与矿池软件之间的通讯协议是stratum(挖矿代理),以JSON为数据格式:http://www.8btc.com/stratum_protocol
  • 而矿池软件与钱包之间的通讯是bitcoinrpc接口。
  • P2pool矿池是一种开采比特币的矿池,基于Getwork协议,分布式去中心化,无中心矿池,由全球N个P2pool节点池汇聚而成



 

 下图为采用相同表现形式的Crypti网咯节点图:

 

参见《Crypti 白皮书》

  • DApp 的存储可以打包为zip,放在第三方的SIA或Github上,DApp的更新可以设定多重签名
  • 侧链同步主链的时间戳、区块高度。
  • 主链的记账101个代表节点协商,任何Full Client均可以成为代表节点
  • 侧链的记账由DApp Owner 指定的该DApp 的101个Master Node 协商。
  • 采用标准的P2P协议:https://en.wikipedia.org/wiki/Peer-to-peer
  • 协议运行于http之上,采用json格式。

 

猜你喜欢

转载自chen4w.iteye.com/blog/2288560