Skip to content

Commit df62b86

Browse files
Update decentralized-threshold-signing-service_1_lederstrumpf.md
1 parent 60272fa commit df62b86

File tree

1 file changed

+150
-0
lines changed

1 file changed

+150
-0
lines changed

evaluations/decentralized-threshold-signing-service_1_lederstrumpf.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
- **Status:** Accepted
44
- **Application Document:** https://github.com/w3f/Grants-Program/blob/master/applications/DecentralizedThresholdSigningService.md
55
- **Milestone:** 1
6+
- **Review by:** lederstrumpf, keeganquigley
67

78
| Number | Deliverable | Accepted | Link | Evaluation Notes |
89
| ------ | ----------- | -------- | ---- |----------------- |
@@ -20,3 +21,152 @@ Delivery initial lacked proof of possession for authenticated address registerin
2021
Still had some reliability issues with the relayer connection, but delayed this to milestone 2, which grantee has already opened PR for.
2122

2223
Likewise, I reckon the [relay's peer id](https://github.com/Fiono11/decentralized_threshold_signing_service/blob/8f735e2365364c0d2fd253c3127f755dc1d09ac1/index.js#L591) should still be authenticated with a proof of possession, but likewise delaying this to milestone 2 - grantee already has created the plumbing for this, so it's a simple addition.
24+
25+
## Testing
26+
27+
All tests passing:
28+
29+
<details>
30+
<summary>Output</summary>
31+
32+
```js
33+
@keeganquigley ➜ /workspaces/decentralized_threshold_signing_service (main) $ npm run test:docker
34+
35+
> relay-server-and-client@1.0.0 test:docker
36+
> docker compose run --no-deps test
37+
38+
[+] Creating 1/1
39+
✔ Network decentralized_threshold_signing_service_libp2p-network Created 0.1s
40+
[+] Building 186.9s (17/17) FINISHED
41+
=> [internal] load local bake definitions 0.0s
42+
=> => reading from stdin 635B 0.0s
43+
=> [internal] load build definition from Dockerfile 0.0s
44+
=> => transferring dockerfile: 2.13kB 0.0s
45+
=> [internal] load metadata for docker.io/library/node:22.2.0-bookworm-slim 0.4s
46+
=> [auth] library/node:pull token for registry-1.docker.io 0.0s
47+
=> [internal] load .dockerignore 0.0s
48+
=> => transferring context: 938B 0.0s
49+
=> [base 1/5] FROM docker.io/library/node:22.2.0-bookworm-slim@sha256:840079c08ec485123cf7ea506a13af 7.6s
50+
=> => resolve docker.io/library/node:22.2.0-bookworm-slim@sha256:840079c08ec485123cf7ea506a13afea630 0.0s
51+
=> => sha256:840079c08ec485123cf7ea506a13afea630db25606f71e6140cf8dbdf9bba552 1.21kB / 1.21kB 0.0s
52+
=> => sha256:54284c1aa369d17342e9b029339992695df9597829cc8313bd11008ec091699a 1.37kB / 1.37kB 0.0s
53+
=> => sha256:1085611e6ebe7290339ec397e0f55dd9cc422b0db965aba0a670ad06b3bb82cf 7.70kB / 7.70kB 0.0s
54+
=> => sha256:09f376ebb190216b0459f470e71bec7b5dfa611d66bf008492b40dcc5f1d8eae 29.15MB / 29.15MB 0.9s
55+
=> => sha256:44f5fe9df22b4c549ef3e662bd64e1e6edb8d3738224047ce56d83ab2f498943 3.35kB / 3.35kB 0.1s
56+
=> => sha256:07a4a62018e8350538c8a53e43d66942f7a0fa8984748bda3a1974e33d8636ae 44.69MB / 44.69MB 1.9s
57+
=> => sha256:0da19169e255ae8a7de93bec201d4db4314de8b33d7b32d21279e64818d1e42f 1.71MB / 1.71MB 0.2s
58+
=> => sha256:efc12b7aeef742f9da977b067a4a0a828adb48242e5be9b859d5e3969996d670 450B / 450B 0.2s
59+
=> => extracting sha256:09f376ebb190216b0459f470e71bec7b5dfa611d66bf008492b40dcc5f1d8eae 1.6s
60+
=> => extracting sha256:44f5fe9df22b4c549ef3e662bd64e1e6edb8d3738224047ce56d83ab2f498943 0.0s
61+
=> => extracting sha256:07a4a62018e8350538c8a53e43d66942f7a0fa8984748bda3a1974e33d8636ae 1.6s
62+
=> => extracting sha256:0da19169e255ae8a7de93bec201d4db4314de8b33d7b32d21279e64818d1e42f 0.1s
63+
=> => extracting sha256:efc12b7aeef742f9da977b067a4a0a828adb48242e5be9b859d5e3969996d670 0.0s
64+
=> [internal] load build context 0.1s
65+
=> => transferring context: 961.42kB 0.0s
66+
=> [base 2/5] WORKDIR /app 0.0s
67+
=> [base 3/5] RUN apt-get update && apt-get install -y python3 make g++ ca-certific 25.8s
68+
=> [base 4/5] COPY package*.json ./ 0.1s
69+
=> [base 5/5] RUN npm ci --only=production && npm cache clean --force && rm -rf /tmp/* 15.5s
70+
=> [dev-deps 1/1] RUN npm ci && npm cache clean --force && rm -rf /tmp/* 22.6s
71+
=> [test 1/3] RUN apt-get update && apt-get install -y wget gnupg ca-certificates f 39.7s
72+
=> [test 2/3] RUN npx playwright install chromium --with-deps && rm -rf /tmp/* 31.9s
73+
=> [test 3/3] COPY . . 0.2s
74+
=> exporting to image 42.9s
75+
=> => exporting layers 42.8s
76+
=> => writing image sha256:e238aedaed4d640ee718fec6349ccef3060c50589db9754bc3664aa155ba2a1d 0.0s
77+
=> => naming to docker.io/library/decentralized_threshold_signing_service-test 0.0s
78+
=> resolving provenance for metadata file 0.0s
79+
80+
81+
> npm run build && playwright test test
82+
83+
84+
85+
> vite build
86+
87+
vite v6.3.5 building for production...
88+
node_modules/@polkadot/x-global/index.js (9:23): A comment
89+
90+
"/*#__PURE__*/"
91+
92+
in "node_modules/@polkadot/x-global/index.js" contains an annotation that Rollup cannot interpret due to the position of the comment. The comment will be removed to avoid issues.
93+
✓ 1014 modules transformed.
94+
dist/index.html 8.38 kB │ gzip: 2.39 kB
95+
dist/assets/index-KR8s6BYb.js 815.19 kB │ gzip: 347.54 kB
96+
97+
(!) Some chunks are larger than 500 kB after minification. Consider:
98+
- Using dynamic import() to code-split the application
99+
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
100+
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
101+
[WebServer] node_modules/@polkadot/x-global/index.js (9:23): A comment
102+
[WebServer]
103+
[WebServer] "/*#__PURE__*/"
104+
[WebServer]
105+
[WebServer] in "node_modules/@polkadot/x-global/index.js" contains an annotation that Rollup cannot interpret due to the position of the comment. The comment will be removed to avoid issues.
106+
[WebServer]
107+
[WebServer] (!) Some chunks are larger than 500 kB after minification. Consider:
108+
[WebServer] - Using dynamic import() to code-split the application
109+
[WebServer] - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
110+
[WebServer] - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
111+
112+
113+
Running 3 tests using 1 worker
114+
…ser example: › should connect to another browser peer and send a message via SS58 addresses with permission
115+
Test relay listening on: /ip4/127.0.0.1/tcp/8080/ws/p2p/12D3KooWMUBCtwNu7NGmMidjaiQEBTDVnfYYK3ZWfgqqdpS3XoDN
116+
Starting Vite servers...
117+
Vite server on port 5173:
118+
119+
> vite
120+
121+
122+
Vite server on port 5173: Port 5173 is in use, trying another one...
123+
124+
Vite server on port 5173:
125+
VITE v6.3.5 ready in 163 ms
126+
127+
128+
Vite server on port 5173: ➜ Local: http://localhost:5174/
129+
➜ Network: http://172.18.0.2:5174/
130+
131+
Vite server on port 5174:
132+
133+
> vite
134+
135+
136+
Vite server on port 5174: Port 5174 is in use, trying another one...
137+
138+
Vite server on port 5174:
139+
VITE v6.3.5 ready in 158 ms
140+
141+
142+
Client A URL: http://localhost:5173
143+
Client B URL: http://localhost:5174
144+
Vite server on port 5174: ➜ Local: http://localhost:5175/
145+
➜ Network: http://172.18.0.2:5175/
146+
147+
Generated challenge for 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw: 2c839e27c707f1134c8cea7ec1d4913824167f6fd78304e05901babfb1984070
148+
Stored with proof of possession: 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw -> /ip4/127.0.0.1/tcp/8080/ws/p2p/12D3KooWA1bysjrTACSWqf6q172inxvwKHUxAnBtVgaVDKMxpZtx/p2p-circuit/webrtc/p2p/12D3KooWQ86skArFuw6PPPGi59huzEps1AMRwLfE8EHaJWceXWL6 (1 total)
149+
Generated challenge for 5Gma8SNsn6rkQf9reAWFQ9WKq8bwwHtSzwMYtLTdhYsGPKiy: 7695900331bca0abf13c42940a18f900d8fc539ab05f08a6fe111b6329d03011
150+
Stored with proof of possession: 5Gma8SNsn6rkQf9reAWFQ9WKq8bwwHtSzwMYtLTdhYsGPKiy -> /ip4/127.0.0.1/tcp/8080/ws/p2p/12D3KooWA1bysjrTACSWqf6q172inxvwKHUxAnBtVgaVDKMxpZtx/p2p-circuit/webrtc/p2p/12D3KooWSPwqMgR27J33zBYvwUuZukrnUMWdzHYuAGx7J2yCp6Ws (2 total)
151+
Permission request bcbd9329-e9e4-4772-bc3f-e59c091daafe: 5Gma8SNsn6rkQf9reAWFQ9WKq8bwwHtSzwMYtLTdhYsGPKiy wants to connect to 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw
152+
Permission request bcbd9329-e9e4-4772-bc3f-e59c091daafe: accepted
153+
Query: 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw -> found
154+
…› browser to browser example: › should perform mutual proof of possession during connection with permission
155+
Generated challenge for 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw: 29c2dcd05a27bb13c4c9a87ad4980f2513ba082c85a6352e17de647612428a5e
156+
Stored with proof of possession: 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw -> /ip4/127.0.0.1/tcp/8080/ws/p2p/12D3KooWA1bysjrTACSWqf6q172inxvwKHUxAnBtVgaVDKMxpZtx/p2p-circuit/webrtc/p2p/12D3KooWP1wUS7oxLqcBbiRCAaJEHxeJ8fPwVHoDjEfpbrDM7SBc (2 total)
157+
Generated challenge for 5Gma8SNsn6rkQf9reAWFQ9WKq8bwwHtSzwMYtLTdhYsGPKiy: 39f7e96d369989225dbaaf5490d55aa66654b9009a93e5f4ed78057f8ecd6093
158+
Stored with proof of possession: 5Gma8SNsn6rkQf9reAWFQ9WKq8bwwHtSzwMYtLTdhYsGPKiy -> /ip4/127.0.0.1/tcp/8080/ws/p2p/12D3KooWA1bysjrTACSWqf6q172inxvwKHUxAnBtVgaVDKMxpZtx/p2p-circuit/webrtc/p2p/12D3KooWKDqjmY7beZDQghojmZJUzVVKN9xva9o4fhHjsJi99CD9 (2 total)
159+
Permission request d709e81a-cc8d-4f58-aba2-b0b3f0a6e9d9: 5Gma8SNsn6rkQf9reAWFQ9WKq8bwwHtSzwMYtLTdhYsGPKiy wants to connect to 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw
160+
Permission request d709e81a-cc8d-4f58-aba2-b0b3f0a6e9d9: accepted
161+
Query: 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw -> found
162+
…m] › test/index.spec.js:243:3 › browser to browser example: › should handle permission rejection gracefully
163+
Generated challenge for 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw: 62a77fc1e9920590d6545c00a9d1a309b6ba202bbcc0fbba1ed741ada59cb285
164+
Stored with proof of possession: 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw -> /ip4/127.0.0.1/tcp/8080/ws/p2p/12D3KooWA1bysjrTACSWqf6q172inxvwKHUxAnBtVgaVDKMxpZtx/p2p-circuit/webrtc/p2p/12D3KooWCffbD2o1vBrDUrMZueZS5GW5re95FMqQ8A4KEyVKoKxb (2 total)
165+
Generated challenge for 5Gma8SNsn6rkQf9reAWFQ9WKq8bwwHtSzwMYtLTdhYsGPKiy: 9635bf85f20863b8e3446373bdecb33f0f87ff99c34e8c14b93d45d48dd7b624
166+
Stored with proof of possession: 5Gma8SNsn6rkQf9reAWFQ9WKq8bwwHtSzwMYtLTdhYsGPKiy -> /ip4/127.0.0.1/tcp/8080/ws/p2p/12D3KooWA1bysjrTACSWqf6q172inxvwKHUxAnBtVgaVDKMxpZtx/p2p-circuit/webrtc/p2p/12D3KooWB93KmbTpyYTsE5CSaryyXLoQrpjEXF5e6d9NKnERXdxM (2 total)
167+
Permission request 7349ce34-a317-4e4b-a38d-be20adb09fa1: 5Gma8SNsn6rkQf9reAWFQ9WKq8bwwHtSzwMYtLTdhYsGPKiy wants to connect to 5CXkZyy4S5b3w16wvKA2hUwzp5q2y7UtRPkXnW97QGvDN8Jw
168+
Permission request 7349ce34-a317-4e4b-a38d-be20adb09fa1: rejected
169+
Stopping Vite servers...
170+
3 passed (48.4s)
171+
```
172+
</details>

0 commit comments

Comments
 (0)