JSON-RPC是一種標準的遠程調用方式,在以太坊和比特幣等區塊鏈實現中都得到了廣泛的應用。Filecoin Lotus也是使用JSON-RPC實現服務進程與客戶端的通信,默認監聽端口爲1234,支持HTTP和Websocket。Filecoin RPC API中文文檔由匯智網提供,訪問地址:http://cw.hubwiz.com/card/c/filecoin-lotus-rpc/。
各種常見開發語言或命令行工具都可以訪問JSON RPC API。例如使用CURL查詢版本信息:
curl -X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"method": "Filecoin.Version",
"params": [],
"id": 1
}' \
http://127.0.0.1:1234/rpc/v0
響應結果看起來會像這樣:
{
"jsonrpc":"2.0",
"result":{
"Version":"0.3.0+gite4b5f1df.dirty",
"APIVersion":512,
"BlockDelay":6
},
"id":1
}
根據用途不同,Filecoin Lutos RPC API可分爲如下12個不同的組:
1、Auth/授權令牌相關API
2、Chain/鏈相關API
- Filecoin.ChainDeleteObj - 刪除鏈上對象
- Filecoin.ChainExport - 導出CAR文件
- Filecoin.ChainGetBlock - 讀取區塊
- Filecoin.ChainGetBlockMessages - 讀取區塊內消息
- Filecoin.ChainGetGenesis - 讀取創世TipSet
- Filecoin.ChainGetMessage - 讀取指定消息
- Filecoin.ChainGetParentMessages - 讀取父TipSet中的消息
- Filecoin.ChainGetParentReceipts - 讀取父TipSet中的收據
- Filecoin.ChainGetPath - 返回TipSet變換路徑
- Filecoin.ChainGetTipSetByHeight - 讀取指定高度的TipSet
- Filecoin.ChainHasObj - 檢查鏈庫中是否存在指定對象
- Filecoin.ChainHead - 返回當前TipSet
- Filecoin.ChainNotify - 註冊TipSet更新回調
- Filecoin.ChainReadObj - 讀取指定對象
- Filecoin.ChainSetHead - 設置當前TipSet
- Filecoin.ChainStatObj - 返回指定對象的統計信息
- Filecoin.ChainTipSetWeight - 計算指定TipSet的權重
3、Client/節點相關API
- Filecoin.ClientCalcCommP - 計算指定文件的作品承諾
- Filecoin.ClientCancelDataTransfer - 取消指定的數據傳輸
- Filecoin.ClientDataTransferUpdates - 註冊數據傳輸回調
- Filecoin.ClientDealPieceCID - 返回指定交易作品大小
- Filecoin.ClientDealSize - 返回指定交易大小
- Filecoin.ClientFindData - 查找指定文件
- Filecoin.ClientGenCar - 生成指定文件的CAR轉儲
- Filecoin.ClientGetDealInfo - 返回指定交易的信息
- Filecoin.ClientGetDealStatus - 返回指定代碼對應的狀態
- Filecoin.ClientGetDealUpdates - 註冊交易狀態更新回調
- Filecoin.ClientHasLocal - 檢查本地是否存有指定數據
- Filecoin.ClientImport - 導入本地文件
- Filecoin.ClientListDataTransfers - 列舉數據傳輸狀態
- Filecoin.ClientListDeals - 列舉交易信息
- Filecoin.ClientListImports - 列舉導入的文件
- Filecoin.ClientMinerQueryOffer - 查詢礦工Offer
- Filecoin.ClientQueryAsk - 查詢StorageAsk
- Filecoin.ClientRemoveImport - 刪除指定的導入文件
- Filecoin.ClientRestartDataTransfer - 重啓指定的數據傳輸
- Filecoin.ClientRetrieve - 提取文件
- Filecoin.ClientRetrieveTryRestartInsufficientFunds - 重啓資金不足通道並提取文件
- Filecoin.ClientRetrieveWithEvents - 提取文件並註冊進度回調
- Filecoin.ClientStartDeal - 啓動交易
4、公共API
- Filecoin.ID - 返回節點ID
- Filecoin.Version - 返回版本信息
- Filecoin.LogList - 返回節點日誌清單
- Filecoin.LogSetLevel - 設置日誌等級
- Filecoin.Shutdown - 優雅關閉節點
5、Gas/手續費相關API
- Filecoin.GasEstimateFeeCap - 估算手續費封頂值
- Filecoin.GasEstimateGasLimit - 估算Gas上限
- Filecoin.GasEstimateGasPremium - 估算Gas用量
- Filecoin.GasEstimateMessageGas - 估算消息Gas用量
6、Miner/挖礦相關API
7、Mpool/內存池相關API
- Filecoin.MpoolBatchPush - 簽名消息批量推入內存池
- Filecoin.MpoolBatchPushMessage - 未簽名消息推入內存池
- Filecoin.MpoolBatchPushUntrusted - 非可信源簽名消息批量入池
- Filecoin.MpoolClear - 清空內存池
- Filecoin.MpoolGetConfig - 返回內存池當前配置
- Filecoin.MpoolGetNonce - 返回指定地址的下一隨機值
- Filecoin.MpoolPending - 返回內存池中的待定消息
- Filecoin.MpoolPush - 將指定簽名消息推入內存池
- Filecoin.MpoolPushMessage - 將指定未簽名消息推入內存池
- Filecoin.MpoolPushUntrusted - 將指定非可信源簽名消息推入內存池
- Filecoin.MpoolSelect - 選擇一組待定交易用於打包區塊
- Filecoin.MpoolSetConfig - 設置內存池的當前配置
- Filecoin.MpoolSub - 註冊內存池狀態更新回調
8、Msig/多重簽名相關API
- Filecoin.MsigAddApprove - 批准AddSigner提議
- Filecoin.MsigAddCancel - 取消AddSigner提議
- Filecoin.MsigAddPropose - 創建AddSigner提議
- Filecoin.MsigApprove - 批准多籤消息
- Filecoin.MsigApproveTxnHash - 批准多籤消息
- Filecoin.MsigCancel - 取消多籤消息
- Filecoin.MsigCreate - 創建多籤錢包
- Filecoin.MsigGetAvailableBalance - 返回多籤錢包的有效餘額
- Filecoin.MsigGetVested - 返回多籤錢包的授權數量
- Filecoin.MsigGetVestingSchedule - 返回多籤錢包的授權詳情
- Filecoin.MsigPropose - 提議多籤消息
- Filecoin.MsigRemoveSigner - 從多籤錢包移除一個簽名方
- Filecoin.MsigSwapApprove - 批准SwapSigner消息
- Filecoin.MsigSwapCancel - 取消SwapSigner消息
- Filecoin.MsigSwapPropose - 創建SwapSigner提議
9、Net/網絡相關API
- Filecoin.NetAddrsListen - 返回節點地址
- Filecoin.NetAutoNatStatus - 返回節點NAT統計
- Filecoin.NetBlockAdd
- Filecoin.NetConnect - 連接指定節點
- Filecoin.NetConnectedness - 返回節點連接狀態
- Filecoin.NetDisconnect - 斷開與指定節點的連接
- Filecoin.NetFindPeer - 查找指定節點的地址
- Filecoin.NetPeers - 返回已連接節點清單
- Filecoin.NetPubsubScores
10、Paych/支付通道相關API
- Filecoin.PaychAllocateLane
- Filecoin.PaychAvailableFunds
- Filecoin.PaychAvailableFundsByFromTo
- Filecoin.PaychCollect
- Filecoin.PaychGet
- Filecoin.PaychGetWaitReady
- Filecoin.PaychList
- Filecoin.PaychNewPayment
- Filecoin.PaychSettle
- Filecoin.PaychStatus
- Filecoin.PaychVoucherAdd
- Filecoin.PaychVoucherCheckSpendable
- Filecoin.PaychVoucherCheckValid
- Filecoin.PaychVoucherCreate
- Filecoin.PaychVoucherList
- Filecoin.PaychVoucherSubmit
11、State/狀態相關API
- Filecoin.StateAccountKey - 查詢賬號公鑰
- Filecoin.StateAllMinerFaults - 查詢礦工故障
- Filecoin.StateCall - 只讀執行消息
- Filecoin.StateChangedActors - 查詢發生變化的ACTOR
- Filecoin.StateCirculatingSupply - 查詢指定週期的流通供應量
- Filecoin.StateCompute - 執行指定的消息
- Filecoin.StateDealProviderCollateralBounds - 返回抵押範圍
- Filecoin.StateGetActor - 查詢指定的Actor
- Filecoin.StateGetReceipt - 查詢指定的收據
- Filecoin.StateListActors - 列表返回全部Actor
- Filecoin.StateListMessages - 列表返回消息
- Filecoin.StateListMiners - 列表返回礦工
- Filecoin.StateLookupID - 查找指定的地址
- Filecoin.StateMarketBalance - 查詢指定地址的存儲市場餘額
- Filecoin.StateMarketDeals - 列表返回市場交易
- Filecoin.StateMarketParticipants - 列表返回市場參與各方
- Filecoin.StateMarketStorageDeal - 查詢指定的存儲交易
- Filecoin.StateMinerActiveSectors - 查詢指定礦工的活動扇區
- Filecoin.StateMinerAvailableBalance - 查詢指定礦工的有效餘額
- Filecoin.StateMinerDeadlines - 查詢指定礦工的截止時間
- Filecoin.StateMinerFaults - 查詢指定礦工的故障信息
- Filecoin.StateMinerInfo - 查詢指定礦工的基本信息
- Filecoin.StateMinerInitialPledgeCollateral - 查詢指定礦工的初始抵押
- Filecoin.StateMinerPartitions - 查詢指定礦工的分區信息
- Filecoin.StateMinerPower - 查詢指定礦工的算力
- Filecoin.StateMinerPreCommitDepositForPower - 查詢算力預提交存款
- Filecoin.StateMinerProvingDeadline - 查詢證明截止時間
- Filecoin.StateMinerRecoveries - 查詢礦工的故障恢復狀況
- Filecoin.StateMinerSectorAllocated - 檢查指定扇區是否分配
- Filecoin.StateMinerSectorCount - 查詢礦工扇區數量
- Filecoin.StateMinerSectors - 查詢礦工扇區信息
- Filecoin.StateNetworkName - 查詢當前網絡名稱
- Filecoin.StateNetworkVersion - 查詢當前網絡版本
- Filecoin.StateReadState - 查詢讀取狀態
- Filecoin.StateReplay - 重放指定的消息
- Filecoin.StateSearchMsg - 搜索鏈上消息
- Filecoin.StateSectorExpiration - 查詢指定扇區的超時
- Filecoin.StateSectorGetInfo - 查詢指定扇區
- Filecoin.StateSectorPartition - 查詢扇區分區信息
- Filecoin.StateSectorPreCommitInfo - 查詢扇區預提交信息
- Filecoin.StateVMCirculatingSupplyInternal - 估算流通供應量
- Filecoin.StateVerifiedClientStatus - 返回已驗證狀態
- Filecoin.StateVerifiedRegistryRootKey - 返回已驗證註冊器根鍵
- Filecoin.StateVerifierStatus - 返回驗證器狀態
- Filecoin.StateWaitMsg - 查找並等待指定消息上鍊
- Filecoin.StateWaitMsgLimited - 有效範圍查找並等待消息上鍊
12、Sync/同步相關API
- Filecoin.SyncCheckBad - 檢查壞塊
- Filecoin.SyncCheckpoint - 標記檢查點
- Filecoin.SyncIncomingBlocks - 註冊區塊頭接收回調
- Filecoin.SyncMarkBad - 標記壞塊
- Filecoin.SyncState - 返回同步狀態
- Filecoin.SyncSubmitBlock - 提交區塊
- Filecoin.SyncUnmarkAllBad - 取消全部壞塊標記
- Filecoin.SyncUnmarkBad - 取消指定壞塊標記
- Filecoin.SyncValidateTipset - 校驗指定的TipSet
13、Wallet/錢包相關API
- Filecoin.WalletBalance - 查詢錢包餘額
- Filecoin.WalletDefaultAddress - 查詢錢包默認地址
- Filecoin.WalletDelete - 刪除錢包中的指定地址
- Filecoin.WalletExport - 導出錢包中指定地址的私鑰
- Filecoin.WalletHas - 檢查錢包是否包含指定地址
- Filecoin.WalletImport - 將指定私鑰導入錢包
- Filecoin.WalletList - 列表返回錢包中的全部地址
- Filecoin.WalletNew - 在錢包中創建一個新地址
- Filecoin.WalletSetDefault - 設置錢包的默認地址
- Filecoin.WalletSign - 使用指定地址簽名數據
- Filecoin.WalletSignMessage - 使用指定地址簽名消息
- Filecoin.WalletValidateAddress - 驗證指定的地址字符串
- Filecoin.WalletVerify - 驗證簽名有效性