区块链采用的记账方法为: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 (Java和Python中也有官方驱动程序)。首先,让我们下载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))

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

  更多区块链信息:www.qukuaiwang.com.cn/news

文章内容系本站作者个人观点,不代表本站对其观点赞同或支持,文章的版权归该作者所有。如需转载,请注明文章来源。本文地址:http://www.cis.net.cn/kejikuaixun/44052.html
留言与评论(共有 条评论)
验证码:

最新文章

BigchainDB一个关于区块链类固醇数据库

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

减半后比特币矿业将何去何从?

科技快讯
5月上旬,比特币网络将迎来新一轮区块挖矿奖励减半。LongHash对全球最大的两个比特币矿池—F2Pool(鱼池)以及Poolin(币印)—的负责人进行了专访,讨论比特币挖矿领域在减半后可能会如何发展。区块奖励减半大约每四年发生一次,矿工获得的奖励会减少5

Spl.yt利用区块链技术消除电子商务生态系统的中间商

科技快讯
随着互联网的不断成熟和发展,数字购买已经成为零售商业的新常态。近年来,移动购物活动大幅度增加,客户越来越多地转向他们的移动设备以满足他们的购物需求。亚马逊和乐天是这个肥沃土地的主要行业参与者之一,全球有近17亿人在线购买商品。根据数据收集网站Statistica的数据,2017年全球

研究论文发现闪电网络存在缺陷

科技快讯
11月21日,来自匈牙利和计算机科学与控制研究所的研究人员发布了对闪电网络的严格检查,该协议旨在修正BTC的可扩展性问题。研究人员的模拟结果表明,闪电网络“对于目前将网络连接在一起的大多数大型路由节点而言,在经济上是不合理的”。当前的闪电网络路由在经济上不可行许多BTC支持者长期以来一直认为,闪电网络(LN)将是解决比特币区

诺奖得主:脸书若主导天秤币,权势或大过美总统

科技快讯
澎湃新闻记者蒋梦莹数字货币和区块链技术是今年金融科技领域的两大热点议题。11月22日,澎湃新闻在成方金融科技论坛期间就此采访了诺贝尔经济学奖得主克里斯托弗·皮萨里德斯(SirChristopherPissarides)。2018年,皮萨里德斯被以区块链为研究重点的斯坦福密码实验室(CrypticL

MAI (make AI) 创智公链:区块链智能生态践行者

科技快讯
目前,在绝大部分公链上运作的智能合约和共识机制是与现有的公平、效率和智能合约的合法性特质相悖。因而也产生了诸多问题,如转账效率低下、代理人机制(DPOS)的不公平、刺杀美国总统智能合约、博彩智能合约、编写智能合约困难等。而人工智能区块链以智能合约的合规性和完整性以及安全性为量化评级去决定谁拥有记账权我们称之为PA

金融领域采用区块链面临的巨大挑战

科技快讯
银行部门服务的状况以时间滞后和交易成本高为特点。由于这些原因,区块链由于具有降低交易成本和提高跨境交易效率的能力而被称为一种革命性的技术。但大银行现在开始质疑区块链解决这些问题的能力,以及该技术是否已经成熟到足以保证大规模应用的程度。俄罗斯中央银行、加拿

俄罗斯版圣诞老人Ded Moroz将发行数字货币

科技快讯
在这个即将到来的圣诞季,俄罗斯总统普京可能会遇到一点点麻烦,因为俄罗斯版圣诞老人DedMoroz宣布将发行自己的数字货币。目前,俄罗斯政府对加密数字货币的态度并不是非常明朗,如果这位俄罗斯圣诞老人发行自己的数字货币,或许会和某些监管政策产生冲突。事实上,俄罗斯圣诞老人DedMoroz居住在大乌斯秋格的主体公园里,目前正在俄罗斯各