ipfs c++client
ipfs
星际文件系统,大家都知道
代码下载在这里
c++ ipfs client
这个客户端是根据一个开源的client修改的,实际上依然是根据libcurl的http协议来保持节点的互通,也就是外层协议封装的是http,restful方式,而内层核心依然是ipfs的文件系统方式。
例如节点就建立在本机,ipfs::client client(“localhost”,5001) 建立基础客户端,如下代码所示
int main(int, char**) {try {ipfs::Client client("localhost", 5001);/** [ipfs::Client::FilesGet] */std::stringstream contents;client.FilesGet(//"Qmd7tVnUvsGVUcn6Hnv4Td6bmSfKq17bsQgfsDRy5BBVoX",//"Qme4kQCUWinrYm29afMw1nodBNE3A3ykd85MuB9MJcDxcm","QmRdPPAPup1PxUoWbNP48dHKhm6B3ZSzR2Pn1AGCkeeGSz",&contents, DownloadCallback,ProgressCallback);//std::cout << contents.str().length();//std::cout << "Retrieved contents: " << contents.str().length() <<std::endl; // contents.str().substr(0, 8) << "..."}catch (const std::exception& e) {std::cerr << e.what() << std::endl;return 1;}Sleep(INFINITY);return 0;
}
回调函数DownloadCallback,ProgressCallback 分别代表下载callback 和进度callback,如下所示
static size_t DownloadCallback(void* pBuffer, size_t nSize, size_t nMemByte, void* pParam)
{//把下载到的数据以追加的方式写入文件(一定要有a,否则前面写入的内容就会被覆盖了) FILE* fp = NULL;fopen_s(&fp, "c:\\222.docx", "ab+");size_t nWrite = fwrite(pBuffer, nSize, nMemByte, fp);fclose(fp);return nWrite;
}static int ProgressCallback(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow)
{if (dltotal > -0.1 && dltotal < 0.1)return 0;int nPos = (int)((dlnow / dltotal) * 100);std::cout << "now the process is:" << nPos << std::endl;//通知进度条更新下载进度 //::PostMessage(g_hDlgWnd, WM_USER + 110, nPos, 0);//::Sleep(10); return 0;
}
客户端冯转了文件增加和文件获取,如下所示
void FilesGet(const std::string& path,std::iostream* response,//下载回调DlCallback dlcallback = NULL,//进度回调PrCallback prcallback = NULL);void FilesAdd(/** [in] List of files to add. */const std::vector<http::FileUpload>& files,/** [out] List of results, one per file. For example:* [{"path": "foo.txt", "hash": "Qm...", "size": 123}, {"path": ...}, ...]*/Json* result);
封装的函数还是相当的可靠的,代码质量可以,json解析使用的是json.hpp。
代码下载在这里
ipfs c++client相关推荐
- 利用IPFS构建自己的去中心化分布式Wiki系统
IPFS全称InterPlanetary File System,中文名:星际文件系统,是一个旨在创建持久且分布式存储和共享文件的网络传输协议. 它是一种内容可寻址的对等超媒体分发协议.在IPFS网络 ...
- 【问链财经-EOS公开课】 第十九课 EOS存储之IPFS
编者按:EOS每秒百万的tps如果要实现的话,按照一个交易数据100字节计算,1天的区块数据量为1000000 * 100 * 60 * 60 * 24 = 7.8TB,一年的区块数据量为7.8 * ...
- 以太坊ipfs_动手:Infura和以太坊上的IPFS入门
以太坊ipfs by Niharika Singh 由Niharika Singh 动手:Infura和以太坊上的IPFS入门 (Hands On: Get Started With Infura a ...
- 最新,使用truffle框架之后,安装ipfs的api包文件的命令变化
原因 项目文件路径变化了,不是先前直接在项目文件夹里面直接执行安装ipfs的命令了,需要切换到client文件夹下面执行 路径不对,会出现错误,错误提示如下 切换到正确的路径之后,使用命令 npm i ...
- 使用IPFS集群搭建创建私有IPFS网络
基本介绍 IPFS 网络分两类: 公有 私有 对于大多数商用应用尤其是企业级解决方案而言,需要对自身数据有完全的控制,这种场合公有IPFS网络并不适用,搭建私有IPFS往往是这类应用的必要需求. 本文 ...
- 【戴嘉乐】(进阶)基于IPFS和Ngrok构建自维护资源网关
作者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师| 个人网站:https://www.daijiale.cn 联系方式:微信号:daijial ...
- IPFS直播最详细解读—FileCoin Demo演示
Decentralized Web Summit (DWS) 2018 于2018年7月31到8月2日在旧金山举行.DWS由非盈利组织Internet Archive在2016年发起举办,致力于在全球 ...
- Libp2p - IPFS 与 Polkadot :双剑合璧会有时
Libp2p - IPFS 与 Polkadot:双剑合璧会有时 波卡之中的IPFS protocol Substrate与IPFS: Libp2p的"中继"理念 生态互赢:为什么 ...
- ipfs 云服务器_安丘ipfs服务器,ipfs云算力组装
安丘ipfs服务器 就像那年轻纺城机房刚启用的时候,大家的货物都堆在机房里,没有人统一管理,设备需要上架的时候,到一大堆货物中自行寻找,安装后的垃圾也没有人打扫,后连堆积的地方都找不到,有时自己的货物 ...
最新文章
- [YTU]_2445(C++习题 输入输出--公用继承)
- MySQL表名不区分大小写的设置方法
- 转:SVN的Local方式:个人源码管理的好办法
- lora发射和接收原理_无线收发模块LoRa
- mysql集群异地部署_linux 环境下 部署mysql 集群
- Vmware 6.5.1正式版在Ubuntu 8.10下面运行非常缓慢的解决方
- 小波变换和motion信号处理(一)
- Fastjson jar包下载地址
- 14.Java实现UDP通信
- 新华书店牵手阿里云 要用云计算打造“智慧悦读”
- 关于git 提交报错rejected解决
- 在Kali操作系统上使用metasploit
- 计算机主板电池拆卸,台式机主板电池怎么拆
- Android监听消息(二)——电话及短信监听
- 2、Terraform-安装
- 含LOB的表实际容量计算方法
- jexus-net-dockerfile
- 批量替换文本中的多组字符串
- 没有赏味期限,只有来日方长
- python keys模块_python自动化常用模块
热门文章
- ucos ii 源代码中文注释详解 : OS_TIME.C
- 常见位操作及运算应用举例:1,C语言中位运算符异或“∧”的作用​​​​​​​2,异或运算的作用3,(与运算)、|(或运算)、^(异或运算)
- 微软亚研院华刚对科研的见解
- ​再现Bug?iPhone13 拍照翻车自带炫屏 网友:没想到我也“中奖”了
- 999元/1499元起!Redmi Note 10系列正式首销
- iPhone 13 mini背部新外观曝光:双摄对角线排布
- 微信“拍一拍”的后悔药来了!手滑拍了老板终于有救了
- 华为Mate 40 Pro概念渲染图曝光:首发屏下摄像头技术?
- 三大运营商公布11月运营数据:中国移动固网业务表现亮眼
- 100款违法违规APP下架整改:微店、更美等在列