MPT全称Merkle Patricia Trie,是以太坊用来存储数据的一种数据结构。 MPT融合了Trie、Patricia Trie、Merkle Tree这3种数据结构的优点,从而实现快速查
以太坊入口代码位于cmd/geth/main.go,先看一下main()函数: func main() { if err := app.Run(os.Args); err != nil {
这篇详细分析一下RPC的完整流程。 以太坊遵循JSON RPC规范,API列表参见以下链接: https://github.com/ethereum/wiki/wiki/JSON-RPC 本文主要分析
最近需要开始研读以太坊源码,准备写一个系列的文章记录下学习过程。 首先需要准备下学习环境:基于mac,源码阅读采用Visual Studio Code,调试采用Delve。 1. 安装Visual
这篇分析一下以太坊的账户管理。 这部分比较简单,主要分”获取钱包列表“和“订阅钱包事件”两个部分,下面分别介绍。 1. 获取钱包列表 先上一张图,理清组件间的关系: 从图中可以看出wallet
这一篇分析以太坊的共识引擎,先看一下各组件之间的关系: Engine接口定义了共识引擎需要实现的所有函数,实际上按功能可以划分为2类: 区块验证类:以Verify开头,当收到新区块时,需要先验证区
这篇分析一下以太坊数据存储相关的流程。 首先介绍一下MPT的存储流程,然后依次分析StateDB、Transactions、Receipts的存储,这3棵树的Merkle Root最终会存储到区块He
这篇开始研究以太坊的挖矿流程,基本框架参见下图: 其中涉及到的组件之间的关系可以参见下面的UML图: 1. Miner启动打包 在eth Service初始化的时候,会创建一个Miner实
这篇开始分析以太坊交易相关代码。基本流程参见下图: 可以看到,完整流程分为以下几个步骤: 发起交易:指定目标地址和交易金额,以及需要的gas/gaslimit 交易签名:使用账户私钥对交易进行签名
这一篇分析一下metacoin的合约代码。 智能合约是一组数据和代码的集合,合约部署到链上以后会产生一个地址,外部通过该地址调用合约代码来改变或者查询合约的数据(状态)。 metacoin合约是用
Truffle是目前最流行的以太坊开发框架,采用JavaScript编写,支持智能合约的编译、部署和测试。 一、安装Truffle 1. 首先安装Truffle依赖的NodeJS: curl -sL
摘要: 区块链(Blockchain)是比特币的底层技术,像一个数据库账本,记载所有的交易记录,本质上是一个去中心化的数据库。 无论你在什么行业,想必这两天都能在朋友圈里看到关于区块链的各种新
我是谁?我从哪儿来?我到哪儿去?这三个哲学里亘古不变的话题,也是打从小编我记事起(我就说我爱胡思乱想了嘛)就困扰着我的话题,在见到他之后这几个问题似乎让我有思路了…… 有人说他是“期货宗师”,一点也不
在最近几年里,区块链的热浪吹遍了祖国大地,各个传统行业纷纷向区块链靠拢,就连普通人,也毫不吝啬地在朋友圈夸赞吹嘘自己利用区块链技术炒币投资了哪些项目,挣了多少钱等等,当然,那些打着区块链大旗的大型企业
自从21世纪以来,随着大数据产业的崛起, “数据资源共享”、“数字经济”“数字身份”“云计算” 等概念层出不穷,这些高科技一方面给人们带来了极大的便利与快捷,另一方面,由于技术的不完善也给消费者造成了