pyth-crosschain/tilt_devnet/docker_images/Dockerfile.client

35 lines
1.6 KiB
Docker
Raw Normal View History

#syntax=docker/dockerfile:1.2@sha256:e2a8561e419ab1ba6b2fe6cbdf49fd92b95912df1cf7d313c3e2230a333fdbcc
FROM ghcr.io/certusone/solana:1.10.31@sha256:d31e8db926a1d3fbaa9d9211d9979023692614b7b64912651aba0383e8c01bad AS solana
ARG WORMHOLE_TAG=v2.8.9
# libudev is needed by spl-token-cli, and ncat is needed by the devnet setup
# script to be able to signal a health status for tilt
RUN apt-get update && apt-get install -yq libudev-dev ncat
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && apt-get install -y nodejs
ADD wormhole_attester/rust-toolchain /rust-toolchain
wormhole-attester: port the v1.3.0 healthcheck hotfix (#454) * wormhole-attester: port the v1.3.0 healthcheck hotfix This PR fixes a missing assignment to HealthCheckState's enable flag. This would cause the attester to ignore all settings (including defaults) and keep the enable flag set to false because we would never bother setting it from attestation_cfg that came at runtime. The bug is fixed and the healthcheck behavior is hardened. Currently, the lazy_static block will explicitly initialize the global with default values from attestation_cfg (enable is true, window size is 100). This prevents a similar human error from disabling the healthcheck. Secondly, main.rs overwrites the default values using the HealthCheckState::new() constructor, instead of individual struct member assignments. This ensures that all necessary values or their defaults are passed as the desired healthcheck state. * p2w_autoattest.py: Get debug output from first attestation * wormhole-attester: fix ()-less function bug, harden usize convertion This change fixes a bug that would cause a gigantic allocation to happen, after the attestation_cfg::default_healthcheck_window_size function is taken without being called and converted to a very large usize value. This would result in a big allocation which would crash the attester. At the core it's a misunderstanding about "Fn() as usize" conversion which unfortunately is safe Rust. * Trigger build * wormhole-attester: Fix a misuse of a mutex guard This commit changes the `let hc = <lock the mutex>` into a direct assignment to the locked mutex guard. Rust mutices are typically scope-based which makes using them in variables more error prone. * Dockerfile.client: Remove unused ADD wormhole-attester. This speeds up the build of the container, and prevents useless triggers from the attester codebase * p2w_autoattest.py: simplify log filtering to just info
2023-01-05 06:27:15 -08:00
WORKDIR /usr/src/bridge-client
RUN --mount=type=cache,target=/root/.cache \
wormhole-attester: port the v1.3.0 healthcheck hotfix (#454) * wormhole-attester: port the v1.3.0 healthcheck hotfix This PR fixes a missing assignment to HealthCheckState's enable flag. This would cause the attester to ignore all settings (including defaults) and keep the enable flag set to false because we would never bother setting it from attestation_cfg that came at runtime. The bug is fixed and the healthcheck behavior is hardened. Currently, the lazy_static block will explicitly initialize the global with default values from attestation_cfg (enable is true, window size is 100). This prevents a similar human error from disabling the healthcheck. Secondly, main.rs overwrites the default values using the HealthCheckState::new() constructor, instead of individual struct member assignments. This ensures that all necessary values or their defaults are passed as the desired healthcheck state. * p2w_autoattest.py: Get debug output from first attestation * wormhole-attester: fix ()-less function bug, harden usize convertion This change fixes a bug that would cause a gigantic allocation to happen, after the attestation_cfg::default_healthcheck_window_size function is taken without being called and converted to a very large usize value. This would result in a big allocation which would crash the attester. At the core it's a misunderstanding about "Fn() as usize" conversion which unfortunately is safe Rust. * Trigger build * wormhole-attester: Fix a misuse of a mutex guard This commit changes the `let hc = <lock the mutex>` into a direct assignment to the locked mutex guard. Rust mutices are typically scope-based which makes using them in variables more error prone. * Dockerfile.client: Remove unused ADD wormhole-attester. This speeds up the build of the container, and prevents useless triggers from the attester codebase * p2w_autoattest.py: simplify log filtering to just info
2023-01-05 06:27:15 -08:00
--mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=target \
cargo install --version =2.0.12 --locked spl-token-cli --target-dir target
Repo structure refactor (#449) * Repo structure refactor This change introduces major codebase layout changes in three areas: * Tilt devnet lives in tilt-devnet/ - all k8s and docker files, scripts, local testing private keys are moved to this directory. * pyth2wormhole becomes pyth-wormhole-attester and is relocated to wormhole-attester/ - This long-needed rename will hopefully eradicate most of the confusing naming around the attester. The Rust client binary becomes pyth-wormhole-attester-client. * Target-chain code lives in target-chain/ - This leaves just the attester, third_party and pythnet-specific things at top-level. Other opportunistic changes: * Fixed rebuild trigger for Dockerfile.wasm These items are a fraction of the necessary structure changes in the repo. * cosmwasm: fix contract after faulty merge * .github: remove unused dependabot config * Fix path references in .github and .pre-commit-config.yml * .github: Rename attester references to pyth-wormhole-attester * .pre-commit-config.yaml: fix paths and run all commit hooks * p2w-relay: Fix faulty merge resolution in favor of origin/main * Dockerfile.pyth_relay: Fix Ethereum path reference * Dockerfile.solana: Trip early cache with arbitrary change * Dockerfile.pyth_relay: typo * p2w-relay: fix evm build in npm script * Dockerfile.solana: Retry invalidating cache again * near -> target-chains/near * wormhole-attester: bump on/off-chain major versions due to rename Attester packages were renamed. This possibly breaks most dependees. * Dockerfile.solana: Improve decoy-crate to have a real lib target * .github/[...]/pyth-cosmwasm-contract.yml: typo * rust-toolchain: Bump rust to stable 1.63 * rust-toolchain: use christmas nightly * empty commit to trigger build * attester-image-push.yaml: keep xc-attest image name intact * multisig-wh-message-builder: remove accidental revert
2023-01-04 05:46:42 -08:00
RUN solana config set --keypair "/solana-secrets/solana-devnet.json"
RUN solana config set --url "http://solana-devnet:8899"
ENV EMITTER_ADDRESS="11111111111111111111111111111115"
ENV BRIDGE_ADDRESS="Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o"
RUN --mount=type=cache,target=/root/.cache \
--mount=type=cache,target=/usr/local/cargo/registry \
wormhole-attester: port the v1.3.0 healthcheck hotfix (#454) * wormhole-attester: port the v1.3.0 healthcheck hotfix This PR fixes a missing assignment to HealthCheckState's enable flag. This would cause the attester to ignore all settings (including defaults) and keep the enable flag set to false because we would never bother setting it from attestation_cfg that came at runtime. The bug is fixed and the healthcheck behavior is hardened. Currently, the lazy_static block will explicitly initialize the global with default values from attestation_cfg (enable is true, window size is 100). This prevents a similar human error from disabling the healthcheck. Secondly, main.rs overwrites the default values using the HealthCheckState::new() constructor, instead of individual struct member assignments. This ensures that all necessary values or their defaults are passed as the desired healthcheck state. * p2w_autoattest.py: Get debug output from first attestation * wormhole-attester: fix ()-less function bug, harden usize convertion This change fixes a bug that would cause a gigantic allocation to happen, after the attestation_cfg::default_healthcheck_window_size function is taken without being called and converted to a very large usize value. This would result in a big allocation which would crash the attester. At the core it's a misunderstanding about "Fn() as usize" conversion which unfortunately is safe Rust. * Trigger build * wormhole-attester: Fix a misuse of a mutex guard This commit changes the `let hc = <lock the mutex>` into a direct assignment to the locked mutex guard. Rust mutices are typically scope-based which makes using them in variables more error prone. * Dockerfile.client: Remove unused ADD wormhole-attester. This speeds up the build of the container, and prevents useless triggers from the attester codebase * p2w_autoattest.py: simplify log filtering to just info
2023-01-05 06:27:15 -08:00
--mount=type=cache,target=target \
set -xe && \
cargo install bridge_client --git https://github.com/wormhole-foundation/wormhole --tag $WORMHOLE_TAG --locked --root /usr/local --target-dir target && \
cargo install token_bridge_client --git https://github.com/wormhole-foundation/wormhole --tag $WORMHOLE_TAG --locked --root /usr/local --target-dir target
Repo structure refactor (#449) * Repo structure refactor This change introduces major codebase layout changes in three areas: * Tilt devnet lives in tilt-devnet/ - all k8s and docker files, scripts, local testing private keys are moved to this directory. * pyth2wormhole becomes pyth-wormhole-attester and is relocated to wormhole-attester/ - This long-needed rename will hopefully eradicate most of the confusing naming around the attester. The Rust client binary becomes pyth-wormhole-attester-client. * Target-chain code lives in target-chain/ - This leaves just the attester, third_party and pythnet-specific things at top-level. Other opportunistic changes: * Fixed rebuild trigger for Dockerfile.wasm These items are a fraction of the necessary structure changes in the repo. * cosmwasm: fix contract after faulty merge * .github: remove unused dependabot config * Fix path references in .github and .pre-commit-config.yml * .github: Rename attester references to pyth-wormhole-attester * .pre-commit-config.yaml: fix paths and run all commit hooks * p2w-relay: Fix faulty merge resolution in favor of origin/main * Dockerfile.pyth_relay: Fix Ethereum path reference * Dockerfile.solana: Trip early cache with arbitrary change * Dockerfile.pyth_relay: typo * p2w-relay: fix evm build in npm script * Dockerfile.solana: Retry invalidating cache again * near -> target-chains/near * wormhole-attester: bump on/off-chain major versions due to rename Attester packages were renamed. This possibly breaks most dependees. * Dockerfile.solana: Improve decoy-crate to have a real lib target * .github/[...]/pyth-cosmwasm-contract.yml: typo * rust-toolchain: Bump rust to stable 1.63 * rust-toolchain: use christmas nightly * empty commit to trigger build * attester-image-push.yaml: keep xc-attest image name intact * multisig-wh-message-builder: remove accidental revert
2023-01-04 05:46:42 -08:00
ADD tilt_devnet/scripts/solana-devnet-setup.sh /usr/src/solana-devnet-setup.sh
ADD tilt_devnet/secrets/solana/ /solana-secrets