mirror of
https://github.com/fluencelabs/aquavm
synced 2025-04-24 23:02:16 +00:00
This PR intended to reduce stream usage scope in order to make AquaVM truly deterministic. Refs: #297. Co-authored-by: Ivan Boldyrev <ivan@fluence.one> Co-authored-by: Anatoly Laskaris <github_me@nahsi.dev>
60 lines
1.7 KiB
Plaintext
60 lines
1.7 KiB
Plaintext
(xor
|
|
(seq
|
|
(seq
|
|
(call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-)
|
|
(new $res
|
|
(seq
|
|
(seq
|
|
(seq
|
|
(call -relay- ("op" "noop") [])
|
|
(xor
|
|
(seq
|
|
(call "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" ("op" "string_to_b58") ["12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e"] k)
|
|
(par
|
|
(seq
|
|
(call "12D3KooWSD5PToNiLQwKDXsu8JSysCwUt8BVUJEqCHcDe7P5h45e" ("kad" "neighborhood") [k [] []] nodes)
|
|
(call %init_peer_id% ("op" "noop") [])
|
|
)
|
|
(seq
|
|
(fold nodes n
|
|
(par
|
|
(seq
|
|
(xor
|
|
(call n ("peer" "timestamp_ms") [] $res)
|
|
(seq
|
|
(call -relay- ("op" "noop") [])
|
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1])
|
|
)
|
|
)
|
|
(call %init_peer_id% ("op" "noop") [])
|
|
)
|
|
(next n)
|
|
)
|
|
)
|
|
(call %init_peer_id% ("op" "noop") [])
|
|
)
|
|
)
|
|
)
|
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2])
|
|
)
|
|
)
|
|
(par
|
|
(seq
|
|
(canon %init_peer_id% $res #res)
|
|
(call %init_peer_id% ("op" "identity") [#res.$.[19]!])
|
|
)
|
|
(call %init_peer_id% ("peer" "timeout") [1000 "timeout"])
|
|
)
|
|
)
|
|
(seq
|
|
(canon %init_peer_id% $res #res)
|
|
(call %init_peer_id% ("op" "identity") [#res] res-fix)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(call %init_peer_id% ("--after-callback-srv-service--" "print-and-stop") [res-fix nodes])
|
|
)
|
|
(call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3])
|
|
)
|