![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
区块链
文章平均质量分 85
superwiles
流落海外一民工, Ustcer
展开
-
Linux 下 Go Ethereum 开发调试环境的搭建
Table of Contents 操作系统选择相关工具安装配置开发环境插件的安装vim-go操作系统选择因为我们是在搭建golang的开发环境, 所以推荐大家使用ubuntu 18.04 LTS.主要是因为18.04 已经集成了比较新的golang 1.10 而不用再去引用第三方的ppa repo。这样可以省去一些麻烦。因为我们后面的debug使用基于GUI的...原创 2018-11-10 05:58:09 · 651 阅读 · 0 评论 -
Mac下Go ethereum 开发调试环境的搭建
Table of ContentsGO开发调试环境的搭建安装Homebrew安装go安装vim安装LideIDE安装delve安装gdlvGeth源码获取及编译调试获取编译 Mac OS X的内核Darwin和Linux一样,都是类Unix系统,所以Mac和Linux的开发工具很多是通用的,可参考前一篇《Linux 下 Geth 开发调试环境的搭建》...原创 2018-11-10 06:12:00 · 1557 阅读 · 0 评论 -
node-service代码分析1
Go ethereum Node框架分析1node/service代码概述动态分析启动过程中node/service的关键事件node/service代码概述通过分析代码,我们知道geth程序的执行过程本质上就是一个node的生存周期。具体来讲,我们会涉及node及4个程序预置的service:ethshhethstatsdashboard对于node,主要会有config/n...原创 2018-11-10 06:33:17 · 557 阅读 · 0 评论 -
Go ethereum P2P : Kademlia (1)
为什么要引入P2P寻址协议P2P 系统不存在一个中心的服务器来提供寻址, 而且系统中的节点在线状态是非常动态的,随时都会有新节点加入,或者有存在的节点退出。 这些特点给寻址协议带来了很大的挑战。 一个成功的设计需要满足以下要求 1. 节点的地址不能有冲突 2. 尽可能的高效的寻址 3. 如何保持网络拓扑的一致性 4. 如何的处理节点状态的变化(新加入与退出)历史上已经存在Chord、CAN...原创 2018-11-13 04:38:33 · 389 阅读 · 1 评论 -
Go Ethereum P2P: Kademlia 简介(2)
节点状态- K桶数据结构Kademlia 的设计中, 在每一个单一的节点都用一个数据结构来存储这个节点所了解的系统中其它节点的信息(view)。 也就是这个单一节点对于整个系统的一个视图。 当然这个视图是非常有限的, 因为单一的节点不可能也不需要存储全系统的节点信息。Kademlia使用了一种 命名为K桶的数据结构来存储这个视图。首先因为node ID 长度为160 bit 所以 Ka...原创 2018-11-13 04:39:47 · 352 阅读 · 0 评论 -
Go Ethereum P2P : 实现[1]
简介P2P 部分的代码实现。P2P 在 Go-ethererum 项目中是非常重要的一个组件。 所有的重要的服务都构建在其上(eth/whisper/swarm)。P2P 主要负责本地节点与其它节点的所有通信功能, 包括:发现其它的Ethereum 节点。 管理/接收其它节点发起的连接。 主动向其它的ethereum 节点发起连接。 接收上层协议的请求或者转发接收数据给上层协议...原创 2018-12-09 03:42:48 · 551 阅读 · 0 评论 -
Go Ethereum P2P : 实现[2] RLPX EIP-8 详解
Ethereum 网络协议栈、上一节, 我们分析了基本的Ethereum 网络通信的控制流程。 这一节, 我们将更为细致深入的分析一些细节如上图所示, 在底层的golang的网络通信类库Tcp socket接口与 上层的核心协议之间, 存在一个中间层被称之为transport, 这一层的主要工作就是对于上层消息的编解码/加解密从而使得通信高效而安全。在thereum 中 这一层的实现是通...原创 2018-12-09 03:46:28 · 358 阅读 · 0 评论 -
以太坊设计与源代码之美 阅读入口
一年前开设了以太坊深入浅出的课程之后, 很多用户都希望更近一步了解以太坊的核心设计细节和代码架构流程。所以我写了一些笔记和草稿(已经签约出版社,今年会集结成书)。 希望有兴趣的同学可以一起学习分析。以太坊原理及代码分析 目录(草稿)Linux 下 Go Ethereum开发调试环境的搭建Mac 下 Geth 开发调试环境的搭建初始化阶段4.1 Node/Service源码分析(一)...原创 2019-03-04 01:23:24 · 420 阅读 · 5 评论