Skip to content

Dev Roadmap

Philipp Piwo edited this page Feb 28, 2018 · 37 revisions

DEPRECATED

general

  • check chainstate in transaction validity #10
  • remove transactions from pool on adding block #59
  • mining for number of cycles to allow fast suspending #60
  • write test-suites for basic blockchain #57 #58
  • increment transaction nonce for every outgoing transaction #70
  • add fee to transaction #83
  • check public key length in transaction validity #84
  • validate difficulty target #85
  • refactor chain to be map of blocks, traverse top to bottom #88
  • add lock time to transaction #125
  • replace key worker with elixir-wallet #132
  • make a min transaction fee mandantory and configurable per byte #131
  • make coinbase transaction time locked #138

sync

  • sync ping-pong example #41 #52
  • manually add peers #53
  • provide get all peers endpoint #78
  • provide get_info endpoint #69
  • periodic check for peers current block hash #77
  • broadcast new block to all peers #75
  • broadcast new transactions to all peers #68
  • provide get_block_by_hash endpoint #76
  • format addresses in json as base58 #86
  • continue mining on newest block, if received #80
  • ignore own peer in handling peers #79
  • implement initial sync from latest block to genesis block #97
  • endpoint to fetch balance from chainstate account #89
  • endpoint to get transactions from pool concerning account #90
  • add list of transactions concerning account to chainstate (block_hash, tx_hash) #91
  • endpoint to get transactions concerning account from chain #92
  • when being added by a new peer, try to add it as well #116
  • after adding a peer add his peers #111
  • move dead peer removal to sync worker #112
  • sync worker state functions #113
  • refactor serialization to be in aeutil #114
  • getting random peer from peers we connect to #115
  • implement nakamoto consensus, follow the latest valid chain #133

persistence

  • write blockchain and chainstate to disk on shutdown
  • read blockchain and chainstate from disk on startup
  • use rocksdb to read/write blocks by hash
  • use rocksdb to read/write chainstate by address/pubkey
  • lazy load data from rocksdb if needed

api

  • internal api functions protected by key (from env) to control node #134
Clone this wiki locally