自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 基于Ubuntu Docker环境下进行以太坊实践

本文是指导以太坊技术爱好者,通过基于Ubuntu环境下通过docker来进行以太坊的客户端安装和调试的指导教程。 目录1、实践环境要求2、Ubuntu版本说明3、Docker安装4、Ethereum安装与实践5、ZSH小工具推荐 1 实践环境要求1.1 概述https://docs.docker.com/engine/installation/linux...

2018-08-02 16:03:43 895

原创 HPB智能合约最佳实践

1 、概述1.1 前言本文档主要通过实例指导如何在HPB主网上发布智能合约教程。文档阅读人员:社区开发人员、测试人员、运维人员。1.2 学习准备1.2.1 Solidity语言Solidity是一种开源的智能合约高级语言,可以运行支持开源的Ethereum虚拟机(EVM)之上。 具体的语言介绍和学习入门,在以下的网址中有详细介绍: https://solidity.read...

2019-10-11 11:12:52 557

原创 HPB主网接入最佳实践之Java版

1、开始准备1.1 学习门槛 熟悉Java的基本语法和使用 熟悉Java的IDE工具基本使用(Eclipse,IDEA) 熟悉Git版本管理的基本语法和使用 熟悉SpingBoot开发(本Demo提供的是基于Springboot的源码) 熟悉区块链的基本原理 HPB主网如何介入请前往https://www.hpb.io/client了解...

2019-09-27 10:44:07 348

原创 HPB钱包与中间件接口

为方便开发者更容易的开发或者使用HPB钱包,HPB的钱包开发者们准备了一份常用的API接口介绍。一、HPB版本控制器1、查询版本号描述:应用钱包查询版本号。请求说明:请求方式: POST 请求URL:http://47.75.96.163:9888/HpbComponent/cms/version调用示例:[ "1","0"]请求参数说明:参数名...

2019-09-20 11:03:04 576

原创 HPB:HPB开发节点搭建指南

导读: 社区开发者在开发HPB DAPP的时候首先面临的就是如何接入HPB主网的问题,本文介绍了开发者节点的搭建过程,本文基于Ubuntu 16.04搭建,开发节点相当于轻节点,可发起交易,进行区块同步,但不能进入候选节点、高性能节点的选举,也不能出块,可作为DAPP应用的接入节点。进行开发节点搭建时您有以下两种方式选择:(1) 方式一:通过源代码进行节点搭建,选择此种搭建方式需要具备一定...

2019-08-22 11:55:19 521

原创 区块链技术现状、理念和特色

区块链的技术现状其实主要是随着其交易量和应用的增长,会出现网络拥堵的问题,而现有的区块链底层仍停留在初级发展阶段,存在很多技术瓶颈,dapp落地也会很困难,TPS成为瓶颈问题。 `1. 现存的技术瓶颈1.1 TPS性能首先就是TPS性能问题。TPS(Transactions Per Second)是每秒交易量的意思,是主链的核心性能。TPS也可以成为每秒吞吐量,处理的吞吐量越高...

2019-08-14 11:36:05 1074

原创 HPB普及:BOE完整流程、高性能选举

HPB普及:BOE完整流程、高性能选举BOE完整流程在共识选举算法方面,当前主流区块链技术共识机制,主要分为两大类: 一类是以比特币、以太坊为代表的去中心化机制;治理者与有强大算力的节点对等,存在对算力资源消耗严重的问题。 一类是非POW机制,这类机制大部分呈现为持有者中心化。治理者与实际财富拥有者对等。公平性需要仔细考量设计。 HPB的共识机制是根据主网分层网...

2019-08-05 11:32:09 510

原创 HPB芯链 -- 共识算法选举机制描述

1 简介为了适应BOE技术的要求,同时尽可能的提升安全TPS, HPB共识算法采用了高效的双层选举机制,即外层选举和内层选举。外层选举:由具有BOE板卡的所有用户中选取出。选取周期为3个月。选取方式为通过HPB钱包进行投票选举。内层选举:采用节点贡献值评价指标,从众多候选节点中选出高贡献值节点成员。基于Hash队列记名投票机制,在每次区块生成时,计算高贡献值节点生成区块的优...

2019-07-30 11:49:48 277

原创 HPB 是什么

HPB 是什么1 创新之处HPB芯链采用全新的区块链软硬件体系架构,结合高性能 区块链开源硬件(BOE)以及软件,实现了区块链分布式 应用的性能扩展,在保证安全性和去中心化等特性的情况 下实现了高TPS和低延迟。HPB芯链的共识算法采用双层 选举机制验证交易,在选举制和邀请制之间达成平衡。2 开源公链HPB芯链作为开源公链,公众可自由调用其智能合约,贡 献数据,以及使用该公链平台。...

2019-07-26 14:59:48 2725

原创 HPB-Wallet:HPB钱包助记词生成和备份

HPB-Wallet:HPB钱包助记词生成和备份助 记 词 生 成1 BIP32, BIP39, BIP44 BIP32:定义 Hierarchical Deterministic wallet (简称 “HD Wallet”),是一个系统可以从单一个 seed 产生一树状结构储存多组 keypairs(私钥和公钥)。好处是可以方便的备份、转移到其他相容装置(因为都只需要 see...

2019-07-25 17:51:15 656

原创 HPB-Wallet:HPB钱包Xcode集成

HPB-Wallet:HPB钱包Xcode集成HPB-Wallet:HPB钱包Xcode集成1 集成说明由于HPB主网账户底层算法和以太坊相同,因此我们可以采用以太坊的底层算法对接HPB。熟悉以太坊的朋友都知道,以太坊提供了一个Web3.js API 中文文档的库,通过调用js的代码去实现区块链DApp的开发。但是对于iOS的小伙伴来说,直接调用js无疑是很困难的,并且从实...

2019-07-23 16:10:34 214

原创 RLPx加密握手协议研究

加密握手协议全局位置Server服务器作为上层使用的接口,直接调用Start启动。Start完成启动监听端口、连接以及建立通信的任务。在运行中,Star通过创建多个goroutine,并将goroutine的结果通过channel形式汇聚给run进行集中处理。当用户间建立节点以后,通过Msg格式进行通信。其中newTransport 是和节点建立连接(tcp或者udp)后进行协商密钥、协议...

2018-09-06 17:48:22 419

原创 P2P网络数据交互

1. 发送交易数据SendTransactions事件触发交易广播txBroadcastLoop本地发送了一个交易,或者是接收到别人发来的交易信息。 txpool会产生一条消息,消息被传递到txCh通道。然后被goroutine txBroadcastLoop()处理, 发送给其他不知道这个交易的peer。ProtocolManager在Start的时候,订阅TxPreEvent并启动...

2018-08-28 17:03:08 4460

原创 P2P网络数据处理流程

P2P网络数据处理流程监听(ListenLoop)+拨号(Dial) –> 建立连接(SetupConn) –> Enc 握手(doEncHandshake) –> 协议握手(doProtoHandshake) –> 添加Peer Addpeer –> Run Peer1. Enc握手 doEncHandshake监听时接收到Enc握手:receive...

2018-08-23 14:42:58 550

原创 ETH-Pow算法分析

1. Ethash 算法1.1 EthashEthash是以太坊1.0中使用的PoW(工作量证明)算法,它是Hashimoto算法结合Dagger之后产生的一个变种。它的特点是计算的效率基本与CPU无关,却和内存大小和内存带宽正相关。因此通过共享内存的方式大规模部署的矿机芯片并不能在挖矿效率上有线性或者超线性的增长。该算法的一般流程如下:首先根据块信息计算一个种子(seed, c+...

2018-08-21 18:21:31 4298

原创 Solidity编译器和简单调试

1 安装Solidity编译器1.1 通过docker安装Solc搜索docker的Solc镜像docker search —no-trunc ethereum/solc通过docker安装Solcdocker pull docker.io/ethereum/solc:stable1.2 运行Solc容器运行如下命令docker run —rm -it —priv...

2018-08-20 15:24:24 1762

原创 Solidity概述及基本代码展示

Solidity是实施智能合约的契约导向的高级语言。它受到C ++,Python和JavaScript的影响,旨在针对以太坊虚拟机(EVM)。Solidity是静态类型的,支持继承,库和复杂的用户定义类型等功能。您将会看到,可以创建投票,众筹,盲目拍卖,多重签名钱包等等的合约。 1 Solidity智能合约例子我们从一个基础的solidity例子开始。开始的时候,你可能看不懂每...

2018-08-16 16:12:23 407

原创 Java Web3J概述

1 Java Web3J概述Web3j是一个轻量级,Reactive(响应式),类型安全的Java库,用于与Ethereum网络上的客户端(节点)集成,这允许您使用Ethereum块链,而不需要为平台编写自己的集成代码的额外开销。1.1 Web3J的提供的功能通过HTTP和IPC 完成Ethereum的JSON-RPC客户端API的实现1.Ethereum钱包支持2.使用过滤器...

2018-08-14 14:48:29 1728 1

原创 以太坊Web3J插件功能探究

1  Java Web3J 概述Web3j是一个轻量级,Reactive(响应式),类型安全的Java库,用于与Ethereum网络上的客户端(节点)集成,这允许您使用Ethereum块链,而不需要为平台编写自己的集成代码的额外开销。1.1 Web3J 提供的功能 通过HTTP和IPC 完成Ethereum的JSON-RPC客户端API的实现 Ethereum钱包支持...

2018-08-12 22:13:08 1395

原创 Solidity概述及基本代码展示

Solidity是实施智能合约的契约导向的高级语言。它受到C ++,Python和JavaScript的影响,旨在针对以太坊虚拟机(EVM)。Solidity是静态类型的,支持继承,库和复杂的用户定义类型等功能。您将会看到,可以创建投票,众筹,盲目拍卖,多重签名钱包等等的合约。 1 Solidity智能合约例子我们从一个基础的solidity例子开始。开始的时候,你可能看不懂每...

2018-08-09 16:27:01 558

原创 Solidity开发神器Remix

1 功能这里我们使用在线编译器,打开网址https://ethereum.github.io/browser-solidity1.1 文件夹管理最左边是文件夹管理,里面列出了当前工作区里的文件,remix可以支持从本地文件夹读取文件。1.2 工作区正中间是工作区,工作区上半部是代码编辑区,在这里可以写solidity合约。下半部是日志区,在执行智能合约时,会显示tran...

2018-08-07 14:30:46 2585 4

原创 Web3j实现智能合约

1 获取凭证Credentials是我们钱包的凭证,在我们交易和创建智能合约的时候都需要用到。1.1 创建新凭证file=WalletUtils.generateFullNewWalletFile(pwd,dir);返回的file不是全路径,而是该文件的路径名,比如UTC—2017-10-30T12-10-45.516005546Z—5f38056f45091ee992298e53...

2018-08-04 23:33:40 1059

原创 以太坊RLP机制分析

目录1 RLP 定义2 RLP 编码规则3 RLP 编码实例4 RLP 分析 1 RLP 定义RLP,即 Recursive Length Prefix, 递归长度前缀编码,是以太坊数据序列化的主要方法, 具有较好的数据处理效率,尤其是将长度和类型统一作为前缀,实际上 RLP 是基于 ASCII 编码的一种结构化扩充,既能表示长度还能表示类型,是一种非常紧凑的结构化编码...

2018-07-31 17:19:33 703

原创 以太坊虚拟机的基本介绍

此文简要的介绍了以太坊虚拟机的基本要素,在以后的文章我们会向大家展示如何安装应用调试等基本技术。1.1 概述以太坊虚拟机(EVM)是以太网上智能合约的运行环境。这不仅仅是个沙盒,更确实的是一个完全独立的环境,也就是说代码运行在EVM里是没有网络,文件系统或是其他进程的。智能合约甚至被限制访问其他的智能合约1.2 账号​ 在以太坊中有两种账号共享地址空间:外部账号和合约账号。外部账号...

2018-07-29 11:11:34 2624

原创 以太坊网络服务分析

目录1 网络分层 2 会话层2.1 Peer 介绍2.2 Peer 管理2.2.1 Peer 动态添加删除流程  2.2.2 Peer 握手机制3 表示层:RLP 编码 4 应用层:Eth 协议 1 网络分层以太坊所有网络功能如下图所示: 所有网络功能建立在以太网的传输层之上,TCP 及 UDP 均有应用。 2 会话层会话层主要包括 Peer...

2018-07-26 17:40:25 495

原创 POA委员会选举机制

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

2018-07-24 18:43:47 418

原创 以太坊交易收发机制

目录1、交易的主要数据结构2、交易收发相关协程3、关键流程描述​   3.1 交易数据验证流程​   3.2 交易入池流程 1、交易的主要数据结构2、交易收发相关协程3、关键流程描述​ 3.1 交易数据验证流程 ​ ​ 3.2 交易入池流程   原文链接:http://wangxiaoming.com/blog/2017/...

2018-07-19 14:27:53 880

原创 P2P网络及节点发现机制

1 分布式网络介绍1.1 Kad网介绍1.2 Kad网络节点距离1.3 K桶1.4 Kad通信协议2 邻居节点2.1 NodeTable类主要成员2.2 邻居节点发现方法2.3 邻居节点网络拓扑及刷新机制。 1 分布式网络介绍以太坊底层分布式网络即P2P网络,使用了经典的Kademlia网络,简称kad。1.1 Kad网介绍Kademlia在20...

2018-07-17 15:52:55 6202

原创 ETH--Dapp及相关开发工具介绍

去中心化应用去中心化应用是可以使用户和供应商之间直接互动的服务(例如,连接某些市场上的买方和卖方,文件存储里的持有者和储存者)。以太坊去中心化应用典型地通过HTML/Javascript网络应用与用户互动,使用Javascript API与区块链通信。去中心化应用典型地在区块链上有自己的相关合约套件,用来编码商业逻辑,允许持久存储对共识要求严格的状态。记住由于以太坊网络上的运算天生冗余,执行的...

2018-07-13 18:03:17 1010

原创 以太坊Go、Java、Python、Ruby、JS客户端介绍

Go Ethereum 简介go-ethereum客户端通常被称为geth,它是个命令行界面,执行在Go上实现的完整以太坊节点。通过安装和运行geth,可以参与到以太坊前台实时网络并进行以下操作: 挖掘真的以太币 在不同地址间转移资金 创建合约,发送交易 探索区块历史 及很多其他 Go Ethereum 链接:网站: http://ethe...

2018-07-09 13:14:45 299

空空如也

空空如也

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

TA关注的人

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