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

merge stacks signers into develop #700

Draft
wants to merge 30 commits into
base: develop
Choose a base branch
from
Draft

merge stacks signers into develop #700

wants to merge 30 commits into from

Conversation

rafaelcr
Copy link
Collaborator

No description provided.

rafaelcr and others added 30 commits October 16, 2024 08:25
Changes how redis tests are performed so they run with a dockerized
integration environment instead of relying on a local `redis-server`
install controlled via Rust code.

Adds tasks and launch configs to VScode so they are easier to launch and
adjusts the CI to use it as well.
Starts listening to the new `/stackerdb_chunks` Stacks node event and
parses the incoming message. Parsers are taken from the `stacks_codec`
crate, which has been updated with the latest serializers.

For future PRs:
* Start integrating the signer messages into the predicates framework
* Store signer messages in a local SQLite DB for replay
* Expand unit tests to include full Stacks node integration tests

---------

Co-authored-by: Matthew Little <[email protected]>
Expands the TS client to include new signer messages, and adds missing
`signer_bitvec` and `signer_signatures` fields to block metadata.
Fixes the `slot_id` and `slot_version` field sizes so the signer pubkey
is calculated correctly
Creates a local sqlite DB for signer messages (`stacks_signers.sqlite`)
and stores all messages in it so we can later retrieve them via
predicate scans.
## [1.9.0-stacks-signers.1](v1.8.0...v1.9.0-stacks-signers.1) (2024-10-25)

### Features

* add various new nakamoto block fields to `/new_block` ingestion and `StacksPayload` ([#659](#659)) ([f48cda5](f48cda5))
* include recovered signer pubkeys in new block payload ([#662](#662)) ([b5ad4ba](b5ad4ba))
* include signer messages in Stacks predicate payloads ([#656](#656)) ([aee14bc](aee14bc))
* parse `/stackerdb_chunks` Stacks node event ([#653](#653)) ([e44d84a](e44d84a))
* store signer messages in local sqlite database ([#664](#664)) ([d12acd9](d12acd9))
* support tenure-height in block messages ([#661](#661)) ([99e5a61](99e5a61))
* **ts-client:** add persisted predicates and periodic health check ([#658](#658)) ([535226a](535226a))
* **ts-client:** add signer messages to stacks payloads ([#657](#657)) ([ff66bb2](ff66bb2))

### Bug Fixes

* add a configurable max timeout for outgoing predicate payload requests ([#642](#642)) ([6c1dfa9](6c1dfa9)), closes [#643](#643)
* increase stacks event server body size limit to 500MB ([#660](#660)) ([21234c9](21234c9))
* return 500 status code to Stacks node when event ingestion fails ([#648](#648)) ([63c753c](63c753c)), closes [#646](#646)
* signer pubkey calculation ([#665](#665)) ([cc93873](cc93873))
* update SignerMessage deserializing ([#663](#663)) ([71364c1](71364c1))
* validate ts client predicates before registering ([#639](#639)) ([2d08f72](2d08f72))
## [1.9.0-stacks-signers.2](v1.9.0-stacks-signers.1...v1.9.0-stacks-signers.2) (2024-10-25)

### Features

* add mock signer message support ([#669](#669)) ([ad5fd54](ad5fd54))
## [1.9.0-stacks-signers.3](v1.9.0-stacks-signers.2...v1.9.0-stacks-signers.3) (2024-10-25)

### Features

* add mock signature pubkey ([#670](#670)) ([c414d79](c414d79))
## [1.9.0-stacks-signers.4](v1.9.0-stacks-signers.3...v1.9.0-stacks-signers.4) (2024-10-25)

### Bug Fixes

* bump stacks codec ([3c117b5](3c117b5))
## [1.9.0-stacks-signers.5](v1.9.0-stacks-signers.4...v1.9.0-stacks-signers.5) (2024-10-25)

### Bug Fixes

* mock signature retrieval ([#671](#671)) ([8bb59c1](8bb59c1))
Workaround for bug in stacks-core event emitter http code. Regression in
stacks-core where http requests must now have their POST body read
before closing the connection.

```
chainhook-1    | {"msg":"POST /drop_mempool_tx","level":"DEBUG","ts":"2024-10-30T10:41:34.030361652Z"}
stacks-node-1  | WARN [1730284894.031170] [testnet/stacks-node/src/event_dispatcher.rs:496] [relayer-http://0.0.0.0:20443/] Event dispatcher: connection or request failed to chainhook:20455 - Custom { kind: Other, error: "Failed to send 8192 bytes: \"Failed to send socket data\"" }, backoff: 158.191s, attempts: 10
```


Chainhook ignored some events by returning a 200 http response and
closing the connection after reading the http request headers, and
ignoring the request body.
## [1.9.0-stacks-signers.6](v1.9.0-stacks-signers.5...v1.9.0-stacks-signers.6) (2024-10-31)

### Bug Fixes

* read stacks-core http event POST payloads for ignored events ([#673](#673)) ([a01470e](a01470e))
## [1.9.0-stacks-signers.7](v1.9.0-stacks-signers.6...v1.9.0-stacks-signers.7) (2024-11-07)

### Bug Fixes

* propagate error when trying to store peer info ([1bc949a](1bc949a))
Also, remove the old code that attempted to re-import a TSV every 32
Stacks blocks

Fixes #677
## [1.9.0-stacks-signers.8](v1.9.0-stacks-signers.7...v1.9.0-stacks-signers.8) (2024-11-12)

### Bug Fixes

* only import stacks tsv if chainstate is empty ([#684](#684)) ([1f9f37e](1f9f37e)), closes [#677](#677)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🆕 New
Development

Successfully merging this pull request may close these issues.

4 participants