当前位置:首页 > 物联网 > 区块链
[导读] 区块链生态系统中的许多人可能会批评,甚至讨厌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))

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

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

物联网设备数量呈指数级增长,其身份认证安全与区块链智能合约的可靠性成为制约行业发展的关键瓶颈。本文将从区块链物联网身份认证的底层原理出发,结合Hyperledger Fabric智能合约漏洞扫描与性能基准测试技术,系统阐...

关键字: 区块链 物联网 身份认证

在万物互联的M2M(机器对机器)通信时代,设备间的安全交互成为核心挑战。传统中心化认证体系因单点故障、数据泄露风险及高运维成本,难以满足物联网设备指数级增长的安全需求。区块链技术凭借去中心化、不可篡改和智能合约自动执行等...

关键字: 区块链 M2M

据报道,全球前三大比特币和加密货币矿机制造商比特大陆、嘉楠耘智和比特微电子为规避美国关税政策影响,都计划在美国设立制造工厂并建立供应链。

关键字: 加密货币 比特币

当前电力行业正经历着前所未有的变革。新型电力系统的建设加速推进,分布式新能源、电动汽车、储能设备等新型电力元素大规模接入,使得电力系统的供需互动更加复杂。与此同时,区块链技术凭借其去中心化、不可篡改、可追溯等特性,在金融...

关键字: 电力鸿蒙 区块链

香港2025年4月13日 /美通社/ -- 香港应用科技研究院 (应科院) 于第50届“日内瓦国际发明展”中成绩斐然,荣获16个奖项,其中包括1项评审团嘉许金奖、4项“金奖”、7项“银奖”及4项铜奖。今届获奖项目涵盖人工...

关键字: 人工智能 感测器 区块链 模型

在马来西亚获得政府间(G2G独特 认可的人工智能实验室将汇聚全球领先区块链、人工智能及机器人企业的合作 马来西亚吉隆坡2025年4月11日 /美通社/ -- 马来...

关键字: 人工智能 智能实验室 区块链 身份验证

在数字化时代,物联网(IoT)和区块链技术都备受关注,前者将无数设备连接成庞大网络,后者则以去中心化、不可篡改等特性重塑信任机制。当这两者相遇,碰撞出了创新的火花,区块链技术在物联网领域展现出巨大的应用潜力,为物联网的发...

关键字: 物联网 区块链 数字化

对于奢侈品牌,假冒伪劣产品和恶意灰色市场交易是一个长期存在的挑战。事实上,如今假冒市场被视为全球最大的非法贸易领域。经合组织(OECD)估计,2019 年其规模约为 4640 亿美元,占世界贸易总额的 2.5%,显然,对...

关键字: NFC防伪技术 半导体 区块链

区块链科普系列活动(一) 北京2024年12月24日 /美通社/ -- 在这个日新月异的科技时代,区块链与先进计算正以前所未有的速度推动着各行各业的变革。为了助力区块链及先进计算领域的创业者、从业人员把握时代脉搏,引领...

关键字: 区块链 亚马逊 数字化 AWS
关闭