Recent Posts
-
2018-04-29
深入理解以太坊虚拟机 (一) [翻译]
原文: Diving Into The Ethereum VM作者: Howard译者: 187J3X1 Solidity offers many high-level language abstractions, but these features make it hard to understand what’s really going on when my program is running. Reading the Solidity documentation still...
-
2018-04-26
以太坊源码分析—Ethash共识算法
Ethereum当前和Bitcoin一样,采用基于工作量证明(Proof of Work,PoW)的共识算法来产生新的区块。与Bitcoin不同的是,Ethereum采用的共识算法可以抵御ASIC矿机对挖矿工作的垄断地位,这个算法叫做Ethash。为什么要反ASICPoW的的核心是Hash运算,谁的Hash运算更快,谁就更有可能挖掘出新的区块,获得更多的经济利益。在Bitcoin的发展过程中,挖矿设备经历了(CPU=>GPU=>ASIC)的进化过程,其中的动机就是为了更快地...
-
2018-04-23
以太坊源码分析—Whisper
前言Whisper是以太坊中一项非常有趣的技术,它是一个基于身份的通信系统,被设计用于Dapp之间少量数据通信。Whisper协议运行在以太坊p2p协议框架之上,所有运行Whisper协议的节点(以下简称节点)组成一个Whisper网络。通过节点之间的消息转发,理论上,每个节点都可以收到所有Whisper消息。特性Whisper具有以下基本特性和概念通信加密每一条Whisper消息在网络上都是加密传输的,可以选择非对称加密(椭圆曲线)和对称加密(AES GSM)两种加密算法之一。Envel...
-
2018-04-19
以太坊源码分析—p2p节点发现与协议运行
前言p2p(peer to peer)负责以太坊底层节点间的通信,主要包括底层节点发现(discover)和上层协议运行两大部分。节点发现节点发现功能主要涉及 Server \ Table \ udp 这几个数据结构,它们有独自的事件响应循环,节点发现功能便是它们互相协作完成的。其中,每个以太坊客户端启动后都会在本地运行一个Server,并将网络拓扑中相邻的节点视为Node,而Table是Node的容器,udp则是负责维持底层的连接。这些结构的关系如下图Serverp2p/server.g...
-
2018-04-17
以太坊源码分析—账户的管理
前言以太坊是一个巨大的状态机,在网络中,每一个全节点都保存着以太坊状态机的全部历史,只要愿意,我们可以查询到任何时刻的状态(黄皮书中World State),而账户状态便是其中的状态,这部分功能由主要由代码中的state包提供基本概念账户地址在以太坊中,无论是外部账户还是合约账户,都以一个160bit的数组表示地址,它是由特定椭圆曲线上的一个点表示的公钥经过Keccak Hash算法截取而来关于椭圆曲线,请点击椭圆曲线关于账户之间的区别,请点击外部账户和合约账户的区别账户内容以太坊中,一个...