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

Commit 976cd04

Browse files
authored
Sig service redesign (#126)
1 parent 0c5feca commit 976cd04

File tree

23 files changed

+9759
-6294
lines changed

23 files changed

+9759
-6294
lines changed

.github/workflows/publish_branch.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
### Publish to NPM registry
2828
- uses: actions/setup-node@v1
2929
with:
30-
node-version: '15'
30+
node-version: '16'
3131
registry-url: 'https://registry.npmjs.org'
3232

3333
- run: cat package.json

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
### Publish to NPM registry
2828
- uses: actions/setup-node@v1
2929
with:
30-
node-version: '14'
30+
node-version: '16'
3131
registry-url: 'https://registry.npmjs.org'
3232

3333
- run: npm i

aqua/src/services.aqua

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
-- import SignResult, Sig from "@fluencelabs/aqua-lib/builtin.aqua"
2+
-- export SignResult, Sig
3+
4+
-- TODO:: fix this issue: https://github.com/fluencelabs/aqua-lib/issues/12
5+
-- and remove copy-paste
6+
7+
data SignResult:
8+
-- Was call successful or not
9+
success: bool
10+
-- Error message. Will be null if the call is successful
11+
error: ?string
12+
-- Signature as byte array. Will be null if the call is not successful
13+
signature: ?[]u8
14+
15+
-- Available only on FluenceJS peers
16+
-- The service can also be resolved by it's host peer id
17+
service Sig("sig"):
18+
-- Signs data with the service's private key.
19+
-- Depending on implementation the service might check call params to restrict usage for security reasons.
20+
-- By default it is only allowed to be used on the same peer the particle was initiated
21+
-- and accepts data only from the following sources:
22+
-- trust-graph.get_trust_bytes
23+
-- trust-graph.get_revocation_bytes
24+
-- registry.get_key_bytes
25+
-- registry.get_record_bytes
26+
-- registry.get_host_record_bytes
27+
-- Argument: data - byte array to sign
28+
-- Returns: signature as SignResult structure
29+
sign(data: []u8) -> SignResult
30+
31+
-- Given the data and signature both as byte arrays, returns true if the signature is correct, false otherwise.
32+
verify(signature: []u8, data: []u8) -> bool
33+
34+
-- Gets service's public key.
35+
get_pub_key() -> string

aqua/tests/sig-tests.aqua

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import SignResult, Sig from "../src/services.aqua"
2+
export Sig
3+
4+
service DataProvider("data"):
5+
provide_data() -> []u8
6+
7+
func callSig(sigId: string) -> SignResult:
8+
data <- DataProvider.provide_data()
9+
Sig sigId
10+
signature <- Sig.sign(data)
11+
<- signature

docs/assets/js/search.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/classes/FluencePeer.html

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ <h3>Accessors</h3>
100100
<section class="tsd-index-section ">
101101
<h3>Methods</h3>
102102
<ul class="tsd-index-list">
103+
<li class="tsd-kind-method tsd-parent-kind-class"><a href="FluencePeer.html#getServices" class="tsd-kind-icon">get<wbr>Services</a></li>
103104
<li class="tsd-kind-method tsd-parent-kind-class"><a href="FluencePeer.html#getStatus" class="tsd-kind-icon">get<wbr>Status</a></li>
104105
<li class="tsd-kind-method tsd-parent-kind-class"><a href="FluencePeer.html#start" class="tsd-kind-icon">start</a></li>
105106
<li class="tsd-kind-method tsd-parent-kind-class"><a href="FluencePeer.html#stop" class="tsd-kind-icon">stop</a></li>
@@ -121,7 +122,7 @@ <h3>constructor</h3>
121122
<li class="tsd-description">
122123
<aside class="tsd-sources">
123124
<ul>
124-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/FluencePeer.ts#L138">internal/FluencePeer.ts:138</a></li>
125+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/FluencePeer.ts#L140">internal/FluencePeer.ts:140</a></li>
125126
</ul>
126127
</aside>
127128
<div class="tsd-comment tsd-typography">
@@ -146,7 +147,7 @@ <h3>internals</h3>
146147
<li class="tsd-description">
147148
<aside class="tsd-sources">
148149
<ul>
149-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/FluencePeer.ts#L243">internal/FluencePeer.ts:243</a></li>
150+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/FluencePeer.ts#L257">internal/FluencePeer.ts:257</a></li>
150151
</ul>
151152
</aside>
152153
<div class="tsd-comment tsd-typography">
@@ -315,6 +316,28 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</spa
315316
</section>
316317
<section class="tsd-panel-group tsd-member-group ">
317318
<h2>Methods</h2>
319+
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
320+
<a name="getServices" class="tsd-anchor"></a>
321+
<h3>get<wbr>Services</h3>
322+
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
323+
<li class="tsd-signature tsd-kind-icon">get<wbr>Services<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>sig<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Sig</span><span class="tsd-signature-symbol"> }</span></li>
324+
</ul>
325+
<ul class="tsd-descriptions">
326+
<li class="tsd-description">
327+
<aside class="tsd-sources">
328+
<ul>
329+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/FluencePeer.ts#L229">internal/FluencePeer.ts:229</a></li>
330+
</ul>
331+
</aside>
332+
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span>sig<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Sig</span><span class="tsd-signature-symbol"> }</span></h4>
333+
<ul class="tsd-parameters">
334+
<li class="tsd-parameter">
335+
<h5>sig<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Sig</span></h5>
336+
</li>
337+
</ul>
338+
</li>
339+
</ul>
340+
</section>
318341
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
319342
<a name="getStatus" class="tsd-anchor"></a>
320343
<h3>get<wbr>Status</h3>
@@ -325,7 +348,7 @@ <h3>get<wbr>Status</h3>
325348
<li class="tsd-description">
326349
<aside class="tsd-sources">
327350
<ul>
328-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/FluencePeer.ts#L156">internal/FluencePeer.ts:156</a></li>
351+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/FluencePeer.ts#L158">internal/FluencePeer.ts:158</a></li>
329352
</ul>
330353
</aside>
331354
<div class="tsd-comment tsd-typography">
@@ -347,7 +370,7 @@ <h3>start</h3>
347370
<li class="tsd-description">
348371
<aside class="tsd-sources">
349372
<ul>
350-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/FluencePeer.ts#L172">internal/FluencePeer.ts:172</a></li>
373+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/FluencePeer.ts#L174">internal/FluencePeer.ts:174</a></li>
351374
</ul>
352375
</aside>
353376
<div class="tsd-comment tsd-typography">
@@ -379,7 +402,7 @@ <h3>stop</h3>
379402
<li class="tsd-description">
380403
<aside class="tsd-sources">
381404
<ul>
382-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/FluencePeer.ts#L225">internal/FluencePeer.ts:225</a></li>
405+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/FluencePeer.ts#L239">internal/FluencePeer.ts:239</a></li>
383406
</ul>
384407
</aside>
385408
<div class="tsd-comment tsd-typography">
@@ -402,7 +425,7 @@ <h3><span class="tsd-flag ts-flagStatic">Static</span> is<wbr>Instance</h3>
402425
<li class="tsd-description">
403426
<aside class="tsd-sources">
404427
<ul>
405-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/FluencePeer.ts#L145">internal/FluencePeer.ts:145</a></li>
428+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/FluencePeer.ts#L147">internal/FluencePeer.ts:147</a></li>
406429
</ul>
407430
</aside>
408431
<div class="tsd-comment tsd-typography">
@@ -447,6 +470,9 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</
447470
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
448471
<a href="FluencePeer.html#internals" class="tsd-kind-icon">internals</a>
449472
</li>
473+
<li class=" tsd-kind-method tsd-parent-kind-class">
474+
<a href="FluencePeer.html#getServices" class="tsd-kind-icon">get<wbr>Services</a>
475+
</li>
450476
<li class=" tsd-kind-method tsd-parent-kind-class">
451477
<a href="FluencePeer.html#getStatus" class="tsd-kind-icon">get<wbr>Status</a>
452478
</li>

docs/classes/KeyPair.html

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ <h3>Properties</h3>
9393
<h3>Methods</h3>
9494
<ul class="tsd-index-list">
9595
<li class="tsd-kind-method tsd-parent-kind-class"><a href="KeyPair.html#signBytes" class="tsd-kind-icon">sign<wbr>Bytes</a></li>
96+
<li class="tsd-kind-method tsd-parent-kind-class"><a href="KeyPair.html#toB58String" class="tsd-kind-icon">to<wbr>B58<wbr>String</a></li>
9697
<li class="tsd-kind-method tsd-parent-kind-class"><a href="KeyPair.html#toEd25519PrivateKey" class="tsd-kind-icon">to<wbr>Ed25519<wbr>Private<wbr>Key</a></li>
9798
<li class="tsd-kind-method tsd-parent-kind-class"><a href="KeyPair.html#verify" class="tsd-kind-icon">verify</a></li>
9899
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><a href="KeyPair.html#fromEd25519SK" class="tsd-kind-icon">from<wbr>Ed25519SK</a></li>
@@ -114,7 +115,7 @@ <h3>constructor</h3>
114115
<li class="tsd-description">
115116
<aside class="tsd-sources">
116117
<ul>
117-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/KeyPair.ts#L26">internal/KeyPair.ts:26</a></li>
118+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/KeyPair.ts#L26">internal/KeyPair.ts:26</a></li>
118119
</ul>
119120
</aside>
120121
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -136,7 +137,7 @@ <h3>Libp2p<wbr>Peer<wbr>Id</h3>
136137
<div class="tsd-signature tsd-kind-icon">Libp2p<wbr>Peer<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">PeerId</span></div>
137138
<aside class="tsd-sources">
138139
<ul>
139-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/KeyPair.ts#L24">internal/KeyPair.ts:24</a></li>
140+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/KeyPair.ts#L24">internal/KeyPair.ts:24</a></li>
140141
</ul>
141142
</aside>
142143
<div class="tsd-comment tsd-typography">
@@ -158,7 +159,7 @@ <h3>sign<wbr>Bytes</h3>
158159
<li class="tsd-description">
159160
<aside class="tsd-sources">
160161
<ul>
161-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/KeyPair.ts#L58">internal/KeyPair.ts:58</a></li>
162+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/KeyPair.ts#L62">internal/KeyPair.ts:62</a></li>
162163
</ul>
163164
</aside>
164165
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -171,6 +172,23 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</
171172
</li>
172173
</ul>
173174
</section>
175+
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
176+
<a name="toB58String" class="tsd-anchor"></a>
177+
<h3>to<wbr>B58<wbr>String</h3>
178+
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
179+
<li class="tsd-signature tsd-kind-icon">to<wbr>B58<wbr>String<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></li>
180+
</ul>
181+
<ul class="tsd-descriptions">
182+
<li class="tsd-description">
183+
<aside class="tsd-sources">
184+
<ul>
185+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/KeyPair.ts#L51">internal/KeyPair.ts:51</a></li>
186+
</ul>
187+
</aside>
188+
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4>
189+
</li>
190+
</ul>
191+
</section>
174192
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
175193
<a name="toEd25519PrivateKey" class="tsd-anchor"></a>
176194
<h3>to<wbr>Ed25519<wbr>Private<wbr>Key</h3>
@@ -181,7 +199,7 @@ <h3>to<wbr>Ed25519<wbr>Private<wbr>Key</h3>
181199
<li class="tsd-description">
182200
<aside class="tsd-sources">
183201
<ul>
184-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/KeyPair.ts#L54">internal/KeyPair.ts:54</a></li>
202+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/KeyPair.ts#L58">internal/KeyPair.ts:58</a></li>
185203
</ul>
186204
</aside>
187205
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Uint8Array</span></h4>
@@ -199,7 +217,7 @@ <h3>verify</h3>
199217
<li class="tsd-description">
200218
<aside class="tsd-sources">
201219
<ul>
202-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/KeyPair.ts#L62">internal/KeyPair.ts:62</a></li>
220+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/KeyPair.ts#L66">internal/KeyPair.ts:66</a></li>
203221
</ul>
204222
</aside>
205223
<h4 class="tsd-parameters-title">Parameters</h4>
@@ -225,7 +243,7 @@ <h3><span class="tsd-flag ts-flagStatic">Static</span> from<wbr>Ed25519SK</h3>
225243
<li class="tsd-description">
226244
<aside class="tsd-sources">
227245
<ul>
228-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/KeyPair.ts#L35">internal/KeyPair.ts:35</a></li>
246+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/KeyPair.ts#L35">internal/KeyPair.ts:35</a></li>
229247
</ul>
230248
</aside>
231249
<div class="tsd-comment tsd-typography">
@@ -256,7 +274,7 @@ <h3><span class="tsd-flag ts-flagStatic">Static</span> random<wbr>Ed25519</h3>
256274
<li class="tsd-description">
257275
<aside class="tsd-sources">
258276
<ul>
259-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/KeyPair.ts#L46">internal/KeyPair.ts:46</a></li>
277+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/KeyPair.ts#L46">internal/KeyPair.ts:46</a></li>
260278
</ul>
261279
</aside>
262280
<div class="tsd-comment tsd-typography">
@@ -300,6 +318,9 @@ <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</
300318
<li class=" tsd-kind-method tsd-parent-kind-class">
301319
<a href="KeyPair.html#signBytes" class="tsd-kind-icon">sign<wbr>Bytes</a>
302320
</li>
321+
<li class=" tsd-kind-method tsd-parent-kind-class">
322+
<a href="KeyPair.html#toB58String" class="tsd-kind-icon">to<wbr>B58<wbr>String</a>
323+
</li>
303324
<li class=" tsd-kind-method tsd-parent-kind-class">
304325
<a href="KeyPair.html#toEd25519PrivateKey" class="tsd-kind-icon">to<wbr>Ed25519<wbr>Private<wbr>Key</a>
305326
</li>

docs/interfaces/CallParams.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ <h3>init<wbr>Peer<wbr>Id</h3>
118118
<div class="tsd-signature tsd-kind-icon">init<wbr>Peer<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
119119
<aside class="tsd-sources">
120120
<ul>
121-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/commonTypes.ts#L37">internal/commonTypes.ts:37</a></li>
121+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/commonTypes.ts#L37">internal/commonTypes.ts:37</a></li>
122122
</ul>
123123
</aside>
124124
<div class="tsd-comment tsd-typography">
@@ -133,7 +133,7 @@ <h3>particle<wbr>Id</h3>
133133
<div class="tsd-signature tsd-kind-icon">particle<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
134134
<aside class="tsd-sources">
135135
<ul>
136-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/commonTypes.ts#L32">internal/commonTypes.ts:32</a></li>
136+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/commonTypes.ts#L32">internal/commonTypes.ts:32</a></li>
137137
</ul>
138138
</aside>
139139
<div class="tsd-comment tsd-typography">
@@ -148,7 +148,7 @@ <h3>signature</h3>
148148
<div class="tsd-signature tsd-kind-icon">signature<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
149149
<aside class="tsd-sources">
150150
<ul>
151-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/commonTypes.ts#L52">internal/commonTypes.ts:52</a></li>
151+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/commonTypes.ts#L52">internal/commonTypes.ts:52</a></li>
152152
</ul>
153153
</aside>
154154
<div class="tsd-comment tsd-typography">
@@ -163,7 +163,7 @@ <h3>tetraplets</h3>
163163
<div class="tsd-signature tsd-kind-icon">tetraplets<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><span class="tsd-signature-symbol">[ </span><span class="tsd-signature-type">key</span><span class="tsd-signature-symbol"> in </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">SecurityTetraplet</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span></div>
164164
<aside class="tsd-sources">
165165
<ul>
166-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/commonTypes.ts#L57">internal/commonTypes.ts:57</a></li>
166+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/commonTypes.ts#L57">internal/commonTypes.ts:57</a></li>
167167
</ul>
168168
</aside>
169169
<div class="tsd-comment tsd-typography">
@@ -178,7 +178,7 @@ <h3>timestamp</h3>
178178
<div class="tsd-signature tsd-kind-icon">timestamp<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
179179
<aside class="tsd-sources">
180180
<ul>
181-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/commonTypes.ts#L42">internal/commonTypes.ts:42</a></li>
181+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/commonTypes.ts#L42">internal/commonTypes.ts:42</a></li>
182182
</ul>
183183
</aside>
184184
<div class="tsd-comment tsd-typography">
@@ -193,7 +193,7 @@ <h3>ttl</h3>
193193
<div class="tsd-signature tsd-kind-icon">ttl<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
194194
<aside class="tsd-sources">
195195
<ul>
196-
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/c3512fd/src/internal/commonTypes.ts#L47">internal/commonTypes.ts:47</a></li>
196+
<li>Defined in <a href="https://github.com/fluencelabs/fluence-js/blob/1508a12/src/internal/commonTypes.ts#L47">internal/commonTypes.ts:47</a></li>
197197
</ul>
198198
</aside>
199199
<div class="tsd-comment tsd-typography">

0 commit comments

Comments
 (0)