Commit Graph

41 Commits

Author SHA1 Message Date
Groovie | Mango 69d7dbb123
optimize mapping of produced block (#382)
optimize mapping of produced block
2024-04-03 10:40:53 +02:00
godmodegalactus 91cf06436a
Changing exit signal from notify to broadcast channel in grpc multiplexer 2024-04-02 14:45:41 +02:00
godmodegalactus 1e956a2b4f
Revert "Replacing notify by cancellation token to correctly shutdown tasks"
This reverts commit d1abc345cf.
2024-03-28 11:49:20 +01:00
godmodegalactus 02229060cf
Revert "Fix clippy fmt"
This reverts commit bac036ceaa.
2024-03-28 11:49:17 +01:00
godmodegalactus bac036ceaa
Fix clippy fmt 2024-03-28 09:12:12 +01:00
godmodegalactus d1abc345cf
Replacing notify by cancellation token to correctly shutdown tasks 2024-03-28 09:09:42 +01:00
godmodegalactus dfe8d972eb
Porting back the exit notify change 2024-03-27 17:57:40 +01:00
godmodegalactus 7d39a947ac
Minor changes, increasing default lite-rpc limits 2024-03-26 17:36:11 +01:00
Groovie | Mango cd9df11501
use geyser blockmeta to progress finalizedslot (#367)
introduce BlockInfo on a new BlockInfoStream; maps from yellowstone BlockMeta
fix: last_finalized_slot must progress unconditionally
2024-03-22 19:22:38 +01:00
galactus defdc20dd5
Getting finalized meta before processed main (#366)
* Use jemalloc

* Solving issue of finalized meta after processed block (#365)

* Solving issue of finalized meta after processed block

* Fixing the broken test

* Minor changes

---------

Co-authored-by: Christian Kamm <mail@ckamm.de>
2024-03-22 12:30:14 +01:00
godmodegalactus 50b81135c3
Merge branch 'production' 2024-03-18 20:01:02 +01:00
godmodegalactus 85fcb6097e
Adding some more metrics for quic tpu, and changing some parameters 2024-03-18 17:25:52 +01:00
galactus 33ad19ed47
Removing verbose log for grpc multiplexing (#354) 2024-03-11 13:48:15 +01:00
Groovie | Mango 18a0ab7062
from grpc block ProduceBlock mapping - Performance+Typing (#348)
* remove all Pubkey::default();
1. the value does not make sense
2. we can safely assume that bytes can be deserialized

* use Signature instead of String

* use solana_sdk:#️⃣:Hash for blockhash

* store VersionedMessage instead of serialized bas64 string

* refactor compute_budget extraction

* fix test data

* simplify map_compute_budget_instructions

* fmt

---------

Co-authored-by: godmodegalactus <godmodegalactus@gmail.com>
2024-03-01 17:21:48 +01:00
Groovie | Mango 2c42a536b6
Improve/geyser replace streams (#330)
* add env ENABLE_INSTRUMENT_TRACING to enable tracing

* add tracing dependency

* example tracings

* log recent_processed_blocks.len

* bound channels

* replace fastestwins with task version

* revert fake error

* fix meta stream

* disble almost all

* disable more

* keep slot channel up

* log memory usage using CAP

* log CAP memory usage

* add span tracing to mutliplex tasks

* merge

* fix import

* remove useless spans

* fix span logger

* log emitted data from multiplexer

* improve naming of mpsc from autoconnection task

* WIP: use task/mpsc autoconnect for full blocks

* use task/mpsc autoconnect for block meta too

* tag the channels

* add spans

* bump to use updated geyser-grpc-connector with mpsc

* remove unused functions

* extract constant

* split plugger for one and many downstreams

* clippy+fmt

* use task for slots too

* remove broadcast intermediate channel
2024-02-15 21:49:15 +01:00
Groovie | Mango 67641f6d40
fix bug causing endless geyser restart loops (#324)
fix restart logic
2024-02-12 11:53:52 +01:00
Groovie | Mango 38da1ed987
Improvement/check block sequencing (#299)
use grpc multiplex and improve sequencing
2024-02-07 15:51:22 +01:00
galactus 7e7992bbc3
Fixing memory issue (#320) 2024-02-06 10:08:18 +01:00
galactus bc7d89ce4e
Production (#313)
* fix: panic on geyser close, multiplex bug

https://github.com/blockworks-foundation/geyser-grpc-connector/issues/3

* update Cargo.lock

* reverting cargo.lock

* Fix issues with grpc and postgres

* Solving merge issues

* Fixing cargo fmt

* Increase finish quic timeout (#280) (#281)

* integrate geyser slot subscription (#283)

* Increase finish quic timeout (#280)

* Moving geyser slot subscription from stream to channels (#282)

* Moving geyser slot subscription from stream to channels

* Closing all the slot subscription tasks incase of restart

* Making slot channel unbounded (bug)

* remove block_debug_listen

caused a panic - need more time to investigate

2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] thread 'tokio-runtime-worker' panicked at cluster-endpoints/src/grpc_inspect.rs:59:21:
2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] Error receiving block: Closed
2024-01-17T20:31:42.922 app[683d392fd45368] ams [info] 2024-01-17T20:31:42.912597Z ERROR lite_rpc: Services quit unexpectedly Err(cluster endpoint failure (Err(JoinError::Panic(Id(20), ...)), 1, [JoinHandle { id: Id(19) }, JoinHandle { id: Id(23) }])

* Update cargolock file

* Fixing clippy removing grpc_inspect

* merging main with production (#290)

* remove block_debug_listen (#286)

* remove block_debug_listen

caused a panic - need more time to investigate

2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] thread 'tokio-runtime-worker' panicked at cluster-endpoints/src/grpc_inspect.rs:59:21:
2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] Error receiving block: Closed
2024-01-17T20:31:42.922 app[683d392fd45368] ams [info] 2024-01-17T20:31:42.912597Z ERROR lite_rpc: Services quit unexpectedly Err(cluster endpoint failure (Err(JoinError::Panic(Id(20), ...)), 1, [JoinHandle { id: Id(19) }, JoinHandle { id: Id(23) }])

* clippy

* Fixing message too long and overflow panics (#288)

* Update geyser grpc connector commit (#289)

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>

* Merging MTU changes and setting up transportation config (#293)

* remove block_debug_listen (#286)

* remove block_debug_listen

caused a panic - need more time to investigate

2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] thread 'tokio-runtime-worker' panicked at cluster-endpoints/src/grpc_inspect.rs:59:21:
2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] Error receiving block: Closed
2024-01-17T20:31:42.922 app[683d392fd45368] ams [info] 2024-01-17T20:31:42.912597Z ERROR lite_rpc: Services quit unexpectedly Err(cluster endpoint failure (Err(JoinError::Panic(Id(20), ...)), 1, [JoinHandle { id: Id(19) }, JoinHandle { id: Id(23) }])

* clippy

* Fixing message too long and overflow panics (#288)

* Update geyser grpc connector commit (#289)

* Updating the transport config to match with solana endpoint (#292)

* Updating the transport config to match with solana endpoint

* Setting max MTU after groovies comments

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>

* Making block subscription processed and moving confirmed block subscr… (#291)

* Making block subscription processed and moving confirmed block subscription to meta

* Sending both processed and confirmed blocks, if block has already been confirmed

* Minor bug, subscribing to processed blocks instead of confirmed (#295)

* reduce log

* Restart connection if any stream fails (#306)

* Main into production 01/02/2024 (#312)

* Production into main (#303)

* fix: panic on geyser close, multiplex bug

https://github.com/blockworks-foundation/geyser-grpc-connector/issues/3

* update Cargo.lock

* reverting cargo.lock

* Fix issues with grpc and postgres

* Solving merge issues

* Fixing cargo fmt

* Increase finish quic timeout (#280) (#281)

* integrate geyser slot subscription (#283)

* Increase finish quic timeout (#280)

* Moving geyser slot subscription from stream to channels (#282)

* Moving geyser slot subscription from stream to channels

* Closing all the slot subscription tasks incase of restart

* Making slot channel unbounded (bug)

* remove block_debug_listen

caused a panic - need more time to investigate

2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] thread 'tokio-runtime-worker' panicked at cluster-endpoints/src/grpc_inspect.rs:59:21:
2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] Error receiving block: Closed
2024-01-17T20:31:42.922 app[683d392fd45368] ams [info] 2024-01-17T20:31:42.912597Z ERROR lite_rpc: Services quit unexpectedly Err(cluster endpoint failure (Err(JoinError::Panic(Id(20), ...)), 1, [JoinHandle { id: Id(19) }, JoinHandle { id: Id(23) }])

* Update cargolock file

* Fixing clippy removing grpc_inspect

* merging main with production (#290)

* remove block_debug_listen (#286)

* remove block_debug_listen

caused a panic - need more time to investigate

2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] thread 'tokio-runtime-worker' panicked at cluster-endpoints/src/grpc_inspect.rs:59:21:
2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] Error receiving block: Closed
2024-01-17T20:31:42.922 app[683d392fd45368] ams [info] 2024-01-17T20:31:42.912597Z ERROR lite_rpc: Services quit unexpectedly Err(cluster endpoint failure (Err(JoinError::Panic(Id(20), ...)), 1, [JoinHandle { id: Id(19) }, JoinHandle { id: Id(23) }])

* clippy

* Fixing message too long and overflow panics (#288)

* Update geyser grpc connector commit (#289)

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>

* Merging MTU changes and setting up transportation config (#293)

* remove block_debug_listen (#286)

* remove block_debug_listen

caused a panic - need more time to investigate

2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] thread 'tokio-runtime-worker' panicked at cluster-endpoints/src/grpc_inspect.rs:59:21:
2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] Error receiving block: Closed
2024-01-17T20:31:42.922 app[683d392fd45368] ams [info] 2024-01-17T20:31:42.912597Z ERROR lite_rpc: Services quit unexpectedly Err(cluster endpoint failure (Err(JoinError::Panic(Id(20), ...)), 1, [JoinHandle { id: Id(19) }, JoinHandle { id: Id(23) }])

* clippy

* Fixing message too long and overflow panics (#288)

* Update geyser grpc connector commit (#289)

* Updating the transport config to match with solana endpoint (#292)

* Updating the transport config to match with solana endpoint

* Setting max MTU after groovies comments

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>

* Making block subscription processed and moving confirmed block subscr… (#291)

* Making block subscription processed and moving confirmed block subscription to meta

* Sending both processed and confirmed blocks, if block has already been confirmed

* Minor bug, subscribing to processed blocks instead of confirmed (#295)

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>
Co-authored-by: GroovieGermanikus <groovie@mango.markets>

* Restart connection if any stream fails

* Updating to version 0.2.4

* Updating the change logs

* Fixing all the sub overflows by using saturating sub (#309)

* Fixing by cu computation adding more tests to check by CU (#311)

* Fixing by cu computation adding more tests to check by CU

* Adding more tests

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>
Co-authored-by: GroovieGermanikus <groovie@mango.markets>

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>
Co-authored-by: GroovieGermanikus <groovie@mango.markets>
2024-02-01 15:16:24 +01:00
galactus 60388667f5
Main into production 01/02/2024 (#312)
* Production into main (#303)

* fix: panic on geyser close, multiplex bug

https://github.com/blockworks-foundation/geyser-grpc-connector/issues/3

* update Cargo.lock

* reverting cargo.lock

* Fix issues with grpc and postgres

* Solving merge issues

* Fixing cargo fmt

* Increase finish quic timeout (#280) (#281)

* integrate geyser slot subscription (#283)

* Increase finish quic timeout (#280)

* Moving geyser slot subscription from stream to channels (#282)

* Moving geyser slot subscription from stream to channels

* Closing all the slot subscription tasks incase of restart

* Making slot channel unbounded (bug)

* remove block_debug_listen

caused a panic - need more time to investigate

2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] thread 'tokio-runtime-worker' panicked at cluster-endpoints/src/grpc_inspect.rs:59:21:
2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] Error receiving block: Closed
2024-01-17T20:31:42.922 app[683d392fd45368] ams [info] 2024-01-17T20:31:42.912597Z ERROR lite_rpc: Services quit unexpectedly Err(cluster endpoint failure (Err(JoinError::Panic(Id(20), ...)), 1, [JoinHandle { id: Id(19) }, JoinHandle { id: Id(23) }])

* Update cargolock file

* Fixing clippy removing grpc_inspect

* merging main with production (#290)

* remove block_debug_listen (#286)

* remove block_debug_listen

caused a panic - need more time to investigate

2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] thread 'tokio-runtime-worker' panicked at cluster-endpoints/src/grpc_inspect.rs:59:21:
2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] Error receiving block: Closed
2024-01-17T20:31:42.922 app[683d392fd45368] ams [info] 2024-01-17T20:31:42.912597Z ERROR lite_rpc: Services quit unexpectedly Err(cluster endpoint failure (Err(JoinError::Panic(Id(20), ...)), 1, [JoinHandle { id: Id(19) }, JoinHandle { id: Id(23) }])

* clippy

* Fixing message too long and overflow panics (#288)

* Update geyser grpc connector commit (#289)

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>

* Merging MTU changes and setting up transportation config (#293)

* remove block_debug_listen (#286)

* remove block_debug_listen

caused a panic - need more time to investigate

2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] thread 'tokio-runtime-worker' panicked at cluster-endpoints/src/grpc_inspect.rs:59:21:
2024-01-17T20:31:42.913 app[683d392fd45368] ams [info] Error receiving block: Closed
2024-01-17T20:31:42.922 app[683d392fd45368] ams [info] 2024-01-17T20:31:42.912597Z ERROR lite_rpc: Services quit unexpectedly Err(cluster endpoint failure (Err(JoinError::Panic(Id(20), ...)), 1, [JoinHandle { id: Id(19) }, JoinHandle { id: Id(23) }])

* clippy

* Fixing message too long and overflow panics (#288)

* Update geyser grpc connector commit (#289)

* Updating the transport config to match with solana endpoint (#292)

* Updating the transport config to match with solana endpoint

* Setting max MTU after groovies comments

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>

* Making block subscription processed and moving confirmed block subscr… (#291)

* Making block subscription processed and moving confirmed block subscription to meta

* Sending both processed and confirmed blocks, if block has already been confirmed

* Minor bug, subscribing to processed blocks instead of confirmed (#295)

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>
Co-authored-by: GroovieGermanikus <groovie@mango.markets>

* Restart connection if any stream fails

* Updating to version 0.2.4

* Updating the change logs

* Fixing all the sub overflows by using saturating sub (#309)

* Fixing by cu computation adding more tests to check by CU (#311)

* Fixing by cu computation adding more tests to check by CU

* Adding more tests

---------

Co-authored-by: Groovie | Mango <95291500+grooviegermanikus@users.noreply.github.com>
Co-authored-by: GroovieGermanikus <groovie@mango.markets>
2024-02-01 15:08:47 +01:00
galactus 118f5435e3
Fixing all the sub overflows by using saturating sub (#309) 2024-01-30 15:24:35 +01:00
galactus 64e86862c1
Restart connection if any stream fails (#306) 2024-01-26 22:49:10 +01:00
godmodegalactus 6c61e64948
Restart connection if any stream fails 2024-01-26 22:25:19 +01:00
GroovieGermanikus 847ce74ab6
reduce log 2024-01-26 19:46:51 +01:00
Groovie | Mango 7171b524f0
Feature/block priofees (#274)
* boilerplate

* add dummy endpoint

* simple logic with highes block

* endpoint works

* remove cu calculus

* log get_latest_block startup timing

* websocket subscription basics

* WIP

* propagate fees via channel

* cleanup

* use broadcast sender

* proper handling of broadcast channel issues

* rename stuff

* move to dedicated crate

* cleanup deps

* move data definition

* hide private types

* percentile math

* code format

* integrated stats by cu

* add cu stats

* restart inline asserts

* warn about DashMap access

* switch to BTreeMap

* remove vote transactions from calculus

* return vec

* array

* flat format

* reformat

* split arrays

* rename keys

* enable experimental tag

* code format

* more logging

* reset log level

* rename websocket method to blockPrioritizationFeesSubscribe

* HACK: use processed blocks

* add is_vote_transaction

* do not fail if fees goes down

* udp message size example

* imrpove 100 handling

* simplify inital sort

* Revert "HACK: use processed blocks"

This reverts commit ff17d9475c.

* add percentile test case

* add per block cu_consumed+tx_count(nonvote)

* fix supid cleanup bug

* add TxAggregateStats

* add by_cu test

* add alternative cu percentlie impl

* cleanup cu tests

* add check for step

* saturating_sub

* remove useless file

* add is_vote to history crate

* fix fmt+clippy (nightly)

* clippy

* clippy

* clippy

* clippy
2024-01-25 10:29:14 +01:00
Groovie | Mango 705a08c2c6
fix some namings (#298)
* fix some namings

* clipp

* make run_clippy_fmt.sh executable
2024-01-23 08:17:48 +01:00
galactus 0c5aa196c1
Minor bug, subscribing to processed blocks instead of confirmed (#295) 2024-01-22 10:54:39 +01:00
galactus 33cca71d49
Making block subscription processed and moving confirmed block subscr… (#291)
* Making block subscription processed and moving confirmed block subscription to meta

* Sending both processed and confirmed blocks, if block has already been confirmed
2024-01-21 13:56:40 +01:00
galactus d589d90999
Moving geyser slot subscription from stream to channels (#284)
Closing all the slot subscription tasks incase of restart

Making slot channel unbounded because of errors
2024-01-17 19:45:10 +01:00
galactus cfb5e1ac66
Moving geyser slot subscription from stream to channels (#282)
* Moving geyser slot subscription from stream to channels

* Closing all the slot subscription tasks incase of restart
2024-01-17 15:17:49 +01:00
galactus 36c62763c0
Fixing merging of confirmed block streams (#276) 2024-01-16 10:13:12 +01:00
galactus 6f61d89743
Fixing the performance issue with geyser multiplexing (#275) 2024-01-15 20:22:59 +01:00
godmodegalactus c3da6ad1b6
cargo fmt and clippy issues 2024-01-12 14:40:48 +01:00
godmodegalactus 3f69de5247
Resarting geyser slot and block stream in case they disconnect 2024-01-12 14:21:54 +01:00
GroovieGermanikus 079ff113c4
fix cleanup logic 2024-01-08 14:51:32 +01:00
GroovieGermanikus 8996a97424
change .send error handling on broadcast channel 2024-01-08 14:21:05 +01:00
GroovieGermanikus dc0c60ff05
rename count 2024-01-08 14:18:43 +01:00
GroovieGermanikus e5e7545553
->32 2024-01-08 14:15:42 +01:00
GroovieGermanikus 9ef773c129
refactoring 2024-01-08 14:14:59 +01:00
godmodegalactus e42db51d21
Reduce network by only fetching block meta instead of whole block 2024-01-08 12:11:48 +01:00
Groovie | Mango 5cfb6de72a
grpc multiplexing integrate (#255)
allow multiple GRPC sources
2023-12-22 14:42:20 +01:00