以编程方式检查IPFS上的数据传输

Vis*_*ran 7 ipfs

我们正在Electron上构建一个桌面应用程序,以便在IPFS上共享媒体.我们希望激励那些通过IPFS添加或引脚向其他用户提供数据并实际上正在"播种"数据的人.我们希望以编程方式和周期性跟踪每个用户发送和接收的数据量.

是否有标准模式或服务能够做到这一点?

TIA!

小智 2

在 CLI 上,您可以使用该ipfs stats bw -p <peer id>命令查看您的节点与您传入的对等点 ID 之间发送和接收的总字节数。

$ ipfs stats bw -p  QmeMKDA6HbDD8Bwb4WoAQ7s9oKZTBpy55YFKG1RSHnBz6a
Bandwidth
TotalIn: 875 B
TotalOut: 14 kB
RateIn: 0 B/s
RateOut: 0 B/s
Run Code Online (Sandbox Code Playgroud)

请参阅: https: //docs.ipfs.io/reference/api/cli/#ipfs-stats-bw

您可以ipfs.stats.bw通过 IPFS 的 js 实现以编程方式使用该方法来获取数据js-ipfs,或者通过js-ipfs-http-client与本地运行的 ipfs 守护进程的 http api 进行通信。

ipfs.stats.bw将显示对等点之间的所有流量,其中可能包括 dht 查询和与共享数据块不直接相关的其他流量。

如果您只需要共享数据块的信息,那么您可以ipfs bitswap ledger从命令行使用。

$ ipfs bitswap ledger QmeMKDA6HbDD8Bwb4WoAQ7s9oKZTBpy55YFKG1RSHnBz6a
Ledger for QmeMKDA6HbDD8Bwb4WoAQ7s9oKZTBpy55YFKG1RSHnBz6a
Debt ratio: 0.000000
Exchanges:  0
Bytes sent: 0
Bytes received: 0
Run Code Online (Sandbox Code Playgroud)

请参阅:https ://docs.ipfs.io/reference/api/cli/#ipfs-bitswap-ledger

该 api 还不能直接在 js-ipfs 或 js-http-api-client 中使用。