solana/snap/snapcraft.yaml

118 lines
3.2 KiB
YAML
Raw Normal View History

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:
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
- 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
plugs:
- home
2018-06-19 13:09:09 -07:00
client-demo:
# TODO: Merge client.sh functionality into solana-client-demo proper
command: client.sh
#command: solana-client-demo
plugs:
- network
- network-bind
- home
wallet:
# TODO: Merge wallet.sh functionality into solana-wallet proper
command: wallet.sh
#command: solana-wallet
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:
solana:
2018-06-24 10:10:55 -07:00
plugin: nil
2018-06-19 13:09:09 -07:00
prime:
- 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/
# 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
# 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/
# TODO: build rsync/multilog from source instead of sneaking it in from the host
# system...
set -x
mkdir -p $SNAPCRAFT_PART_INSTALL/bin
cp -av /usr/bin/rsync $SNAPCRAFT_PART_INSTALL/bin/
cp -av /usr/bin/multilog $SNAPCRAFT_PART_INSTALL/bin/