上期我们讲了在基于比原开发过程中链外存储可以用分布式存储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:A Scalable Blockchain Database》可以https://www.bigchaindb.com/whitepaper/处下载到。
好,开始搭一个独立的BigchianDB节点!

搭一个BigchainDB节点

搭建节点请参考:https://blog.csdn.net/q563730343/article/details/78654314?utm_source=blogxgwz8

为了方便,这里我们直接使用bigchaindb的测试网络,如果你是自己开发的话推荐自己搭建多节点。
测试网络地址:https://test.bigchaindb.com,我们用postman请求测试一下,如下图:

上图是我们请求bigchaindb测试网络的,我们可以看到测试网路已经正常返回。现在我们就可以去找对应的开发插件进行开发。

step3:比原上进行资产登记并存储到bigchaindb

上面我们已经搭建好了比原和bigchaindb的节点,下面我们进行实际的开发。

首先我们去找符合自己开发语言的sdk,这样我们可以快速上手开发。bigchaindb的sdk有很多:https://github.com/bigchaindb,请自己去筛选符合自己的sdk。我这里用go语言的sdk:https://github.com/bigchaindb/go-bigchaindb-driver

首先将自己需要的插件包下载下来放在自己的环境变量下面(我这里以golang 插件为例),然后我们跟bigchaindb的测试网进行连接。可以让我们的程序远程调用bigchaindb测试网,与之进行交互。详细的代码我们可以参考项目里面的文件,如下图:

连接好了以后我们在比原上创在一个资产,我们调用create-asset接口:https://docs.bytom.io/mydoc_rpc_call.cn#create-asset。然后创建了资产BYTOM资产,看下图我们已经创建成功了资产。然后我们将这个资产在bigchaindb上去创建并进行交易,如下图:

上面我们已经在比原链上创建了资产,然后我们将这笔资产在bigchaindb上创建。这样比原链上的资产就可以映射到bigchaindb中做一个存储,以及附带大量的资产凭证信息。整个资产的流转信息都存储在bigchaindb中。下图是我们用程序去创建交易资产:

资产创建好了以后我们就将资产存储到bigchaindb中,然后我们请求bigchaindb就可以返回我们创建的资产。

接下来我们就可以通过类似的方法去对我们的资产进行变更,流转。每一次流转变更返回的hsah都会通过比原上的交易存储,资产的详细整个流转记录都会存储在bigchaindb中,可以有效减少主链的数据。并提升效率。

目前项目还不完整,仅供参考;项目地址:https://github.com/BytomFans/bytom-bdb

如何在基于Bytom开发过程中使用Bigchaindb的更多相关文章

  1. 如何在基于Bytom开发过程中集成IPFS

    本文介绍了基于Bytom开发过程中集成IPFS. step1: 搭建bytom节点 比原相关资料:https://github.com/Bytom-Community/Bytom_Docs 搭建byt ...

  2. 关于基于Linphone的视频通话Android端开发过程中遇到的问题

    关于基于Linphone的视频通话Android端开发过程中遇到的问题 运用开源项目Linphone的SDK进行开发,由于是小组进行开发,我主要负责的是界面部分. 由于当时是初学Android开发,对 ...

  3. web开发过程中经常用到的一些公共方法及操作

    进化成为程序猿也有段岁月了,所谓的经验,广度还是依旧,只不过是对于某种功能有了多种实现方式的想法.每天依旧不厌其烦的敲打着代码,每一行代码的回车似乎都有一种似曾相识的感觉.于是乎:粘贴复制,再粘贴再复 ...

  4. 客户关系管理系统(CRM)的开发过程中使用到的开发工具总结

    开发<客户关系管理系统(CRM)>软件过程,也就是一个标准的Winform程序的开发过程,我们可以通过这个典型的软件开发过程来了解目前的开发思路.开发理念,以及一些必要的高效率手段.本篇随 ...

  5. net开发过程中Bin目录net开发过程中Bin目录下面几种文件

    .net开发过程中Bin目录下面几种文件格式的解释 在.NET开发中,我们经常会在bin目录下面看到这些类型的文件: .pdb..xsd..vshost.exe..exe..exe.config..v ...

  6. Unity项目开发过程中常见的问题,你遇到过吗?

    最近看到有朋友问一个unity游戏开发团队,需要掌握哪些知识之类的问题.事实上Unity引擎是一个很灵活的引擎,根据团队开发游戏类型的不同,对人员的要求也有差异,所以不能一概而论.但是,一些在Unit ...

  7. 基于UML的中职班主任工作管理系统的分析与设计--文献随笔(二)

    一.基本信息 标题:基于UML的中职班主任工作管理系统的分析与设计 时间:2016 出版源:遵义航天工业学校 关键字:中职学校; 班主任工作管理; UML建模 二.研究背景 问题定义:班主任是一项特殊 ...

  8. .NET开发过程中的全文索引使用技巧之Solr(转)

       前言:相信许多人都听说过.net开发过程中基于Lucene.net实现的全文索引,而Solr是一个高性能,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询 ...

  9. iOS开发过程中使用Core Data应避免的十个错误

    原文出处: informit   译文出处:cocoachina Core Data是苹果针对Mac和iOS平台开发的一个框架,主要用来储存数据.对很多开发者来说,Core Data比较容易入手,但很 ...

随机推荐

  1. 矩阵取数问题(dp,高精)

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n×mn \times mn×m的矩阵,矩阵中的每个元素ai,ja_{i,j}ai,j​均为非负整数.游戏规则如下: 每次取数时须从每行各取走 ...

  2. python全栈开发 * 进程池,线程理论 ,threading模块 * 180727

    一.进程池 (同步 异步 返回值) 缺点: 开启进程慢 几个CPU就能同时运行几个程序 进程的个数不是无线开启的 应用: 100个任务 进程池 如果必须用多个进程 且是高计算型 没有IO型的程序 希望 ...

  3. python全栈开发 * 26知识点汇总 * 180709

    26 logging collections random 模块 一.logging低配:日志不能写入文件与显示同时进行 import logging logging.basicConfig(leve ...

  4. 阿里OSS存储,php版demo

    最近项目移到云服务器,所以需要处理一下 Step 1. 初始化OSSClient SDK与OSS后台服务所有的交互都是通过OSSClient完成的.通过以下代码,可以生成OSSClient的实例: & ...

  5. webservice接口测试wsdl

    http和webservice接口测试有什么区别? webservice的基础组成是http+xml 三要素:soap传输协议,uddi,wsdl(webservice描述语言xml格式) 优点:跨平 ...

  6. linux命令: 两个查找工具 locate,find

    linux 中有很多查找工具,今天主要讲解locate,find两个工具. 1.locate (1)查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 注意:如果这 ...

  7. php-memcache基本用法

    //create a memcache object        $mem = new Memcache(); //create connection        $mem->connect ...

  8. Cartographer源码阅读(9):图优化的前端——闭环检测

    约束计算 闭环检测的策略:搜索闭环,通过匹配检测是否是闭环,采用了分支定界法. 前已经述及PoseGraph的内容,此处继续.位姿图类定义了pose_graph::ConstraintBuilder ...

  9. GIEC2019第六届全球互联网经济大会北京站震撼来袭!

    GIEC2019第六届全球互联网经济大会将于2019年8月26日-27日在北京召开,以“智慧零售数字商业”为主题,将邀请政府官员.企业高管.专家学者共议新形势下如何利人工智能和数字化的商业模式促进零售 ...

  10. C#设计模式(9)——装饰者模式(Decorator Pattern)(转)

    一.引言 在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜,手机挂件,手机外壳等,如果此时利用继承来实现的话,就需要定义无数的类,如StickerPhone(贴膜是手机类).A ...