routing API: set relay_id as HOST_PEER_ID (#90)

This commit is contained in:
Aleksey Proshutisnkiy
2022-03-28 10:35:54 +04:00
committed by GitHub
parent ef0ee12ca3
commit 164b353be8
4 changed files with 60 additions and 49 deletions

View File

@ -19,7 +19,10 @@ jobs:
- registry05-{{ checksum "service/Cargo.lock" }} - registry05-{{ checksum "service/Cargo.lock" }}
- run: | - run: |
cd ./service cd ./service
rustup target add wasm32-wasi rustup toolchain install nightly-2022-01-16-x86_64-unknown-linux-gnu
rustup default nightly-2022-01-16-x86_64-unknown-linux-gnu
rustup override set nightly-2022-01-16-x86_64-unknown-linux-gnu
rustup target add wasm32-wasi --toolchain nightly-2022-01-16-x86_64-unknown-linux-gnu
- run: ./service/build.sh - run: ./service/build.sh
- run: | - run: |
cd ./service cd ./service

View File

@ -31,7 +31,7 @@ func createRoute(label: string) -> RouteId:
signature <- get_route_signature(label, t) signature <- get_route_signature(label, t)
on HOST_PEER_ID: on HOST_PEER_ID:
route_id <- get_route_id(label, %init_peer_id%) route_id <- get_route_id(label, INIT_PEER_ID)
nodes <- getNeighbours(route_id) nodes <- getNeighbours(route_id)
for n <- nodes par: for n <- nodes par:
on n: on n:
@ -40,12 +40,15 @@ func createRoute(label: string) -> RouteId:
<- route_id <- route_id
-- Create a label and subscribe to it -- Create a label and subscribe to it
-- %init_peer_id% (current client) will become a subscriber -- INIT_PEER_ID (current client) will become a subscriber
func createRouteAndRegister(label: string, value: string, relay_id: ?PeerId, service_id: ?string) -> string: func createRouteAndRegister(label: string, value: string, service_id: ?string) -> string:
relay_id: ?string
relay_id <<- HOST_PEER_ID
t <- Peer.timestamp_sec() t <- Peer.timestamp_sec()
route_signature <- get_route_signature(label, t) route_signature <- get_route_signature(label, t)
on HOST_PEER_ID: on HOST_PEER_ID:
route_id <- get_route_id(label, %init_peer_id%) route_id <- get_route_id(label, INIT_PEER_ID)
record_signature <- get_record_signature(route_id, value, relay_id, service_id, t) record_signature <- get_record_signature(route_id, value, relay_id, service_id, t)
on HOST_PEER_ID: on HOST_PEER_ID:
@ -59,18 +62,21 @@ func createRouteAndRegister(label: string, value: string, relay_id: ?PeerId, ser
<- route_id <- route_id
-- Create a label and subscribe to it -- Create a label and subscribe to it
-- %init_peer_id% (current client) will become a subscriber -- INIT_PEER_ID (current client) will become a subscriber
-- In contrast with non-blocking version, waits for at least a single write to succeed -- In contrast with non-blocking version, waits for at least a single write to succeed
func createRouteAndRegisterBlocking( func createRouteAndRegisterBlocking(
label: string, value: string, label: string, value: string,
relay_id: ?PeerId, service_id: ?string, service_id: ?string,
progress: string -> (), progress: string -> (),
ack: i16 ack: i16
) -> string: ) -> string:
relay_id: ?string
relay_id <<- HOST_PEER_ID
t <- Peer.timestamp_sec() t <- Peer.timestamp_sec()
route_signature <- get_route_signature(label, t) route_signature <- get_route_signature(label, t)
on HOST_PEER_ID: on HOST_PEER_ID:
route_id <- get_route_id(label, %init_peer_id%) route_id <- get_route_id(label, INIT_PEER_ID)
record_signature <- get_record_signature(route_id, value, relay_id, service_id, t) record_signature <- get_record_signature(route_id, value, relay_id, service_id, t)
results: *DhtResult results: *DhtResult
@ -92,7 +98,7 @@ func createRouteAndRegisterNode(subscriber_node_id: PeerId, label: string, value
t <- Peer.timestamp_sec() t <- Peer.timestamp_sec()
route_signature <- get_route_signature(label, t) route_signature <- get_route_signature(label, t)
on HOST_PEER_ID: on HOST_PEER_ID:
route_id <- get_route_id(label, %init_peer_id%) route_id <- get_route_id(label, INIT_PEER_ID)
record_signature <- get_host_record_signature(route_id, value, nil, service_id, t) record_signature <- get_host_record_signature(route_id, value, nil, service_id, t)
@ -109,7 +115,10 @@ func createRouteAndRegisterNode(subscriber_node_id: PeerId, label: string, value
-- Subscribe to a label -- Subscribe to a label
-- Note: label must be already initiated -- Note: label must be already initiated
func registerForRoute(route_id: string, value: string, relay_id: ?PeerId, service_id: ?string): func registerForRoute(route_id: string, value: string, service_id: ?string):
relay_id: ?string
relay_id <<- HOST_PEER_ID
t <- Peer.timestamp_sec() t <- Peer.timestamp_sec()
record_signature <- get_record_signature(route_id, value, relay_id, service_id, t) record_signature <- get_record_signature(route_id, value, relay_id, service_id, t)
@ -127,7 +136,7 @@ func registerForRouteNode(subscriber_node_id: PeerId, label: string, value: stri
t <- Peer.timestamp_sec() t <- Peer.timestamp_sec()
route_signature <- get_route_signature(label, t) route_signature <- get_route_signature(label, t)
on HOST_PEER_ID: on HOST_PEER_ID:
route_id <- get_route_id(label, %init_peer_id%) route_id <- get_route_id(label, INIT_PEER_ID)
record_signature <- get_host_record_signature(route_id, value, nil, service_id, t) record_signature <- get_host_record_signature(route_id, value, nil, service_id, t)
on subscriber_node_id: on subscriber_node_id:

View File

@ -22,7 +22,6 @@ let local: Node[] = [
async function main() { async function main() {
// connect to the Fluence network // connect to the Fluence network
await Fluence.start({ connectTo: krasnodar[0] }); await Fluence.start({ connectTo: krasnodar[0] });
console.log("%s", await timestamp_sec()); console.log("%s", await timestamp_sec());
console.log( console.log(
@ -32,11 +31,10 @@ async function main() {
); );
let label = "myLabel"; let label = "myLabel";
let value = "myValue"; let value = "myValue";
console.log("Will create route with label: ", label); console.log("Will create route with label:", label);
// create route (if not exists) and register on it // create route (if not exists) and register on it
let relay = Fluence.getStatus().relayPeerId;
let route_id = await createRouteAndRegisterBlocking( let route_id = await createRouteAndRegisterBlocking(
label, value, relay, null, label, value, null,
(s) => console.log(`node ${s} saved the record`), (s) => console.log(`node ${s} saved the record`),
5 5
); );

69
service/Cargo.lock generated
View File

@ -253,9 +253,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
[[package]] [[package]]
name = "cpufeatures" name = "cpufeatures"
version = "0.2.1" version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b"
dependencies = [ dependencies = [
"libc", "libc",
] ]
@ -322,9 +322,9 @@ dependencies = [
[[package]] [[package]]
name = "crossbeam-channel" name = "crossbeam-channel"
version = "0.5.2" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"crossbeam-utils", "crossbeam-utils",
@ -343,10 +343,11 @@ dependencies = [
[[package]] [[package]]
name = "crossbeam-epoch" name = "crossbeam-epoch"
version = "0.9.7" version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c"
dependencies = [ dependencies = [
"autocfg",
"cfg-if 1.0.0", "cfg-if 1.0.0",
"crossbeam-utils", "crossbeam-utils",
"lazy_static", "lazy_static",
@ -356,9 +357,9 @@ dependencies = [
[[package]] [[package]]
name = "crossbeam-utils" name = "crossbeam-utils"
version = "0.8.7" version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"lazy_static", "lazy_static",
@ -402,9 +403,9 @@ dependencies = [
[[package]] [[package]]
name = "ctor" name = "ctor"
version = "0.1.21" version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
dependencies = [ dependencies = [
"quote", "quote",
"syn", "syn",
@ -412,9 +413,9 @@ dependencies = [
[[package]] [[package]]
name = "curve25519-dalek" name = "curve25519-dalek"
version = "3.2.0" version = "3.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0"
dependencies = [ dependencies = [
"byteorder", "byteorder",
"digest 0.9.0", "digest 0.9.0",
@ -529,9 +530,9 @@ dependencies = [
[[package]] [[package]]
name = "ed25519" name = "ed25519"
version = "1.4.0" version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eed12bbf7b5312f8da1c2722bc06d8c6b12c2d86a7fb35a194c7f3e6fc2bbe39" checksum = "3d5c4b5e5959dc2c2b89918d8e2cc40fcdd623cef026ed09d2f0ee05199dc8e4"
dependencies = [ dependencies = [
"serde", "serde",
"signature", "signature",
@ -560,9 +561,9 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
[[package]] [[package]]
name = "erased-serde" name = "erased-serde"
version = "0.3.18" version = "0.3.20"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56047058e1ab118075ca22f9ecd737bcc961aa3566a3019cb71388afa280bd8a" checksum = "ad132dd8d0d0b546348d7d86cb3191aad14b34e5f979781fc005c80d4ac67ffd"
dependencies = [ dependencies = [
"serde", "serde",
] ]
@ -1139,9 +1140,9 @@ dependencies = [
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.119" version = "0.2.121"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f"
[[package]] [[package]]
name = "libp2p-core" name = "libp2p-core"
@ -1272,9 +1273,9 @@ dependencies = [
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.14" version = "0.4.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
] ]
@ -1752,16 +1753,16 @@ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"instant", "instant",
"libc", "libc",
"redox_syscall 0.2.11", "redox_syscall 0.2.12",
"smallvec", "smallvec",
"winapi", "winapi",
] ]
[[package]] [[package]]
name = "paste" name = "paste"
version = "1.0.6" version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc"
[[package]] [[package]]
name = "percent-encoding" name = "percent-encoding"
@ -1978,9 +1979,9 @@ dependencies = [
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.15" version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" checksum = "632d02bff7f874a36f33ea8bb416cd484b90cc66c1194b1a1110d067a7013f58"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
] ]
@ -2100,9 +2101,9 @@ checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.2.11" version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" checksum = "8ae183fc1b06c149f0c1793e1eb447c8b04bfe46d48e9e48bfb8d2d7ed64ecf0"
dependencies = [ dependencies = [
"bitflags", "bitflags",
] ]
@ -2418,9 +2419,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.86" version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -2454,7 +2455,7 @@ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"fastrand", "fastrand",
"libc", "libc",
"redox_syscall 0.2.11", "redox_syscall 0.2.12",
"remove_dir_all", "remove_dir_all",
"winapi", "winapi",
] ]
@ -2939,9 +2940,9 @@ dependencies = [
[[package]] [[package]]
name = "which" name = "which"
version = "4.2.4" version = "4.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a5a7e487e921cf220206864a94a89b6c6905bfc19f1057fa26a4cb360e5c1d2" checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae"
dependencies = [ dependencies = [
"either", "either",
"lazy_static", "lazy_static",
@ -2972,9 +2973,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]] [[package]]
name = "zeroize" name = "zeroize"
version = "1.5.3" version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50344758e2f40e3a1fcfc8f6f91aa57b5f8ebd8d27919fe6451f15aaaf9ee608" checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
dependencies = [ dependencies = [
"zeroize_derive", "zeroize_derive",
] ]