Go JSON-RPC client
To use the Boost Go client, the Go RPC-API library can be used to interact with the Boost API node.
Import the necessary Go module:
Copy go get github.com/filecoin-project/go-jsonrpc
Create the following script:
Copy package main
import (
"context"
"fmt"
"log"
"net/http"
jsonrpc "github.com/filecoin-project/go-jsonrpc"
boostapi "github.com/filecoin-project/boost/api"
)
func main () {
authToken := "<value found in ~/.boost/token>"
headers := http . Header { "Authorization" : [] string { "Bearer " + authToken}}
addr := "127.0.0.1:1288"
var api boostapi . BoostStruct
closer, err := jsonrpc.NewMergeClient(context.Background(), "ws://"+addr+"/rpc/v0", "Filecoin", []interface{}{&api.Internal, &api.CommonStruct.Internal}, headers)
if err != nil {
log. Fatalf ( "connecting with boost failed: %s " , err)
}
defer closer ()
// Now you can call any API you're interested in.
netAddrs, err := api. NetAddrsListen (context. Background ())
if err != nil {
log. Fatalf ( "calling netAddrsListen: %s " , err)
}
fmt. Printf ( "Boost is listening on: %s " , netAddrs.Addrs[ 0 ])
}
Run go mod init
to set up your go.mod
file
You should now be able to interact with the Boost API.
Python JSON-RPC client
The JSON-RPC API can also be communicated with programmatically from other languages. Here is an example written in Python. Note that the method
must be prefixed with Filecoin.
Copy import requests
import json
def main():
url = "http://localhost:3051/rpc/v0"
headers = {'content-type': 'application/json', "Authorization": "Bearer <token>"}
payload = {
"method": "Filecoin.BoostOfflineDealWithData",
"params": [
"<deal-uuid>",
"<file-path>",
True
],
"jsonrpc": "2.0",
"id": 1,
}
response = requests.post(url, data=json.dumps(payload), headers=headers)
print(response.text)
if __name__ == "__main__":
main()
Groups
Uncategorized
Discover
Perms: read
Inputs: null
Response:
Copy {
"info" : {
"title" : "Boost RPC API" ,
"version" : "1.2.1/generated=2020-11-22T08:22:42-06:00"
} ,
"methods" : [] ,
"openrpc" : "1.2.6"
}
Auth
AuthNew
Perms: admin
Inputs:
Response: "Ynl0ZSBhcnJheQ=="
AuthVerify
Perms: read
Inputs:
Response:
Blockstore
BlockstoreGet
There are not yet any comments for this method.
Perms: read
Inputs:
Response: "Ynl0ZSBhcnJheQ=="
BlockstoreGetSize
Perms: read
Inputs:
Response: 123
BlockstoreHas
Perms: read
Inputs:
Response: true
Boost
BoostDeal
Perms: admin
Inputs:
Copy [
"07070707-0707-0707-0707-070707070707"
]
Response:
Copy {
"DealUuid" : "07070707-0707-0707-0707-070707070707" ,
"CreatedAt" : "0001-01-01T00:00:00Z" ,
"ClientDealProposal" : {
"Proposal" : {
"PieceCID" : null ,
"PieceSize" : 1032 ,
"VerifiedDeal" : true ,
"Client" : "f01234" ,
"Provider" : "f01234" ,
"Label" : "" ,
"StartEpoch" : 10101 ,
"EndEpoch" : 10101 ,
"StoragePricePerEpoch" : "0" ,
"ProviderCollateral" : "0" ,
"ClientCollateral" : "0"
} ,
"ClientSignature" : {
"Type" : 2 ,
"Data" : "Ynl0ZSBhcnJheQ=="
}
} ,
"IsOffline" : true ,
"CleanupData" : true ,
"ClientPeerID" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"DealDataRoot" : null ,
"InboundFilePath" : "string value" ,
"Transfer" : {
"Type" : "string value" ,
"ClientID" : "string value" ,
"Params" : "Ynl0ZSBhcnJheQ==" ,
"Size" : 42
} ,
"ChainDealID" : 5432 ,
"PublishCID" : null ,
"SectorID" : 9 ,
"Offset" : 1032 ,
"Length" : 1032 ,
"Checkpoint" : 1 ,
"CheckpointAt" : "0001-01-01T00:00:00Z" ,
"Err" : "string value" ,
"Retry" : "auto" ,
"NBytesReceived" : 9 ,
"FastRetrieval" : true ,
"AnnounceToIPNI" : true
}
BoostDealBySignedProposalCid
Perms: admin
Inputs:
Response:
Copy {
"DealUuid" : "07070707-0707-0707-0707-070707070707" ,
"CreatedAt" : "0001-01-01T00:00:00Z" ,
"ClientDealProposal" : {
"Proposal" : {
"PieceCID" : null ,
"PieceSize" : 1032 ,
"VerifiedDeal" : true ,
"Client" : "f01234" ,
"Provider" : "f01234" ,
"Label" : "" ,
"StartEpoch" : 10101 ,
"EndEpoch" : 10101 ,
"StoragePricePerEpoch" : "0" ,
"ProviderCollateral" : "0" ,
"ClientCollateral" : "0"
} ,
"ClientSignature" : {
"Type" : 2 ,
"Data" : "Ynl0ZSBhcnJheQ=="
}
} ,
"IsOffline" : true ,
"CleanupData" : true ,
"ClientPeerID" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"DealDataRoot" : null ,
"InboundFilePath" : "string value" ,
"Transfer" : {
"Type" : "string value" ,
"ClientID" : "string value" ,
"Params" : "Ynl0ZSBhcnJheQ==" ,
"Size" : 42
} ,
"ChainDealID" : 5432 ,
"PublishCID" : null ,
"SectorID" : 9 ,
"Offset" : 1032 ,
"Length" : 1032 ,
"Checkpoint" : 1 ,
"CheckpointAt" : "0001-01-01T00:00:00Z" ,
"Err" : "string value" ,
"Retry" : "auto" ,
"NBytesReceived" : 9 ,
"FastRetrieval" : true ,
"AnnounceToIPNI" : true
}
BoostDirectDeal
Perms: admin
Inputs:
Copy [
{
"DealUUID" : "07070707-0707-0707-0707-070707070707" ,
"AllocationID" : 0 ,
"PieceCid" : null ,
"ClientAddr" : "f01234" ,
"StartEpoch" : 10101 ,
"EndEpoch" : 10101 ,
"FilePath" : "string value" ,
"DeleteAfterImport" : true ,
"RemoveUnsealedCopy" : true ,
"SkipIPNIAnnounce" : true
}
]
Response:
Copy {
"Accepted" : true ,
"Reason" : "string value"
}
BoostDummyDeal
Perms: admin
Inputs:
Copy [
{
"DealUUID" : "07070707-0707-0707-0707-070707070707" ,
"IsOffline" : true ,
"ClientDealProposal" : {
"Proposal" : {
"PieceCID" : null ,
"PieceSize" : 1032 ,
"VerifiedDeal" : true ,
"Client" : "f01234" ,
"Provider" : "f01234" ,
"Label" : "" ,
"StartEpoch" : 10101 ,
"EndEpoch" : 10101 ,
"StoragePricePerEpoch" : "0" ,
"ProviderCollateral" : "0" ,
"ClientCollateral" : "0"
} ,
"ClientSignature" : {
"Type" : 2 ,
"Data" : "Ynl0ZSBhcnJheQ=="
}
} ,
"DealDataRoot" : null ,
"Transfer" : {
"Type" : "string value" ,
"ClientID" : "string value" ,
"Params" : "Ynl0ZSBhcnJheQ==" ,
"Size" : 42
} ,
"RemoveUnsealedCopy" : true ,
"SkipIPNIAnnounce" : true
}
]
Response:
Copy {
"Accepted" : true ,
"Reason" : "string value"
}
BoostIndexerAnnounceAllDeals
There are not yet any comments for this method.
Perms: admin
Inputs: null
Response: {}
BoostIndexerAnnounceDeal
Perms: admin
Inputs:
Copy [
{
"DealUuid" : "07070707-0707-0707-0707-070707070707" ,
"CreatedAt" : "0001-01-01T00:00:00Z" ,
"ClientDealProposal" : {
"Proposal" : {
"PieceCID" : null ,
"PieceSize" : 1032 ,
"VerifiedDeal" : true ,
"Client" : "f01234" ,
"Provider" : "f01234" ,
"Label" : "" ,
"StartEpoch" : 10101 ,
"EndEpoch" : 10101 ,
"StoragePricePerEpoch" : "0" ,
"ProviderCollateral" : "0" ,
"ClientCollateral" : "0"
} ,
"ClientSignature" : {
"Type" : 2 ,
"Data" : "Ynl0ZSBhcnJheQ=="
}
} ,
"IsOffline" : true ,
"CleanupData" : true ,
"ClientPeerID" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"DealDataRoot" : null ,
"InboundFilePath" : "string value" ,
"Transfer" : {
"Type" : "string value" ,
"ClientID" : "string value" ,
"Params" : "Ynl0ZSBhcnJheQ==" ,
"Size" : 42
} ,
"ChainDealID" : 5432 ,
"PublishCID" : null ,
"SectorID" : 9 ,
"Offset" : 1032 ,
"Length" : 1032 ,
"Checkpoint" : 1 ,
"CheckpointAt" : "0001-01-01T00:00:00Z" ,
"Err" : "string value" ,
"Retry" : "auto" ,
"NBytesReceived" : 9 ,
"FastRetrieval" : true ,
"AnnounceToIPNI" : true
}
]
Response: null
BoostIndexerAnnounceDealRemoved
Perms: admin
Inputs:
Response: null
BoostIndexerAnnounceLatest
Perms: admin
Inputs: null
Response: null
BoostIndexerAnnounceLatestHttp
Perms: admin
Inputs:
Copy [
[
"string value"
]
]
Response: null
BoostIndexerAnnounceLegacyDeal
Perms: admin
Inputs:
Response: null
BoostIndexerListMultihashes
Perms: admin
Inputs:
Copy [
"Ynl0ZSBhcnJheQ=="
]
Response:
BoostLegacyDealByProposalCid
Perms: admin
Inputs:
Response:
Copy {
"Proposal" : {
"PieceCID" : null ,
"PieceSize" : 1032 ,
"VerifiedDeal" : true ,
"Client" : "f01234" ,
"Provider" : "f01234" ,
"Label" : "" ,
"StartEpoch" : 10101 ,
"EndEpoch" : 10101 ,
"StoragePricePerEpoch" : "0" ,
"ProviderCollateral" : "0" ,
"ClientCollateral" : "0"
} ,
"ClientSignature" : {
"Type" : 2 ,
"Data" : "Ynl0ZSBhcnJheQ=="
} ,
"ProposalCid" : null ,
"AddFundsCid" : null ,
"PublishCid" : null ,
"Miner" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"Client" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"State" : 42 ,
"PiecePath" : "" ,
"MetadataPath" : "" ,
"SlashEpoch" : 10101 ,
"FastRetrieval" : true ,
"Message" : "string value" ,
"FundsReserved" : "0" ,
"Ref" : {
"TransferType" : "string value" ,
"Root" : null ,
"PieceCid" : null ,
"PieceSize" : 1024 ,
"RawBlockSize" : 42
} ,
"AvailableForRetrieval" : true ,
"DealID" : 5432 ,
"CreationTime" : "0001-01-01T00:00:00Z" ,
"TransferChannelId" : {
"Initiator" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"Responder" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"ID" : 3
} ,
"SectorNumber" : 9 ,
"InboundCAR" : "string value"
}
BoostOfflineDealWithData
Perms: admin
Inputs:
Copy [
"07070707-0707-0707-0707-070707070707" ,
"string value" ,
true
]
Response:
Copy {
"Accepted" : true ,
"Reason" : "string value"
}
Log
LogList
Perms: write
Inputs: null
Response:
LogSetLevel
Perms: write
Inputs:
Copy [
"string value" ,
"string value"
]
Response: {}
Market
MarketGetAsk
Perms: read
Inputs: null
Response:
Copy {
"Ask" : {
"Price" : "0" ,
"VerifiedPrice" : "0" ,
"MinPieceSize" : 1032 ,
"MaxPieceSize" : 1032 ,
"Miner" : "f01234" ,
"Timestamp" : 10101 ,
"Expiry" : 10101 ,
"SeqNo" : 42
} ,
"Signature" : {
"Type" : 2 ,
"Data" : "Ynl0ZSBhcnJheQ=="
}
}
Net
ID
Perms: read
Inputs: null
Response: "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
NetAddrsListen
Perms: read
Inputs: null
Response:
Copy {
"ID" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"Addrs" : [
"/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior"
]
}
NetAgentVersion
Perms: read
Inputs:
Copy [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
Response: "string value"
NetAutoNatStatus
Perms: read
Inputs: null
Response:
Copy {
"Reachability" : 1 ,
"PublicAddrs" : [
"string value"
]
}
NetBandwidthStats
Perms: read
Inputs: null
Response:
Copy {
"TotalIn" : 9 ,
"TotalOut" : 9 ,
"RateIn" : 12.3 ,
"RateOut" : 12.3
}
NetBandwidthStatsByPeer
Perms: read
Inputs: null
Response:
Copy {
"12D3KooWSXmXLJmBR1M7i9RW9GQPNUhZSzXKzxDHWtAgNuJAbyEJ" : {
"TotalIn" : 174000 ,
"TotalOut" : 12500 ,
"RateIn" : 100 ,
"RateOut" : 50
}
}
NetBandwidthStatsByProtocol
Perms: read
Inputs: null
Response:
Copy {
"/fil/hello/1.0.0" : {
"TotalIn" : 174000 ,
"TotalOut" : 12500 ,
"RateIn" : 100 ,
"RateOut" : 50
}
}
NetBlockAdd
Perms: admin
Inputs:
Copy [
{
"Peers" : [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
] ,
"IPAddrs" : [
"string value"
] ,
"IPSubnets" : [
"string value"
]
}
]
Response: {}
NetBlockList
Perms: read
Inputs: null
Response:
Copy {
"Peers" : [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
] ,
"IPAddrs" : [
"string value"
] ,
"IPSubnets" : [
"string value"
]
}
NetBlockRemove
Perms: admin
Inputs:
Copy [
{
"Peers" : [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
] ,
"IPAddrs" : [
"string value"
] ,
"IPSubnets" : [
"string value"
]
}
]
Response: {}
NetConnect
Perms: write
Inputs:
Copy [
{
"ID" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"Addrs" : [
"/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior"
]
}
]
Response: {}
NetConnectedness
Perms: read
Inputs:
Copy [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
Response: 1
NetDisconnect
Perms: write
Inputs:
Copy [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
Response: {}
NetFindPeer
Perms: read
Inputs:
Copy [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
Response:
Copy {
"ID" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"Addrs" : [
"/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior"
]
}
NetLimit
Perms: read
Inputs:
Response:
Copy {
"Memory" : 9 ,
"Streams" : 123 ,
"StreamsInbound" : 123 ,
"StreamsOutbound" : 123 ,
"Conns" : 123 ,
"ConnsInbound" : 123 ,
"ConnsOutbound" : 123 ,
"FD" : 123
}
NetPeerInfo
Perms: read
Inputs:
Copy [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
Response:
Copy {
"ID" : "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf" ,
"Agent" : "string value" ,
"Addrs" : [
"string value"
] ,
"Protocols" : [
"string value"
] ,
"ConnMgrMeta" : {
"FirstSeen" : "0001-01-01T00:00:00Z" ,
"Value" : 123 ,
"Tags" : {
"name" : 42
} ,
"Conns" : {
"name" : "2021-03-08T22:52:18Z"
}
}
}
NetPeers
Perms: read
Inputs: null
Response:
Copy [
{
"ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
"Addrs": [
"/ip4/52.36.61.156/tcp/1347/p2p/12D3KooWFETiESTf1v4PGUvtnxMAcEFMzLZbJGg4tjWfGEimYior"
]
}
]
NetPing
Perms: read
Inputs:
Copy [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
Response: 60000000000
NetProtectAdd
Perms: admin
Inputs:
Copy [
[
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
]
Response: {}
NetProtectList
Perms: read
Inputs: null
Response:
Copy [
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
NetProtectRemove
Perms: admin
Inputs:
Copy [
[
"12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf"
]
]
Response: {}
NetPubsubScores
Perms: read
Inputs: null
Response:
Copy [
{
"ID": "12D3KooWGzxzKZYveHXtpG6AsrUJBcWxHBFS2HsEoGTxrMLvKXtf",
"Score": {
"Score": 12.3,
"Topics": {
"/blocks": {
"TimeInMesh": 60000000000,
"FirstMessageDeliveries": 122,
"MeshMessageDeliveries": 1234,
"InvalidMessageDeliveries": 3
}
},
"AppSpecificScore": 12.3,
"IPColocationFactor": 12.3,
"BehaviourPenalty": 12.3
}
}
]
NetSetLimit
Perms: admin
Inputs:
Copy [
"string value",
{
"Memory": 9,
"Streams": 123,
"StreamsInbound": 123,
"StreamsOutbound": 123,
"Conns": 123,
"ConnsInbound": 123,
"ConnsOutbound": 123,
"FD": 123
}
]
Response: {}
NetStat
Perms: read
Inputs:
Response:
Copy {
"System": {
"NumStreamsInbound": 123,
"NumStreamsOutbound": 123,
"NumConnsInbound": 123,
"NumConnsOutbound": 123,
"NumFD": 123,
"Memory": 9
},
"Transient": {
"NumStreamsInbound": 123,
"NumStreamsOutbound": 123,
"NumConnsInbound": 123,
"NumConnsOutbound": 123,
"NumFD": 123,
"Memory": 9
},
"Services": {
"abc": {
"NumStreamsInbound": 1,
"NumStreamsOutbound": 2,
"NumConnsInbound": 3,
"NumConnsOutbound": 4,
"NumFD": 5,
"Memory": 123
}
},
"Protocols": {
"abc": {
"NumStreamsInbound": 1,
"NumStreamsOutbound": 2,
"NumConnsInbound": 3,
"NumConnsOutbound": 4,
"NumFD": 5,
"Memory": 123
}
},
"Peers": {
"abc": {
"NumStreamsInbound": 1,
"NumStreamsOutbound": 2,
"NumConnsInbound": 3,
"NumConnsOutbound": 4,
"NumFD": 5,
"Memory": 123
}
}
}
Backup
OnlineBackup
There are not yet any comments for this method.
Perms: admin
Inputs:
Response: {}
PieceDirectory
PdBuildIndexForPieceCid
There are not yet any comments for this method.
Perms: admin
Inputs:
Response: {}
PdCleanup
Perms: admin
Inputs: null
Response: {}
PdRemoveDealForPiece
Perms: admin
Inputs:
Copy [
null,
"string value"
]
Response: {}