- 博客(10)
- 资源 (5)
- 收藏
- 关注
转载 以太坊源码情景分析之区块(block)数据同步之主动同步
主动同步 同步入口 主动同步有好几个主要场景geth刚启动 新peer加入 定时sync 后面两个场景入口都在ProtocolManager.syncerfunc (pm *ProtocolManager) syncer() { // Start and ensure cleanup of sync mechanisms pm.fetche...
2018-08-28 15:34:24 1384
原创 ProtoBuf与gRPC
ProtoBuf 是一套接口描述语言(Interface Definition Language,IDL),类似于 Apache 的Thrift。相关处理工具主要是 protoc,基于 C++ 语言实现。用户写好 .proto 描述文件,之后便可以使用 protoc 自动编译生成众多计算机语言(C++、Java、Python、C#、Golang 等)的接口代码。这些代码可以支持 ...
2018-08-25 21:49:00 1450
转载 以太坊源码分析(31)eth-downloader-peer源码分析
peer模块包含了downloader使用的peer节点,封装了吞吐量,是否空闲,并记录了之前失败的信息。 ## peer // peerConnection represents an active peer from which hashes and blocks are retrieved. type peerConnection struct {...
2018-08-19 11:05:15 244
转载 以太坊源码分析(22)core-genesis创世区块源码分析
genesis 是创世区块的意思. 一个区块链就是从同一个创世区块开始,通过规则形成的.不同的网络有不同的创世区块, 主网络和测试网路的创世区块是不同的. 这个模块根据传入的genesis的初始值和database,来设置genesis的状态,如果不存在创世区块,那么在database里面创建它。 数据结构 // Genesis specifies the h...
2018-08-19 10:32:58 419
转载 以太坊源码分析(14)P2P分析
#概述Kademlia(简称Kad)是一种分布式哈希表技术,用于建立p2p网络拓扑结构。 基本原理就是以两个节点ID的异或值作为两节点间的距离d,每个节点都将其他节点的信息存储到称之为K桶的表结构中,该表结构按照d的为1的最高bit位分层(可理解为桶索引),每层中存储最多K个节点信息。如下:| I | 距离范围 | 邻居 ||:---:|:---------:|:-------...
2018-08-18 20:48:45 266
转载 以太坊源码分析(10)CMD深入分析
### cmd包分析#### cmd下面总共有13个子包,除了util包之外,每个子包都有一个主函数,每个主函数的init方法中都定义了该主函数支持的命令,如 ##### geth包下面的: ```func init() { // Initialize the CLI app and start Geth app.Action = geth a...
2018-08-18 20:27:26 677
转载 以太坊源码分析(8)区块分析
## 区块存储区块的存储是由leveldb完成的,leveldb的数据是以键值对存储的。在这里保存区块信息时,key一般是与hash相关的,value所保存的数据结构是经过RLP编码的。在代码中,core/database_util.go中封装了区块存储和读取相关的代码。在存储区块信息时,会将区块头和区块体分开进行存储。因此在区块的结构体中,能够看到Header和Body两个结构体。...
2018-08-18 17:55:35 378
转载 以太坊源码分析(7)Ethereum 资源分享
# Awesome Ethereum [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) > collection of be...
2018-08-18 17:35:34 1084
转载 以太坊源码分析(1)go-ethereum的设计思路及模块组织形式
go-ethereum的设计思路及模块组织形式=================================== 以太坊的目标是基于区块链技术打造一个运行智能合约的去中心化平台。 ## 一. 区块链技术区块链属于一种去中心化的数字记账技术,区块链数据由彼此互不信任的节点共同维护,每个节点复制一份完整的记录。 ## 二. 以太坊核心概念* EVM: 以太坊虚拟...
2018-08-18 17:15:23 356
转载 以太坊源码情景分析之区块(block)数据之被动同步
区块数据同步分为被动同步和主动同步被动同步是指本地节点收到其他节点的一些消息,然后请求区块信息。比如NewBlockHashesMsg主动同步是指节点主动向其他节点请求区块数据,比如geth刚启动时的syning,以及运行时定时和相邻节点同步被动同步 被动同步由fetcher完成,被动模式又分为两种收到完整的block广播消息(NewBlockMsg) 收到blockh...
2018-08-17 11:37:02 937
基于JAVA语言开发失物招领系统的设计和实现
2018-07-12
基于go语言开发的2048游戏
2018-07-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人