当前位置:首页 > 物联网 > 区块链
[导读] 区块链生态系统中的许多人可能会批评,甚至讨厌BigchainDB声称“它不是一个真正的区块链”, 他们可能是对的,但Hyperledger Fabric也不是。在我看来,BigchainDB是一

区块链生态系统中的许多人可能会批评,甚至讨厌BigchainDB声称“它不是一个真正的区块链”, 他们可能是对的,但Hyperledger Fabric也不是。在我看来,BigchainDB是一项值得了解的技术,特别是如果您打算在企业环境中部署分散的或分布式的系统。

BigchainDB是一个开源的分布式存储系统,它的目标是将“传统”NoSQL数据库的主要优点与区块链技术的优点结合起来(有点像AWS最近发布的QLDB - Quantum Ledger数据库)。我在BignchianDB中看到的一个主要好处是,它能够使用可生产的技术部署一个类似区块链的分散系统。让我解释一下,在企业环境中部署区块链系统的主要关注点之一是当前技术的不成熟。但是等一下,我们已经在当前系统中部署了NoSQL数据库,对吗?BigchainDB基于一个可生产的数据库,这使得它在生产环境中部署非常有吸引力,而无需等待区块链平台的其他平台赶上来并被企业大量采用。

BigchainDB分享了区块链技术和分布式数据库的主要优点。

BigchainDB是由企业可用的数据库节点(如MongoDB实例)联合构建的,这些节点以同步的方式存储关于资产的不可更改信息。通过执行Tendermint的BFT共识算法,将网络中存储的数据在所有节点之间进行传播和同步,保证了网络的完整性。总之,BigchainDB是一个MongoDB数据库,它使用Tendermint来获得它的区块链特性。

根据实体对系统的访问权限,BigchainDB网络可以是公共的、私有的。在公共BigchainDB中,任何参与者都应该能够访问网络或部署自己的MongoDB+Tendermint节点,并将其连接到数据库上;获得许可的BigchainDB可以由财团或治理实体管理,其中财团的每个成员都管理自己在网络中的节点,没有人可以在未经许可的情况下加入(类似于其他获得许可的区块链技术所发生的情况)。

BigchainDB中的基本信息结构是资产。资产在MobgoDB中“物理上”表示为JSON文档。这些资产属于系统中的用户,他是唯一有权对其进行更改的人。为了创建、传输或修改资产,必须将事务发送到BigchainDB网络。这将触发Tendermint的共识算法,该算法负责处理事务、验证事务、同步所有节点,并在网络的每个MongoDB节点上存储对资产的相应更改。

BigchainDB的交易模型与比特币的交易模型类似,在某种意义上,资产交易接收资产输入,然后将资产输入转换为资产输出,在未来可能用作新交易的输入。资产输出只能作为事务的输入使用一次。BigchainDB中有两种类型的事务:

· 创建事务在系统中生成一个新资产(作为MongoDB中的JSON文档),其中包含两种类型的信息:1资产信息,它是不可变的,一旦创建资产就不能修改;2元数据,它们可以通过后续的传输事务进行修改。

· 转移事务允许转移资产所有权,或修改元数据。唯一有权在资产上执行此交易的是其所有者。这些事务使用资产未使用的输出作为输入,生成一个新的输出,并进行相应的修改(更改其所有权或元数据)。如上所述,资产输出不能两次用作传输事务的输入。

BigchainDB资产可以代表任何东西。从自行车、汽车、政府债券、代币、虚拟财产或不可替代资产。

在简要概述之后,您可能想知道,我如何开始使用BigchainDB?你想知道它是否值得我关注,或者它只是一个新的无用的项目,在区块链生态系统中没有价值。最简单的方法是访问BigchainDB的官方网站,并尝试入门。这将直接通过BigchainDB的testnet发布一条消息。

对于更有经验和更有冒险精神的人(那些真正想了解这项技术的人),我建议他们在本地部署自己的BigchainDB网络。如果您已经安装了Docker和Docker Compose,那么可以通过克隆BigchainDB的github并执行themake run命令来轻松地完成这项工作。(如果您喜欢在后台运行它,请尝试make start)。

git clone https://github.com/bigchaindb/bigchaindb.git

cd bigchaindb

make run

我们已经准备好了我们的BigchainDB,我们如何创建我们的第一个资产?我将向您展示如何使用Nodejs (JavaPython中也有官方驱动程序)。首先,让我们下载JS-driver npm安装bigchaindb-driver。

一旦我们的基础设施和JS驱动程序准备好了,就是时候在系统中创建一个新的标识,并连接到相应的BigchainDB端点:

// Require JS driver

const driver = require(‘bigchaindb-driver’)

// Create an identity key pair

const myIdenTIty = new driver.Ed25519Keypair()

//Connect to the BigchainDB test network

const conn = new driver.ConnecTIon(‘https://test.bigchaindb.com/api/v1/’)

//Connect or our local infrastructure

const conn = new driver.ConnecTIon(‘http://localhost:9984/api/v1/’)

我们在系统中的身份是通过一个非对称密钥对表示的。作为资产所有者,我们将使用我们的私钥签署所有资产交易。为了创建一个新的资产,我们需要构建一个新的事务,用我们的私钥签名,并将其发送到网络,以便Tendermint可以为我们完成剩余的工作,并创建资产:

// Create a new CREATE transacTIon (new output)

const tx = driver.Transaction.makeCreateTransaction(

{ name: ‘My Asset’, immutable_attr1: “bla bla” },

{ metadata1: “here goes”, metadata2: “my metadata attributes”},

[ driver.Transaction.makeOutput(

driver.Transaction.makeEd25519Condition(myIdentity.publicKey))],

alice.publicKey)

//Sign the transaction

const txSigned = driver.Transaction.signTransaction(tx, myIdentity.privateKey)

//Send it to the network

conn.postTransactionCommit(txSigned)

一旦事务被验证,并且投标轮已经结束,我们应该在网络中看到新的资产。如果我们使用个人的BigchainDB网络,我们将看到在MongoDB节点中如何神奇地出现一个新资产。此外,如果我们的网络中有多个BigchainDB实例(即MongoDB联合中的多个节点),我们应该看到如何在网络的每个节点中同时创建和存储新资产。

另一方面,如果我们使用BigchainDB的测试网络,我们可以使用驱动程序查询基础设施,我们的资产是否已经成功创建如下:

//Search asset

conn.searchAssets(‘My Asset’).then(assets =》 console.log(‘Found assets with name My asset:’, assets))

//Search metadata

conn.searchMetadata(‘here goes’).then(metadata =》 console.log(‘Found asset metadata with metadata1 here goes:’, metadata))

最后,您将看到资产创建的所有代码(只是为了复制粘贴目的)。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭