Skip to content
This repository has been archived by the owner on Jun 6, 2024. It is now read-only.

Node architecture #468

Open
4 of 8 tasks
oleganza opened this issue Jun 10, 2020 · 0 comments
Open
4 of 8 tasks

Node architecture #468

oleganza opened this issue Jun 10, 2020 · 0 comments

Comments

@oleganza
Copy link
Contributor

oleganza commented Jun 10, 2020

Node consists of several independent tasks:

  1. BC: Blockchain state machine with its network-agnostic interface for processing blocks and supplying notifications about new transactions.
  2. P2P: network component that manages the peers and communicates with the BC.
  3. API: warp-powered JSON/RPC interface that provides API for submitting txs, querying network status etc. Communicates with BC and P2P.
  4. UI: warp-powered UI available on 127.0.0.1 for local operations: viewing the blockchain, crafting transactions. Communicates with BC and P2P.

Checklist

  • wallet: new format (node/wallet: new module for handling accounts and spendable utxos #473)
    • review the state machine for the utxos: incoming, outgoing, confirmed txs, unconfirmed txs.
    • persist unconfirmed txs, retry adding them to the mempool on start, clear when they are confirmed.
    • save/load wallet state from a file (json-encoded or w/e) - we can switch to a more PITA sqlite later.
  • ui: new navigation in the header (instead of sidebar) - so it scales better for various device sizes.
  • ui: init blockchain by creating 1'000'000 default units in a default account in the wallet. These can be used to make new transactions later.
  • p2p: make sure the hello message includes the network's genesis block hash, to make sure both nodes communicate on the same ledger.
  • blockchain: store utreexo state in one file, and blocks in a separate folder for serving to the other nodes.
@oleganza oleganza changed the title node architecture [draft] Node architecture Jul 17, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant