自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tianlongtc的博客

这是一个存放个人区块链学习资料的博客

  • 博客(184)
  • 收藏
  • 关注

转载 JPM Coin 三部曲 (中) - 摩根大通为何青睐 Quorum 区块链

本篇是三部曲的第二部分,聊一聊 JPM coin 背后的区块链网络 - Quorum,详解其特点、共识机制,及其如何满足传统银行业的商业需求。Quorum 被认为是“企业级以太坊”,从2016年起由摩根大通银行启动的开源项目。(https://github.com/jpmorganchase/quorum)相对于一般的区块链,Quorum 有以下几个特点: 兼容以太坊合约...

2019-05-05 12:42:47 1226

转载 JPM Coin三部曲 (上) :深入理解摩根幣的運作

“全美最大的銀行摩根大通推出首個由美國銀行支持的加密貨幣”。有人說這是主流金融機構開始接納加密貨幣的標誌,有人調侃摩根 CEO 傑米·戴蒙一邊炮轟比特幣、一邊忍不住自己發幣,還有密碼朋克旗幟鮮明地抨擊該...“全美最大的銀行摩根大通推出首個由美國銀行支持的加密貨幣”。有人說這是主流金融機構開始接納加密貨幣的標誌,有人調侃摩根 CEO 傑米·戴蒙一邊炮轟比特幣、一邊忍不住自己發幣,還有密碼朋克旗...

2019-05-05 12:40:21 1029

转载 TrueBit白皮书解读

以太坊可以被描述为一个使用区块链的分布式全球计算机。它允许开发者把代码上传到区块链中,矿工共同执行并确保结果的正确性,作为报酬,开发者需要付出一定量的以太币,称为gas。以太坊通过全网验证的办法保证智能合约的正确执行,保证了安全性,作为代价,需要付出大量的算力,驱动这么一台巨型机器,所需gas价值不菲。TrueBit是区块链链外扩容的方案之一,正如它的口号Fuel your imaginati...

2018-12-15 21:07:02 996

转载 深入浅出全面解析RDMA

   RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问,就是为了解决网络传输中服务器端数据处理的延迟而产生的。它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。这允许高吞吐、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造...

2018-12-15 12:09:48 1277

转载 以太坊eip150和eip158

以太坊网络将在区块号到达2463000时进行一次硬分叉,具体分叉时间将会在中国时间2016年10月18日晚8-9点。可以在 https://fork.codetract.io/ 看到本次分叉的倒计时网页。作为一个用户,我需要做些什么?下载最新版本的以太坊客户端:最新版的以太坊钱包/Mist (v0.8.6) 最新的geth客户端 (v1.4.18) 最新的Parity客户端(v1....

2018-11-22 00:02:45 2324

转载 以太坊源码(03):POA委员会选举机制

目录1       名词介绍2       矿工投票方法3       委员会确定投票流程3.1        关键概念描述3.1.1       Epoch & checkpointInterval3.1.2       Snapshot3.2        投票方法 1.名词介绍节点:普通的以太坊节点,没有区块生成的权利。矿工:具有区块生成权...

2018-11-20 15:01:06 772 1

转载 以太坊的RPC机制

1 go语言的RPC机制    RPC(Remote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络细节的应用程序通信协议。RPC协议构建于TCP或UDP,或者是 HTTP之上,允许开发者直接调用另一台计算机上的程序,而开发者无需额外地为这个调用过程编写网络通信相关代码,使得开发包括网络分布式程序在内的应用程序更加容易。 ...

2018-11-13 01:18:47 849

转载 以太坊Bloom过滤器实现原理及应用场景分析

一,Bloom过滤器的数据结构和reciept创建Bloom的过程type Bloom [BloomByteLength]byteBloomByteLength = 256Bloom 就是一个256个字节数组。一共2048位。我们看看怎么把庞大的收据日志数据放到bloom过滤器里面的。func CreateBloom(receipts Receipts) Bloom { b...

2018-11-13 00:47:27 2869

转载 以太坊PoA共识引擎算法介绍(3)

PoA私链搭建go-ethereum自带puppeth工具, 可以方便地部署支持PoA的以太坊私链,以本地部署2节点的以太坊私有链为例, 部署步骤如下:geth1.6版本后自带puppeth工具(编译geth时用 make all ) 创建两个文件夹,用来保存2个节点数据, 创建后进入到testnet文件夹 testnet |-- node1 |--...

2018-11-12 21:24:01 1018

转载 PoA共识引擎算法实现分析(2)

PoA共识引擎算法实现分析clique中一些概念和定义EPOCH_LENGTH : epoch长度是30000个block, 每次进入新的epoch,前面的投票都被清空,重新开始记录,这里的投票是指加入或移除signer BLOCK_PERIOD : 出块时间, 默认是15s UNCLE_HASH : 总是 Keccak256(RLP([])) ,因为没有uncle SIGNER_C...

2018-11-12 21:21:26 1657

转载 以太坊的4个发展阶段与难度炸弹

 以太坊(Ethereum,货币符号ETH)在设计之初就决定最终要采取权益证明(PoS)去维护交易的安全性,取代效率低下,资源消耗大的工作量证明(PoW)。前期通过PoW建立起一套可以信赖的数字加密货币体系,之后就将基于该货币转到PoS体系,通过权益人交保证金的方式去保证其作为一个诚实的节点验证交易的有效性。为此,以太坊的创始人们为它设定了4个发展阶段:Frontier,Homestead,M...

2018-11-12 09:52:09 1660

转载 以太坊共识引擎源码分析

这一篇分析以太坊的共识引擎,先看一下各组件之间的关系:Engine接口定义了共识引擎需要实现的所有函数,实际上按功能可以划分为2类:区块验证类:以Verify开头,当收到新区块时,需要先验证区块的有效性区块盖章类:包括Prepare/Finalize/Seal等,用于最终生成有效区块(比如添加工作量证明)与区块验证相关联的还有2个外部接口:Processor用于执行交易,而Valida...

2018-11-12 00:09:34 822 1

转载 V神·以太坊上的分片

译者序本文是我应以太坊中文社区(Ethfans.org)之邀做的翻译稿,原文取自以太坊社区的Github: [https://github.com/ethereum/sharding/blob/develop/docs/doc.md] 。原文最后更新于2018年1月5日。2017年8月,比特币网络进行了硬分叉,产生了比特币现金(Bitcoin Cash),这个硬分叉的技术解释就是对比特币...

2018-07-24 23:58:55 879

转载 Raft 一致性算法论文译文

本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为《In search of an Understandable Consensus Algorithm (Extended Version)》(寻找一种易于理解的一致性算法)。Raft 是一种用来管理日志复制的一致性算法。它和 Paxos 的性能和功能是一样的,但是它和 Paxos 的结构不一样;这使得 Raft 更容易理解并且更易...

2018-07-24 23:12:58 712

转载 分布式理论-拜占庭将军(译)

作者:LESLIE LAMPORT, ROBERT SHOSTAK, and MARSHALL 1982译者:phylips@bmy 出处:http://duanple.blog.163.com/blog/static/7097176720112643946178/[序:我一直觉得正是因为通过用一组围坐在圆桌旁的哲学家来表述,Dijkstra 的哲学家就餐问题才变得如此让人关注。(比如...

2018-07-24 13:18:53 1759

转载 分布式理论(3):Paxos Made Simple

作者:LESLIE LAMPORT 2001 译者:phylips@bmy 2011-4-30出处:http://duanple.blog.163.com/blog/static/709717672011440267333/ [序:在PODC2001会议上,我总是听到人们在抱怨paxos算法是那么的难以理解。人们总是被那些古希腊的名称弄得晕头转向,而使得他们觉得论文难以理解,实际上算法...

2018-07-24 13:17:52 637

转载 分布式系统领域经典论文翻译集

分布式领域论文译序sql&nosql年代记SMAQ:海量数据的存储计算和查询一.google论文系列1.      google系列论文译序2.      The anatomy of a large-scale hypertextual Web search engine (译 zz)3.      web search for a planet :the goo...

2018-07-23 14:06:17 1009

转载 易懂分布式 | Kademlia算法

转载自:https://www.jianshu.com/p/f2c31e632f1d近年来,区块链技术(部分人更愿意称之为分布式账本技术)的走红将分布式技术的概念带入大众的视野。区块链技术之所以备受追捧,一方面是其展现了一种在计算机的辅助下,人类可以以无中心、无权威、无层级的方式来进行社会协作的美妙前景;另一方面,从物理上可论证,分布式的简单协议,比中心化的复杂协议更为高效。分布式技术似乎能够...

2018-07-23 13:38:25 1325 1

转载 【go】metrics基本使用

metrics 是什么?当我们需要为某个系统某个服务做监控、做统计,就需要用到Metrics五种 Metrics 类型Gauges :最简单的度量指标,只有一个简单的返回值,或者叫瞬时状态 Counters:Counter 就是计数器,Counter 只是用 Gauge 封装了 AtomicLong Meters:Meter度量一系列事件发生的速率(rate),例如TPS。Mete...

2018-07-22 20:38:31 11502 1

转载 LRU算法原理与实践

简介操作系统中进行内存管理中时采用一些页面置换算法,如LRU、LFU和FIFO等。其中LRU应用较为广泛。LRU的全称是Least Recently Used,即最近最少使用算法。大家都知道在缓存的大小是有限的,那么我们应该基于什么策略进行缓存数据呢?LRU提供的思路是将最近没有使用的数据从缓存中移除,这样的思路在实际的环境中比较符合常识。原理LRU算法的原理比较简单,数据存储的数...

2018-07-22 16:56:48 933

转载 【以太坊源码】mpt实现

转载自:click heretrie/encoding.goencoding.go主要处理trie树中的三种编码格式的相互转换的工作。 三种编码格式分别为下面的三种编码格式。KEYBYTES encoding这种编码格式就是原生的key字节数组,大部分的Trie的API都是使用这边编码格式 HEX encoding 这种编码格式每一个字节包含了Key的一个半字节,尾部接上一个可选的'...

2018-07-22 16:50:10 1354

转载 Golang标准库RPC实践及改进

转载自:http://daizuozhuo.github.io/golang-rpc-practice/ 一直用Golang标准库里的的RPC package来进行远程调用,简单好用. 但是随着任务数量的增大, 发现简单的像包里面的示例那样的代码出现了各种各样的问题,下面就把我踩过的一些坑记录一下吧. 首先是最初使用的文档里的版本,使用HTTP来发送请求.server.gofunc Li...

2018-07-22 15:38:40 897

转载 Go官方库RPC开发指南

Go官方提供了一个RPC库: net/rpc。包rpc提供了通过网络访问一个对象的方法的能力。服务器需要注册对象, 通过对象的类型名暴露这个服务。注册后这个对象的输出方法就可以远程调用,这个库封装了底层传输的细节,包括序列化。服务器可以注册多个不同类型的对象,但是注册相同类型的多个对象的时候回出错。我最近写了一本电子书: Go RPC开发指南,介绍Go RPC开发的相关技术,这是其中的一章,专...

2018-07-22 02:48:37 697

转载 Golang学习 - sync 包

------------------------------------------------------------临时对象池  Pool 用于存储临时对象,它将使用完毕的对象存入对象池中,在需要的时候取出来重复使用,目的是为了避免重复创建相同的对象造成 GC 负担过重。其中存放的临时对象随时可能被 GC 回收掉(如果该对象不再被其它变量引用)。  从 Pool 中取出对象时,如...

2018-07-22 01:48:23 175

转载 快速理解MapReduce

转载自https://blog.csdn.net/suifeng3051/article/details/416518511 什么是MapReduce?  Map本意可以理解为地图,映射(面向对象语言都有Map集合),这里我们可以理解为从现实世界获得或产生映射。Reduce本意是减少的意思,这里我们可以理解为归并前面Map产生的映射。2 MapReduce的编程模型  按照goog...

2018-07-22 01:09:18 217

转载 Merkle Patricia Tree 详解

转载自 https://ethfans.org/toya/articles/5881. 前言1.1 概述Merkle Patricia Tree(又称为Merkle Patricia Trie)是一种经过改良的、融合了默克尔树和前缀树两种树结构优点的数据结构,是以太坊中用来组织管理账户数据、生成交易集合哈希的重要数据结构。MPT树有以下几个作用:存储任意长度的key-value...

2018-07-21 16:00:52 547

转载 引介 | RLP 编码和解码

转载自:https://ethfans.org/posts/rlp-encode-and-decodeRLP编码和解码RLP(Recursive Length Prefix,递归的长度前缀)是一种编码规则,可用于编码任意嵌套的二进制数组数据。RLP编码的结果也是二进制序列。RLP主要用来序列化/反序列化数据。RLP数据定义RLP编码的定义只处理以下两类数据: 字符串(stri...

2018-07-21 15:37:04 707

转载 Merkle Patricia Tree (MPT) 以太坊merkle技术分析

转载自:https://blog.csdn.net/zslomo/article/details/53434883一 传统merkle树缺陷我的这篇博客merkle tree 分析 详细解释了merkle树的原理和作用,然而传统的merkle树有他的局限性 以下对Vitalik blog原文的翻译可以很好的阐述传统merkle树的一个特别的限制是,它们虽然可以证明包含此交易,但无法...

2018-07-21 14:03:44 458

转载 Merkle Patricia Tree (MPT) 树详解

转载自:http://www.cnblogs.com/fengzhiwu/p/5584809.html1.    介绍    Merkle Patricia Tree(简称MPT树,实际上是一种trie前缀树)是以太坊中的一种加密认证的数据结构,可以用来存储所有的(key,value)对。以太坊区块的头部包括一个区块头,一个交易的列表和一个uncle区块的列表。在区块头部包括了交易的h...

2018-07-21 14:02:33 593

原创 【以太坊源码阅读】椭圆曲线加密和EIP155

1、以太坊椭圆曲线加密r,s,vhttps://crypto.stackexchange.com/questions/59506/ecdsa-recover-on-arbitrary-valueshttps://crypto.stackexchange.com/questions/18105/how-does-recovering-the-public-key-from-an-ecdsa-...

2018-07-21 01:19:53 2127

转载 【EIP】以太坊路线图

预发布0:测试网 (2015年5月)发布1:前沿(2015年7月30日)    全世界的矿工开动挖矿设备,用户运行节点,以太坊网络开始活跃起来。发布2.0:家园(2016年3月14日(圆周率日))EIP-2 主要的Homestead硬分叉改变 EIP-7 硬分叉相对应的EVM(以太坊虚拟机)更新:DELEGATECALL EIP-8 devp2p 向前兼容性发布2.1:虚龙(...

2018-07-21 00:25:42 1527

原创 【以太坊源码】以太坊黄皮书参数

由于参数比较多,直接贴出来比较杂乱,我将其整理在百度脑图,按照黄皮书章节顺序进行分类,并调整了部分常数顺序需要查阅特定的参数,可以使用ctrl+F直接查询,由于百度脑图不支持下标(或者我不知道),所有参数统一没用下标,并在备注中说明是否有下标(~~代表下标)由于不支持下标,公式统一没有贴出来,只贴出来部分参数。http://naotu.baidu.com/file/d13c371cc4...

2018-07-20 22:38:46 316

转载 【go】atmoic.Value

源代码分析 atomic.Value分为两个操作,通过Store()存储Value,通过Load()来读取Value的值. 源码我就不贴了,贴一个关键的struct: type ifaceWords struct { typ unsafe.Pointer data unsafe.Pointer} ifaceWords结构体是实际存储我们的Value值的...

2018-07-16 21:11:44 691

转载 【leveldb】资料

 转载自:https://zhuanlan.zhihu.com/p/25349591Leveldb是一个 Google 实现的非常高效的kv数据库,目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非常高的性能,主要归功于它的良好的设计。特别是LSM算法。LevelDB教程1 - 初识LevelDB LevelDB教程2 - 整体架构 LevelDB教程...

2018-07-16 20:02:46 273

转载 【leveldb】整体架构

LevelDb本质上是一套存储系统以及在这套存储系统上提供的一些操作接口。为了便于理解整个系统及其处理流程,我们可以从两个不同的角度来看待 LevleDb:静态角度和动态角度。从静态角度,可以假想整个系统正在运行过程中(不断插入删除读取数据),此时我们给LevelDb照相,从照片可以看到之前系统的数据在内存和磁盘中是如何分布的,处于什么状态等;从动态的角度,主要是了解系统是如何写入一条记录,读出一...

2018-07-16 17:45:48 278

转载 【以太坊源码】I.区块和交易,合约和虚拟机

转载自:https://blog.csdn.net/teaspring/article/details/75389151最近在看以太坊(Ethereum)的源代码, 初初看出点眉目。 区块链是近年热点之一,面向大众读者介绍概念的文章无数,有兴趣的朋友可自行搜索。我会从源代码实现入手,较系统的介绍一下以太坊的系统设计和协议实现等,希望能提供有一定深度的内容,欢迎有兴趣的朋友多多讨论。注:1.源代码在...

2018-07-16 00:28:53 394

转载 【以太坊源码】交易(一)

交易是区块链中最基本也是最核心的一个概念,在以太坊中,交易更是重中之重,因为以太坊是一个智能合约平台,以太坊上的应用都是通过智能合约与区块链进行交互,而智能合约的执行是由交易触发的,没有交易,智能合约就是一段死的代码,可以说在以太坊中,一切都源于交易。下面就来看看在以太坊中交易是什么样的,交易里面都有什么。交易的数据结构在core/types/transaction.go中定义了交易的数据结构:t...

2018-07-16 00:27:01 1394 1

转载 binary.Write 小坑一个兼论go的错误处理哲学

有如下go代码:const ( foo = 123)buffer := new(bytes.Buffer)binary.Write(buffer, binary.BigEndian, foo)fmt.Println(buffer.Len())123456输出结果是0,foo没有写入到buffer中。原因在于,binary包的Write内部调用了intDataSize函数获取foo的长度:...

2018-07-10 20:11:14 662

原创 EVM指令集

0x00 0 STOP 0x01 3 ADD 0x02 5 MUL 0x03 3 SUB 0x04 5 DIV 0x05 5 SDIV 0x06 5 MOD 0x07 5 SMOD 0x08 8 ADDMOD 0x09 8 MULMOD 0x0a varies EXP 0x0b 5 SIG...

2018-07-04 23:32:38 1756

转载 深入了解以太坊虚拟机

Solidity提供了很多高级语言的抽象概念,但是这些特性让人很难明白在运行程序的时候到底发生了什么。我阅读了Solidity的文档,但依旧存在着几个基本的问题没有弄明白。string, bytes32, byte[], bytes之间的区别是什么?该在什么地方使用哪个类型?将 string 转换成bytes时会怎么样?可以转换成byte[]吗?它们的存储成本是多少?EVM是如何存储映射( map...

2018-07-04 23:04:14 200

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除