2018-06-18 13:45:53 -07:00
|
|
|
name: solana
|
|
|
|
version: git
|
|
|
|
summary: Blockchain, Rebuilt for Scale
|
|
|
|
description: |
|
|
|
|
710,000 tx/s with off-the-shelf hardware and no sharding.
|
|
|
|
Scales with Moore's Law.
|
|
|
|
grade: devel
|
2018-06-19 13:09:09 -07:00
|
|
|
|
|
|
|
# TODO: solana-perf-fullnode does not yet run with 'strict' confinement due to the
|
|
|
|
# CUDA dependency, so use 'devmode' confinement for now
|
|
|
|
confinement: devmode
|
2018-06-18 13:45:53 -07:00
|
|
|
|
2018-06-24 10:10:55 -07:00
|
|
|
hooks:
|
|
|
|
configure:
|
2018-06-26 12:49:40 -07:00
|
|
|
plugs: [network]
|
2018-06-24 10:10:55 -07:00
|
|
|
|
2018-06-18 13:45:53 -07:00
|
|
|
apps:
|
2018-06-22 15:03:03 -07:00
|
|
|
drone:
|
|
|
|
command: solana-drone
|
|
|
|
plugs:
|
|
|
|
- network
|
|
|
|
- network-bind
|
2018-06-18 13:45:53 -07:00
|
|
|
fullnode:
|
|
|
|
command: solana-fullnode
|
|
|
|
plugs:
|
|
|
|
- network
|
|
|
|
- network-bind
|
|
|
|
- home
|
2018-06-19 13:09:09 -07:00
|
|
|
fullnode-cuda:
|
|
|
|
command: solana-fullnode-cuda
|
|
|
|
plugs:
|
|
|
|
- network
|
|
|
|
- network-bind
|
|
|
|
- home
|
2018-06-18 13:45:53 -07:00
|
|
|
fullnode-config:
|
|
|
|
command: solana-fullnode-config
|
|
|
|
plugs:
|
|
|
|
- network
|
|
|
|
- network-bind
|
2018-07-13 08:29:20 -07:00
|
|
|
- home
|
2018-06-18 13:45:53 -07:00
|
|
|
genesis:
|
|
|
|
command: solana-genesis
|
2018-07-12 14:42:01 -07:00
|
|
|
keygen:
|
|
|
|
command: solana-keygen
|
2018-07-13 08:29:20 -07:00
|
|
|
plugs:
|
|
|
|
- home
|
2018-07-19 12:59:31 -07:00
|
|
|
bench-tps:
|
|
|
|
# TODO: Merge client.sh functionality into solana-bench-tps proper
|
2018-07-13 22:40:09 -07:00
|
|
|
command: client.sh
|
2018-07-19 12:59:31 -07:00
|
|
|
#command: solana-bench-tps
|
2018-07-13 08:29:20 -07:00
|
|
|
plugs:
|
|
|
|
- network
|
|
|
|
- network-bind
|
|
|
|
- home
|
2018-06-27 14:21:30 -07:00
|
|
|
wallet:
|
2018-07-02 16:54:44 -07:00
|
|
|
# TODO: Merge wallet.sh functionality into solana-wallet proper
|
|
|
|
command: wallet.sh
|
|
|
|
#command: solana-wallet
|
2018-07-13 08:29:20 -07:00
|
|
|
plugs:
|
|
|
|
- network
|
|
|
|
- home
|
2018-06-24 10:10:55 -07:00
|
|
|
daemon-validator:
|
|
|
|
daemon: simple
|
|
|
|
command: validator.sh
|
2018-07-17 08:06:02 -07:00
|
|
|
plugs:
|
|
|
|
- network
|
|
|
|
- network-bind
|
2018-06-24 10:10:55 -07:00
|
|
|
daemon-leader:
|
|
|
|
daemon: simple
|
|
|
|
command: leader.sh
|
2018-07-17 08:06:02 -07:00
|
|
|
plugs:
|
|
|
|
- network
|
|
|
|
- network-bind
|
2018-06-24 10:10:55 -07:00
|
|
|
daemon-drone:
|
|
|
|
daemon: simple
|
|
|
|
command: drone.sh
|
2018-07-17 08:06:02 -07:00
|
|
|
plugs:
|
|
|
|
- network
|
|
|
|
- network-bind
|
2018-06-24 10:10:55 -07:00
|
|
|
|
2018-06-18 13:45:53 -07:00
|
|
|
parts:
|
2018-07-01 17:01:31 -07:00
|
|
|
solana:
|
2018-06-24 10:10:55 -07:00
|
|
|
plugin: nil
|
2018-06-19 13:09:09 -07:00
|
|
|
prime:
|
2018-07-01 17:01:31 -07:00
|
|
|
- bin
|
2018-07-14 15:05:20 -07:00
|
|
|
- usr/lib
|
2018-06-19 13:09:09 -07:00
|
|
|
override-build: |
|
2018-07-14 15:05:20 -07:00
|
|
|
# Install CUDA 9.2 runtime
|
|
|
|
mkdir -p $SNAPCRAFT_PART_INSTALL/usr/lib/nvidia-396/
|
2018-07-19 11:26:37 -07:00
|
|
|
mkdir -p $SNAPCRAFT_PART_INSTALL/usr/lib/x86_64-linux-gnu/
|
|
|
|
cp -rav /usr/local/cuda-9.2/targets/x86_64-linux/lib/libcudart.so* $SNAPCRAFT_PART_INSTALL/usr/lib
|
|
|
|
cp -rav /usr/lib/x86_64-linux-gnu/libcuda.so* $SNAPCRAFT_PART_INSTALL/usr/lib/x86_64-linux-gnu/
|
2018-07-14 15:05:20 -07:00
|
|
|
cp -v /usr/lib/nvidia-396/libnvidia-fatbinaryloader.so* $SNAPCRAFT_PART_INSTALL/usr/lib/nvidia-396/
|
|
|
|
|
2018-07-01 17:01:31 -07:00
|
|
|
# Build/install solana-fullnode-cuda
|
2018-06-23 02:15:38 -07:00
|
|
|
./fetch-perf-libs.sh
|
2018-07-16 07:42:44 -07:00
|
|
|
cargo install --features=cuda --root $SNAPCRAFT_PART_INSTALL --bin solana-fullnode
|
2018-06-19 13:09:09 -07:00
|
|
|
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
|
2018-07-01 17:01:31 -07:00
|
|
|
|
|
|
|
# Build/install all other programs
|
|
|
|
cargo install --root $SNAPCRAFT_PART_INSTALL --bins
|
|
|
|
|
|
|
|
# Install multinode scripts
|
|
|
|
mkdir -p $SNAPCRAFT_PART_INSTALL/bin
|
|
|
|
cp -av multinode-demo/* $SNAPCRAFT_PART_INSTALL/bin/
|
|
|
|
|
2018-07-17 13:31:24 -07:00
|
|
|
# TODO: build rsync/multilog from source instead of sneaking it in from the host
|
2018-07-01 17:01:31 -07:00
|
|
|
# system...
|
|
|
|
set -x
|
|
|
|
mkdir -p $SNAPCRAFT_PART_INSTALL/bin
|
|
|
|
cp -av /usr/bin/rsync $SNAPCRAFT_PART_INSTALL/bin/
|
2018-07-17 13:31:24 -07:00
|
|
|
cp -av /usr/bin/multilog $SNAPCRAFT_PART_INSTALL/bin/
|