如何在基于Bytom开发过程中集成IPFS
本文介绍了基于Bytom开发过程中集成IPFS。
step1: 搭建bytom节点
比原相关资料:https://github.com/Bytom-Community/Bytom_Docs
搭建bytom节点有很多方式,然后开启RPC调用模式。这里推荐用docker搭建比原节点: docker搭建比原节点,同时开启RPC访问模式(即终端交互模式)。
我这里都是在本地操作,所以对应的端口是:9888。启动好以后我们在postman里请求测试一下,如下图:
step2: 搭建IPFS节点
IPFS项目地址:https://github.com/ipfs
GO:https://github.com/ipfs/go-ipfs
JavaScript:https://github.com/ipfs/js-ipfs
Python:https://github.com/ipfs/js-ipfs
C:https://github.com/Agorise/c-ipfs
搭建IPFS环境:https://blog.csdn.net/weixin_41160534/article/details/81358613
ipfs daemon
先在我们已经搭建好了IPFS的节点,并且开启API网络监听。现在我们来写个测试demo(go语言版本),往网络上传文件。
package mainimport ("fmt""os""strings"shell "github.com/ipfs/go-ipfs-api"
)func main() {// Where your local node is running on localhost:5001sh := shell.NewShell("localhost:5001")cid, err := sh.Add(strings.NewReader("hello world!"))if err != nil {fmt.Fprintf(os.Stderr, "error: %s", err)os.Exit(1)}fmt.Println("added %s", cid)err = sh.Get("QmdFhFwGHy54T3e8cf1ZmovWbZ2yW4yNhNKsu5dSfcgh6H", "/Users/huangxinglong/Desktop")if err != nil {fmt.Fprintf(os.Stderr, "error: %s", err)os.Exit(1)}
}
我们运行以后发现返回Hash,然后我们可以通过Hash把上传的文件获取到 "/Users/huangxinglong/Desktop"目录现在我们就可以进行开发了。
step3: 准备开发
搭建好比原节点和IPFS节点以后我们就可以根据自己选择的开发语言选择具体的插件。 IPFS的插件有如下几种语言的API插件:
如果选择的开发语言不是java,PHP,Node.js。需要我们自己去根据比原的开发文档,然后去集成。
step4: 具体案例
首先根据自己选择的开发语言去选择对应的API插件,我选择的是go语言,IPFS有go语言的API插件:https://github.com/ipfs/go-ipfs-api。我们在开发过程中直接根据比原的开发文档去开发,开发文档地址:https://docs.bytom.io/
首先我们去下载IPFS的go语言API插件放到自己的项目中,然后放到自己的项目vender目录下面:
存到IPFS上返回的hash是:QmP4UDViHc78un4SyHZV2ooHkSon2EttpamqPqXQ9WHcaV,将返回的hash放在arbitrary对应的字段,如下:
{"base_transaction": null,"actions": [{"account_id": "0KTCS3R5G0A02","amount": 10000000,"asset_id": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","type": "spend_account"}, {
"account_id": "0KTCS3R5G0A02",
"amount": 100,
"asset_id": "608037f96e8d1613d900c67a0730cc90e2a03311fb7d091588f7eb551a6103cd",
"type": "spend_account"
}, {
"account_id": "0KTCS3R5G0A02",
"amount": 100,
"asset_id": "608037f96e8d1613d900c67a0730cc90e2a03311fb7d091588f7eb551a6103cd",
"arbitrary": "QmP4UDViHc78un4SyHZV2ooHkSon2EttpamqPqXQ9WHcaV",
"type": "retire"
}],
"ttl": 0,
"time_range": 1521625823
然后依次调用sign-transaction和submit-transaction接口,就可以在交易过程中将信息存储在IPFS上,如果我们还需要做更复杂的操作,再根据比原开发文档去做相应的操作。
转载于:https://blog.51cto.com/14187963/2352780
如何在基于Bytom开发过程中集成IPFS相关推荐
- 搬砖之路----MusicPlayer 一个基于Vlc(2.0+)开发的android音乐播放器--浅析在android开发过程中播放器选择之路!
前言 MusicPlayer 是一款基于vlc播放器开发的一个音乐播放器,你也可以理解为在此核心上的搬砖之路,核心的内容并不是我写的,因此在正式写blog之前,感谢那些vlc核心的开发人员让我用到这么 ...
- matlab中结束脚本运行_MBD开发过程中的持续集成应用
概述 MBD ,model base design ,使用模型描述需求,并采用代码自动生成技术进行嵌入式开发.为当前汽车电子软件行业,AutoSAR架构下开发的主流技术. 随着DevOps概念的持续火 ...
- php 项目反应理论,科学网—好文 | 纽约石溪大学:机器学习中基于项目反应理论的集成学习 - 陈培颖的博文...
机器学习中,研究者们对分类集成的关注与日俱增,尤其关注分类精度的提升.IJAC近期发表了来自纽约石溪大学研究者的最新成果,该研究基于项目反应理论,提出一种加权投票方法---基于IRT理论的集成学习算法 ...
- 基于 Docker Compose 实践 .NET Core 的现代化架构 2:在容器中集成 Skywalking APM
本章节代码已经上传至 https://github.com/siegrainwong/.NET-Core-with-Docker/tree/master/Part2 系列大纲 还是先介绍一下目录,这次 ...
- 基于Vue2实现的仿手机QQapp(支持对话功能,滑动删除....)—— 聊聊开发过程中踩到的一些坑与解决方案,以及个人感悟...
使用Vue2进行的仿手机QQ的webapp的制作,在ui上,参考了设计师kaokao的作品,作品由个人独立开发,源码中进行了详细的注释. 由于自己也是初学Vue2,所以注释写的不够精简,请见谅. 目前 ...
- 移动应用开发过程中的迭代式原型设计
\ 主要结论 \ 移动应用原型创建过程中采用迭代式快速开发方法的重要性. \ 可以从对手身上学到什么,如何从他们的失误中获益. \ 如何为你的应用定义USP,如何通过故事板(Storyboarding ...
- java 当一个文本框有值时另一个文本框置灰_【农行DevOps进行时】基于PaaS的持续集成/持续交付实践 | IDCF...
作者:曹睿 一.概述 在互联网高速发展的背景下,产品的先发优势被互联网加倍放大,业务需求变化频繁,创新步伐越来越快,导致研发效能被越来越多企业放到极其重要的位置,为了适应日益激烈的业务竞争,必须快速响 ...
- 如何在 ASP.NET MVC 中集成 AngularJS
介绍 当涉及到计算机软件的开发时,我想运用所有的最新技术.例如,前端使用最新的 JavaScript 技术,服务器端使用最新的基于 REST 的 Web API 服务.另外,还有最新的数据库技术.最新 ...
- 浅谈Taro和Apollo在开发过程中的实践
一.什么是Taro Taro是凹凸实验室研发的一套遵循React语法规范的多端开发的解决方案.使用Taro,可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信/百度 ...
最新文章
- 牛逼!原来分布式事务可以这样玩!
- adb打开packages_adb shell pm list packages的用法
- java轻量级并行工具类_16 个超级实用的 Java 工具类
- jQuery学习入门总结之css()和addClass()的不同
- 【IM】关于多任务学习的理解
- 最新的推荐系统论文两篇
- mysql可以存储标点么_MySQL命名、设计及使用规范--------来自标点符的《MySQL命名、设计及使用规范》...
- MySQL的安装与配置--windows下安装
- 京东:Flink SQL 优化实战
- android数据存放map_ES6 的新鲜玩意儿——集合set、map、WeekSet、WeekMap
- 【超直白】算法:斐波那契数列
- allwinner h3 通用DMA 驱动(SylixOS 操作系统)
- android 7使用litepal,android数据库litepal使用记录
- 任意门怎么用团发_任意门日淘app官方手机版-任意门日淘安卓版下载v1.4.6-壹六下载...
- 按键精灵手机助手如何连接安卓版按键精灵如何连接手机助手
- C#微信公众号与订阅号接口开发示例代码
- vue中设置外部链接
- 中小企业建站方案和资源
- 常见Shell编程脚本
- 你好,我是计算机组成原理(计算机组成原理1)