以太坊的crypto模块 该模块分为两个部分一个是实现sha3,一个是实现secp256k1(这也是比特币中使用的签名算法). 需要说明的是secp256k1有两种实现方式,一种是依赖libsecp256k1,需要cgo,另外一种是依赖github.com/btcsuite/btcd,这是一个 ...
RLP 递归长度前缀 提供了一种适用于任意二进制数据数组的编码,RLP已经成为以太坊中对对象进行序列化的主要编码方式。RLP的唯一目标就是解决结构体的编码问题 对原子数据类型 比如,字符串,整数型,浮点型 的编码则交给更高层的协议 以太坊中要求数字必须是一个大端字节序的 没有零占位的存储的格式 也就是说,一个整数 和一个空数组是等同的 。 ...
2017-06-01 14:15 2 8492 推荐指数:
以太坊的crypto模块 该模块分为两个部分一个是实现sha3,一个是实现secp256k1(这也是比特币中使用的签名算法). 需要说明的是secp256k1有两种实现方式,一种是依赖libsecp256k1,需要cgo,另外一种是依赖github.com/btcsuite/btcd,这是一个 ...
总览 以太坊虚拟机(EVM)是以太坊中智能合约的运行环境。它不仅被沙箱封装起来,事实上它被完全隔离,也就是说运行在EVM内部的代码不能接触到网络、文件系统或者其它进程。甚至智能合约与其它智能合约只有有限的接触。 账户 以太坊中有两类账户,它们共用同一个地址空间。外部账户,该类账户被公钥-私钥 ...
理解什么是以太坊? 简单的说:比特币背后的核心技术是区块链技术,在区块链里加进“智能合约”便是以太坊(Ethereum)。 Ethereum(以太坊)自称“世界计算机”,可以用代码编程的方式制造一个“信任的机器”,代码即法律,你可以在上面做交易而不用担心你的钱被某个公司卷走,因为它本身不受 ...
dial.go阅读手记 dial.go是负责和peer建立连接关系的地方,主要是实现 其中最复杂的是newTasks,是建立新的连接,从test代码中可以看出, 要在指定的最大连接数(peer ...
在程序中需要测量时间时最好使用monotime.Now()而不是time.Now(),相比之下前者更准确. 来个示例: 可以看到,精确到毫秒级 ,以太坊中用来度量时间 ...
p2p的nat模块 该模块相对比较简单,因为nat的真正实现并不在此模块,主要是使用了第三方的nat-upnp和nat-pmp来实现真正的穿透(端口映射). 对外公布的接口 m.AddM ...
p2p模块 p2p模块对外暴露了Server关键结构,帮助上层管理复杂的p2p网路,使其集中于Protocol的实现,只关注于数据的传输. Server使用discover模块,在指定的UDP端口 ...
狗年吉祥,开工利是,我们继续研究以太坊源码。从本篇文章开始,我们会深入到以太坊核心源码中去,进而分析与研究以太坊的核心技术。 关键字:拜占庭,挖矿,矿工,分叉,源码分析,uncle叔块,agent,worker,事件监听 本文基于go-ethereum ...