Skip to content
This repository was archived by the owner on Jul 10, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
206 changes: 201 additions & 5 deletions .github/e2e/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,208 @@
networks:
fluence:
driver: bridge
ipam:
config:
- subnet: 10.50.10.0/24

services:
aurora:
image: docker.fluence.dev/aurora:main-9e7523f-4-1
ports:
- 8545:8545
networks:
fluence:

ipfs:
image: ipfs/go-ipfs
ports:
- 5001:5001
- 4001:4001
environment:
IPFS_PROFILE: server
volumes:
- ./ipfs/:/container-init.d/
networks:
fluence:
ipv4_address: 10.50.10.100

fluence-1:
image: ${RUST_PEER_IMAGE}
ports:
- 1210:1210
- 4310:4310
- 7771:7771
- 9991:9991
environment:
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
RUST_LOG: "info,aquamarine=warn,tokio_threadpool=info,tokio_reactor=info,mio=info,tokio_io=info,soketto=info,yamux=info,multistream_select=info,libp2p_secio=info,libp2p_websocket::framed=info,libp2p_ping=info,libp2p_core::upgrade::apply=info,libp2p_kad::kbucket=info,cranelift_codegen=info,wasmer_wasi=info,cranelift_codegen=info,wasmer_wasi=info,run-console=debug"
command:
- -t=1210
- -w=4310
- --aqua-pool-size=2
- -t=7771
- -w=9991
- -x=10.50.10.10
- --external-maddrs
- /dns4/fluence-1/tcp/7771
- /dns4/fluence-1/tcp/9991/ws
- --allow-private-ips
- --local
- -k=gKdiCSUr1TFGFEgu2t8Ch1XEUsrN5A2UfBLjSZvfci9SPR3NvZpACfcpPGC3eY4zma1pk7UvYv5zb1VjvPHwCjj
# - --bootstraps=/dns/fluence-1/tcp/7771
# 12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR
- -k=hK62afickoeP2uZbmSkAYXxxqP8ozq16VRN7qfTP719EHC5V5tjrtW57BSjUr8GvsEXmJRbtejUWyPZ2rZMyQdq
depends_on:
- ipfs
networks:
fluence:
ipv4_address: 10.50.10.10

fluence-2:
image: ${RUST_PEER_IMAGE}
ports:
- 7772:7772
- 9992:9992
environment:
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
RUST_LOG: "info,aquamarine=warn,tokio_threadpool=info,tokio_reactor=info,mio=info,tokio_io=info,soketto=info,yamux=info,multistream_select=info,libp2p_secio=info,libp2p_websocket::framed=info,libp2p_ping=info,libp2p_core::upgrade::apply=info,libp2p_kad::kbucket=info,cranelift_codegen=info,wasmer_wasi=info,cranelift_codegen=info,wasmer_wasi=info,run-console=debug"
command:
- --aqua-pool-size=2
- -t=7772
- -w=9992
- -x=10.50.10.20
- --external-maddrs
- /dns4/fluence-2/tcp/7772
- /dns4/fluence-2/tcp/9992/ws
- --allow-private-ips
- --bootstraps=/dns/fluence-1/tcp/7771
# 12D3KooWQdpukY3p2DhDfUfDgphAqsGu5ZUrmQ4mcHSGrRag6gQK
- -k=2WijTVdhVRzyZamWjqPx4V4iNMrajegNMwNa2PmvPSZV6RRpo5M2fsPWdQr22HVRubuJhhSw8BrWiGt6FPhFAuXy
depends_on:
- ipfs
networks:
fluence:
ipv4_address: 10.50.10.20

fluence-3:
image: ${RUST_PEER_IMAGE}
ports:
- 7773:7773
- 9993:9993
environment:
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
RUST_LOG: "info,aquamarine=warn,tokio_threadpool=info,tokio_reactor=info,mio=info,tokio_io=info,soketto=info,yamux=info,multistream_select=info,libp2p_secio=info,libp2p_websocket::framed=info,libp2p_ping=info,libp2p_core::upgrade::apply=info,libp2p_kad::kbucket=info,cranelift_codegen=info,wasmer_wasi=info,cranelift_codegen=info,wasmer_wasi=info,run-console=debug"
command:
- --aqua-pool-size=2
- -t=7773
- -w=9993
- -x=10.50.10.30
- --external-maddrs
- /dns4/fluence-3/tcp/7773
- /dns4/fluence-3/tcp/9993/ws
- --allow-private-ips
- --bootstraps=/dns/fluence-1/tcp/7771
# 12D3KooWRT8V5awYdEZm6aAV9HWweCEbhWd7df4wehqHZXAB7yMZ
- -k=2n2wBVanBeu2GWtvKBdrYK9DJAocgG3PrTUXMharq6TTfxqTL4sLdXL9BF23n6rsnkAY5pR9vBtx2uWYDQAiZdrX
depends_on:
- ipfs
networks:
fluence:
ipv4_address: 10.50.10.30

fluence-4:
image: ${RUST_PEER_IMAGE}
ports:
- 7774:7774
- 9994:9994
environment:
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
RUST_LOG: "info,aquamarine=warn,tokio_threadpool=info,tokio_reactor=info,mio=info,tokio_io=info,soketto=info,yamux=info,multistream_select=info,libp2p_secio=info,libp2p_websocket::framed=info,libp2p_ping=info,libp2p_core::upgrade::apply=info,libp2p_kad::kbucket=info,cranelift_codegen=info,wasmer_wasi=info,cranelift_codegen=info,wasmer_wasi=info,run-console=debug"
command:
- --aqua-pool-size=2
- -t=7774
- -w=9994
- -x=10.50.10.40
- --external-maddrs
- /dns4/fluence-4/tcp/7774
- /dns4/fluence-4/tcp/9994/ws
- --allow-private-ips
- --bootstraps=/dns/fluence-1/tcp/7771
# 12D3KooWBzLSu9RL7wLP6oUowzCbkCj2AGBSXkHSJKuq4wwTfwof
- -k=4zp8ucAikkjB8CmkufYiFBW4QCDUCbQG7yMjviX7W8bMyN5rfChQ2Pi5QCWThrCTbAm9uq5nbFbxtFcNZq3De4dX
depends_on:
- ipfs
networks:
fluence:
ipv4_address: 10.50.10.40

fluence-5:
image: ${RUST_PEER_IMAGE}
ports:
- 7775:7775
- 9995:9995
environment:
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
RUST_LOG: "info,aquamarine=warn,tokio_threadpool=info,tokio_reactor=info,mio=info,tokio_io=info,soketto=info,yamux=info,multistream_select=info,libp2p_secio=info,libp2p_websocket::framed=info,libp2p_ping=info,libp2p_core::upgrade::apply=info,libp2p_kad::kbucket=info,cranelift_codegen=info,wasmer_wasi=info,cranelift_codegen=info,wasmer_wasi=info,run-console=debug"
command:
- --aqua-pool-size=2
- -t=7775
- -w=9995
- -x=10.50.10.50
- --external-maddrs
- /dns4/fluence-5/tcp/7775
- /dns4/fluence-5/tcp/9995/ws
- --allow-private-ips
- --bootstraps=/dns/fluence-1/tcp/7771
# 12D3KooWBf6hFgrnXwHkBnwPGMysP3b1NJe5HGtAWPYfwmQ2MBiU
- -k=3ry26rm5gkJXvdqRH4FoM3ezWq4xVVsBQF7wtKq4E4pbuaa6p1F84tNqifUS7DdfJL9hs2gcdW64Wc342vHZHMUp
depends_on:
- ipfs
networks:
fluence:
ipv4_address: 10.50.10.50

fluence-6:
image: ${RUST_PEER_IMAGE}
ports:
- 7776:7776
- 9996:9996
environment:
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
RUST_LOG: "info,aquamarine=warn,tokio_threadpool=info,tokio_reactor=info,mio=info,tokio_io=info,soketto=info,yamux=info,multistream_select=info,libp2p_secio=info,libp2p_websocket::framed=info,libp2p_ping=info,libp2p_core::upgrade::apply=info,libp2p_kad::kbucket=info,cranelift_codegen=info,wasmer_wasi=info,cranelift_codegen=info,wasmer_wasi=info,run-console=debug"
command:
- --aqua-pool-size=2
- -t=7776
- -w=9996
- --bootstraps=/dns/fluence-1/tcp/7771
- -x=10.50.10.60
- --external-maddrs
- /dns4/fluence-6/tcp/7776
- /dns4/fluence-6/tcp/9996/ws
- --allow-private-ips
# 12D3KooWPisGn7JhooWhggndz25WM7vQ2JmA121EV8jUDQ5xMovJ
- -k=5Qh8bB1sF28uLPwr3HTvEksCeC6mAWQvebCfcgv9y6j4qKwSzNKm2tzLUg4nACUEo2KZpBw11gNCnwaAdM7o1pEn
depends_on:
- ipfs
networks:
fluence:
ipv4_address: 10.50.10.60
12 changes: 12 additions & 0 deletions .github/e2e/ipfs/01-configure.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh
ipfs bootstrap rm --all

ipfs config Addresses.API "/ip4/0.0.0.0/tcp/5001"
ipfs config Addresses.Gateway "/ip4/0.0.0.0/tcp/8001"
ipfs config --json Addresses.Swarm '["/ip4/0.0.0.0/tcp/4001", "/ip4/0.0.0.0/tcp/4001/ws"]'
ipfs config --json Addresses.Announce '["/ip4/10.50.10.1/tcp/4001", "/ip4/10.50.10.1/tcp/4001/ws"]'

ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'

ipfs config --json Pubsub.Enabled true
2 changes: 2 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ jobs:
uses: fluencelabs/aqua-playground/.github/workflows/tests.yml@master
with:
js-client-snapshots: "${{ needs.js-client.outputs.js-client-snapshots }}"
rust-peer-image: "docker.fluence.dev/nox:minimal_aquavm-0-39-1"

fluence-cli:
needs:
Expand All @@ -51,3 +52,4 @@ jobs:
uses: fluencelabs/fluence-cli/.github/workflows/tests.yml@main
with:
js-client-snapshots: "${{ needs.js-client.outputs.js-client-snapshots }}"
rust-peer-image: "docker.fluence.dev/nox:minimal_aquavm-0-39-1"
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/[email protected]
with:
version: 7
version: 8

- name: Setup node
uses: actions/setup-node@v3
Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/[email protected]
with:
version: 7
version: 8

- name: Setup node
uses: actions/setup-node@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:

- uses: pnpm/[email protected]
with:
version: 7
version: 8

- name: Setup node with self-hosted npm registry
uses: actions/setup-node@v3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
rust-peer-image:
description: "rust-peer image tag"
type: string
default: "fluencelabs/rust-peer:minimal"
default: "docker.fluence.dev/nox:ipfs_aquavm-0-39-1_2346_1"
avm-version:
description: "@fluencelabs/avm version"
type: string
Expand Down Expand Up @@ -83,7 +83,7 @@ jobs:
- name: Setup pnpm
uses: pnpm/[email protected]
with:
version: 7
version: 8

- name: Setup node ${{ matrix.node-version }} with self-hosted registry
uses: actions/setup-node@v3
Expand Down
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.github
Binary file not shown.
1 change: 0 additions & 1 deletion packages/@tests/aqua/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
"license": "Apache-2.0",
"dependencies": {
"@fluencelabs/js-client.api": "workspace:^",
"@fluencelabs/fluence-network-environment": "1.0.14",
"base64-js": "1.5.1"
},
"devDependencies": {
Expand Down
15 changes: 4 additions & 11 deletions packages/@tests/aqua/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
import { fromByteArray } from 'base64-js';
import { Fluence } from '@fluencelabs/js-client.api';
import type { ClientConfig } from '@fluencelabs/js-client.api';
import { kras, randomKras } from '@fluencelabs/fluence-network-environment';
import { registerHelloWorld, helloTest, marineTest, resourceTest } from './_aqua/smoke_test.js';
import { wasm } from './wasmb64.js';

// Relay running on local machine
// const relay = {
// multiaddr: '/ip4/127.0.0.1/tcp/4310/ws/p2p/12D3KooWKEprYXUXqoV5xSBeyqrWLpQLLH4PXfvVkDJtmcqmh5V3',
// peerId: '12D3KooWKEprYXUXqoV5xSBeyqrWLpQLLH4PXfvVkDJtmcqmh5V3',
// };

// Currently the tests executes some calls to registry. And they fail for a single local node setup. So we use kras instead.
// TODO DXJ-356: use local peers instead of kras
// const relay = randomKras();
const relay = kras[4];
const relay = {
multiaddr: '/ip4/127.0.0.1/tcp/9991/ws/p2p/12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR',
peerId: '12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR',
};

function generateRandomUint8Array() {
const uint8Array = new Uint8Array(32);
Expand Down
12 changes: 2 additions & 10 deletions packages/@tests/smoke/web/public/index.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
const fluence = globalThis.fluence;

// Relay from kras network
// Currently the tests executes some calls to registry. And they fail for a single local node setup. So we use kras instead.
const relay = {
multiaddr: '/dns4/kras-01.fluence.dev/tcp/19001/wss/p2p/12D3KooWKnEqMfYo9zvfHmqTLpLdiHXPe4SVqUWcWHDJdFGrSmcA',
peerId: '12D3KooWKnEqMfYo9zvfHmqTLpLdiHXPe4SVqUWcWHDJdFGrSmcA',
multiaddr: '/ip4/127.0.0.1/tcp/9991/ws/p2p/12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR',
peerId: '12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR',
};

// Relay running on local machine
//const relay = {
// multiaddr: '/ip4/127.0.0.1/tcp/4310/ws/p2p/12D3KooWKEprYXUXqoV5xSBeyqrWLpQLLH4PXfvVkDJtmcqmh5V3',
// peerId: '12D3KooWKEprYXUXqoV5xSBeyqrWLpQLLH4PXfvVkDJtmcqmh5V3',
//};

const getRelayTime = () => {
const script = `
(xor
Expand Down
Loading