Go to file
Riordan Panayides 53c67260b4 Add docker build, fly config 2023-01-13 19:23:53 +00:00
benches fix 2022-12-10 23:38:48 +05:30
lite-bench-utils lite-client, tests and bench 2022-12-10 23:01:37 +05:30
lite-client solving issues with sendAndConfirmTransactions and confirmTransaction 2023-01-06 17:50:23 +01:00
scripts refactor: remove extra scripts 2022-12-10 20:39:35 +05:30
src solving issues with sendAndConfirmTransactions and confirmTransaction 2023-01-06 17:50:23 +01:00
tests handling transaction errors in block subscription 2023-01-04 08:28:55 +01:00
.dockerignore Add docker build, fly config 2023-01-13 19:23:53 +00:00
.gitignore feat: integrated solana validator with yarn test 2022-12-10 13:10:44 +05:30
Cargo.lock Merge branch 'send_transactions_in_batches' into processing_transaction_errors 2023-01-04 19:01:25 +01:00
Cargo.toml Merge branch 'send_transactions_in_batches' into processing_transaction_errors 2023-01-04 19:01:25 +01:00
Dockerfile Add docker build, fly config 2023-01-13 19:23:53 +00:00
LICENSE Initial commit 2022-11-12 14:01:34 +01:00
README.md doc: Update readme 2022-12-07 22:00:29 +05:30
bench_transactions_send.ts solving lite rpc only working in localnet 2023-01-06 16:23:17 +01:00
bench_transactions_send_and_confirm.ts solving issues with sendAndConfirmTransactions and confirmTransaction 2023-01-06 17:50:23 +01:00
create_n_users.ts processing transaction errors, updating benchmark files 2023-01-04 14:33:36 +01:00
fly.toml Add docker build, fly config 2023-01-13 19:23:53 +00:00
jest.config.js feat: Updated typescript tests 2022-12-06 10:27:12 +05:30
metrics.csv fix 2022-12-10 23:38:48 +05:30
package-lock.json commiting changes in json files 2022-12-08 21:35:04 +01:00
package.json Merge pull request #20 from Lioncat2002/main 2022-12-10 18:45:28 +01:00
tsconfig.json commiting changes in json files 2022-12-08 21:35:04 +01:00
yarn.lock processing transaction errors, updating benchmark files 2023-01-04 14:33:36 +01:00

README.md

Solana Lite RPC

This project aims to create a lite rpc server which is responsible only for sending and confirming the transactions. The lite-rpc server will not have any ledger or banks. While sending transaction the lite rpc server will send the transaction to next few leader (FANOUT) and then use different strategies to confirm the transaction. The rpc server will also have a websocket port which is reponsible for just subscribing to slots and signatures. The lite rpc server will be optimized to confirm transactions which are forwarded to leader using the same server. This project is currently based on an unstable feature of block subscription of solana which can be enabled using --rpc-pubsub-enable-block-subscription while running rpc node.

Confirmation strategies

  1. Subscribing to blocks changes and checking the confirmations. (Under development)
  2. Subscribing to signatures with pool of rpc servers. (Under development)
  3. Listining to gossip protocol. (Future roadmap)

Build

cargo build

Run

  • For RPC node : http://localhost:8899,
  • Websocket : http://localhost:8900 (Optional),
  • Port : 9000 Listening port for LiteRpc server,
  • Subscription Port : 9001 Listening port of websocket subscriptions for LiteRpc server,
cargo run --bin lite-rpc -- run --port 9000 --subscription-port 9001 --rpc-url http://localhost:8899

Tests

cargo run --bin lite-rpc -- test