首页 最新文章网站编程正文

每天编程2小时-Ethereum&Hypeledger初探

Ethereum

是一个分布式的计算机,有许多的节点,其中的每一个节点,都会执行字节码(其实就是智能合约),然后把结果存在区块链上。由于整个网络是分布式的,且应用就是一个个的状态组成,存储了状态就有了服务;所以它就能永不停机,没有一个中心化的结点(没有任何一个节点说了算,去中心化的),任何第三方不能干预。

是一个平台和一种编程语言,使开发人员能够建立和发布下一代分布式应用。 以太坊可以用来编程,分散,担保和交易任何事物:投票,域名,金融交易所,众筹,公司管理, 合同和大部分的协议,知识产权,还有得益于硬件集成的智能资产。

Go-Ethereum是由以太坊基金会提供的官方客户端软件。它是用Go编程语言编写的,简称geth,其中Geth 客户端和Geth 终端是有必要了解的组件。基于go-Ethereum搭建私有链环境的步骤参照http://blog.csdn.net/wo541075754/article/details/53064877


hyperledger(超级账本)是linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO)、埃森哲(Accenture)等十几个不同利益体,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。由于点对点网络的特性,分布式账本技术是完全共享、透明和去中心化的,故非常适合于在金融行业的应用,以及其他的例如制造、银行、保险、物联网等无数个其他行业。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。


Kademlia协议(简称 Kad),最常用,最简洁,最实用P2P的索引算法,使用BT的同学经常会发现DHT这个缩写,使用电驴的同学就会发现KAD缩写。DHT的全称叫哈希表(Distributed Hash Table),KAD就是Kademlia的缩写。 Kademlia是DHT的一种,其实BT和电驴都是使用Kademlia 协议,只是电驴中加密方式不同。


以太坊底层分布式网络即P2P网络,使用了经典的Kademlia网络,简称kad。是一种分布式散列表(DHT)技术,以异或运算为距离度量基础。其路由表被称为“K桶”,记录了节点NodeId,distance,endpoint,ip等信息,以太坊K桶按照与target节点距离(节点距离与机器的物理距离无关,这个距离仅仅是逻辑上的一种约定)进行排序,共256个K桶,每个K桶包含16个节点.

blob.png

邻居节点发现的具体步骤:

1.系统第一次启动随机生成本机节点NodeId,记为LocalId,生成后将固定不变,本地节点记为local-eth。

2.系统读取公共节点信息,ping-pong握手完成后,将其写入K桶。

3.系统每隔7200ms刷新一次K桶。

   刷新K桶流程如下:

    a.随机生成目标节点Id,记为TargetId,从1开始记录发现次数和刷新时间。

    b.计算TargetId与LocalId的距离,记为Dlt

    c.K桶中节点的NodeId记为KadId,计算KadId与TargetId的距离,记为Dkt

    d.找出K桶中Dlt大于Dkt的节点,记为k桶节点,向k桶节点发送findNODE命令,FindNODE命令包含TargetId

    e.K桶节点收到FindNODE命令后,同样执行b-d的过程,将从K桶中找到的节点使用Neighbours命令发回给本机节点。

    f. 本机节点收到Neighbours后,将收到的节点写入到K桶中。

    g.若搜索次数不超过8次,刷新时间不超过600ms,则返回到b步骤循环执行。

blob.png

更通俗点儿讲:

1.先随机一个目标节点的NodeID

2.在列表中以相对NodeID的“距离”为指标,由近及远查找此待连节点“附近”的节点。并将这些节点放入“附近”节点集合

3.向目标节点的“附近”节点集合中的每个节点发送FindNode消息

4.若在目标节点的”附近”没有搜到节点,则返回步骤1

5.否则等待600ms后跳转到步骤2

blob.png

从上图可以看出,以太坊节点在发现邻居节点的8次循环中,所查找的节点均在距离上向随机生成的TargetId收敛。而传统Kad网络发现节点时,在距离上向节点自身收敛。


附:以太坊客户端基本操作命令

以太坊(Ethereum)私链建立 、合约编译、部署完全教程

https://mp.weixin.qq.com/s?__biz=MzIyNjE4NjI2Nw==&mid=2652560247&idx=1&sn=169521800c9c3c47041a10c61096c251&chksm=f39a3e03c4edb71573a5e6fecd5bb18934d621bcd7fffb98952ed63435be0d3259c19010c3b4&mpshare=1&scene=1&srcid=0226cQjBn37BnOUmLbLkFAs2#rd" target="_self">以太坊开发完整入门

评论

精彩评论
觉得有用就打赏吧
关注本站公众号,享受更多服务!
联系方式
QQ:########
地址:中国·辽宁
Email:2727987445#qq.com
Copyright ©2015-2023.Powered by 云水客 | 网站地图 | 辽ICP备14000512号-5