http://bitkan.com/news/topic/21120
http://www.jianshu.com/p/fb5edf031afd
https://zengweigang.gitbooks.io/core-go/content/eBook/06.3.html
身份识别,隐私,审核提供一个安全的模型,缩短运算周期.
链上代码 chaincode 执行智能合约
身份识别,可审核性
(点对点协议P2P) google RPC
(分布式账本) rocksDB
(共识管理) PBFT
每个参与者通过向网络membership服务证明自己的身份来访问系统。
消息在节点之间通过Messageproto 结构封装来传递的,可以分为 4 种类型:发现(Discovery), 交易(Transaction), 同步(Synchronization)和共识(Consensus)。
CORE_PEER_DISCOVERY_ROOTNODE
域的定义:
PeerID
是在启动时或配置文件中定义的 peer 的任意名字PeerEndpoint
描述了端点和它是验证还是非验证 peerpkiID
是 peer 的加密IDaddress
以ip:port
这样的格式表示的 peer 的主机名或IP和端口blockNumber
是 peer 的区块链的当前的高度
如果收到的DISC_HELLO
消息的块的高度比当前 peer 的块的高度高,那么它马上初始化同步协议来追上当前的网络。
DISC_HELLO
之后,peer 会周期性的发送DISC_GET_PEERS
来发现任意想要加入网络的 peer。收到DISC_GET_PEERS
后,peer 会发送payload
包含PeerEndpoint
的数组的DISC_PEERS
作为响应。这是不会使用其它的发现消息类型。
go 2007起源 2009发布
关键字
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
但如果你的全局变量希望能够被外部包所使用,则需要将首个单词的首字母也大写
这种写法主要用于声明包级别的全局变量,当你在函数体内声明局部变量时,应使用简短声明语法 :=
HyperLedger Fabric 1.0
goroutine channel 并发
fmt.Printf
%+v
%#v
%T