Commit Graph

36 Commits

Author SHA1 Message Date
Riordan Panayides 0d41c04de5 Snapshot all program ids in fills 2023-01-19 02:44:54 +00:00
Riordan Panayides 393e10c440 Disable serum fill change/drop detection, rename connector metrics 2023-01-18 19:39:53 +00:00
Riordan Panayides 464946dc16 Switch mack to mango-v4/dev, add dedup queue metric, fix orderbook checkpoint 2023-01-05 20:18:56 +00:00
Riordan Panayides 49bcdeee77 Use new geyser plugin, add orderbook service 2022-12-16 11:00:42 +00:00
Riordan Panayides e2729306b8 cargo fmt 2022-10-07 11:46:19 +01:00
Riordan Panayides 2881378b7f Refactor metrics 2022-10-07 11:44:53 +01:00
Riordan Panayides 1d1f462cf6 Rename count metrics 2022-10-06 01:33:07 +01:00
riordanp 2f09d0a8f2
Add docker build and fly deployment actions (#2)
* Test dockerfile with caching

* Fix action

* Remove tags

* Use sccache release

* Use max mode

* idk

* Try no runtime build

* Use cargo-chef

* Test rebuild

* Revert "Test rebuild"

This reverts commit d7e1654c63.

* Publish image to GCR

* Trigger build

* Read config from env

* Fix typo

* Bind to correct address

* Lint

* Add fly config

* Switch trigger branch to main

* Use both common branch names
2022-09-20 23:01:24 +02:00
Riordan Panayides 3dfb430416 Add zstd decoding 2022-08-25 11:51:38 +01:00
Riordan Panayides f39fcdfba9 Fix lib for 1.10 compatibility 2022-08-24 13:47:16 +01:00
Christian Kamm c2f0c0ac05 Fix write_version sanity checking for 1.9
In 1.9, the write_version will no longer be strictly monotonic across
accounts.
2022-03-28 15:37:53 +02:00
Christian Kamm cdf6d54156 Config: Separate out source config
We want to be able to not have a postgres target
2022-03-23 08:51:17 +01:00
Christian Kamm 42f07d58a6 Keep slot, write_version etc as u64, convert only for postgres
This makes the conversion to i64 something that's local to the postgres
target, and doesn't affect unrelated code.
2022-03-23 08:18:02 +01:00
Christian Kamm 83e9c54fc0 Fix talking to older plugins
The previous commit only looked like it worked due to stale generated
code.
2022-03-23 08:16:02 +01:00
Christian Kamm 2b1bf634c7 grpc proto: Change back to AccountsDb name to avoid incompatibility
Existing plugin deployments must continue to work with the new version
of the connector.
2022-03-22 12:54:38 +01:00
Linus Kendall b6cefddef2 Compatibility fixes for 1.9
- Renamed to geyser everywhere and updated the crates
- Changed FullRpcClient to AccountsDataClient
2022-03-22 08:36:59 +00:00
Christian Kamm f25c49d983 Configurable max account write queue size 2022-03-16 11:04:30 +01:00
Christian Kamm 80423fdac9 Track "is_selected" to denote closed/reused accounts 2022-01-28 10:12:01 +01:00
Christian Kamm 3f242aa3b6 Fix startup issue around rooted slots 2022-01-04 10:14:30 +01:00
Christian Kamm f0c26bb8fb Fix write_version from multiple servers and startup
Each node has an internal write_version counter. To deduplicate events
and produce a consistent database snapshot independent of the internal
count, we map it a per-slot-and-pubkey write version.

To do this correctly, we can only process account writes for slots where
all account writes will be received. This is a problem during startup,
where it's unclear what slots we have missed data for.

To make startup easier, let the plugin keep track of the highest slot
number that account writes have happened for, and send it when a new
consumer connects.
2022-01-03 10:36:11 +01:00
Christian Kamm 4236805b29 Fix problem with write_version being node-specific
To work around that, build our own write_version based on the number of
writes to a pubkey each slot.
2021-12-20 16:08:36 +01:00
Christian Kamm 76e14d0300 Fix initial snapshot #1
Previously the initial snapshot could be returned for a discarded slot.
Now a finalized-commitment snapshot is retrieved.
2021-12-13 16:48:33 +01:00
Christian Kamm 17d6787bf1 Add TLS domain name argument 2021-11-30 17:15:41 +01:00
Christian Kamm b65815e4d4 gRPC: Optionally use TLS 2021-11-18 14:21:17 +01:00
Christian Kamm dbfbae1a49 Delay snapshot more, add metric on slot insertion queue 2021-11-15 15:49:59 +01:00
Christian Kamm 8f6bd7bc22 Postgres: Allow parallel slot update connections
It would be nicer if many of the writes could happen on the same
connection. Separate connections are only necessary if transactions are
used.
2021-11-15 15:28:18 +01:00
Christian Kamm 3a0e2535f0 Use anyhow::Result over Result<T, anyhow::Error> 2021-11-09 14:27:09 +01:00
Christian Kamm 0cdee40851 Metrics cleanup 2021-11-09 14:23:55 +01:00
Christian Kamm 4d5f0c5d10 Basic metrics 2021-11-09 09:00:00 +01:00
Christian Kamm 029cbd2fb5 Allow multiple grpc sources 2021-11-08 15:48:50 +01:00
Christian Kamm f43aaf0f55 Don't process old account writes
This will help when receiving data from multiple validator nodes
2021-11-08 15:31:35 +01:00
Christian Kamm 35c0c5da23 Fix delayed snapshots
The snapshot was requested too early before.
2021-11-08 14:26:37 +01:00
Christian Kamm a17f142875 Use enum for slot status 2021-11-08 12:44:01 +01:00
Christian Kamm 0424c3c9d6 grpc configurability 2021-11-08 11:42:22 +01:00
Christian Kamm cbe9e16b62 Configurable program id 2021-11-08 09:57:56 +01:00
Christian Kamm e67dd6c235 Split into connector library, and raw and mango binaries 2021-11-08 09:45:41 +01:00