Skip to content
This repository was archived by the owner on Jul 10, 2025. It is now read-only.

Commit a60dfe0

Browse files
shamsartemfolex
andauthored
feat: support signatures [fixes DXJ-389] (#310)
* feat: support signatures [fixes DXJ-389] * chore(ci): use nox with avm 0.39.1 --------- Co-authored-by: folex <[email protected]>
1 parent b9f549f commit a60dfe0

File tree

21 files changed

+4008
-3670
lines changed

21 files changed

+4008
-3670
lines changed

.github/e2e/docker-compose.yml

Lines changed: 201 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,208 @@
1+
networks:
2+
fluence:
3+
driver: bridge
4+
ipam:
5+
config:
6+
- subnet: 10.50.10.0/24
7+
18
services:
9+
aurora:
10+
image: docker.fluence.dev/aurora:main-9e7523f-4-1
11+
ports:
12+
- 8545:8545
13+
networks:
14+
fluence:
15+
16+
ipfs:
17+
image: ipfs/go-ipfs
18+
ports:
19+
- 5001:5001
20+
- 4001:4001
21+
environment:
22+
IPFS_PROFILE: server
23+
volumes:
24+
- ./ipfs/:/container-init.d/
25+
networks:
26+
fluence:
27+
ipv4_address: 10.50.10.100
28+
229
fluence-1:
330
image: ${RUST_PEER_IMAGE}
431
ports:
5-
- 1210:1210
6-
- 4310:4310
32+
- 7771:7771
33+
- 9991:9991
34+
environment:
35+
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
36+
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
37+
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
38+
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
39+
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
40+
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"
741
command:
8-
- -t=1210
9-
- -w=4310
42+
- --aqua-pool-size=2
43+
- -t=7771
44+
- -w=9991
45+
- -x=10.50.10.10
46+
- --external-maddrs
47+
- /dns4/fluence-1/tcp/7771
48+
- /dns4/fluence-1/tcp/9991/ws
49+
- --allow-private-ips
1050
- --local
11-
- -k=gKdiCSUr1TFGFEgu2t8Ch1XEUsrN5A2UfBLjSZvfci9SPR3NvZpACfcpPGC3eY4zma1pk7UvYv5zb1VjvPHwCjj
51+
# - --bootstraps=/dns/fluence-1/tcp/7771
52+
# 12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR
53+
- -k=hK62afickoeP2uZbmSkAYXxxqP8ozq16VRN7qfTP719EHC5V5tjrtW57BSjUr8GvsEXmJRbtejUWyPZ2rZMyQdq
54+
depends_on:
55+
- ipfs
56+
networks:
57+
fluence:
58+
ipv4_address: 10.50.10.10
59+
60+
fluence-2:
61+
image: ${RUST_PEER_IMAGE}
62+
ports:
63+
- 7772:7772
64+
- 9992:9992
65+
environment:
66+
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
67+
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
68+
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
69+
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
70+
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
71+
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"
72+
command:
73+
- --aqua-pool-size=2
74+
- -t=7772
75+
- -w=9992
76+
- -x=10.50.10.20
77+
- --external-maddrs
78+
- /dns4/fluence-2/tcp/7772
79+
- /dns4/fluence-2/tcp/9992/ws
80+
- --allow-private-ips
81+
- --bootstraps=/dns/fluence-1/tcp/7771
82+
# 12D3KooWQdpukY3p2DhDfUfDgphAqsGu5ZUrmQ4mcHSGrRag6gQK
83+
- -k=2WijTVdhVRzyZamWjqPx4V4iNMrajegNMwNa2PmvPSZV6RRpo5M2fsPWdQr22HVRubuJhhSw8BrWiGt6FPhFAuXy
84+
depends_on:
85+
- ipfs
86+
networks:
87+
fluence:
88+
ipv4_address: 10.50.10.20
89+
90+
fluence-3:
91+
image: ${RUST_PEER_IMAGE}
92+
ports:
93+
- 7773:7773
94+
- 9993:9993
95+
environment:
96+
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
97+
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
98+
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
99+
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
100+
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
101+
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"
102+
command:
103+
- --aqua-pool-size=2
104+
- -t=7773
105+
- -w=9993
106+
- -x=10.50.10.30
107+
- --external-maddrs
108+
- /dns4/fluence-3/tcp/7773
109+
- /dns4/fluence-3/tcp/9993/ws
110+
- --allow-private-ips
111+
- --bootstraps=/dns/fluence-1/tcp/7771
112+
# 12D3KooWRT8V5awYdEZm6aAV9HWweCEbhWd7df4wehqHZXAB7yMZ
113+
- -k=2n2wBVanBeu2GWtvKBdrYK9DJAocgG3PrTUXMharq6TTfxqTL4sLdXL9BF23n6rsnkAY5pR9vBtx2uWYDQAiZdrX
114+
depends_on:
115+
- ipfs
116+
networks:
117+
fluence:
118+
ipv4_address: 10.50.10.30
119+
120+
fluence-4:
121+
image: ${RUST_PEER_IMAGE}
122+
ports:
123+
- 7774:7774
124+
- 9994:9994
125+
environment:
126+
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
127+
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
128+
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
129+
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
130+
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
131+
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"
132+
command:
133+
- --aqua-pool-size=2
134+
- -t=7774
135+
- -w=9994
136+
- -x=10.50.10.40
137+
- --external-maddrs
138+
- /dns4/fluence-4/tcp/7774
139+
- /dns4/fluence-4/tcp/9994/ws
140+
- --allow-private-ips
141+
- --bootstraps=/dns/fluence-1/tcp/7771
142+
# 12D3KooWBzLSu9RL7wLP6oUowzCbkCj2AGBSXkHSJKuq4wwTfwof
143+
- -k=4zp8ucAikkjB8CmkufYiFBW4QCDUCbQG7yMjviX7W8bMyN5rfChQ2Pi5QCWThrCTbAm9uq5nbFbxtFcNZq3De4dX
144+
depends_on:
145+
- ipfs
146+
networks:
147+
fluence:
148+
ipv4_address: 10.50.10.40
149+
150+
fluence-5:
151+
image: ${RUST_PEER_IMAGE}
152+
ports:
153+
- 7775:7775
154+
- 9995:9995
155+
environment:
156+
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
157+
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
158+
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
159+
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
160+
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
161+
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"
162+
command:
163+
- --aqua-pool-size=2
164+
- -t=7775
165+
- -w=9995
166+
- -x=10.50.10.50
167+
- --external-maddrs
168+
- /dns4/fluence-5/tcp/7775
169+
- /dns4/fluence-5/tcp/9995/ws
170+
- --allow-private-ips
171+
- --bootstraps=/dns/fluence-1/tcp/7771
172+
# 12D3KooWBf6hFgrnXwHkBnwPGMysP3b1NJe5HGtAWPYfwmQ2MBiU
173+
- -k=3ry26rm5gkJXvdqRH4FoM3ezWq4xVVsBQF7wtKq4E4pbuaa6p1F84tNqifUS7DdfJL9hs2gcdW64Wc342vHZHMUp
174+
depends_on:
175+
- ipfs
176+
networks:
177+
fluence:
178+
ipv4_address: 10.50.10.50
179+
180+
fluence-6:
181+
image: ${RUST_PEER_IMAGE}
182+
ports:
183+
- 7776:7776
184+
- 9996:9996
185+
environment:
186+
FLUENCE_ENV_AQUA_IPFS_EXTERNAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
187+
FLUENCE_ENV_CONNECTOR_API_ENDPOINT: http://aurora:8545
188+
FLUENCE_ENV_CONNECTOR_CONTRACT_ADDRESS: "0xea6777e8c011E7968605fd012A9Dd49401ec386C"
189+
FLUENCE_ENV_CONNECTOR_FROM_BLOCK: earliest
190+
FLUENCE_ENV_AQUA_IPFS_LOCAL_API_MULTIADDR: "/ip4/10.50.10.100/tcp/5001"
191+
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"
192+
command:
12193
- --aqua-pool-size=2
194+
- -t=7776
195+
- -w=9996
196+
- --bootstraps=/dns/fluence-1/tcp/7771
197+
- -x=10.50.10.60
198+
- --external-maddrs
199+
- /dns4/fluence-6/tcp/7776
200+
- /dns4/fluence-6/tcp/9996/ws
201+
- --allow-private-ips
202+
# 12D3KooWPisGn7JhooWhggndz25WM7vQ2JmA121EV8jUDQ5xMovJ
203+
- -k=5Qh8bB1sF28uLPwr3HTvEksCeC6mAWQvebCfcgv9y6j4qKwSzNKm2tzLUg4nACUEo2KZpBw11gNCnwaAdM7o1pEn
204+
depends_on:
205+
- ipfs
206+
networks:
207+
fluence:
208+
ipv4_address: 10.50.10.60

.github/e2e/ipfs/01-configure.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/sh
2+
ipfs bootstrap rm --all
3+
4+
ipfs config Addresses.API "/ip4/0.0.0.0/tcp/5001"
5+
ipfs config Addresses.Gateway "/ip4/0.0.0.0/tcp/8001"
6+
ipfs config --json Addresses.Swarm '["/ip4/0.0.0.0/tcp/4001", "/ip4/0.0.0.0/tcp/4001/ws"]'
7+
ipfs config --json Addresses.Announce '["/ip4/10.50.10.1/tcp/4001", "/ip4/10.50.10.1/tcp/4001/ws"]'
8+
9+
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
10+
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'
11+
12+
ipfs config --json Pubsub.Enabled true

.github/workflows/e2e.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ jobs:
4343
uses: fluencelabs/aqua-playground/.github/workflows/tests.yml@master
4444
with:
4545
js-client-snapshots: "${{ needs.js-client.outputs.js-client-snapshots }}"
46+
rust-peer-image: "docker.fluence.dev/nox:minimal_aquavm-0-39-1"
4647

4748
fluence-cli:
4849
needs:
@@ -51,3 +52,4 @@ jobs:
5152
uses: fluencelabs/fluence-cli/.github/workflows/tests.yml@main
5253
with:
5354
js-client-snapshots: "${{ needs.js-client.outputs.js-client-snapshots }}"
55+
rust-peer-image: "docker.fluence.dev/nox:minimal_aquavm-0-39-1"

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
- name: Setup pnpm
5656
uses: pnpm/[email protected]
5757
with:
58-
version: 7
58+
version: 8
5959

6060
- name: Setup node
6161
uses: actions/setup-node@v3
@@ -105,7 +105,7 @@ jobs:
105105
- name: Setup pnpm
106106
uses: pnpm/[email protected]
107107
with:
108-
version: 7
108+
version: 8
109109

110110
- name: Setup node
111111
uses: actions/setup-node@v3

.github/workflows/snapshot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545

4646
- uses: pnpm/[email protected]
4747
with:
48-
version: 7
48+
version: 8
4949

5050
- name: Setup node with self-hosted npm registry
5151
uses: actions/setup-node@v3

.github/workflows/tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
rust-peer-image:
77
description: "rust-peer image tag"
88
type: string
9-
default: "fluencelabs/rust-peer:minimal"
9+
default: "docker.fluence.dev/nox:ipfs_aquavm-0-39-1_2346_1"
1010
avm-version:
1111
description: "@fluencelabs/avm version"
1212
type: string
@@ -83,7 +83,7 @@ jobs:
8383
- name: Setup pnpm
8484
uses: pnpm/[email protected]
8585
with:
86-
version: 7
86+
version: 8
8787

8888
- name: Setup node ${{ matrix.node-version }} with self-hosted registry
8989
uses: actions/setup-node@v3

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.github
1.1 MB
Binary file not shown.

packages/@tests/aqua/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
"license": "Apache-2.0",
1919
"dependencies": {
2020
"@fluencelabs/js-client.api": "workspace:^",
21-
"@fluencelabs/fluence-network-environment": "1.0.14",
2221
"base64-js": "1.5.1"
2322
},
2423
"devDependencies": {

packages/@tests/aqua/src/index.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
11
import { fromByteArray } from 'base64-js';
22
import { Fluence } from '@fluencelabs/js-client.api';
33
import type { ClientConfig } from '@fluencelabs/js-client.api';
4-
import { kras, randomKras } from '@fluencelabs/fluence-network-environment';
54
import { registerHelloWorld, helloTest, marineTest, resourceTest } from './_aqua/smoke_test.js';
65
import { wasm } from './wasmb64.js';
76

8-
// Relay running on local machine
9-
// const relay = {
10-
// multiaddr: '/ip4/127.0.0.1/tcp/4310/ws/p2p/12D3KooWKEprYXUXqoV5xSBeyqrWLpQLLH4PXfvVkDJtmcqmh5V3',
11-
// peerId: '12D3KooWKEprYXUXqoV5xSBeyqrWLpQLLH4PXfvVkDJtmcqmh5V3',
12-
// };
13-
14-
// Currently the tests executes some calls to registry. And they fail for a single local node setup. So we use kras instead.
15-
// TODO DXJ-356: use local peers instead of kras
16-
// const relay = randomKras();
17-
const relay = kras[4];
7+
const relay = {
8+
multiaddr: '/ip4/127.0.0.1/tcp/9991/ws/p2p/12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR',
9+
peerId: '12D3KooWBM3SdXWqGaawQDGQ6JprtwswEg3FWGvGhmgmMez1vRbR',
10+
};
1811

1912
function generateRandomUint8Array() {
2013
const uint8Array = new Uint8Array(32);

0 commit comments

Comments
 (0)