
以太坊
japson0409
区块链底层技术开发。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 1305 阅读 · 0 评论 -
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 · 1648 阅读 · 0 评论 -
以太坊区块广播、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 · 1294 阅读 · 0 评论 -
以太坊gas、gaslimit、gasPrice、gasUsed详解。
1. gas是什么。 Gas 翻译成中文就是“燃气”,是以太坊世界的燃料,它决定了以太坊网络生态系统的正常运行。Gas 用来衡量执行某些动作需要多少“工作量”,这些“工作量”就是为了执行该动作支付给网络的费用额。通俗理解,Gas 是给矿工的佣金,并以 ETH 支付,无论是交易、执行智能合约并启动 DApps,还是支付数据存储费用,都需要用到 Gas。 以太坊在区块链上实现了...原创 2018-11-02 18:28:42 · 10912 阅读 · 0 评论 -
go-ethereum-code-analysis 以太坊源码分析
分析go-ethereum的过程,我希望从依赖比较少的底层技术组件开始,慢慢深入到核心逻辑。目录go-ethereum代码阅读环境搭建以太坊黄皮书 符号索引rlp源码解析trie源码分析ethdb源码分析rpc源码分析p2p源码分析eth协议源码分析core源码分析区块链索引 chain_indexer源码分...转载 2018-11-05 16:38:25 · 218 阅读 · 0 评论 -
以太坊微支付通道原理与实现
以太坊微支付通道原理与实现线上直接转账需要一定的费用,如果存在大量小额交易的情况下,费用会变的难以承受,因而以太坊引入了微交易支付通道来解决这个问题。以太坊提供了一个票据支付方案,主要依赖于智能合约实现的一对多的账单系统。该账单系统大致上的执行流程如下.1:账单生成,同时提供机制往账单上存入保证金。2:交易发...转载 2018-11-19 15:52:10 · 1589 阅读 · 0 评论 -
以太坊源码分析--p2p节点发现
p2p(peer to peer)负责以太坊节点间的通信,主要包括底层节点发现(discover)和上层协议运行两大块,本文主要描述其中节点发现部分的实现数据结构节点发现功能主要涉及 Server \ Table \ udp 这几个数据结构,它们有独自的事件响应循环,节点发现功能便是它们互相协作完成的。其中,每个以太坊客户端启动后都会在本地运行一个Server,并将网络拓扑中相邻的节点...原创 2018-12-27 09:35:15 · 809 阅读 · 0 评论 -
以太坊源码深入分析(10)-- 以太坊Bloom过滤器实现原理及应用场景分析
上一节分析reciept产生过程的时候提到:reciept会为日志数据生成一个Bloom过滤器,那Bloom过滤器是用来干嘛的呢?有什么用呢?一,Bloom过滤器的数据结构和reciept创建Bloom的过程type Bloom [BloomByteLength]byteBloomByteLength = 256Bloom 就是一个256个字节数组。一共2048位。我们看看怎么把庞大...转载 2018-10-25 17:00:44 · 1553 阅读 · 0 评论 -
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 · 1298 阅读 · 0 评论 -
以太坊 目录结构说明
本篇为转发,只做了下样式整理,原文地址。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061...原创 2018-09-08 19:00:06 · 1004 阅读 · 0 评论 -
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 · 1282 阅读 · 0 评论 -
以太坊源码深入分析(7)-- 以太坊Downloader源码分析
以太坊源码深入分析(7)-- 以太坊Downloader源码分析 2018.05.03 20:22* 字数 1530 阅读 1092评论 3喜欢 1上一节分析到Fetcher用于同步网络节点的新区块和新的交易数据,如果新区块和本地最新的区块相隔距离较远,说明本地区块数据太旧,Fetcher就不会同步这些区块。这时候就要借助Downloader来同步完整的区块数据。一,启动Downl...转载 2018-09-08 19:41:19 · 290 阅读 · 0 评论 -
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 · 273 阅读 · 0 评论 -
以太坊源码深入分析(7)-- 以太坊Downloader源码分析
上一节分析到Fetcher用于同步网络节点的新区块和新的交易数据,如果新区块和本地最新的区块相隔距离较远,说明本地区块数据太旧,Fetcher就不会同步这些区块。这时候就要借助Downloader来同步完整的区块数据。一,启动DownloaderProtocolManager初始化的时候会进行Downloader的初始化:func New(mode SyncMode, stateDb ...原创 2018-10-25 16:16:46 · 388 阅读 · 0 评论 -
以太坊源码深入分析(6)-- 以太坊P2P协议接收广播的处理和Fetcher源码分析
上一节主要讲了Ethereum服务和以太坊P2P协议通讯模块ProtocolManager的初始化和启动,以及以太坊通讯协议如何广播给其他的网络节点。这一节讲讲,以太坊通讯协议如何处理接收到的广播消息。以及fetcher怎么工作。一,ProtocolManager接收网络节点广播消息首先看看p2p.Protocol的结构type Protocol struct { Name ...原创 2018-10-25 16:55:31 · 402 阅读 · 0 评论 -
以太坊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 · 2066 阅读 · 0 评论