Go to file
Richard Patel c38d2684df third_party: remove rocksdb submodule 2022-10-29 20:18:46 +02:00
cmd radiance: add car dump command 2022-10-29 15:00:50 +02:00
fixtures Remove Git LFS 2022-09-19 16:21:37 +02:00
pkg cargen: add unit test 2022-10-29 14:35:09 +02:00
proto proto: check in generated code 2022-09-26 13:10:56 +02:00
python_client python_client: print as JSON 2022-08-12 19:54:07 +02:00
queries queries: add a bunch 2022-09-09 15:34:02 +02:00
schema cmd/rpc/slots: add kafka publishing 2022-06-16 02:13:17 +02:00
third_party third_party: remove rocksdb submodule 2022-10-29 20:18:46 +02:00
web web: add sveltekit stub 2022-06-21 12:47:05 +02:00
.bazelversion bazel: add Bazel v5.3.2, rules_go v0.35.0 with Go v1.19.2, Gazelle v0.28.0 2022-10-29 15:56:41 +02:00
.gitattributes Remove Git LFS 2022-09-19 16:21:37 +02:00
.gitignore gitignore: add Bazel 2022-10-29 20:18:45 +02:00
.gitmodules third_party: remove rocksdb submodule 2022-10-29 20:18:46 +02:00
BUILD bazel: add initial Gazelle integration 2022-10-29 20:18:45 +02:00
LICENSE cmd/proxy: add proof of concept 2022-01-25 14:25:57 +01:00
README.md README.md: well, technically 2022-09-26 14:10:36 +02:00
WORKSPACE bazel: add rules_foreign_cc 0.9.0 2022-10-29 20:18:45 +02:00
buf.gen.yaml third_party: add confirmed_block.proto 2022-04-18 22:58:32 +02:00
generate.sh generate.sh: fix go-ipldtool installation instructions 2022-10-28 20:33:08 +00:00
go.mod go mod tidy 2022-10-29 20:18:45 +02:00
go.sum go.mod: pin solana-go to fork with vote decoding 2022-10-19 01:41:52 +00:00

README.md

radiance ☀️

Highly experimental Solana Go playground monorepo.

⚠️ No guarantees, no support, quite possibly no documentation either. Ignore this repo unless you're ready to read and understand the code. ⚠️

Available tooling

  • radiance
    • blockstore: Solana validator RocksDB tool
      • dumpshreds: Dump raw shreds from RocksDB
      • verifydata: Check data integrity (parse every tx)
      • yaml: Dump shreds, entries, txs as YAML
    • car: IPLD Content Addressable Archives
      • create: Create replayable CAR archives from validator RocksDB
  • solrays, an RPC proxy that exports call latency of a Solana RPC node.

Building

Radiance commands can be built with standard Go tooling (Go >= 1.19 is required), for example:

go run go.firedancer.io/radiance/cmd/radiance

By default, commands that require extra dependencies (e.g. RocksDB) are disabled.

With RocksDB

Radiance tools that require direct access to the blockstore (such as blockstore and car) require a working C toolchain and extra compiler arguments to link against rocksdb.

You'll need a working C compiler toolchain as well as prerequisites listed by grocksdb and RocksDB itself.

For RHEL/Centos/Fedora:

dnf -y install "@Development Tools" gflags-devel snappy snappy-devel zlib zlib-devel bzip2 bzip2-devel lz4-devel libzstd-devel

First, check out the rocksdb submodule:

git submodule update --init

Then, build the rocksdb C library:

cd third_party/rocksdb
make -j $(nproc) static_lib
cd -

Finally, build the radiance command:

export CGO_CFLAGS="-I$(pwd)/third_party/rocksdb/include"
export CGO_LDFLAGS="-L$(pwd)/third_party/rocksdb"

go run -tags rocksdb go.firedancer.io/radiance/cmd/radiance