mirror of
https://github.com/fluencelabs/trust-graph
synced 2025-03-15 12:50:48 +00:00
fix bug get_all_certs_from, update example (#44)
This commit is contained in:
parent
7fbaaaa8f9
commit
b9a996eba8
9337
aqua/package-lock.json
generated
9337
aqua/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -6,7 +6,7 @@
|
|||||||
"*.aqua"
|
"*.aqua"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua-lib": "^0.3.4"
|
"@fluencelabs/aqua-lib": "^0.5.2"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"generate-aqua": "../service/build.sh",
|
"generate-aqua": "../service/build.sh",
|
||||||
@ -31,6 +31,6 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/fluencelabs/trust-graph#readme",
|
"homepage": "https://github.com/fluencelabs/trust-graph#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@fluencelabs/aqua": "^0.5.2-257"
|
"@fluencelabs/aqua": "^0.7.4-322"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,9 @@ service CertOp("op"):
|
|||||||
service TrustedComputation("op"):
|
service TrustedComputation("op"):
|
||||||
identity(s: u64) -> u64
|
identity(s: u64) -> u64
|
||||||
|
|
||||||
func trusted_computation(node: string) -> ?u64:
|
func trusted_computation(node: string) -> ?u64, ?string:
|
||||||
result: ?u64
|
result: ?u64
|
||||||
|
error: ?string
|
||||||
-- on our trusted relay
|
-- on our trusted relay
|
||||||
on HOST_PEER_ID:
|
on HOST_PEER_ID:
|
||||||
-- get all certificates issued for given node by our client's peer id
|
-- get all certificates issued for given node by our client's peer id
|
||||||
@ -20,8 +21,11 @@ func trusted_computation(node: string) -> ?u64:
|
|||||||
if certs_result.success:
|
if certs_result.success:
|
||||||
len <- CertOp.array_length(certs_result.certificates)
|
len <- CertOp.array_length(certs_result.certificates)
|
||||||
-- if there is any certificate node is trusted and computation is possible
|
-- if there is any certificate node is trusted and computation is possible
|
||||||
if len != 0:
|
if len != 0:
|
||||||
on node:
|
on node:
|
||||||
result <- TrustedComputation.identity(5)
|
result <- TrustedComputation.identity(5)
|
||||||
|
else:
|
||||||
<- result
|
error <<- "there is no certs for this peer"
|
||||||
|
else:
|
||||||
|
error <<- certs_result.error
|
||||||
|
<- result, error
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
|
module Export
|
||||||
import add_root_trust, add_trust, revoke from "@fluencelabs/trust-graph/trust-graph-api.aqua"
|
import add_root_trust, add_trust, revoke from "@fluencelabs/trust-graph/trust-graph-api.aqua"
|
||||||
export add_root_trust, add_trust, revoke
|
export add_root_trust, add_trust, revoke, timestamp_sec
|
||||||
import Peer from "@fluencelabs/aqua-lib/builtin.aqua"
|
import Peer from "@fluencelabs/aqua-lib/builtin.aqua"
|
||||||
|
|
||||||
alias PeerId: string
|
alias PeerId: string
|
||||||
|
@ -42,7 +42,7 @@ let local: Node[] = [
|
|||||||
async function revoke_all(relay: string, revoked_by: string) {
|
async function revoke_all(relay: string, revoked_by: string) {
|
||||||
for (var node of local) {
|
for (var node of local) {
|
||||||
let error = await tg.revoke(relay, revoked_by, node.peerId);
|
let error = await tg.revoke(relay, revoked_by, node.peerId);
|
||||||
if (error === null) {
|
if (error !== null) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -51,7 +51,7 @@ async function add_root(relay: string, peer_id: string) {
|
|||||||
let current_time = await tg.timestamp_sec();
|
let current_time = await tg.timestamp_sec();
|
||||||
let far_future = current_time + 9999999;
|
let far_future = current_time + 9999999;
|
||||||
let error = await tg.add_root_trust(relay, peer_id, 2, far_future);
|
let error = await tg.add_root_trust(relay, peer_id, 2, far_future);
|
||||||
if (error === null) {
|
if (error !== null) {
|
||||||
console.log(error)
|
console.log(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -75,12 +75,12 @@ async function revoke_checked(relay: string, revoked_by: string, revoked_peer_id
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function exec_trusted_computation(node: string) {
|
async function exec_trusted_computation(node: string) {
|
||||||
let result = await trusted_computation(node)
|
let [result, error] = await trusted_computation(node)
|
||||||
|
|
||||||
if (result !== null) {
|
if (result !== null) {
|
||||||
console.log("📗 Trusted computation on node %s successful, result is %s", node, result)
|
console.log("📗 Trusted computation on node %s successful, result is %s", node, result)
|
||||||
} else {
|
} else {
|
||||||
console.log("📕 Trusted computation on node %s failed", node)
|
console.log("📕 Trusted computation on node %s failed, error:", node, error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
8302
example/package-lock.json
generated
8302
example/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -13,14 +13,14 @@
|
|||||||
"author": "Fluence Labs",
|
"author": "Fluence Labs",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fluencelabs/aqua": "^0.5.2-257",
|
"@fluencelabs/aqua-lib": "^0.5.2",
|
||||||
"@fluencelabs/aqua-lib": "^0.3.4",
|
"@fluencelabs/fluence": "^0.23.0",
|
||||||
"@fluencelabs/fluence": "^0.18.0",
|
|
||||||
"@fluencelabs/fluence-network-environment": "^1.0.10",
|
"@fluencelabs/fluence-network-environment": "^1.0.10",
|
||||||
"@fluencelabs/trust-graph": "file:../aqua",
|
"@fluencelabs/trust-graph": "3.0.2",
|
||||||
"bs58": "^4.0.1"
|
"bs58": "^4.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "^4.5.2"
|
"typescript": "^4.5.2",
|
||||||
|
"@fluencelabs/aqua": "^0.7.4-325"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,7 +98,7 @@ fn get_all_certs(issued_for: String, timestamp_sec: u64) -> AllCertsResult {
|
|||||||
fn get_all_certs_from(issued_for: String, issuer: String, timestamp_sec: u64) -> AllCertsResult {
|
fn get_all_certs_from(issued_for: String, issuer: String, timestamp_sec: u64) -> AllCertsResult {
|
||||||
with_tg(|tg| {
|
with_tg(|tg| {
|
||||||
let cp = get_call_parameters();
|
let cp = get_call_parameters();
|
||||||
check_timestamp_tetraplets(&cp, 1)?;
|
check_timestamp_tetraplets(&cp, 2)?;
|
||||||
get_certs_from(tg, issued_for, issuer, timestamp_sec)
|
get_certs_from(tg, issued_for, issuer, timestamp_sec)
|
||||||
})
|
})
|
||||||
.into()
|
.into()
|
||||||
|
@ -887,4 +887,40 @@ mod service_tests {
|
|||||||
assert_eq!(*trust, trusts[i].trust);
|
assert_eq!(*trust, trusts[i].trust);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_all_cert_from() {
|
||||||
|
let mut trust_graph = ServiceInterface::new();
|
||||||
|
clear_env();
|
||||||
|
let (key_pairs, trusts) =
|
||||||
|
generate_trust_chain_with_len(&mut trust_graph, 5, HashMap::new());
|
||||||
|
|
||||||
|
let cur_time = current_time();
|
||||||
|
let root_peer_id = key_pairs[0].get_peer_id();
|
||||||
|
set_root_peer_id(&mut trust_graph, root_peer_id, 10);
|
||||||
|
|
||||||
|
for auth in trusts.iter() {
|
||||||
|
add_trust_checked(&mut trust_graph, auth.trust.clone(), auth.issuer, cur_time);
|
||||||
|
}
|
||||||
|
|
||||||
|
let cp = get_correct_timestamp_cp_with_host_id(
|
||||||
|
2,
|
||||||
|
key_pairs.last().unwrap().get_peer_id().to_base58(),
|
||||||
|
);
|
||||||
|
let certs = trust_graph.get_all_certs_from_cp(
|
||||||
|
key_pairs[4].get_peer_id().to_base58(),
|
||||||
|
key_pairs[3].get_peer_id().to_base58(),
|
||||||
|
cur_time,
|
||||||
|
cp,
|
||||||
|
);
|
||||||
|
|
||||||
|
assert!(certs.success, "{}", certs.error);
|
||||||
|
let certs = certs.certificates;
|
||||||
|
assert_eq!(certs.len(), 1);
|
||||||
|
assert_eq!(certs[0].chain.len(), 5);
|
||||||
|
|
||||||
|
for (i, trust) in certs[0].chain.iter().enumerate() {
|
||||||
|
assert_eq!(*trust, trusts[i].trust);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user