当前位置: 首页 > 软件库 > Web3 > 区块链 >

Go Ethereum Meitu

以太坊的 DPoS 算法实现
授权协议 LGPL
开发语言 Java C/C++ Google Go JavaScript
所属分类 Web3、 区块链
软件类型 开源软件
地区 国产
投 递 者 宦树
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Go Ethereum 项目是美图技术团队在以太坊上实现的 DPoS 算法,是以太坊协议的 Go 语言实现,目前尚处于实验阶段。

查看官方的实现版本>>>https://www.oschina.net/p/go-ethereum

基于 Ethereum(1.7.3版本) 实现 DPoS 共识算法

以太坊当前代码里面已经包含了几种共识算法的实现:

  • PoW 在主网使用

  • FakePow 在单元测试使用

  • PoA(Proof of Authority) 在测试网络中使用

为了在代码中实现多种共识算法,以太坊抽象了一套共识算法接口,实现不同的共识算法只要实现几个接口即可。另外由于 DPoS 为了避免每次选举都从创世块开始回放历史数据,增加了几个全局状态树用来记录选举和投票的状态, 并把树对应的 root 存储到块头,其中包括:

  • EpochTrie 记录每个周期的验证人列表

  • VoteTrie 记录投票人对应验证人

  • CandidateTrie 记录候选人列表

  • DelegateTrie 记录验证人以及对应投票人的列表

  • MintCntTrie 记录验证人在周期内的出块数目

  • 一、前言 最近,需要接触区块链项目的主链开发,在EOS、BTC、ethereum、超级账本这几种区块链技术当中,相互对比后,最终还是以go-ethereum为解决方案。 以ethereum为基准去找解决方案,最终找到了2个符合自己要求的方案,分别如下:美图、gttc。本来是想用gttc的这个解决方案的,但是它是基于go-ethereum最新源码来进行二次开发的,相对不稳定,因此还是用美图的解决方案

  • 以太坊智能合约开发——Go语言、以太坊私链环境搭建 安装环境 系统环境:Ubuntu 20.04 处理器:Intel® Core™ i5-5200U CPU @ 2.20GHz 2.20 GHz 内存:12.0 GB GO语言安装过程 1.从go官网下载安装包,因为系统为Ubuntu下载指定系统文件,并解压到user/local文件夹 sudo tar -C /usr/local -zxvf go

  • 节点网络启动 1、简单测试起见,修改maxValidator为最小数 consensus/dpos/dpos.go maxValidatorSize = 3 2、构建美图以太坊docker镜像 cd $GOPATH/src/github.com/meitu/go-ethereum docker build . -t meitugeth 3、建立节点数据目录 mkdir meitu cd meitu

 相关资料
  • 以太坊(Ethereum)是一个支持智能合约的区块链平台,它与比特币最大的不同是,以太坊通过一个虚拟机(EVM)可以运行智能合约。 以太坊是Vitalik Buterin(维塔利克·布特林,人称V神)在2013年提出的概念,Vitalik最早参与了比特币社区的开发,并希望比特币把功能受限的脚本扩展成图灵完全的编程环境,但没有得到比特币开发社区的认同,于是他决定另起炉灶,打造一个新的区块链平台,目标

  • 以太坊测试链 针对Ethereum以太坊有许多专用测试网络或者叫测试链,他们由各种客户端支持。 1.Rinkeby:只支持geth客户端。 2.Kovan:只支持Parity客户端。 3.Ropsten:支持geth和Parity客户端。 对于开发,建议你使用Rinkeby或KoVan测试链。这是因为他们使用的工作量证明POA共识机制,确保交易和块能够一致并及时的创建。Ropsten测试链,虽然最

  • Frontier是以太坊(Ethereum)网络第一个发布版, 当进入此未知领域,希望你可以测试和探索它。它有很多的危险,也会存在没有被发现的陷阱,也可能会有肆虐的海盗等待攻击你,但是也蕴含着很多的机会 什么是以太坊 和其他先进系统一样,以太坊对不同的人意味着不同的东西,在阅读本节时,有些地方不会引起你的共鸣或者让你感觉没有意思。没关系,直接跳到下一章节,希望可以给你更多启发。假如你读到本章节的末

  • 君子和而不同。 以太坊项目进一步扩展了区块链网络的能力,从交易延伸为智能合约(Smart Contract)。 其官网首页为 ethereum.org。

  • 签署以太坊交易 要使脱机签名交易得到签署,需要设定一个RawTransaction类型。RawTransaction类似于前面提到的Transaction类型,但是它不需要通过具体的账号地址来请求,因为可以从签名中推断出来。 为了创建和签署原生交易,交易的顺序如下: 1.确定交易发起者帐户的下一个可用随机数nonce 2.创建RawTransaction对象 3.使用递归长度前缀编码(RLP即Re

  • 以太坊是一个全新开放的区块链平台,它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。就像比特币一样,以太坊不受任何人控制,也不归任何人所有——它是一个开放源代码项目,由全球范围内的很多人共同创建。

  • 以太坊智能合约是否有可能实现身份证明和电子邮件检查? 是否需要进行外部呼叫,或者一切都可以在区块链中实现。如何添加新身份到区块链,以便以后检查? 我搜索这个话题有一段时间没有成功。

  • 当我尝试下载事件从Block hain: 我得到了豁免: .... 组织。web3j。协议rx。JsonRpc2_0Rx。lambda$ethLogObservable$10(JsonRpc2_0Rx.java:65)在rx。看得见。订阅(Observable.java:10238)。。。还有3个 如何修复此问题并下载NewContract事件?