diff --git a/README.md b/README.md index b9138dfe4..a955f46c8 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,20 @@ demo completes after it has convinced itself the testnet won't process any addit transactions. You should see several TPS measurements printed to the screen. In the multinode variation, you'll see TPS measurements for each validator node as well. +Linux Snap +--- +A Linux Solana [Snap](https://snapcraft.io/) is available, which can be used to +easily get Solana running on supported Linux systems without building anything +from source. The `edge` Snap channel is updated daily with the latest +development from the `master` branch. To install: +```bash +$ sudo snap install solana --edge --devmode +``` +(`--devmode` flag is required only for `solana.fullnode-cuda`) + +Once installed the usual Solana programs will be available as `solona.*` instead +of `solana-*`. For example, `solana.fullnode` instead of `solana-fullnode`. + Developing === diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 503994ec4..dec57df3b 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -5,7 +5,10 @@ description: | 710,000 tx/s with off-the-shelf hardware and no sharding. Scales with Moore's Law. grade: devel -confinement: strict + +# TODO: solana-perf-fullnode does not yet run with 'strict' confinement due to the +# CUDA dependency, so use 'devmode' confinement for now +confinement: devmode apps: fullnode: @@ -14,6 +17,12 @@ apps: - network - network-bind - home + fullnode-cuda: + command: solana-fullnode-cuda + plugs: + - network + - network-bind + - home fullnode-config: command: solana-fullnode-config plugs: @@ -27,8 +36,39 @@ apps: command: solana-mint mint-demo: command: solana-mint-demo + client-demo: + command: solana-client-demo parts: + solana-perf-package: + plugin: dump + build-attributes: [no-system-libraries] + source: https://solana-perf.s3.amazonaws.com/master/x86_64-unknown-linux-gnu/solana-perf.tgz + prime: + - solana-perf-HEAD.txt + solana-cuda: + plugin: rust + rust-channel: stable + rust-features: + - erasure + - cuda + prime: + - bin/solana-fullnode-cuda + - usr/lib/libgf_complete.so.1 + - usr/lib/libJerasure.so.2 + override-build: | + cp -f $SNAPCRAFT_STAGE/libcuda_verify_ed25519.a . + cp -f $SNAPCRAFT_STAGE/libJerasure.so . + cp -f $SNAPCRAFT_STAGE/libgf_complete.so . + snapcraftctl build + mv $SNAPCRAFT_PART_INSTALL/bin/solana-fullnode $SNAPCRAFT_PART_INSTALL + rm -rf $SNAPCRAFT_PART_INSTALL/bin/* + mv $SNAPCRAFT_PART_INSTALL/solana-fullnode $SNAPCRAFT_PART_INSTALL/bin/solana-fullnode-cuda + mkdir -p $SNAPCRAFT_PART_INSTALL/usr/lib/ + cp -f libJerasure.so $SNAPCRAFT_PART_INSTALL/usr/lib/libJerasure.so.2 + cp -f libgf_complete.so $SNAPCRAFT_PART_INSTALL/usr/lib/libgf_complete.so.1 + after: + - solana-perf-package solana: plugin: rust rust-channel: stable