我们正在Electron上构建一个桌面应用程序,以便在IPFS上共享媒体。我们希望激励那些通过IPFS添加或引脚向其他用户提供数据并实际上正在“播种”数据的人。我们希望以编程方式定期跟踪每个用户发送和接收的数据量。
是否有标准模式或服务可以执行此操作?
TIA!
答案 0 :(得分: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
请参阅:https://docs.ipfs.io/reference/api/cli/#ipfs-stats-bw
您可以使用ipfs.stats.bw
方法以编程方式从IPFS js-ipfs
的js实现或通过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中直接可用。