Skip to content

Forced sequencer dispatcher #81

Description

@kamikazechaser

Rarely, a node accepts a transaction but it isn't actually mined. This might indicate a network failure somewhere. There should be a secondary direct sequencer dispatcher that does first IN_NETWORK-1 nonce dispatch for all transaction from that origin account.

E.g. if account 1 has a IN_NETWORK nonce of 256, we force dispatch all transaction >= 255 again without checking the return HTTP status code.

To filter such transactions:

SELECT otx.id, otx.tracking_id, otx.otx_type, keystore.public_key, otx.raw_tx, otx.tx_hash, otx.nonce, otx.replaced, otx.created_at, otx.updated_at, dispatch.status FROM keystore
INNER JOIN otx ON keystore.id = otx.signer_account
INNER JOIN dispatch ON otx.id = dispatch.otx_id
WHERE dispatch.status NOT IN ('SUCCESS', 'REVERTED', 'PENDING', 'EXTERNAL_DISPATCH') AND otx.otx_type NOT IN ('GENERIC_SIGN', 'OTHER_MANUAL')
ORDER BY otx.id ASC LIMIT 100;

As of now, this is a minor issue. This should be part of a health check that runs every 5 min or so.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions