摘要:
Fabric架构 image.png Fabric网络 image.png Fabric模块 image.png Fabric交易流 根据Hyperledger Fabric 1.0架构,Fabric交易的整个生命周期可以分为7个阶段。我们可以从一个简单的例子分析下Fabric交易的7个阶段,然后读 阅读全文
摘要:
首先,EVM的设计初衷是什么?它为什么被设计成目前我们看的样子呢?根据以太坊官方提供的设计原理说明,EVM的设计目标主要针对以下方面: 如果读者浏览一下这个文档,会发现EVM的设计看上去都非常的合理。那么问题在哪里呢?问题就出在它和目前主流的技术以及设计范例都格格不入。EVM如果作为一个毫无限制的非 阅读全文
摘要:
evm指令集手册 Opcodes 结果列为"-"表示没有运算结果(不会在栈上产生值),为"*"是特殊情况,其他都表示运算产生唯一值,并放在栈顶. mem[a...b] 表示内存中a到b(不包含b)个字节storage[p] 表示从p开始的32个字节谨记evm虚拟机的word(字)是256位32字节 阅读全文
摘要:
进入keystore管理以太坊私钥的障碍很大,主要是因为以太坊客户端在直接的命令行或图形界面下隐藏了大部分的密码复杂性。 例如,用geth: 我只需要输入3个单词就能创建一个新账户。然后输入两遍密码,就这么简单!我的以太坊keystore文件就创建了。 你需要把那些非常珍贵的keystore文件备份 阅读全文
摘要:
以太坊上交易最终都会由EVM进行解析存入数据库,今天就来探讨一下,一笔交易是如何别EVM执行的。我们可以把交易分为三种。(注意,和交易相关的模块很多,交易的生命周期存在于整个以太坊中,我们这次只是分析和EVM相关的部分。) 1、以太币转移,两个账户之间只发生了以太币的转移。 2、合约创建,用户创建智 阅读全文
摘要:
接着上次的分析,分析一下run方法是如何执行智能合约的。至于以太币的交易,在上一篇中,已经由分析的那两个函数完成了; 合约的运行是从run开始的,go-ethereum/core/vm/evm.go 。可以分为两部分一部分是预编译,另外一部分是解释器。 预编译合约 // run runs the g 阅读全文
摘要:
和Bitcoin类似,以太坊的转账流程基本是这样的: 1.发起交易:指定目标地址和交易金额,以及必需的gas/gasLimit 2.交易签名:使用账户私钥对交易进行签名 3.提交交易:验签交易,并将交易提交到交易缓冲池 4.广播交易:通知以太坊虚拟机吧交易信息广播给其他节点 Eth Transact 阅读全文
摘要:
以太坊客户端geth的基本操作命令搭建了私有链环境之后,整理了一下客户端的一些基本的操作命令: 启动命令重复上篇博客步骤,先将区块链客户端启动,命令如下: geth –datadir “%cd%\chain” console 看到启动页面之后,新开启一个终端,并执行一下命令,并把日志输出到文本文件当 阅读全文
摘要:
以太坊虚拟机比较操作指令 EVM定义了6条比较操作指令,见下表: 下面是比较操作指令的操作码分布图: LT、GT、SLT、SGT、EQ这5条指令都是从栈顶弹出两个元素,进行比较,然后把结果(1表示true,0表示false)推入栈顶。其中LT和GT把弹出的元素解释为无符号整数进行比较,SLT和SGT 阅读全文
摘要:
以太坊虚拟机按位运算指令 EVM定义了8条按位运算指令,见下表: 下面是按位运算指令的操作码分布图: AND、OR、XOR、NOT AND、OR、XOR指令从栈顶弹出两个元素,进行按位运算,然后把结果推入栈顶。以AND指令为例,下面是它的操作示意图: NOT指令将栈元素按位取反,下面是它的操作示意图 阅读全文