区块链
文章平均质量分 95
kojhliang
积极乐观,勤奋好学。2016年踏上区块链之路
展开
-
fabric1.*多机部署要点记录
最近又要弄fabric的项目,在sit环境部署时遇到了不少问题。记录一下相关要点。1.networks问题: 单机部署,所有容器需要在dockerfile定义networks为同一个网络。多机部署,不要求在dockerfile定义networks为同一个网络。2.CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock 配置的问题 ...原创 2019-11-23 09:54:54 · 441 阅读 · 0 评论 -
hyperledger Fabric make docker错误的解决方案(免qiang下载,适用Fabric 1.*的所有版本)
此文档旨在,提高fabric的构建过程,去除了编译make docker时候的网络依赖,使编译可以快速,正常的通过,无需qiang后才能下载。主要实现者为zeoio1.环境准备:需要安装docker-ce 17.05或者以上版本的docker,不然编译fabric-tools的docker file文件时,会无法识别 from * as *的语法,以及copy --from=*这样的语法。...原创 2019-10-19 17:23:27 · 1366 阅读 · 0 评论 -
libra区块链技术白皮书-中文部分翻译版
2019年6月18日facebook发布了libra区块链,目标是做一个全球货币和支付工具。最近花了一些时间来研究这个libra,官网上有白皮书的中文版,但没有技术白皮书的中文版,因此花了一些时间来做了一个简单的翻译。原文链接:https://developers.libra.org/docs/the-libra-blockchain-paper以下是正文:libra区块...翻译 2019-07-04 11:19:42 · 2140 阅读 · 0 评论 -
配置和管理raft排序服务--翻译自Fabric1.4官方文档
最近又需要用fabric来做项目,之前只关注到fabric1.1版本,现在最新的是1.4版本。因此主要看了一些1.4和之前的版本不同的内容。比如1.4增加了etcdraft共识算法。因此接下来会翻译几篇fabric1.4官方文档,供大家参考。基本都是对着google翻译来做的,把一些不符合中文顺序和专业术语的地方,稍微调整下,并且加了一些自己的理解和解释。下面这篇“配置和管理raft...翻译 2019-06-12 10:31:16 · 1927 阅读 · 0 评论 -
Evm7种重要指令的实现原理
Evm7种重要指令的实现原理:Evm的所有指令定义都在core/vm/jump_table.go里实现的,而每个指令对应的操作函数都是在core/vm/instructions.go里实现的。如果一个节点并发调用智能合约,那么对memory的操作是否有线程安全问题。不会,因为每执行一个交易,都会创建一个新的evm对象。只有最终写入statedb的数据会有线程安全问题。基本原理:一个指令...原创 2018-11-02 14:47:06 · 2103 阅读 · 0 评论 -
星云链并行执行交易逻辑
星云链并行交易执行逻辑 总体来说分三步:第一步准备世界状态txWorldState, err := block.WorldState().Prepare(tx.Hash().String())func (ws *worldState) Prepare(txid interface{}) (TxWorldState, error) { s, err := ws.sta...原创 2018-11-06 16:32:23 · 417 阅读 · 0 评论 -
用户发送http交易请求到rpc服务,tx写入txpool中的pending队列,最后打包成区块的整个流程
用户发送http交易请求到rpc服务,再到txpool,最后打包成区块的整个流程:1.经过http.Server等一系列调用后,最终会进入rpc/http.go里ServeHttp方法,最后会调用ServeSingleRequest方法 srv.ServeSingleRequest(ctx, codec, OptionMethodInvocation)2. rpc/server.g...原创 2018-10-30 20:24:13 · 1668 阅读 · 0 评论 -
RPC服务启动过程
启动rpc服务的过程:第一步:node/node.go里的Start()方法里n.startRpc()方法实现开启各种endpoint的rpc服务。包括inProc和http的endpoint。 其中APIS方法实现了把所有rpc方法封装成API对象数组。比如PublicTransactionPoolAPI对象里的GetBlockTransactionCountByNumber方法,最后...原创 2018-10-30 20:22:14 · 1771 阅读 · 0 评论 -
以太坊 eth/handle.go处理newblockMsg消息的主要流程
今天把以太坊 eth/handle.go处理newblockMsg消息的流程基本看完了,记录一下。以太坊 eth/handle.go处理newblockMsg消息的主要流程:Fetcher负责验证区块并插入区块,如果符合条件,还会重组主链区块。如果收到的远程peer节点发来的区块TD-区块难度(即上个区块的TD) 大于 之前保存的peer最新的TD,则证明中间还差了一些区块没有同步,...原创 2018-09-06 16:59:36 · 631 阅读 · 0 评论 -
以太坊blockchain.go里的reorg方法理解
以太坊go-ethereum项目里core/blockchain.go是一个很核心的文件,其中的reorg方法负责处理侧链分叉的情况。以下是对这个方法逻辑的理解:总体思路:先收集区块,最后再看能不能拼起来。1.所有收到的区块都会存入数据库2.如果不是正常的情况(收到的区块的父hash不是本地权威(Canonical)hash链最新区块的hash),则尝试进行重组reorg区块链。 ...原创 2018-09-05 19:17:24 · 1026 阅读 · 1 评论 -
steemIT深度研究总结
steemIT深度研究总结目录1.steem生态 21. 公链 22. 代币平台 23. 公链应用 34. 周边配套 45. 社区应用 42.SteemIT社区 42.1.Token种类 42.1.1 Steem 52.1.2 SP(steem power) 52.1.3 SMD(新版SBD) 62.1.4 SteemIT社区钱包截图 92.2 token 产生和分配方案 92.2.1初始化分配规...原创 2018-05-29 10:56:38 · 6138 阅读 · 0 评论 -
pbft流程深层分析和解释
pbft五阶段请求解释 Request pre-prepare prepare commit 执行并reply(1)pre-prepare阶段:主节点收到客户端请求,给请求编号,并发送pre-pre类型信息给其他从节点。 从1节点收到pre-pre类型信息,如果同意这个请求的编号,如果同意就进入prepare阶段(2)Pr原创 2017-05-10 10:47:41 · 13923 阅读 · 2 评论 -
Fabric1.0.2基于tls连接实现日志监听
Fabric1.0.2默认自带的例子是不基于tls连接的,但是balance-transfer和e2e_cli的例子是基于tls,为了使连接更加安全和通用,研究支持基于tls的日志监听实现。 Fabric1.0.2源码里的example/events/Block-listen.go例子产生监听客户端的流程大致是: Block-listen.go里调用createEventC原创 2017-09-25 21:02:26 · 1960 阅读 · 5 评论 -
搭建和运行hyperledger fabric1.0alpha版本过程分析
搭建和运行hyperledger fabric1.0alpha版本过程分析 目录 1. 主要步骤... 1.安装docker和docker-compose. 2.下载相关镜像并tag重命名... 3. 安装git 并git下载fabric源码... 4.安装go环境... 5. 安装ltdl包(可能需要执行的步骤)... 6.原创 2017-03-27 14:41:09 · 10400 阅读 · 2 评论