Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: send block transactions before sending the blocks #12

Merged
merged 1 commit into from
Jun 17, 2021

Conversation

andreabadesso
Copy link
Collaborator

This is needed so we can recover from a forced restart (on daemon service upgrade for instance)

If we send the blocks first as we were doing and the service crashed or were killed by an update before the transactions it confirmed were sent to the wallet-service, the next time the service starts would start from the next block, ignoring the transactions from the latest one.

With this PR, we will send the transactions before sending the blocks, this way, the next time the daemon starts after a crash/upgrade, it will re-send the transactions from the latest block (they will be ignored from the wallet-service as they are already on the database).

@andreabadesso andreabadesso requested review from pedroferreira1, msbrogli and r4mmer and removed request for pedroferreira1 and msbrogli June 17, 2021 17:17
@andreabadesso andreabadesso self-assigned this Jun 17, 2021
@andreabadesso andreabadesso merged commit 333ad21 into dev Jun 17, 2021
r4mmer added a commit that referenced this pull request Jul 1, 2021
* origin/dev:
  refactor: sending transactions before blocks (#12)
  feat: handle reorg on the daemon (#7)
andreabadesso added a commit that referenced this pull request Sep 30, 2021
* feat: initial commit

* chore: removed .env from git

* chore: removed size.yml github action (came from tsdx template)

* fix: added missing attributes to PreparedTx type

* feat: typed yield result from generator

* fix: token creation tx was not sending token_name and token_symbol

* fix: send transactions in topological order (#9)

* fix: send transactions in topological order (using the timestamp to order)

* tests: removed extra spentBy on block api response

* feat: handle reorg on the daemon (#7)

* chore: empty commit

* chore: empty commit

* feat: invoking onHandleReorgRequest on reorg state

* fix: possible infinite loop on circular parents on transactions

* feat: handling reorg on generator yield

* chore: logging errors properly

* chore: passing eslint

* refactor: logging reorg fail as error

* docs: added comment explaining the seen list on the recursivelyDownloadTxs method

* tests: fixed tests

* refactor: setting state as reorg when our best block is not found on the wallet-service

* refactor: returning the lambda invoke on invokeReorg and sendTx methods

* chore: added more details to error log on lambda call

* refactor: sending transactions before blocks (#12)

* feat: sync mempool (#11)

feat: sync mempool

* fix: using decoded to get token uid (#14)

* chore: pre-deploy adjustments (#13)

* fix: broken Dockerfile
chore: create Makefile and script to build and push Docker image
refactor: change name of some env vars

* refactor: Make sure the script fails if a command fails

* fix: ignoring NFT transaction outputs with undecoded scripts (#15)

* feat: validating tx outputs before sending transactions

* refactor: ignoring output instead of whole transaction

* chore: logging ignored tx output index

* feat: websocket conn error log (#17)

* chore: upgraded hathor-wallet-lib to 0.20.3

* feat: logging error messages on websocket connection

* refactor: logging connection attempts as INFO instead of ERROR

* fix: send height on transactions (#18)

* chore: updated lodash

* chore: improved logs

* fix: sending height on every block transaction

* refactor: send NFT outputs to wallet-service (#20)

* refactor: invalid nft output is now being validated on the wallet-service

* fix: lint passing (#21)

* chore: passing lint

* chore: added eslintrc to automatically detect carriage returns

* chore: passing NODE_OPTIONS as env variable globally on workflow

* chore: using generated eslintrc.js

* fix: validating decoded data before trying to get the token data (#22)

* fix: validating decoded data before trying to get the token data

* chore: lint

* ci: configure automated deployment (#19)

* ci: configure automated deploy

* send message to Slack

* send message only in case of deploy

* feat: added ALERT string to critical failure logs (#23)

* fix: deploy of docker images (#24)

* chore: added log on connection error (to fullnode) (#25)

* chore: bumped to v1.0.0-alpha (#28)

Co-authored-by: André Carneiro <[email protected]>
Co-authored-by: Luis Helder <[email protected]>
@andreabadesso andreabadesso deleted the refactor/transactions-first branch February 22, 2024 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants