From 86d8547eecbdca618fcd0a25a555d417775b85c6 Mon Sep 17 00:00:00 2001 From: folex <0xdxdy@gmail.com> Date: Tue, 13 Jul 2021 19:24:26 +0300 Subject: [PATCH] Update aqua-dht to aqua-lib 0.1.9 --- .gitignore | 6 ++- Cargo.lock | 83 +++++++++++----------------------- aqua/aqua-dht.aqua | 48 ++++++++++---------- npm/.gitignore | 8 +++- npm/dht-api.aqua | 6 +-- npm/dht-scheduled-scripts.aqua | 2 +- npm/dht.aqua | 2 +- npm/package-lock.json | 12 ++--- npm/package.json | 4 +- npm/pubsub.aqua | 4 +- 10 files changed, 75 insertions(+), 100 deletions(-) diff --git a/.gitignore b/.gitignore index 380bfdc..566ede5 100644 --- a/.gitignore +++ b/.gitignore @@ -9,9 +9,11 @@ Cargo.lock # These are backup files generated by rustfmt **/*.rs.bk - # Added by cargo /target -.idea \ No newline at end of file +.idea + +artifacts +.DS_Store diff --git a/Cargo.lock b/Cargo.lock index 6a01c95..4040046 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15,9 +15,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.41" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15af2628f6890fe2609a3b91bef4c83450512802e59489f9c1cb1fa5df064a61" +checksum = "595d3cfa7a60d4555cb5067b99f07142a08ea778de5cf993f7b75c7d8fabc486" [[package]] name = "aqua-dht" @@ -107,9 +107,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.68" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a72c244c1ff497a746a7e1fb3d14bd08420ecda70c8f25c7112f2781652d787" +checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2" [[package]] name = "cfg-if" @@ -342,9 +342,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "erased-serde" -version = "0.3.15" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5b36e6f2295f393f44894c6031f67df4d185b984cd54d08f768ce678007efcd" +checksum = "3de9ad4541d99dc22b59134e7ff8dc3d6c988c89ecd7324bf10a8362b07a2afa" dependencies = [ "serde", ] @@ -446,40 +446,17 @@ dependencies = [ "wast", ] -[[package]] -name = "fluence-sdk-macro" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb43d2f51f1becb70e2125ef8ca9759597900f95cc22ce7dca981a7d6ccd7dde" -dependencies = [ - "fluence-sdk-wit", -] - [[package]] name = "fluence-sdk-main" -version = "0.6.1" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78910d85e3cdcb9c2baf56144f20a99925c67ac445d4156220c005bfd2f9604" +checksum = "70e05d54468e14858531ef8ad30354da1e5359861015b1e1efeaa06b89ce656d" dependencies = [ - "fluence-sdk-macro", "log", + "marine-macro", "serde", ] -[[package]] -name = "fluence-sdk-wit" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab3ed39703b72e0e52bce9e1760746c73f65a5694c8da4dec751d3bfdec15b8" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn", - "uuid", -] - [[package]] name = "fnv" version = "1.0.7" @@ -586,12 +563,6 @@ dependencies = [ "indexmap", ] -[[package]] -name = "hashbrown" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" - [[package]] name = "hashbrown" version = "0.11.2" @@ -607,7 +578,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" dependencies = [ - "hashbrown 0.11.2", + "hashbrown", ] [[package]] @@ -621,9 +592,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] @@ -654,12 +625,12 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "1.6.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ "autocfg", - "hashbrown 0.9.1", + "hashbrown", "serde", ] @@ -754,9 +725,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.97" +version = "0.2.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b8adadd720df158f4d70dfe7ccc6adb0472d7c55ca83445f6a5ab3e36f8fb6" +checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790" [[package]] name = "libsqlite3-sys" @@ -1442,9 +1413,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "subtle" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" @@ -1465,18 +1436,18 @@ checksum = "ab0e7238dcc7b40a7be719a25365910f6807bd864f4cce6b2e6b873658e2b19d" [[package]] name = "thiserror" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6" +checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d" +checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745" dependencies = [ "proc-macro2", "quote", @@ -1541,9 +1512,9 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" [[package]] name = "unicode-segmentation" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-xid" @@ -1562,9 +1533,9 @@ dependencies = [ [[package]] name = "vcpkg" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70455df2fdf4e9bf580a92e443f1eb0303c390d682e2ea817312c9e81f8c3399" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" diff --git a/aqua/aqua-dht.aqua b/aqua/aqua-dht.aqua index 9447981..f00b8af 100644 --- a/aqua/aqua-dht.aqua +++ b/aqua/aqua-dht.aqua @@ -1,20 +1,3 @@ -data ClearExpiredResult: - success: bool - error: string - count_keys: u64 - count_values: u64 - -data DhtResult: - success: bool - error: string - -data Key: - key: string - peer_id: string - timestamp_created: u64 - pinned: bool - weight: u32 - data Record: value: string peer_id: string @@ -24,6 +7,18 @@ data Record: timestamp_created: u64 weight: u32 +data MergeResult: + success: bool + error: string + result: []Record + +data Key: + key: string + peer_id: string + timestamp_created: u64 + pinned: bool + weight: u32 + data EvictStaleItem: key: Key records: []Record @@ -38,15 +33,25 @@ data GetKeyMetadataResult: error: string key: Key +data RepublishValuesResult: + success: bool + error: string + updated: u64 + +data ClearExpiredResult: + success: bool + error: string + count_keys: u64 + count_values: u64 + data GetValuesResult: success: bool error: string result: []Record -data MergeResult: +data DhtResult: success: bool error: string - result: []Record data PutHostValueResult: success: bool @@ -54,11 +59,6 @@ data PutHostValueResult: key: string value: []Record -data RepublishValuesResult: - success: bool - error: string - updated: u64 - service AquaDHT("aqua-dht"): clear_expired(current_timestamp_sec: u64) -> ClearExpiredResult clear_host_value(key: string, current_timestamp_sec: u64) -> DhtResult diff --git a/npm/.gitignore b/npm/.gitignore index 1b89881..64bdd6c 100644 --- a/npm/.gitignore +++ b/npm/.gitignore @@ -1,3 +1,9 @@ *.tgz node_modules -target \ No newline at end of file +target +dist + +# ignore generated sources +src/dht-api.ts +src/dht-scheduled-scripts.ts +src/pubsub.ts diff --git a/npm/dht-api.aqua b/npm/dht-api.aqua index 708d9b9..e896450 100644 --- a/npm/dht-api.aqua +++ b/npm/dht-api.aqua @@ -5,7 +5,7 @@ import "@fluencelabs/aqua-lib/builtin.aqua" func getNeighbours(key: string, node_id: string) -> []PeerId: on node_id: k <- Op.string_to_b58(key) - nodes <- Kademlia.neighborhood(k, false) + nodes <- Kademlia.neighborhood(k, nil, nil) <- nodes func clearHostValue(key: string, node_id: string): @@ -40,7 +40,6 @@ func registerKeyPutHostValue(node_id: string, key: string, value: string, servic on node_id: t <- Peer.timestamp_sec() AquaDHT.register_key(key, t, false, 0) - nil: ?string AquaDHT.put_host_value(key, value, t, nil, service_id, 0) -- get all neighbors around the key in Kademlia network and store a value into them @@ -57,14 +56,13 @@ func putValue(node_id: string, key: string, value: string, relay_id: ?string, se -- put a value on behalf of node_id (ie owner of the record will be node_id) func putHostValue(node_id: string, key: string, value: string, service_id: ?string): on node_id: - nil: ?string t <- Peer.timestamp_sec() AquaDHT.put_host_value(key, value, t, nil, service_id, 0) func getValues(node_id: string, key: string) -> []Record: on node_id: k <- Op.string_to_b58(key) - nodes <- Kademlia.neighborhood(k, false) + nodes <- Kademlia.neighborhood(k, nil, nil) res: *GetValuesResult for n <- nodes par: on n: diff --git a/npm/dht-scheduled-scripts.aqua b/npm/dht-scheduled-scripts.aqua index 63bec90..5b418c5 100644 --- a/npm/dht-scheduled-scripts.aqua +++ b/npm/dht-scheduled-scripts.aqua @@ -12,7 +12,7 @@ func replicate(): res <- AquaDHT.evict_stale(t) for r <- res.results par: k <- Op.string_to_b58(r.key.key) - nodes <- Kademlia.neighborhood(k, false) + nodes <- Kademlia.neighborhood(k, nil, nil) for n <- nodes par: on n: AquaDHT.republish_key(r.key, t) diff --git a/npm/dht.aqua b/npm/dht.aqua index 277251c..8f41325 100644 --- a/npm/dht.aqua +++ b/npm/dht.aqua @@ -1 +1 @@ --- this file will be generated automatically \ No newline at end of file +-- this file will be generated automatically diff --git a/npm/package-lock.json b/npm/package-lock.json index f60bd7a..d6fad19 100644 --- a/npm/package-lock.json +++ b/npm/package-lock.json @@ -5,15 +5,15 @@ "requires": true, "dependencies": { "@fluencelabs/aqua-cli": { - "version": "0.1.5-141", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.1.5-141.tgz", - "integrity": "sha512-Ox/ZG7wSlagu60qESRrSmW1ql22lMi2I/B/M8kRLmlXA8gkCSS75amfCkJxcFU6vreULcEqGnkrk+FaRjoX5LQ==", + "version": "0.1.9-162", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.1.9-162.tgz", + "integrity": "sha512-VAxHmJF9jwRVoc2GOoC1/FbygzbFxQ1lIRdsYaWHLs6/Ua/Od+Z+6Ca4WUkLgC5ekq+762vGe13A2aBnM4Og+w==", "dev": true }, "@fluencelabs/aqua-lib": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.5.tgz", - "integrity": "sha512-0f5Lo9NT4ZvN+S/oGYiNxLUtpZsTfDy2qL0D4SFPVoj2+YPPK2PKSzZnja2clfM1KHHP6kT6Jd20sHVBIxBMtw==" + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.9.tgz", + "integrity": "sha512-WLvwrH98R4BT7NHrzYkJE8f0G61BZi3lVog/W3pmyzYjufxTtxoAS28Zqycbt0ZVpUTfIC016QKu58b4SbhZWw==" }, "@fluencelabs/avm": { "version": "0.9.12", diff --git a/npm/package.json b/npm/package.json index 7cee2fb..c461a1f 100644 --- a/npm/package.json +++ b/npm/package.json @@ -11,7 +11,7 @@ "dist/*" ], "dependencies": { - "@fluencelabs/aqua-lib": "^0.1.5", + "@fluencelabs/aqua-lib": "^0.1.9", "@fluencelabs/fluence": "^0.9.50" }, "scripts": { @@ -33,7 +33,7 @@ }, "homepage": "https://github.com/fluencelabs/aqua-dht#readme", "devDependencies": { - "@fluencelabs/aqua-cli": "^0.1.5-141", + "@fluencelabs/aqua-cli": "^0.1.9-162", "typescript": "^3.9.5" } } diff --git a/npm/pubsub.aqua b/npm/pubsub.aqua index e4a107d..723bad3 100644 --- a/npm/pubsub.aqua +++ b/npm/pubsub.aqua @@ -6,7 +6,7 @@ import "@fluencelabs/aqua-lib/builtin.aqua" func getNeighbours(node_id: PeerId, topic: string) -> []PeerId: on node_id: k <- Op.string_to_b58(topic) - nodes <- Kademlia.neighborhood(k, false) + nodes <- Kademlia.neighborhood(k, nil, nil) <- nodes -- If this peer have set node_id as a subscriber for topic, @@ -40,7 +40,6 @@ func initTopicAndSubscribe(node_id: PeerId, topic: string, value: string, relay_ -- Create a topic and make the given node a subscriber to it func initTopicAndSubscribeNode(subscriber_node_id: PeerId, topic: string, value: string, service_id: ?string): - nil: ?string on subscriber_node_id: t <- Peer.timestamp_sec() AquaDHT.register_key(topic, t, false, 0) @@ -67,7 +66,6 @@ func subscribe(node_id: PeerId, topic: string, value: string, relay_id: ?PeerId, -- Note: topic must be already initiated func subscribeNode(subscriber_node_id: PeerId, topic: string, value: string, service_id: ?string): on subscriber_node_id: - nil: ?string t <- Peer.timestamp_sec() r <- AquaDHT.put_host_value(topic, value, t, nil, service_id, 0) nodes <- getNeighbours(subscriber_node_id, topic)