You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First part of tracing is present in transaction_tracer.nim -- Fully implemented in tracer.nim
Debug/trace RPCs (selection of these to be implemented)
getClientInfo
setChainParams
setHead -- Implemented.
snapshot
addBlock
rewindToBlock
modifyTimestamp
increaseTime
mineBlocks
exportChain
importRawBlock
ethcallsigs.nim
Update rest of signatures to match RPC and use eth_common types where possible.
Testing
test_generalstate_json.nim
testFixtureIndexes: Use caching db/transactions for call/subcalls. This might be automatically handled in mutateStateDB itself? -- call/subcall pass all test.
Nimbus 1.0 TODO
Summary
Meta-issue of the currently known work remaining to reach 1.0.
Chain, State & VM
Call
&Create
) (See Finish the CALL* instructions implementation #121 and Implement dispatching to forked ops #123)transaction pending
poolCall
/Create
, needs to be integrated for other VM components)Networking, P2P & LES
49,439
)Misc
Missing Important Functionality
getBlockBody
getBlockTransactionHashes
processTransaction
must run VMexecuteTransaction
addTransaction
generateHeaderFromParentHeader
difficulty calculation & datahandleLostPeer
TODO by unit
Client interface
nimbus.nim
sqlite_backend.nim
Chain & State
db_chain.nim
getBlockBody
(reads block body from hash)getBlockTransactionHashes
(iterates over transaction hashes for specified block)setAsCanonicalChainHead
doesn't re-add transaction to internal pending pool if local senderstate_db.nim
-- Implemented via ReadOnlyStateDB.newAccountStateDB
ignores the read only flag.AccountStateDB.rootHash= No way to set roothash-- Implemented.genesis.nim
chain.nim
-- Done.processTransaction
needs to run the VM for a contract call, perhaps needs refactoring to use computationvm_state_transitions.nim
.
duplication of computation processes, eg in-- Merged intoexecComputation
,applyCreateTransaction
, several comments for refactoringsetupComputation
executeTransaction
addTransaction
vm_state.nim
mutateStateDB
:header.nim
generateHeaderFromParentHeader
:code_stream.nim
computation.nim
-- Implemented asgetAccountsForDeletion
has TODO comment though seems implementedaccountsForDeletion
iterator.Stub:-- Implemented ingetLogEntries
execComputation
asaddLogs
callgas_costs.nim
gasCosts
needs logging? Thought logging was implemented? This TODO might need removing.-- Done.prefix all_but_one_64th
needs to be deactivated pre-EIP150prefix gasCall
:Pre-EIP158 question on zero value call costs-- No cost.Stub:-- Implemented.prefix gasSelfDestruct
opcodes_impl.nim
Request for tests for-- see test_op_env.CallDataCopy
andCodeCopy
returnDataCopy
uncertainty over checking length < 64-- Implemented.Create
: Implement other fork changes for Homestead and forwardCall
:Stub for parameters-- Implemented.c_isNewAccount
,c_memOffset
andc_memLength
-- it works now.ReturnDataSize
,ReturnDataCopy
not working in 32 bit-- Implemented.SelfDestruct
: Implement other fork changes, particularly EIP150 and EIP161transaction_tracer.nim
Log storage-- Implemented.transaction.nim
intrinsicGas
precompiles.nim
modExp
:-- Implemented.bn256ecAdd
,bn256ecMul
,bn256ecPairing
: Gas consumptionRPC
p2p.nim
Pending tag -> for referencing pending blocks (pending pool is not implemented)
eth_syncing requires peer pool and further work
populateReceipt needs fleshing out to get contract address and respond to success/failure
Missing or incomplete implementations for VM:
eth_sendTransaction
eth_sendRawTransaction
eth_call
eth_accounts
eth_estimateGas
eth_gasPrice
Missing implementations for filters (filtering is not implemented):
eth_newFilter
eth_newBlockFilter
eth_newPendingTransactionFilter
eth_uninstallFilter
eth_getFilterChanges
eth_getFilterLogs
eth_getLogs
Missing implementations for invoking mining (see: https://github.com/status-im/nim-ethash)
eth_mining
eth_hashrate
eth_gasPrice
eth_getWork
eth_submitWork
eth_submitHashrate
whisper.nim
shh_version
shh_info
shh_setMaxMessageSize
shh_setMinPoW
shh_markTrustedPeer
shh_newKeyPair
shh_addPrivateKey
shh_deleteKeyPair
shh_hasKeyPair
shh_getPublicKey
shh_getPrivateKey
shh_newSymKey
shh_addSymKey
shh_generateSymKeyFromPassword
shh_hasSymKey
shh_getSymKey
shh_deleteSymKey
shh_subscribe
shh_unsubscribe
shh_newMessageFilter
shh_deleteMessageFilter
shh_getFilterMessages
shh_post
RPC Debugging (needs new module) (See #113 and https://github.com/ethereum/retesteth/wiki/RPC-Methods)
First part of tracing is present in-- Fully implemented intransaction_tracer.nim
tracer.nim
getClientInfo
setChainParams
-- Implemented.setHead
snapshot
addBlock
rewindToBlock
modifyTimestamp
increaseTime
mineBlocks
exportChain
importRawBlock
ethcallsigs.nim
eth_common
types where possible.Testing
test_generalstate_json.nim
-- call/subcall pass all test.testFixtureIndexes
: Use caching db/transactions for call/subcalls. This might be automatically handled inmutateStateDB
itself?test_vm_json.nim
Current testing suite should only support Homestead (See Test suite: VMTests are only for Homestead, blockNumber-fork mapping should be ignored #64)-- fixes #64 test_vm_json now support all forks #373test_memory.nim
write rejects invalid size
Deactivated due to no POW support in stint, which should now be presentwrite rejects invalid position
needs updating/uncommentingtest_opcode.nim
Only-- remove tests/test_opcode.nim #369add
tested! Rest are TODOtest_precompiles.nim
test_rpc.nim
eth_getBalance
, implement tests for all RPCs.External/Modules TODO
P2P
blockchain_sync.nim
handleLostPeer
mock_peers.nim
peer_pool.nim
stopAllPeers
Light client
les_protocol.nim
les_types.nim
startReqCostVal
Eth Common
eth_types.nim
genesisHash
getBlockHeader
(notegetBlockHeader
indb_chain.nim
)getBestBlockHeader
getSuccessorHeader
getBlockBody
getReceipt
(note implementedgetReceipts
iterator indb_chain.nim
)getStateDb
getCodeByHash
getSetting
setSetting
getHeaderProof
getProof
getHelperTrieProof
getTransactionStatus
(note implementedgetBlockTransactions
indb_chain.nim
)addTransactions
(note implementedgetBlockTransactions
indb_chain.nim
)persistBlocks
(notepersistHeaderToDb
inchain.nim
)The text was updated successfully, but these errors were encountered: