- 博客(18)
- 资源 (19)
- 收藏
- 关注
原创 go-ethereum 学习笔记之P2P (2)
这里接着第一篇继续梳理了p2p server的流程,上一篇中说道,创建以太坊节点Node, 只是组装器,分为上下两层,上层是实现相同接口的service(如eth),下层是p2p server,具体负责的就是node 发现,peer连接,以及处理上层service的消息手法工作,是ethereum基础的基础。还是老样子,先有个框架印象,然后再逐步梳理,在最初的node.go里面的start函数...
2019-04-24 12:02:38 536
原创 go-ethereum 学习笔记之 P2P (1)
区块链由业余爱好开始转向正式工作,进而可以全身心的学习,努力不能停止。。。。前面曾经分析学习过以太坊c++版本的代码,现在开始go语言版本的学习,虽然白皮书是同一份,实现的架构,原理相同,但是go语言跟c++版本实现流程还是很不一样的,刚刚接触go语言,借此机会学习下源码,熟悉下go语言老习惯,学习一个新系统,总想着在脑中先搭建起一个整体的框架(当然初期,这个框架也是不完整的),形成一条主...
2019-04-19 14:28:21 778
原创 go语言学习笔记 资源参考
新起点,新需要,go语言开启学习旅程,几本在线书籍链接《Go语言圣经》https://yar999.gitbooks.io/gopl-zh/index.html《Go语言标准库》https://books.studygolang.com/The-Golang-Standard-Library-by-Example/《Go语言高级编程》https://github.com/chai20...
2019-03-23 10:36:04 603
原创 跟随一笔交易来看以太坊源码执行流程
作为码农,遇到现象总想探知内部的原理,利用假期,一步步看下下源码,这个假期也就更充实了。本文初步分析了一个交易在以太坊内部的处理流程,涉及到交易的接收,检查,执行,同步,区块的构建以及挖矿,结合前面一篇基于黄皮书的理解总结,对以太坊有了更多的认识。因为主要的工作在c++层面,所以这里以c++版本的以太坊源码作为学习资源。如有理解错误的地方,希望看到的人不吝赐教,共同学习,谢谢。1. 发...
2018-12-31 20:15:39 1235 3
原创 区块链共识笔记 --- POW 难度计算(ethereum)
从前一节对区块链先驱bitcoin的POW分析,挖矿的本质就是求解一个谜题,给定一个难度(difficulty),他可以动态变化,他决定了难题的题解空间,用穷举的方式,再题解空间中找到解决谜题的解。以太坊的难度计算公式是翻译一下就是:blockDiff = parentDiff + parentDiff / 2048 * max(1 - (blockTimestamp - pare...
2018-12-31 18:19:36 2095
原创 区块链共识笔记 --- POW(bitcoin)
接触区块链,大都是从比特币开始,从比特币的特性到源码实现学习,POW是重点中的重点,而且POW也是以太坊的共识算法,可以说POW是真正的随机选取节点的共识算法,下面就以比特币为例,学习下POW共识算法POW:proof of work, 翻译过来是工作量证明,即用一定量的工作量来换取记账权利,再比特币中,就是计算一个数学难题,谁先算出来并广播出来,谁就有权利记账,具体的:区块构成:...
2018-12-23 15:11:04 643
原创 以太坊P2P 流程 整体框架
以太坊底层P2P代码细节很多,深入进去,会丢失整体框架,所以按照自己的习惯,先明白框架结构,了然于胸,然后再深入细节,所以这一节就先用白话总结下整体的流程。入口:1. P2P层分为两个部分,一层是基于UDP的节点Node发现,二是基于TCP的节点Peer的消息交互。注意这里的两个英文单词,Node,是网络上的节点,Peer是已经连接的节点2. 两个过程依次涉及两个大类NodeTable...
2018-12-19 18:52:43 402
原创 以太坊P2P 流程(3)
(建议先看总体流程梳理 https://blog.csdn.net/laorenmen/article/details/85079678)前面学习了Auth的流程部分,m_nextState 从 New -- AckAuth -- writeHello现在就进入hello流程部分,首先是RLPXHandshake::transition 里面的 else if (m_nextState =...
2018-12-18 09:37:20 212
原创 以太坊P2P 流程(2)
(建议先看总体流程梳理 https://blog.csdn.net/laorenmen/article/details/85079678)在前面说过以太坊P2P分两层,一层是基于UDP的,实现了Kad算法,用于节点发现,NodeTable类是其主要接口。另一层是基于TCP,用于节点间的消息传递处理,这里贯穿流程的接口就是Host类,后面我们会来看看这一层的代码细节,这里先看下其中一个关键独...
2018-12-17 21:28:17 318
原创 以太坊P2P 流程(1)
(建议先看总体流程梳理 https://blog.csdn.net/laorenmen/article/details/85079678)以太坊P2P代码分为2部分,一部分是基于UDP的节点发现协议,另一部分是基于TCP的传输协议NodeTable中贯穿第一部分流程:本端:doDiscovery ---> 随机选择一个node ---> doDiscover --->...
2018-12-15 16:12:34 531
原创 Kademlia算法 理解 总结
Kademlia 分布式存储路由算法了,DHT的一种,P2P广泛使用的一种节点发现查找算法1. 要素节点ID:即NodeID,160bit信息:<key, value> key是存储信息的hash值,2. 距离Kad算法定义了一种逻辑距离的计算方法,两个NodeID 进行XOR异或操作,结果作为距离值,例如节点a的ID 0010001,节点b的ID 00100...
2018-12-13 17:42:54 1421
原创 solidity的一些特性
solidity的基本语法及使用参见官方文档https://solidity.readthedocs.io/en/v0.4.25/这里总结一些特别之处:1. ABI编码 例:函数 functionName(uint p1, address p2, bytes p3) 则 函数签名 functionName(uint256,address,bytes) 函数选择...
2018-12-05 15:52:20 1431
原创 Centos6 安装yum
1. 卸载以前安装包查看 #rpm -qa | grep yum 卸载 #rpm -e --nodeps yum2. 下载包wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpmwget http://mirrors.163.com/cento...
2018-03-05 19:18:54 6161
转载 vmware ubuntu12.04 hadoop 完全分布式环境搭建记录(1)
不能算原创,根据http://www.jb51.net/article/104427.htm 整理下自己的过程1,前面装了三个虚拟机,一个master,两个slave,并配置桥模式,能够互相ping通,并能上网2.,配置java环境 下载jdk jdk-8u131-linux-x64.tar.gz http://www.oracle.com/t
2017-05-20 15:50:34 393
原创 宿主机无线上网,vmware unbutu12.04桥接模式,ping通,可上网
宿主机是windows,装了vmware,又装了ubuntu12.04的虚拟机,想设置为桥接模式,让宿主机和虚拟机ping通,虚拟机还可以上网,在网上找了很多的网页,不乏一些标注亲测成功的,我也还是没能成功,可能是太笨吧。然后自己就想着了解下桥接模式,当然也有前面查询前人写下的一些经验,自己实现了一下,可以上网了,为了后面有可用资料可查,记录下来。1. 桥接模式的原理(网上截图)要
2017-05-19 00:21:54 562
gmp-6.1.2_mpfr-3.1.5_mpc-1.0.3
2018-03-10
(山科)信息检索模拟试题
2010-12-25
Tomcat+MyEclipse的使用
2010-07-02
精通struts.基于MVC的.java.web设计与开发.pdf精通struts.基于MVC的.java.web设计与开发.pdf
2009-12-25
Effective Java, 2nd Edition(新版).pdfEffective Java, 2nd Edition(新版).pdf
2009-12-25
Linux命令大全(修改版) Linux命令大全(修改版)
2009-12-25
网页设计大全 有关网页制作的
2009-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人