Skip to content
Roy Lee edited this page Nov 2, 2022 · 17 revisions

RPC availability

We're in the process of retiring lbrycrd with lbcd and lbcwallet. So the current priority is the APIs in use by existing users (software, service, partners) that integrate with lbrycrd. Each user will have an epic issue tracking the readiness of APIs they use.

Markers:

  • 'x': supported
  • '*': partially supported, or issues pending
  • '-': won't support

Claimtrie (lbry only APIs)

Method Server Client Notes or Issues
claimname - -
getclaimbyid x x
getclaimsforname x x
getclaimsfornamebyid x x
getclaimsfornamebyseq x x
getclaimsfortx - -
getnameproof
getnamesintrie - -
getvalueforname - -

Blockchain

Method Server Client Notes or Issues
getbestblockhash x x
getblock x x #52
getblockchaininfo x x
getblockcount x x
getblockfilter
getblockhash x x
getblockheader x x #58
getblockstats x x
getchaintips x x
getchaintxstats
getdifficulty x x
getmempoolancestors
getmempooldescendants
getmempoolentry * x #59
getmempoolinfo * x #60
getrawmempool x x #22
gettxout x x
gettxoutproof
gettxoutsetinfo x
preciousblock x
pruneblockchain - - Won't support.
savemempool
scantxoutset
verifychain x x
verifytxoutproof x

Control

Method Server Client Notes or Issues
getmemoryinfo
getrpcinfo
help x x
logging
stop x x
uptime x x

Generating

Method Server Client Notes or Issues
generateblock
generatetoaddress x x
generatetodescriptor
generate x x

Mining

Method Server Client Notes or Issues
getblocktemplate x x
getmininginfo x x #64
getnetworkhashps x x
prioritisetransaction
submitblock x x
submitheader

Network

Method Server Client Notes or Issues
addnode x x
clearbanned x x #85
disconnectnode
getaddednodeinfo x x
getconnectioncount x x
getnettotals * *
getnetworkinfo x x
getnodeaddresses
getpeerinfo x x #65
listbanned x x #85
ping x x
setban x x #85
setnetworkactive

Raw Transactions

Method Server Client Notes or Issues
analyzepsbt
combinepsbt
combinerawtransaction
converttopsbt
createpsbt
createrawtransaction x x #35
decodepsbt
decoderawtransaction x x
decodescript x x
finalizepsbt
fundrawtransaction x
getrawtransaction x x
joinpsbts
sendrawtransaction x x
signrawtransactionwithkey #63
testmempoolaccept
utxoupdatepsbt

Util

Method Server Client Notes or Issues
createmultisig x x
deriveaddresses x
estimatesmartfee x x
getdescriptorinfo
getindexinfo
signmessagewithprivkey
validateaddress x x
verifymessage x x

Wallet

Accounts vs labels

lbcwallet implements HD wallets related BIPs (39, 43, 44, 84) while bitcoin-core only implements BIP-39. So lbcwallet provides the "account" concept, which maps to the account in BIP 44 hdpath (m/purpose'/coin'/account'/branch/index). This is a good design feature.

On the other hand, lbcwallet doesn't implement transaction label, and address label. In those RPC that leverage either of these labels, lbcwallet use account to mimic it. This doesn't work in all cases though.

We should implement both labels, and restore the "label" semantic in those RPC for compatibility.

Method Server Client Notes or Issues
abandontransaction
abortrescan
addmultisigaddress x x
backupwallet x
bumpfee
createwallet
dumpprivkey x x
dumpwallet x
encryptwallet x
getaddressesbylabel
getaddressinfo x x
getbalance x x
getbalances x
getnewaddress x x
getrawchangeaddress x x
getreceivedbyaddress x x
getreceivedbyaccount(lbcwallet extension) x x
getreceivedbylabel
gettransaction x x
getunconfirmedbalance x Only supported via websocket
getwalletinfo x #55
importaddress x
importdescriptors
importmulti x
importprivkey x x
importprunedfunds
importpubkey x
importwallet x
keypoolrefill - - Won't support
listaddressgroupings x
listlabels
listlockunspent x x
listreceivedbyaddress x x
listreceivedbyaccount(lbcwallet extension) x x
listreceivedbylabel x
listsinceblock x x
listtransactions * x labels / accounts issue
listunspent * x #61
listwalletdir
listwallets
loadwallet
lockunspent x x
psbtbumpfee
removeprunedfunds
rescanblockchain x x
send
sendfrom (lbcwallet extension) x x
sendmany * x
sendtoaddress x x
sethdseed
setlabel
settxfee * x Currently mocked with a no-op handler.
setwalletflag
signmessage x x
signrawtransaction x x Will be obsoleted by signrawtransactionwithwallet and signrawtransaction withkey
signrawtransactionwithwallet #62
unloadwallet x
upgradewallet
walletcreatefundedpsbt
walletlock x x
walletpassphrase x x
walletpassphrasechange x x
walletprocesspsbt