自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cypherium-japson

现从事区块链开发,闲时,写些笔记记录下,帮到自己和他人。

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

原创 Libra的测试程序运行和源码解析

1、下载 Libra 及相关软件安装下载 Libragit clone https://github.com/libra/libra.git安装 Rust 等相关curl https://sh.rustup.rs -sSf | shrustup toolchain install nightly-2019-05-22-x86_64-unknown-linux-gnu...

2019-08-01 11:23:16 890

原创 以太坊源码分析--p2p节点发现

p2p(peer to peer)负责以太坊节点间的通信,主要包括底层节点发现(discover)和上层协议运行两大块,本文主要描述其中节点发现部分的实现数据结构节点发现功能主要涉及 Server \ Table \ udp 这几个数据结构,它们有独自的事件响应循环,节点发现功能便是它们互相协作完成的。其中,每个以太坊客户端启动后都会在本地运行一个Server,并将网络拓扑中相邻的节点...

2018-12-27 09:35:15 683

原创 以太坊bootnode建立连接的过程

总体流程1、节点A向boot发送ping2、boot向A发送pong3、boot向A发送ping,A返回pong(互相ping一下确保对方活着)4、A向boot发送findnode请求5、boot向A发送neighbors信号代码位置这部分的代码在go-etherum/p2p/discover/udp.go中。// Copyright 2015 The go-cy...

2018-12-11 14:53:18 1939

转载 条条大路通罗马:实现数字货币双花攻击的多种方法

[摘要]2008年,中本聪提出了一种完全通过点对点技术实现的电子现金系统(比特币)。该方案的核心价值在于其提出了基于工作量证明的解决方案,使现金系统在点对点环境下运行,并能够防止双花攻击。如今比特币已经诞生十年,无数种数字货币相应诞生,但人们对双花攻击的讨论似乎仍然停留在比特币51%攻击上。实际上,我们的研...

2018-11-28 15:08:30 522

转载 以太坊微支付通道原理与实现

以太坊微支付通道原理与实现线上直接转账需要一定的费用,如果存在大量小额交易的情况下,费用会变的难以承受,因而以太坊引入了微交易支付通道来解决这个问题。以太坊提供了一个票据支付方案,主要依赖于智能合约实现的一对多的账单系统。该账单系统大致上的执行流程如下.1:账单生成,同时提供机制往账单上存入保证金。2:交易发...

2018-11-19 15:52:10 1495

原创 以太坊区块广播、fetcher消息接收过滤、downloader的Total Difficulty的代码流程解析

 一、定义   Total Difficulty - integer of the total difficulty of the chain until this block. 从区块链的第一个区块到此区块的难度的二、作用    主要用于区块广播和同步fetcher、Insertblock时判断区块新旧,值越大,处理优先级越高。三、代码引用流程1.广播与p2p部分分析...

2018-11-09 15:04:18 1210

转载 go-ethereum-code-analysis 以太坊源码分析

分析go-ethereum的过程,我希望从依赖比较少的底层技术组件开始,慢慢深入到核心逻辑。目录go-ethereum代码阅读环境搭建以太坊黄皮书 符号索引rlp源码解析trie源码分析ethdb源码分析rpc源码分析p2p源码分析eth协议源码分析core源码分析区块链索引 chain_indexer源码分...

2018-11-05 16:38:25 184

原创 以太坊gas、gaslimit、gasPrice、gasUsed详解。

1. gas是什么。 Gas 翻译成中文就是“燃气”,是以太坊世界的燃料,它决定了以太坊网络生态系统的正常运行。Gas 用来衡量执行某些动作需要多少“工作量”,这些“工作量”就是为了执行该动作支付给网络的费用额。通俗理解,Gas 是给矿工的佣金,并以 ETH 支付,无论是交易、执行智能合约并启动 DApps,还是支付数据存储费用,都需要用到 Gas。 以太坊在区块链上实现了...

2018-11-02 18:28:42 9747

转载 以太坊源码深入分析(10)-- 以太坊Bloom过滤器实现原理及应用场景分析

上一节分析reciept产生过程的时候提到:reciept会为日志数据生成一个Bloom过滤器,那Bloom过滤器是用来干嘛的呢?有什么用呢?一,Bloom过滤器的数据结构和reciept创建Bloom的过程type Bloom [BloomByteLength]byteBloomByteLength = 256Bloom 就是一个256个字节数组。一共2048位。我们看看怎么把庞大...

2018-10-25 17:00:44 1373

原创 以太坊源码深入分析(6)-- 以太坊P2P协议接收广播的处理和Fetcher源码分析

上一节主要讲了Ethereum服务和以太坊P2P协议通讯模块ProtocolManager的初始化和启动,以及以太坊通讯协议如何广播给其他的网络节点。这一节讲讲,以太坊通讯协议如何处理接收到的广播消息。以及fetcher怎么工作。一,ProtocolManager接收网络节点广播消息首先看看p2p.Protocol的结构type Protocol struct { Name ...

2018-10-25 16:55:31 363

原创 以太坊源码深入分析(7)-- 以太坊Downloader源码分析

上一节分析到Fetcher用于同步网络节点的新区块和新的交易数据,如果新区块和本地最新的区块相隔距离较远,说明本地区块数据太旧,Fetcher就不会同步这些区块。这时候就要借助Downloader来同步完整的区块数据。一,启动DownloaderProtocolManager初始化的时候会进行Downloader的初始化:func New(mode SyncMode, stateDb ...

2018-10-25 16:16:46 345

转载 go语言函数传递问题(map、切片、接口、chan)

一句话总结:map、切片、接口、函数类型、chan都是引用类型,作为函数参数传递不会复制一个副本。package mainimport (    "fmt")func change(a int) {    a = 10}func changeMap(m map[int]string) {    _, ok := m[1]    if ok {        m[1] = "...

2018-10-24 15:27:00 1592

转载 go-ethereum-code-analysis 以太坊源码分析

go-ethereum代码阅读环境搭建 以太坊黄皮书 符号索引 rlp源码解析 trie源码分析 ethdb源码分析 rpc源码分析 p2p源码分析 eth协议源码分析 core源码分析 区块链索引 chain_indexer源码分析 布隆过滤器索引 bloombits源码分析 以太坊的trie树管理 回滚等操作 state源码分析 交易执行和处理部分源码分析 v...

2018-09-08 19:48:34 237

转载 以太坊源码深入分析(7)-- 以太坊Downloader源码分析

以太坊源码深入分析(7)-- 以太坊Downloader源码分析 2018.05.03 20:22* 字数 1530 阅读 1092评论 3喜欢 1上一节分析到Fetcher用于同步网络节点的新区块和新的交易数据,如果新区块和本地最新的区块相隔距离较远,说明本地区块数据太旧,Fetcher就不会同步这些区块。这时候就要借助Downloader来同步完整的区块数据。一,启动Downl...

2018-09-08 19:41:19 242

转载 IPFS:Filecoin的POS证明

这篇文章主要来讲一下Filecoin协议里面的复制证明(Proof of Replication),由于协议涉及到很多概念,可能看起来有点晕乎乎的,小编尽量把复杂问题简单化 ,力求给大家做大普及IPFS知识概念: 挑战(challenge):系统对矿工发起提问,可能是一个问题或者一系列问题,矿工正确的答复,则挑战成功,否则失败 证明者(prover):矿工向Filecoin...

2018-09-08 19:38:49 396

原创 ansible 使用亚马逊云服务(AWS)密钥文件 xx.pem同时操纵多个节点

一、安装ansible安装pip包管理工具,先下载安装脚本get-pip.py。 1 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 执行安装脚本。 1 python get-pip.py 验证下是否安装成功。 1...

2018-09-08 19:02:24 1193

原创 以太坊 目录结构说明

本篇为转发,只做了下样式整理,原文地址。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061...

2018-09-08 19:00:06 934

原创 Go Ethereum 以太坊 web3.js 打包编译发布过程

太坊的js交互是靠web3.js调用的。改完后,需要打包,放到Go Ethereum里测试,以下就是打包编译过程说明。web3.js版本:v0.20.6。安装cnpm 1 npm install -g cnpm --registry=https://registry.npm.taobao.org 在web3.js的根路径下 安装web3.j...

2018-09-08 18:58:23 1239

转载 Go Ethereum 以太坊 web3.js 控制台 调试

前言最近要根据以太坊,做个数字货币,需要修改一些命令,就看了一下web3.js。每次改完,都需要打包,放到Go Ethereum里测试,非常麻烦,就研究了一波怎么调试和怎么使用测试用例。一、从官网寻找测试方法1、从web3.js的github地址页面,看README.md,能看到测试命令: 1 npm test 2、从pack...

2018-09-08 18:55:52 1229

空空如也

空空如也

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

TA关注的人

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