Bytom

Bystack的高TPS共识算法

不问归期 提交于 2019-12-07 08:09:12
共识算法是分布式系统保证节点数据状态一致性的方法,在区块链的共识算法分POW(工作量证明)和POS(权益证明)两大类。第一类POW模式是在公链项目中运用的最广泛应用的共识算法,比特币长达10年的运行已充分证明POW的安全性与稳定性。POW的特性是将去中心化与安全性发挥到了极致,但却牺牲了性能。 如比特币的峰值TPS为3.87, 平均每笔交易被打包入块需要10分钟;比原链的峰值TPS为36.32,平均每笔交易被打包入块需要2.5分钟。第二类的POS模式是由通过算法来选择出块共识节点,多用于联盟链和一些追求高TPS的新公链项目中。POS的特性是通过支持更小的出块间隔来达到最优的性能,但却牺牲了部分的安全性与去中心化。 Bystack是一个基于主侧链架构的区块链BaaS平台,将区块链分为Layer1和Layer2两层。 Layer1既比原链的主链,由POW算法保证最高级别的资产安全与去中心化。Layer1的TPS问题则通过跨链技术将资产转移到Layer2上来解决. 侧链(既Layer2)使用创新的BBFT共识算法使单条侧链的TPS达到20000以上,多条侧链配合可使TPS线性增长。 在未达到节点带宽与性能瓶颈的前提下,TPS = 区块交易数 *每秒确认的区块数。由于区块可以容纳的最大交易数可以通过简单的修改代码参数实现,所以提高每秒确认的区块数就成了提高TPS的关键方式

比原链(Bytom)节点接入文档

不想你离开。 提交于 2019-12-06 22:59:40
系统要求 我们建议选择主要的几家云主机平台的VPS服务,运行比原链节点对算力没有要求,但是请配置尽可能大的磁盘空间以适应区块链数据未来增长的需要。 节点服务器最小配置: 操作系统: Windows/Linux/Docker CPU: 2核 内存: 2G 硬盘: 40G 网络: 独立IP,2MB带宽 防火墙: 开启46657端口 Ubuntu接入文档 1 节点服务器部署 1.1 安装系统依赖库 sudo apt-get update sudo apt-get install build-essential git unzip wget vim 1.2 下载并解压节点 wget https://mirrors.tuna.tsinghua.edu.cn/osdn/bytom/70718/bytom-1.0.8-linux.zip unzip bytom-1.0.8-linux.zip chmod +777 ./bytomd 2 启动并运行节点 ./bytomd init --chain_id mainnet ./bytomd node --simd.enable Windows接入文档 1 安装系统依赖库 1.1 安装MinGW 官方链接: https://nuwen.net/mingw.html 下载链接: https://nuwen.net/files/mingw/mingw-16

Bystack跨链技术源码解读

对着背影说爱祢 提交于 2019-12-06 20:52:54
Bystack是由比原链团队提出的一主多侧链架构的BaaS平台。其将区块链应用分为三层架构:底层账本层,侧链扩展层,业务适配层。底层账本层为Layer1,即为目前比较成熟的采用POW共识的Bytom公链。侧链扩展层为Layer2,为多侧链层,vapor侧链即处于Layer2。 (图片来自Bystack白皮书) Vapor侧链采用DPOS和BBFT共识,TPS可以达到数万。此处就分析一下连接Bytom主链和Vapor侧链的跨链模型。 主侧链协同工作模型 1、技术细节 POW当前因为能源浪费而饱受诟病,而且POW本身在提高TPS的过程中遇到诸多问题,理论上可以把块变大,可以往块里面塞更多的交易。TPS是每秒出块数*块里面的交易数。但是也存在问题:小节点吃不消存储这么大的容量的内容,会慢慢变成中心化的模式,因为只有大财团和大机构才有财力去组建机房设备,成为能出块的节点。同时传输也存在问题,网络带宽是有限的,块的大小与网络传输的边际是有关的,不可能无限的去增加块的大小,网络边际上的人拿不到新块的信息,也会降低去中心化的程度,这就是为什么POW不能在提高可靠性的情况下,提高TPS的原因。 而BFT虽然去中心化较弱,但其效率和吞吐量高,也不需要大量的共识计算,非常环保节能,很符合Bystack侧链高TPS的性能需求 (1)跨链模型架构 在Bystack的主侧链协同工作模型中,包括有主链

比原跨链资产交换工具shuttle

我们两清 提交于 2019-12-06 20:52:41
最近从比原链技术团队获悉,他们已经开发并测试完一款跨链原子资产交换工具(shuttle),该工具是一种新型的去中心化跨链原子资产交换工具,该工具可以实现在同一条链上不同资产交换,在不同区块链平台上也可以实现资产的交换。该技术目前处于整个区块链行业顶尖水平,可以有效保证资产交换的过程中完全的去中心化和安全,可以用于多种应用场景! 首先我们来看一下该工具是如何实现在同一条链上进行不同资产交换的,我们看如下示意图: 当不同资产在比原链上进行交换的时候,整个交易是由Tradeoff(币币交换合约)来实现的,假设A想和B交换ETH资产,A只需要发起一个Tradeoff合约,同时B对合约进行一个解锁操作就可以完成资产的交换。整个过程都是由合约发起,没有其第三方参与,可以做到完全的去中心化和安全。整个交换过程是原子性交易,可以保证交换的完整和顺利进行。 说完同一条链上的不同资产交易后,我们来看一下不同区块链平台如何借用shuttle工具来完成资产的完整交换过程。如下图: 在bytom链上有A和B的地址,A,B两个人想进行资产交换。首先A会在bytom上发起HTLC(哈希时间锁)合约,即:发送一笔BTC交易,并锁在合约当中,然后把对应的合约信息通过shuttle发送给vapor上的B,B通过合约信息来进行解锁(解锁过程中会发起一笔ETH),通过这样一个过程

技术沙龙|“智能之约,链动未来”——区块链下的创新思考(深圳)

╄→尐↘猪︶ㄣ 提交于 2019-12-06 20:51:48
到了2018年下半年,越来越多的传统开发者转入区块链开发行业,当初学者了解了智能合约、超级账本之后不禁有一个疑惑,区块链Dapp开发和传统APP开发,除了多了Token,还有什么不同?如何将所学的区块链技术真正投入到区块链开发中来?为此我们真正与成熟的比原链开发团队进行深度交流时,并共同组织了这次线下沙龙。 本系列活动作为比原开发者大赛前的预热活动,将分别在杭州、上海、合肥、北京、武汉、深圳等区块链技术人才云集的城市巡回举办,旨在布局比原链可持续的开源生态,并为开发者大赛筛选种子人才,吸引更多优秀技术人才加入区块链的行业,壮大比原链的技术储备。 预热系列活动由比原链主办,各地名校及区块链团体协办,比原链核心开发全程提供技术支撑。比原链全球开发大赛决赛将于10月中下旬盛大开幕,邀请了海内外重量级嘉宾参与评审指导,届时将会在全球初赛中筛选出的16支参赛团队中角逐6强。主办方将为最终获取奖项的各创新优秀项目,提供相应的比赛奖励及技术指导、商业孵化,总奖金高达200万BTM。 大赛报名网址: http://bytom.io/developers_zh/ 大赛亮点 •世界区块链盛会,激情碰撞共绘蓝图 •超强嘉宾阵容,与大咖零距离 •高端红毯宴会,行业颁奖盛典 •精选项目采访,大会千万级曝光 •国内外大面积的媒体覆盖 •优质创新项目获得比原链战略投资 •技术指导与商业孵化 1 活动详情 主题:

比原链BBFT如何让共识更快——兼论BBFT与FBFT/HotStuff的比较

五迷三道 提交于 2019-12-06 15:35:01
前言 近日比原链(BYTOM)技术团队发布了Bystack区块链BaaS平台,其中包括侧链的共识算法BBFT(Bystack Byzantine Fault Tolerance)。笔者将在这篇文章中阐述比原链BBFT尝试解决的问题以及分析BBFT与其他各家共识协议的主要差异。BBFT是一个PBFT的变形,它的原理与PBFT一脉相承。若想深刻理解BBFT的巧思,则必须进入PBFT的脉络推敲。早在区块链藉由比特币的大红大紫之前,PBFT就作为共识协议存在于世界上了。由Castro和Liskov于1999年发明,它是一个具有20年历史的经典设计,它的发明是为了解决分布式系统中的一个经典问题:拜占庭将军问题。直到今日,PBFT仍蕴含许多值得反复推敲的巧思,不断启发后世发明出更好的协定。 PBFT基本的运作流程 PBFT是一个具有二轮投票的三阶段协议,每个视域(View)都会有一个特定的节点作为领导节点(Primary/Leader),负责通知所有节点进入投票流程。各节点则会经历Pre-prepare/Prepare/Commit这三个阶段,并依据接收的讯息决定是否投票/进入下一阶段,每个节点投完票后将讯息发给所有其他的节点。若个节点在两阶段投票之后取得多数共识,则各节点可以更新本机的状态,结束这一回合。 视域变换(View-change)仅当多数节点发起时执行

Bytomd 助记词恢复密钥体验指南

陌路散爱 提交于 2019-12-06 13:58:39
比原项目仓库: Github地址: https://github.com/Bytom/bytom Gitee地址: https://gitee.com/BytomBlockchain/bytom 背景知识 Bytom 使用的 密钥类型为基于 ed25519 的 chainkd.XPub 代码见 bytom/crypto/ed25519/chainkd 文档见 https://chain.com/docs/1.2/protocol/specifications/chainkd ` 预备 代码修改 首先适当修改代码,添加一些打印输出,使得我们更好的进行验证。 如果只是想看 xpub ,而不关心 xprv(对于验证导入导出助记词功能来说已经够了)的话可以跳过这一步,不必修改源码 。 在 bytom/blockchain/pseudohsm/pseudohsm.go 中的 func (h *HSM) createKeyFromMnemonic(alias string, auth string, mnemonic string) (*XPub, error) 添加输出打印 root XPub 对应的 私钥 和 公钥 func (h *HSM) createKeyFromMnemonic(alias string, auth string, mnemonic string) (*XPub,

使用shuttle实现bytom上跨链资产交换

不问归期 提交于 2019-12-06 05:51:41
最近基于比原链上的不同资产交换工具shuttle非常抢眼,因为该工具不仅可以实现同一条链上的不同资产进行交换,还可以实现不同区块链平台上的多种资产进行交换。该工具奠定了资产在交易的过程中完全去中心化,无第三方介入,保证了资产在交换过程中的安全性和原子性。那我们来看一下这个工具到底如何使用! 该工具主要的功能是实现不同资产在比原链上交换,首先是在比原链上不同资产进行交换。这个主要使用币币交换合约来进行资产的交换。如果是在比原的主侧链上进行跨链资产交换,则使用的是哈希时间锁合约来完成两条不同链上的资产交换。 下面我们来看一下操作的具体步骤: 第一步: 首先搭建节点环境 1.1 golang的版本高于1.12,同时设置好的$GOPATH环境目录 1.2 启动并配置好bytom节点,参考: bytom readme.md 1.3 源码构建:Shuttle仍处于测试阶段,因此存储库代码将经常更改。您可以直接从源代码构建工具。参考下面的命令: $ git clone https://github.com/Bytom/shuttle.git $GOPATH/src/github.com/shuttle $ cd $GOPATH/src/github.com/shuttle $ make install Shuttle help 相关命令如下: $ swap -h swap is a

区块链课堂|读懂公链学开发:深入浅出剖析比原链技术特性(线上免费)

情到浓时终转凉″ 提交于 2019-12-06 05:50:57
9月2日,HiBlock区块链社区和比原链到深圳做了一场线下沙龙活动,活动结束后有一位参会者跑过来问我,怎样才能快速掌握区块链开发? 我想起不久前有一位社区的老师说过这么一句话:从公链开发开始,在没有造轮子的能力前,就先用开源框架。 区块链公链为开发者提供了底层技术架构和相应的开发工具,比如以太坊的智能合约,基于以太坊可以很轻松的写出Token的代码或者其他的很多应用,基于公链学习区块链开发,是初级开发者快速掌握开发能力的途径。 本次区块链课堂我们邀请 比原链技术运营经理钟立飞老师为社区用户带来一次线上分享课程,通过深入浅出剖析比原链的技术特性,讲解设计理念、架构、butxo、智能合约等相关特性,从公链入手,学习区块链开发。 1 课程大纲及分享嘉宾 话题:深入浅出的剖析比原链技术特性 话题大纲: bytom 是什么 bytom 设计理念 bytom 架构 butxo 智能合约 分享嘉宾:钟立飞 比原链技术运营经理,Vert.x中国开源社区发起者,巴比特专栏作家 2 如何报名 **课程时间:**2018年9月8日(周六)20:00-21:30 一小时分享,半小时讨论答疑 本课程为 线上课程,免费 报名方式:扫描下图中二维码,添加小助手,验证输入“006”,即可报名并加入课程群。 来源: oschina 链接: https://my.oschina.net/u/3782027/blog

如何在基于Bytom开发过程中使用Bigchaindb

心不动则不痛 提交于 2019-12-05 19:41:24
上期我们讲了在基于比原开发过程中链外存储可以用分布式存储IPFS,这期我们还给大家介绍另外一种链外存储的解决方案。bigchaindb: https://www.bigchaindb.com ,下面我们讲一下集成过程。 step1:搭建Bytom节点 比原相关资料: https://github.com/Bytom-Community/Bytom_Docs 搭建bytom节点有很多方式,然后开启RPC调用模式。这里推荐用docker搭建比原节点: docker搭建比原节点 ,同时开启RPC访问模式(即终端交互模式)。 我这里都是在本地操作,所以对应的端口是:9888。启动好以后我们在postman里请求测试一下,如下图: 说明我们已经搭建好了比原节点,并且可以进行远程调用。下面我们用程序去调用比原节点: step2:搭建bigchaindb节点集群 BigchainDB是集区块链去中介化等特性和分布式数据库吞吐量高等特性的一款可扩展的区块链数据库。代码托管在github上: https://github.com/bigchaindb/bigchaindb BigchainDB官网是: https://www.bigchaindb.com 官网有很多资料,是学习BigchinDB的不二去处! 要想深入研究BigchianDB,可以阅读BigchainDB白皮书《BigchainDB