Go to file
Maximilian Schneider 30555ea712
implement parsing of compute budget instructions (#123)
* implement parsing of compute budget instructions

* add parser for legacy compute budget
2023-04-17 00:16:53 +02:00
.github/workflows bash script for testing 2023-04-14 18:24:15 +05:30
bench Postgres test migration fix (#122) 2023-04-16 20:46:47 +02:00
benches use postitional_arg helper 2023-03-30 08:04:58 +05:30
migrations implement parsing of compute budget instructions (#123) 2023-04-17 00:16:53 +02:00
src implement parsing of compute budget instructions (#123) 2023-04-17 00:16:53 +02:00
tests Postgres test migration fix (#122) 2023-04-16 20:46:47 +02:00
.dockerignore Add docker build, fly config 2023-01-13 19:23:53 +00:00
.gitignore optimized create_n_users bench and ignore out.json 2023-03-27 17:20:59 +05:30
CHANGELOG.md Changelog initial commit 2023-04-05 15:37:52 +02:00
Cargo.lock increase limits, minor changes, updated the bench executable 2023-04-14 12:35:11 +02:00
Cargo.toml lock rustls 2023-04-12 20:19:32 +05:30
Dockerfile Update Dockerfile 2023-04-05 04:16:23 +01:00
LICENSE switch to AGPL 2023-03-25 15:47:44 +04:00
README.md postgres env 2023-01-31 19:00:52 +05:30
fly.toml fixed comments left by pan in #40 2023-01-29 05:15:16 +05:30
jest.config.js typescript tests 2023-01-04 19:16:43 +05:30
package-lock.json add MAX_RECENT_BLOCKHASSHES and some logs (#49) 2023-02-10 17:01:23 +01:00
package.json random string 2023-03-26 15:59:15 +05:30
test.bash kill but don't fail 2023-04-14 18:27:11 +05:30
tsconfig.json add MAX_RECENT_BLOCKHASSHES and some logs (#49) 2023-02-10 17:01:23 +01:00
yarn.lock random string 2023-03-26 15:59:15 +05:30

README.md

Lite RPC For Solana Blockchain

Submitting a transaction to be executed on the solana blockchain, requires the client to identify the next few leaders based on the leader schedule, look up their peering information in gossip and connect to them via the quic protocol. In order to simplify the process so it can be triggered from a web browser, most applications run full validators that forward the transactions according to the protocol on behalf of the web browser. Running full solana validators is incredibly resource intensive (>256GB RAM), the goal of this project would be to create a specialized micro-service that allows to deploy this logic quickly and allows horizontal scalability with commodity vms.

Confirmation strategies

  1. Subscribe to new blocks using blockSubscribe
  2. Subscribing to signatures with pool of rpc servers. (Under development)
  3. Listening to gossip protocol. (Future roadmap)

Executing

make sure solana-validator is running in the background with --rpc-pubsub-enable-block-subscription

run using

$ cargo run --release

to know about command line options

$ cargo run --release -- --help

Test and Bench

Make sure both solana-validator and lite-rpc is running

test

$ cargo test

bench

$ cd bench and cargo run --release

Find a new file named metrics.csv in the project root.

Metrics and Postgres

LiteRpc implements a postgres service that can write to a postgres database tables as defined in ./migrations

env variables

env purpose
CA_PEM_B64 Base64 encoded ca.pem
CLIENT_PKS_B64 Base64 encoded client.pks
CLIENT_PKS_PASS Password to client.pks
PG_CONFIG Postgres Connection Config

Copyright (c) 2022 Blockworks Foundation

Licensed under the MIT LICENSE