mirror of
https://github.com/fluencelabs/examples
synced 2024-12-04 19:20:17 +00:00
update join
This commit is contained in:
parent
6432068c28
commit
fe05f8542d
@ -1,28 +0,0 @@
|
||||
import "builtin.aqua"
|
||||
-- create and identity service to join our results
|
||||
service Op2("op"):
|
||||
identity(s: u64)
|
||||
array(a: string, b: u64) -> string
|
||||
|
||||
-- function to get ten timestamps from our Kademlia
|
||||
-- neighborhood and return as an array of u64 timestamps
|
||||
-- the function arguement node is our per id
|
||||
func ts_getter(node: string) -> []u64:
|
||||
-- create a streaming variable
|
||||
res: *u64
|
||||
-- execute on the pecified peer
|
||||
on node:
|
||||
-- get the base58 representation of the peer id
|
||||
k <- Op.string_to_b58(node)
|
||||
-- find all (default 20) neighborhood peers from k
|
||||
nodes <- Kademlia.neighborhood(k, nil, nil)
|
||||
-- for each peer in our neighborhood and in parallel
|
||||
for n <- nodes par:
|
||||
on n:
|
||||
-- try and get the peer's timestamp
|
||||
try:
|
||||
res <- Peer.timestamp_ms()
|
||||
-- flatten nine of our joined results
|
||||
Op2.identity(res!9)
|
||||
-- return an array of ten timestamps
|
||||
<- res
|
@ -20,16 +20,16 @@ func ts_getter(node: string) -> []u64:
|
||||
on node:
|
||||
k <- Op.string_to_b58(node)
|
||||
nodes <- Kademlia.neighborhood(k, nil, nil)
|
||||
for n <- nodes par:
|
||||
on n:
|
||||
try:
|
||||
res <- Peer.timestamp_ms()
|
||||
Op2.identity(res!9)
|
||||
if Op.array_length(nodes) > 0:
|
||||
for n <- nodes par:
|
||||
on n:
|
||||
try:
|
||||
res <- Peer.timestamp_ms()
|
||||
join res[9]
|
||||
<- res
|
||||
|
||||
func ts_oracle(node: string, oracle_service_id: string, min_points:u32) -> Oracle:
|
||||
res <- ts_getter(node)
|
||||
|
||||
on node:
|
||||
TSOracle oracle_service_id
|
||||
oracle <- TSOracle.point_estimate(res, min_points)
|
||||
|
Loading…
Reference in New Issue
Block a user