diff --git a/docs/docs/users/reports/api_conformance/report_2026-03-06.md b/docs/docs/users/reports/api_conformance/report_2026-03-06.md new file mode 100644 index 00000000000..81db73a9330 --- /dev/null +++ b/docs/docs/users/reports/api_conformance/report_2026-03-06.md @@ -0,0 +1,237 @@ +# 2026-03-06 - API Parity Report + +## Legend + +This report shows the status of Forest RPC methods compared to Lotus. + +- ✅ **Tested**: Method has conformance tests against Lotus and passes +- ➖ **Not tested**: Method is present in both Forest and Lotus but lacks conformance tests +- N/A: Forest-specific method (not in Lotus) + +**Note**: Methods without a ✅ are still fully functional in Forest but haven't been tested for conformance with Lotus, or are internal/deprecated methods. + +For a complete list of all available Forest RPC methods, see [Forest JSON-RPC API Documentation](https://docs.forest.chainsafe.io/reference/json-rpc/methods). + +| Method | Lotus-conformance check | +| ------------------------------------------------- | ----------------------- | +| `F3.ExportLatestSnapshot` | ➖ | +| `F3.Finalize` | ➖ | +| `F3.GetHead` | ➖ | +| `F3.GetParent` | ➖ | +| `F3.GetParticipatingMinerIDs` | ➖ | +| `F3.GetPowerTable` | ➖ | +| `F3.GetRawNetworkName` | ➖ | +| `F3.GetTipset` | ➖ | +| `F3.GetTipsetByEpoch` | ➖ | +| `F3.ProtectPeer` | ➖ | +| `F3.SignMessage` | ➖ | +| `Filecoin.AuthNew` | ✅ | +| `Filecoin.AuthVerify` | ➖ | +| `Filecoin.BeaconGetEntry` | ✅ | +| `Filecoin.ChainExport` | ➖ | +| `Filecoin.ChainGetBlock` | ✅ | +| `Filecoin.ChainGetBlockMessages` | ✅ | +| `Filecoin.ChainGetEvents` | ✅ | +| `Filecoin.ChainGetFinalizedTipSet` | ✅ | +| `Filecoin.ChainGetGenesis` | ✅ | +| `Filecoin.ChainGetMessage` | ✅ | +| `Filecoin.ChainGetMessagesInTipset` | ✅ | +| `Filecoin.ChainGetParentMessages` | ✅ | +| `Filecoin.ChainGetParentReceipts` | ✅ | +| `Filecoin.ChainGetPath` | ✅ | +| `Filecoin.ChainGetTipSet` | ✅ | +| `Filecoin.ChainGetTipSetAfterHeight` | ✅ | +| `Filecoin.ChainGetTipSetByHeight` | ✅ | +| `Filecoin.ChainHasObj` | ✅ | +| `Filecoin.ChainHead` | ✅ | +| `Filecoin.ChainReadObj` | ✅ | +| `Filecoin.ChainSetHead` | ✅ | +| `Filecoin.ChainStatObj` | ✅ | +| `Filecoin.ChainTipSetWeight` | ✅ | +| `Filecoin.EthAccounts` | ✅ | +| `Filecoin.EthAddressToFilecoinAddress` | ✅ | +| `Filecoin.EthBlockNumber` | ✅ | +| `Filecoin.EthCall` | ✅ | +| `Filecoin.EthChainId` | ✅ | +| `Filecoin.EthEstimateGas` | ✅ | +| `Filecoin.EthFeeHistory` | ✅ | +| `Filecoin.EthGasPrice` | ✅ | +| `Filecoin.EthGetBalance` | ✅ | +| `Filecoin.EthGetBlockByHash` | ✅ | +| `Filecoin.EthGetBlockByNumber` | ✅ | +| `Filecoin.EthGetBlockReceipts` | ✅ | +| `Filecoin.EthGetBlockReceiptsLimited` | ✅ | +| `Filecoin.EthGetBlockTransactionCountByHash` | ✅ | +| `Filecoin.EthGetBlockTransactionCountByNumber` | ✅ | +| `Filecoin.EthGetCode` | ✅ | +| `Filecoin.EthGetFilterChanges` | ✅ | +| `Filecoin.EthGetFilterLogs` | ✅ | +| `Filecoin.EthGetLogs` | ✅ | +| `Filecoin.EthGetMessageCidByTransactionHash` | ✅ | +| `Filecoin.EthGetStorageAt` | ✅ | +| `Filecoin.EthGetTransactionByBlockHashAndIndex` | ✅ | +| `Filecoin.EthGetTransactionByBlockNumberAndIndex` | ✅ | +| `Filecoin.EthGetTransactionByHash` | ✅ | +| `Filecoin.EthGetTransactionByHashLimited` | ✅ | +| `Filecoin.EthGetTransactionCount` | ✅ | +| `Filecoin.EthGetTransactionHashByCid` | ✅ | +| `Filecoin.EthGetTransactionReceipt` | ✅ | +| `Filecoin.EthGetTransactionReceiptLimited` | ✅ | +| `Filecoin.EthMaxPriorityFeePerGas` | ✅ | +| `Filecoin.EthNewBlockFilter` | ✅ | +| `Filecoin.EthNewFilter` | ✅ | +| `Filecoin.EthNewPendingTransactionFilter` | ✅ | +| `Filecoin.EthProtocolVersion` | ✅ | +| `Filecoin.EthSendRawTransaction` | ➖ | +| `Filecoin.EthSendRawTransactionUntrusted` | ➖ | +| `Filecoin.EthSubscribe` | ➖ | +| `Filecoin.EthSyncing` | ✅ | +| `Filecoin.EthTraceBlock` | ✅ | +| `Filecoin.EthTraceFilter` | ✅ | +| `Filecoin.EthTraceReplayBlockTransactions` | ✅ | +| `Filecoin.EthTraceTransaction` | ✅ | +| `Filecoin.EthUninstallFilter` | ✅ | +| `Filecoin.EthUnsubscribe` | ➖ | +| `Filecoin.F3GetCertificate` | ✅ | +| `Filecoin.F3GetECPowerTable` | ✅ | +| `Filecoin.F3GetF3PowerTable` | ✅ | +| `Filecoin.F3GetF3PowerTableByInstance` | ➖ | +| `Filecoin.F3GetLatestCertificate` | ✅ | +| `Filecoin.F3GetManifest` | ✅ | +| `Filecoin.F3GetOrRenewParticipationTicket` | ✅ | +| `Filecoin.F3GetProgress` | ✅ | +| `Filecoin.F3IsRunning` | ✅ | +| `Filecoin.F3ListParticipants` | ✅ | +| `Filecoin.F3Participate` | ➖ | +| `Filecoin.FilecoinAddressToEthAddress` | ✅ | +| `Filecoin.GasEstimateFeeCap` | ➖ | +| `Filecoin.GasEstimateGasLimit` | ✅ | +| `Filecoin.GasEstimateGasPremium` | ➖ | +| `Filecoin.GasEstimateMessageGas` | ✅ | +| `Filecoin.GetActorEventsRaw` | ✅ | +| `Filecoin.MarketAddBalance` | ➖ | +| `Filecoin.MinerCreateBlock` | ✅ | +| `Filecoin.MinerGetBaseInfo` | ✅ | +| `Filecoin.MpoolBatchPush` | ➖ | +| `Filecoin.MpoolBatchPushUntrusted` | ➖ | +| `Filecoin.MpoolGetNonce` | ✅ | +| `Filecoin.MpoolPending` | ✅ | +| `Filecoin.MpoolPush` | ➖ | +| `Filecoin.MpoolPushMessage` | ➖ | +| `Filecoin.MpoolPushUntrusted` | ➖ | +| `Filecoin.MpoolSelect` | ✅ | +| `Filecoin.MsigGetAvailableBalance` | ✅ | +| `Filecoin.MsigGetPending` | ✅ | +| `Filecoin.MsigGetVested` | ✅ | +| `Filecoin.MsigGetVestingSchedule` | ✅ | +| `Filecoin.NetAddrsListen` | ✅ | +| `Filecoin.NetAgentVersion` | ✅ | +| `Filecoin.NetAutoNatStatus` | ✅ | +| `Filecoin.NetConnect` | ➖ | +| `Filecoin.NetDisconnect` | ➖ | +| `Filecoin.NetFindPeer` | ➖ | +| `Filecoin.NetListening` | ✅ | +| `Filecoin.NetPeers` | ✅ | +| `Filecoin.NetProtectAdd` | ✅ | +| `Filecoin.NetProtectList` | ✅ | +| `Filecoin.NetProtectRemove` | ✅ | +| `Filecoin.NetVersion` | ✅ | +| `Filecoin.NodeStatus` | ➖ | +| `Filecoin.Session` | ✅ | +| `Filecoin.Shutdown` | ➖ | +| `Filecoin.StartTime` | ✅ | +| `Filecoin.StateAccountKey` | ✅ | +| `Filecoin.StateCall` | ✅ | +| `Filecoin.StateCirculatingSupply` | ✅ | +| `Filecoin.StateCompute` | ✅ | +| `Filecoin.StateDealProviderCollateralBounds` | ✅ | +| `Filecoin.StateDecodeParams` | ✅ | +| `Filecoin.StateGetActor` | ✅ | +| `Filecoin.StateGetAllAllocations` | ✅ | +| `Filecoin.StateGetAllClaims` | ✅ | +| `Filecoin.StateGetAllocation` | ✅ | +| `Filecoin.StateGetAllocationForPendingDeal` | ✅ | +| `Filecoin.StateGetAllocationIdForPendingDeal` | ✅ | +| `Filecoin.StateGetAllocations` | ✅ | +| `Filecoin.StateGetBeaconEntry` | ✅ | +| `Filecoin.StateGetClaim` | ✅ | +| `Filecoin.StateGetClaims` | ✅ | +| `Filecoin.StateGetID` | ✅ | +| `Filecoin.StateGetNetworkParams` | ✅ | +| `Filecoin.StateGetRandomnessDigestFromBeacon` | ✅ | +| `Filecoin.StateGetRandomnessDigestFromTickets` | ✅ | +| `Filecoin.StateGetRandomnessFromBeacon` | ✅ | +| `Filecoin.StateGetRandomnessFromTickets` | ✅ | +| `Filecoin.StateGetReceipt` | ➖ | +| `Filecoin.StateListActors` | ✅ | +| `Filecoin.StateListMessages` | ✅ | +| `Filecoin.StateListMiners` | ✅ | +| `Filecoin.StateLookupID` | ✅ | +| `Filecoin.StateLookupRobustAddress` | ✅ | +| `Filecoin.StateMarketBalance` | ✅ | +| `Filecoin.StateMarketDeals` | ✅ | +| `Filecoin.StateMarketParticipants` | ✅ | +| `Filecoin.StateMarketStorageDeal` | ✅ | +| `Filecoin.StateMinerActiveSectors` | ✅ | +| `Filecoin.StateMinerAllocated` | ✅ | +| `Filecoin.StateMinerAvailableBalance` | ✅ | +| `Filecoin.StateMinerDeadlines` | ✅ | +| `Filecoin.StateMinerFaults` | ✅ | +| `Filecoin.StateMinerInfo` | ✅ | +| `Filecoin.StateMinerInitialPledgeCollateral` | ✅ | +| `Filecoin.StateMinerInitialPledgeForSector` | ✅ | +| `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.StateSearchMsgLimited` | ✅ | +| `Filecoin.StateSectorExpiration` | ✅ | +| `Filecoin.StateSectorGetInfo` | ✅ | +| `Filecoin.StateSectorPartition` | ✅ | +| `Filecoin.StateSectorPreCommitInfo` | ✅ | +| `Filecoin.StateVMCirculatingSupplyInternal` | ✅ | +| `Filecoin.StateVerifiedClientStatus` | ✅ | +| `Filecoin.StateVerifiedRegistryRootKey` | ✅ | +| `Filecoin.StateVerifierStatus` | ✅ | +| `Filecoin.StateWaitMsg` | ✅ | +| `Filecoin.SyncCheckBad` | ➖ | +| `Filecoin.SyncMarkBad` | ➖ | +| `Filecoin.SyncSubmitBlock` | ➖ | +| `Filecoin.Version` | ✅ | +| `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` | ✅ | +| `Filecoin.Web3ClientVersion` | ✅ | +| `Forest.ChainExport` | N/A (Forest-specific) | +| `Forest.ChainExportCancel` | N/A (Forest-specific) | +| `Forest.ChainExportDiff` | N/A (Forest-specific) | +| `Forest.ChainExportStatus` | N/A (Forest-specific) | +| `Forest.ChainGetMinBaseFee` | N/A (Forest-specific) | +| `Forest.ChainGetTipsetByParentState` | N/A (Forest-specific) | +| `Forest.EthTraceCall` | N/A (Forest-specific) | +| `Forest.NetInfo` | N/A (Forest-specific) | +| `Forest.SnapshotGC` | N/A (Forest-specific) | +| `Forest.StateActorInfo` | N/A (Forest-specific) | +| `Forest.StateCompute` | N/A (Forest-specific) | +| `Forest.StateFetchRoot` | N/A (Forest-specific) | +| `Forest.SyncSnapshotProgress` | N/A (Forest-specific) | +| `Forest.SyncStatus` | N/A (Forest-specific) |