区块链技术
文章平均质量分 66
本专栏针对现在流行的开源项目Hyperledger fabric、以太坊、比特币和EOS等项目做理论讲解和源码分析,当然也包含项目的开发环境搭建和生成环境的搭建等内容
The_Web3_社区
The Web3 是一个专注 Web3 技术解决方案设计与开发、技术教程设计与开发、Web3 项目投研分析和 Web3 项目孵化,旨在将开发者,创业者,投资者和项目方联系在一起的社区。
展开
-
The Web3 社区 Web3 产品经理课程
在“币圈一天,人间一年”的Web3行业中,市场瞬息万变,项目迭代速度快,生命周期短,对产品经理和项目经理的要求极高。然而,目前行业内同时具备产品经理技能、项目管理思维、以及熟练掌握Web3各个类型产品专业知识的复合型人才严重短缺。原创 2024-07-12 12:37:50 · 1080 阅读 · 0 评论 -
Arbitrum 的 Nitro 项目 Rollup 细节深入
Arbitrum 的 Nitro 项目 Rollup 细节深入原创 2022-12-12 20:13:39 · 711 阅读 · 1 评论 -
Savour(SavourDao) Mpc 钱包技术解决方案
MPC 是使用多方计算的方式各个节点产生密钥分片,各节点自行托管密钥分片,由于完整的密钥没有在整个网络中出现过,只要确保阀值节点的密钥分片不泄漏,钱包就是安全的。转载 2022-12-03 22:01:34 · 962 阅读 · 0 评论 -
目前技术圈最全面的 Layer2 研究总结
最全面的 Layer2 资料总结原创 2022-06-01 08:49:49 · 418 阅读 · 0 评论 -
filecoin python 离线地址生成和离线签名实现
原文链接:http://www.wenwoha.com/blog_detail-140.html原创 2021-01-16 12:52:57 · 1295 阅读 · 0 评论 -
ElectrumX 环境变量
ElectrumX不使用命令行参数,而是由环境变量控制其行为。 仅要求提供少数几个,如果未指定,则其余的将具有合理的默认值。 有关资源使用情况的许多默认设置都是保守的。 我鼓励您对其进行review。注意设置适当的服务以能够连接到您的服务器。为了使互联网上的客户知道您提供的服务,您必须使用REPORT_SERVICES广告您的服务。一. 必要参数这些环境变量始终是必需的:这些环境变量始终...转载 2020-04-04 21:00:31 · 570 阅读 · 0 评论 -
ElectrumX 安装运行
ElectrumX 可以在任何版本的 unix上运行。在 MacOS 和 DragonFlyBSD 上也能成功运行。如果想在 Windows 上运行,需要改动一些代码。一.必要条件Python3: ElectrumX使用asyncio。 需要Python版本> = 3.7。aiohttp: 异步HTTP的Python库。需要版本 > = 2.0。pylru: Python LR...转载 2020-04-04 19:55:05 · 1038 阅读 · 0 评论 -
以太坊源码目录结构分析
转载 2018-05-09 10:28:37 · 3095 阅读 · 0 评论 -
Geth启动流程代码解析(完整解析)
Geth启动流程代码解析(完整解析)init函数主要是做了一些初始化的工作,其中比较重要的有三个地方,app.Action=geth,app.Commands中consoleCommand。启动流程走的是consoleCommand命令语句:func init() { // Initialize the CLI app and start Geth app.Action =...原创 2018-05-12 10:58:37 · 2404 阅读 · 1 评论 -
cmd中Geth重要衔接包代码简析
Geth中的main函数中调用了一个Run方法,该方法属于包cli中的类App的一个成员方法,下面是Run函数的具体实现func (a *App) Run(arguments []string) (err error) { a.Setup() // handle the completion flag separately from the flagset since ...原创 2018-05-12 11:02:13 · 303 阅读 · 0 评论 -
从命令行开始解析以太坊新建账户过程(geth account new命令)
从命令行开始解析以太坊新建账户过程(geth account new命令)如上图是生成一个账户的过程,最后的账户表现为一个地址那么,这个过程的代码是怎么实现的呢,接下来我们从main函数命令行开始解析这个过程的代码。在cmd/geth/main.go中的init函数中,有一个accountCommand的命令行参数func init() { // Initialize the ...原创 2018-05-12 11:04:14 · 6887 阅读 · 0 评论 -
从命令行开始解析同步区块的代码
从命令行开始解析同步区块的代码一.同步简介我们都知道geth支持三种同步模式fast模式:从开始到结束,获取区块的header,获取区块的body,从创始块开始校验每一个元素,需要下载所有区块数据信息。速度最慢,但是能获取到所有的历史数据。full模式:获取区块的header,获取区块的body,在同步到当前块之前不处理任何事务。然后获得一个快照,此后,像full节点一样进行后...原创 2018-05-12 11:08:04 · 652 阅读 · 0 评论 -
从命令行开始解析生成创世块源码
创建创世块的代码解析在cmd的geth目录下的main.go中init函数先于main函数执行,做命令的初始化,其中比较重要的有三个地方,app.Action=geth,app.Commands中consoleCommand,以及App.Before指向的匿名函数func init() { // Initialize the CLI app and start Geth ...原创 2018-05-12 11:10:51 · 1633 阅读 · 0 评论 -
Geth代码目录详解
abigen:一个源代码生成器,它将Ethereum智能合约定义(代码) 转换为易于使用的、编译时类型安全的Go package。 如果合约字节码也available的话,它可以在普通的Ethereum智能合约ABI上扩展功能。 同时也能编译Solidity源文件,使开发更加精简。bootnode:该节点为Ethereum发现协议运行一个引导节点。clef:Clef可以...原创 2018-05-12 11:15:37 · 1188 阅读 · 0 评论 -
Eth和EthClient代码目录详细说明
一级目录 eth:以太坊协议ethclient :以太坊RPC API客户端 二级目录downloader:手动全链同步,主要负责区块链最开始的同步工作,当前的同步有两种模式, 一种是传统的fullmode,这种模式通过下载区块头,和区块体来构建区块链,同步的过程就和普通的区块插入的过程一样,包括区块头的验证,交易的验证,交易执行,账户状态的改变等操作,这其实是一个比较消耗CPU和磁...原创 2018-05-12 11:17:15 · 3381 阅读 · 0 评论 -
区块链轻钱包nodejs生成本地keystore
以下函数接受用户输入密码和传入keystore的存储路径,返回私钥 var fs = require("fs"); var keythereum = require("keythereum"); function CreateAccount(passwd, path){ var params = { keyBytes: 32, ivBytes: 16 }...原创 2018-06-08 07:53:35 · 2197 阅读 · 2 评论 -
以太坊HD钱包地址生成方式一
使用nodeJs生成以太坊HD钱包地址代码var bip39 = require('bip39')var hdkey = require('ethereumjs-wallet/hdkey')var util = require('ethereumjs-util')var mnemonic = bip39.generateMnemonic()var seed = bip39.mne...原创 2018-09-05 16:08:49 · 6034 阅读 · 0 评论 -
ubuntu下搭建HyperLedger fabric开发环境
一、安装docker1、docker要求Linux内核版本不低于 3.10>>检查Linux的内核版本,如果内核版本太低,升级内核>>查看内核的版本命令uname -a2、根据不同的Ubuntu版本安装docker>>查看Ubuntu版本命令lsb_release -a3、对于16.04的Ubuntu版本安装>>sudo apt-get install docker-e原创 2016-12-21 08:14:52 · 1902 阅读 · 0 评论 -
Hyperledger fabric中的几个重要的角色
Application Backend存在的目的: 后端应用程序服务支持应用程序关联到移动设备或者浏览器关键角色: 1)通过成员服务管理末端使用者和注册者 2)启动交易请求,发送请求到末端Owned by Solution provider, Network ProprietorNVP节点存在的目的: 构建交易并且将它们原创 2016-12-21 08:29:06 · 4710 阅读 · 0 评论 -
HyperLedger Fabric的Java Chaincode配置
一、启动开发java链上代码的过程1.确保你有grandle工具2.从 http://gradle.org/gradle-download/下载二进制的分布包3.解包,移动到你想要的位置,添加grandle的bin目录到系统的Path路径4.确保grandle -v命令能够执行,显示的版本是2.12版本或者更高5.确保grandle daemon能够快速创建6.确保已经安转原创 2016-12-21 08:36:26 · 7871 阅读 · 2 评论 -
Hyperledger fabric配置node.js
一、配置Swagger-UI1.你可以使用本地的node.js服务来运行rest-api,确保你本机已经安转node.js,如果没有安装,请安转一个2.命令行下安转node.js------npm install http-server -g3.在你本机上启动http-server运行rest-api------cd /opt/gopath/src/github.com/hyp原创 2016-12-21 09:35:08 · 1265 阅读 · 0 评论 -
JIRA项目管理
项目管理的四个核心要素 Strategy--People--Process--ToolsJIRA的特点 1.没有立场,非IT项目同样适用 2.因你而变 3.JIRA擅长的领域:项目执行管理,敏捷式开发管理,体系流程管理,产品bug跟踪,提案跟踪,需求管理,客户服务等领域JIRA的缺陷 1.JIRA在用户管理中,管理员创建完分组名称之后,无原创 2016-12-21 09:40:21 · 2463 阅读 · 0 评论 -
Hyperledger Fabric的PBFT源码分析(一)
一、PBFT的原理概述1.算法公式:replicaCount int 变量定义在pbftCore结构体中N (N在代码中对应replicaCount整型变量)是所有replicas的集合,每一个replica用一个整数来表示,如{ 0, 1, 2, 3,...N - 1 }N-1 = 3f -----> f = N- 1/3f 是最大可容忍的出错节点,也就原创 2016-12-21 16:51:44 · 10348 阅读 · 5 评论 -
Hyperledger Sawtooth Lake的PoET简介
警告这个工程包含一个运行在受信任的执行环境(例如:Intel Software Guard Extensions (SGX))的共识算法PoET(时间消失证明)。它发布了包含运行在SGX外部和模仿PoET算法行为的软件。在这种模式下他并不提供安全性。这个工程打算用于实验运用,我们反对在安全敏感的程序中使用这个工程Sawtooth Lake简介这个工程称为"锯齿湖",对于创建,部署和运行原创 2016-12-22 11:18:46 · 4551 阅读 · 0 评论 -
peer启动过程源码分析
由图片可以看出peer启动节点后先初始化一下日志然后进入Server函数//==============================================================================//peer node start 之后做日志初始化之后就进入到server函数//==================================原创 2016-12-23 16:05:34 · 1178 阅读 · 1 评论 -
IBM Bluemix使用流程
一、Bluemix链接地址https://console.ng.bluemix.net/catalog/services/blockchain二、具体流程1.注册Bluemix并登陆账号注册了之后去邮箱验证了就可以登陆啦2.在目录中找到BlockChain服务3.输入服务名称4.点击创建,启动仪表板5.4VP+1CA区块链网路原创 2016-12-26 10:29:49 · 2051 阅读 · 0 评论 -
Hyperledger Fabric继peer启动之后的源码解析一
对图中peer节点启动之后的peer address 172.17.0.3:7051灰色部分的的代码提取分析图中的CacheConfiguration()这个函数到底做了什么?请看下面// CacheConfiguration计算和缓存经常使用的常量且计算常量做为包变量,按照惯例前面的全局变量// 已经被嵌入在这里为了保留原始的抽象状态func CacheConfigurati原创 2016-12-30 13:37:40 · 2268 阅读 · 0 评论 -
Hyperledger Fabric继peer启动之后的源码解析二
如图所示,我们要分析的是registering BLOCK,registering CHAINCODE,registering REJECTION和registering REGISTER的整个过程下图是代码流程图funccreateEventHubServer()(net.Listener,*grpc.Server,error){ v原创 2016-12-30 14:13:16 · 1155 阅读 · 0 评论 -
Hyperledger Fabric继peer启动之后的源码解析三
我们都知道,Hyperledger用的数据库是rocksDB,如果你不做修改的话,数据会存储在/var/hyperledger/production/db目录下。现在我们来分析一下图中灰色部分的相关代码。代码结构图如下// 启动数据库,初始化openchainDB实例并打开数据库.注意该方法不能保证正确行为的并发调用func Start() { opencha原创 2016-12-30 17:19:34 · 2238 阅读 · 0 评论 -
Ubuntu下搭建Hyperledger Fabric四个共识节点环境
一、安装docker1、docker要求Linux内核版本不低于3.10>>检查Linux的内核版本,如果内核版本太低,升级内核>>查看内核的版本命令uname-a2、根据不同的Ubuntu版本安装docker>>查看Ubuntu版本命令lsb_release-a3、对于16.04的Ubuntu版本安装>>sudo apt-get installdocker-eng原创 2017-01-04 12:11:22 · 5459 阅读 · 0 评论 -
Hyperledger fabric的链码接口整理
1.Chaincode接口必须被所有的链上代码实现,fabric运行交易通过调用这些指定的函数 type Chaincode interface{ // 在容器建立连接之后再部署交易期间调用Init函数,准许链上代码初始化内部数据 Init(stub ChaincodeStubInterface, function string, args []string) (原创 2017-01-13 14:54:30 · 5763 阅读 · 1 评论 -
gRPC简介
gRPC-GogRPC是Go实现的:一个高性能,开源,将移动和HTTP/2放在首位通用的RPC框架, 有关详细信息,请参阅gRPC快速入门指南。安装要安装此软件包,您需要安装Go并在计算机上设置您的Go工作区。 安装库的最简单的方法是运行:$ go get google.golang.org/grpc先决条件需要Go 1.5或更高版本。关于所用版本的使用说明翻译 2017-01-13 16:19:00 · 2259 阅读 · 0 评论 -
Hyperledger Fabric创世纪块源码解析
1.serve函数中创世纪块开始,调用MakeGenesis函数makeGenesisError := genesis.MakeGenesis() if makeGenesisError != nil { return makeGenesisError }2.MakeGenesis创建创世纪块并且添加到区块链上func MakeGenesis() error {原创 2017-01-17 13:20:56 · 5465 阅读 · 0 评论 -
Hyperledger Fabric处理Peer与Peer之间通信的源码解析
1.网络初始化的过程中执行以下内容,在创建节点Engine过程中该节点作为客户端的身份连接到其他PeerpeerServer, err = peer.NewPeerWithEngine(secHelperFunc, helper.GetEngine)2.创建一个使用提供的处理程序工厂函数在新的聊天服务调用上创建新的处理程序的Peerfunc NewPeerWithEngine(secHelperF原创 2017-01-17 18:00:56 · 6178 阅读 · 1 评论