Write a service that:
- Works together with a full BTC node.
- Extracts transactions in the form: input addresses A1, A2, ..., An sent each X1, X2, ...Xm BTC to
output addresses B1, B2, ..., Bk with a fee F with publication timestamp and first included block
stamp, first included blockId, transactionId.
- Extracts historical transactions from the blockchain in a batch operation.
- Publishes new transactions when 1) it receives them, 2) they are confirmed .
- Emits cancelations for transactions if they become incorrect (they spend an input that is already spent in the main chain) and cancelations of confirmation if the transaction is unconfirmed in the new main chain, but was confirmed in the previous main chain.
- Reemits transactions on main chain change (if it was canceled before).
- Writes transactions to disk sequentially (by published and confirmed stamps) in simple delimited files as Binary or JSON.
- Writes transactions to a database that provides efficient retrieval of all transactions that include an address.
- Writes balance of an address unconfirmed/confirmed.
- Provides a Websockets + JSON/Binary subscription API for unconfirmed/confirmed transactions.
- Provides a Websockets + JSON/Binary subscription API for unconfirmed/confirmed balance of
- Create an efficient binary format for transactions (e.g. protobuf) with an encoder and a decoder.
- Binary encoder/decoder as a separate github project.
- Github project.
Please provide your own quotes, the current price is a placeholder.