区块链
文章平均质量分 92
李柏林
这个作者很懒,什么都没留下…
展开
-
零知识证明
什么是零知识证明零知识证明(Zero—Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消...转载 2018-05-21 19:09:13 · 7993 阅读 · 2 评论 -
Solidity智能合约案例——投票存在的问题
通过对Solidity官方文档的学习,发现投票案例代码有些不够严谨,简要做以下说明。1. 调用者问题在vote函数中,如果是一个没有投票权的地址(假设A地址)调用了vote 函数,代码也能顺利执行。 首先,A地址虽然没有被chairperson 赋予投票权,但是代码也能正常获取Voter 对象sender ,只不过sender的所有属性值是对应类型的默认值,函数可以继续执行。表1 ...原创 2018-08-12 17:16:28 · 1346 阅读 · 1 评论 -
以太坊源码解析 - 下载、编译 go-ethereum ,搭建私有链
下载$ git clone https://github.com/ethereum/go-ethereum.git编译$ cd go-ethereum$ make geth 将 geth 添加到环境变量中 vi ~/.bashrcexport GETH="$GOPATH/src/github.com/ethereum/go-ethereum/build"ex...原创 2018-05-30 15:45:39 · 4883 阅读 · 7 评论 -
以太坊源码解析 - 以太坊P2P协议
创建P2P serverfunc (n *Node) Start() error { ... // Initialize the p2p server. This creates the node key and // discovery databases. n.serverConfig = n.config.P2P n.serverConfig...原创 2018-06-18 22:14:14 · 2982 阅读 · 0 评论 -
以太坊源码解析 - RLP(理论)
RLP(Recursive Length Prefix),叫递归长度前缀编码,它是以太坊序列化所采用的编码方式。RLP主要用于以太坊中数据的网络传输和持久化存储。定义RLP实际只给以下两种类型数据编码:byte数组byte数组的数组,称之为列表byte数组规则1:对于值在[0, 127]之间的单个字节,其编码是其本身。例:a 的编码是 97 。规则2: 如果b...原创 2018-06-02 12:48:25 · 1655 阅读 · 0 评论 -
go-ethereum源码阅读环境搭建
go-ethereum源码go-etherrum源码可以从github上面下载,或者使用git克隆到本地。搭建go ethereum调试环境windows 10 64bit首先下载go安装包进行安装,因为GO的网站被墙,所以从下面地址下载。https://studygolang.com/dl/golang/go1.9.1.windows-amd64.msi安装好之后...转载 2018-05-29 20:06:42 · 2517 阅读 · 0 评论 -
DPoS即股权授权证明(Delegated Proof of Stake)
公链通常会遇到可扩展性问题,为了解决这些问题,一些区块链(如Lisk,EOS,Steem,BitShares和Ark)采用了股权授权证明(DPoS)共识机制。DPoS力求快速的进行交易和创建区块,同时不影响区块链核心的分散激励结构。在传统的股权证明共识机制中,用户可以将自己拥有的加密货币换来股票,从而获得验证交易和创建区块并且获得奖励的权利。DPoS是PoS共识的一个变种,旨在更有效地达成...原创 2018-05-28 13:34:09 · 3037 阅读 · 0 评论 -
PoS即股权证明(Proof of Stake)
随着以太坊从原来的工作量证明(PoW)机制逐步向股权证明(PoS)过度,股权证明受到了越来越多的关注。为了更好地理解股权证明,我们需要先了解一下工作量证明的基本概念。工作量证明工作量证明是一个挖矿的过程,用户安装强大的计算机或者挖矿设备来解决复杂的数学难题,一旦成功地对各种交易进行了计算,已验证的交易将被存储到分布式账本或者公链上新的区块中。挖矿验证交易的合法性并创建新的货币单元。这个...原创 2018-05-26 17:23:44 · 8993 阅读 · 0 评论 -
go 实现 Proof of Stake 共识机制
什么是 Proof of Stake在PoW中,节点之间通过hash的计算力来竞赛以获取下一个区块的记账权,而在PoS中,块是已经铸造好的,铸造的过程是基于每个节点(Node)愿意作为抵押的令牌(Token)数量。如果验证者愿意提供更多的令牌作为抵押品,他们就有更大的机会记账下一个区块并获得奖励。实现 Proof of Stake 主要功能点我们将有一个中心化的TCP服务节点,其他节...转载 2018-05-26 14:08:07 · 509 阅读 · 0 评论 -
通过App的演示深入理解区块链运行原理
下载安装如果没有安装nodejs,需要先安装 nodejs# Clone this repository$ git clone https://github.com/seanseany/blockchain-cli# Go into the repository$ cd blockchain-cli# Install dependencies$ npm install...转载 2018-05-21 19:12:28 · 967 阅读 · 0 评论 -
(PoW)go语言实现 Proof-of-Work 共识机制
什么是 Proof-of-WorkProof-of-Work 简称 PoW,即为工作量证明。通过计算一个数值( nonce ),使得拼揍上交易数据后内容的 Hash 值满足规定的上限。在节点成功找到满足的Hash值之后,会马上对全网进行广播打包区块,网络的节点收到广播打包区块,会立刻对其进行验证。如果验证通过,则表明已经有节点成功解迷,自己就不再竞争当前区块打包,而是选择接受这个区块,记录...转载 2018-05-21 19:10:51 · 928 阅读 · 0 评论 -
EKT搭建私链
1.首先,打开终端,将目录切换到EKT路径下,输入命令make,此命令会编译EKT项目cmd包下的两个main.go文件2.编译完成之后,会在EKT目录下产生一个bin目录,将路径切换到bin目录中,新建一个创世区块文件genesis.json,内容类似下面这样{ "version": "v2.0", //版本号 "dbPath": "db/", //数据库路径 ...原创 2019-01-02 22:41:09 · 1534 阅读 · 0 评论