区块链
文章平均质量分 89
laorenmen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FISCO BCOS源码学习
有没有FISCO BCOS的源码学习交流组织,微信群,QQ群,github等等,一起学习原创 2020-07-27 10:19:37 · 3052 阅读 · 2 评论 -
以太坊P2P 流程(3)
(建议先看总体流程梳理 https://blog.youkuaiyun.com/laorenmen/article/details/85079678)前面学习了Auth的流程部分,m_nextState 从 New -- AckAuth -- writeHello现在就进入hello流程部分,首先是RLPXHandshake::transition 里面的 else if (m_nextState =...原创 2018-12-18 09:37:20 · 308 阅读 · 0 评论 -
区块链共识笔记 --- POW(bitcoin)
接触区块链,大都是从比特币开始,从比特币的特性到源码实现学习,POW是重点中的重点,而且POW也是以太坊的共识算法,可以说POW是真正的随机选取节点的共识算法,下面就以比特币为例,学习下POW共识算法POW:proof of work, 翻译过来是工作量证明,即用一定量的工作量来换取记账权利,再比特币中,就是计算一个数学难题,谁先算出来并广播出来,谁就有权利记账,具体的:区块构成:...原创 2018-12-23 15:11:04 · 862 阅读 · 0 评论 -
跟随一笔交易来看以太坊源码执行流程
作为码农,遇到现象总想探知内部的原理,利用假期,一步步看下下源码,这个假期也就更充实了。本文初步分析了一个交易在以太坊内部的处理流程,涉及到交易的接收,检查,执行,同步,区块的构建以及挖矿,结合前面一篇基于黄皮书的理解总结,对以太坊有了更多的认识。因为主要的工作在c++层面,所以这里以c++版本的以太坊源码作为学习资源。如有理解错误的地方,希望看到的人不吝赐教,共同学习,谢谢。1. 发...原创 2018-12-31 20:15:39 · 1664 阅读 · 3 评论 -
go-ethereum 学习笔记之 P2P (1)
区块链由业余爱好开始转向正式工作,进而可以全身心的学习,努力不能停止。。。。前面曾经分析学习过以太坊c++版本的代码,现在开始go语言版本的学习,虽然白皮书是同一份,实现的架构,原理相同,但是go语言跟c++版本实现流程还是很不一样的,刚刚接触go语言,借此机会学习下源码,熟悉下go语言老习惯,学习一个新系统,总想着在脑中先搭建起一个整体的框架(当然初期,这个框架也是不完整的),形成一条主...原创 2019-04-19 14:28:21 · 1125 阅读 · 0 评论 -
go-ethereum 学习笔记之P2P (2)
这里接着第一篇继续梳理了p2p server的流程,上一篇中说道,创建以太坊节点Node, 只是组装器,分为上下两层,上层是实现相同接口的service(如eth),下层是p2p server,具体负责的就是node 发现,peer连接,以及处理上层service的消息手法工作,是ethereum基础的基础。还是老样子,先有个框架印象,然后再逐步梳理,在最初的node.go里面的start函数...原创 2019-04-24 12:02:38 · 786 阅读 · 0 评论 -
以太坊P2P 流程(2)
(建议先看总体流程梳理 https://blog.youkuaiyun.com/laorenmen/article/details/85079678)在前面说过以太坊P2P分两层,一层是基于UDP的,实现了Kad算法,用于节点发现,NodeTable类是其主要接口。另一层是基于TCP,用于节点间的消息传递处理,这里贯穿流程的接口就是Host类,后面我们会来看看这一层的代码细节,这里先看下其中一个关键独...原创 2018-12-17 21:28:17 · 411 阅读 · 0 评论 -
区块链共识笔记 --- POW 难度计算(ethereum)
从前一节对区块链先驱bitcoin的POW分析,挖矿的本质就是求解一个谜题,给定一个难度(difficulty),他可以动态变化,他决定了难题的题解空间,用穷举的方式,再题解空间中找到解决谜题的解。以太坊的难度计算公式是翻译一下就是:blockDiff = parentDiff + parentDiff / 2048 * max(1 - (blockTimestamp - pare...原创 2018-12-31 18:19:36 · 2423 阅读 · 0 评论 -
ethereum 黄皮书理解
目录1. 总览2. 数据结构3. 区块形成过程4. 交易执行5. 执行模型6. Gas 返还参考:1. 总览以太坊是基于交易的状态机,基于区块,交易在区块中顺序执行,所有节点的大量冗余计算保证了可信性2. 数据结构账户状态 accountState: nonce balance storageRoot codeHash nonc...原创 2019-01-03 15:50:17 · 197 阅读 · 0 评论 -
ethereum 黄皮书 难度值计算
原创 2018-12-06 10:12:49 · 392 阅读 · 0 评论 -
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 · 1718 阅读 · 0 评论 -
以太坊P2P 流程 整体框架
以太坊底层P2P代码细节很多,深入进去,会丢失整体框架,所以按照自己的习惯,先明白框架结构,了然于胸,然后再深入细节,所以这一节就先用白话总结下整体的流程。入口:1. P2P层分为两个部分,一层是基于UDP的节点Node发现,二是基于TCP的节点Peer的消息交互。注意这里的两个英文单词,Node,是网络上的节点,Peer是已经连接的节点2. 两个过程依次涉及两个大类NodeTable...原创 2018-12-19 18:52:43 · 523 阅读 · 0 评论 -
以太坊P2P 流程(1)
(建议先看总体流程梳理 https://blog.youkuaiyun.com/laorenmen/article/details/85079678)以太坊P2P代码分为2部分,一部分是基于UDP的节点发现协议,另一部分是基于TCP的传输协议NodeTable中贯穿第一部分流程:本端:doDiscovery ---> 随机选择一个node ---> doDiscover --->...原创 2018-12-15 16:12:34 · 663 阅读 · 0 评论 -
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 · 1560 阅读 · 0 评论
分享