我们正在 Electron 上构建一个桌面应用程序,以在 IPFS 上共享媒体。我们想要激励人们,他们通过 IPFS 添加或固定,将数据提供给其他用户,实际上是在“播种”数据。我们希望以编程方式和定期跟踪每个用户发送和接收的数据量。
是否有标准模式或服务能够做到这一点?
蒂亚!
我们正在 Electron 上构建一个桌面应用程序,以在 IPFS 上共享媒体。我们想要激励人们,他们通过 IPFS 添加或固定,将数据提供给其他用户,实际上是在“播种”数据。我们希望以编程方式和定期跟踪每个用户发送和接收的数据量。
是否有标准模式或服务能够做到这一点?
蒂亚!
在 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
请参阅: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
请参阅:https ://docs.ipfs.io/reference/api/cli/#ipfs-bitswap-ledger
该 api 在 js-ipfs 或 js-http-api-client 中还不能直接使用。