From 83dea9f8d6b5c58802b3c22bda03a4801cfe16da Mon Sep 17 00:00:00 2001 From: Alexey Proshutinskiy Date: Thu, 16 Sep 2021 16:16:20 +0300 Subject: [PATCH] setup ci, update repo structure --- .gitignore | 17 +++++-- aqua/package-lock.json | 48 ++++++++++++++++++++ aqua/package.json | 36 +++++++++++++++ aqua/trust-graph.aqua | 60 +++++++++++++++++++++++++ builtin-package/blueprint.json | 7 +++ builtin-package/package.sh | 22 +++++++++ builtin-package/sqlite3_config.json | 4 ++ builtin-package/trust-graph_config.json | 10 +++++ service/build.sh | 2 +- 9 files changed, 202 insertions(+), 4 deletions(-) create mode 100644 aqua/package-lock.json create mode 100644 aqua/package.json create mode 100644 aqua/trust-graph.aqua create mode 100644 builtin-package/blueprint.json create mode 100755 builtin-package/package.sh create mode 100644 builtin-package/sqlite3_config.json create mode 100644 builtin-package/trust-graph_config.json diff --git a/.gitignore b/.gitignore index cce784c..4f1340b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,14 @@ -.idea -target/ -service/artifacts/*.wasm \ No newline at end of file +service/target +builtin-package/*.wasm +trust-graph.tar.gz + +**/*.rs.bk +**/.idea +**/artifacts +**/.DS_Store +**/node_modules +**/dist + +# Remove after https://github.com/fluencelabs/aqua/issues/287 +aqua/target/typescript/** +example/src/generated/** diff --git a/aqua/package-lock.json b/aqua/package-lock.json new file mode 100644 index 0000000..eec6e1e --- /dev/null +++ b/aqua/package-lock.json @@ -0,0 +1,48 @@ +{ + "name": "@fluencelabs/trust-graph", + "version": "0.1.12", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@fluencelabs/trust-graph", + "version": "0.1.12", + "license": "MIT", + "dependencies": { + "@fluencelabs/aqua-lib": "^0.1.14" + }, + "devDependencies": { + "@fluencelabs/aqua": "^0.3.1-228" + } + }, + "node_modules/@fluencelabs/aqua": { + "version": "0.3.1-228", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.3.1-228.tgz", + "integrity": "sha512-uTgCNa+tBhUyl18Ejq0CpoJxxD3CsOI4+BU64Hdkm9LNE9nu94k8JDYtTKKIAJdhk4kQ3qHy6HHtwVSWTPDPHQ==", + "dev": true, + "bin": { + "aqua": "index.js", + "aqua-cli": "error.js", + "aqua-j": "index-java.js" + } + }, + "node_modules/@fluencelabs/aqua-lib": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.14.tgz", + "integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg==" + } + }, + "dependencies": { + "@fluencelabs/aqua": { + "version": "0.3.1-228", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.3.1-228.tgz", + "integrity": "sha512-uTgCNa+tBhUyl18Ejq0CpoJxxD3CsOI4+BU64Hdkm9LNE9nu94k8JDYtTKKIAJdhk4kQ3qHy6HHtwVSWTPDPHQ==", + "dev": true + }, + "@fluencelabs/aqua-lib": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.14.tgz", + "integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg==" + } + } +} diff --git a/aqua/package.json b/aqua/package.json new file mode 100644 index 0000000..3ab57a8 --- /dev/null +++ b/aqua/package.json @@ -0,0 +1,36 @@ +{ + "name": "@fluencelabs/trust-graph", + "version": "0.1.12", + "description": "Aqua Trust Graph API library", + "files": [ + "*.aqua" + ], + "dependencies": { + "@fluencelabs/aqua-lib": "^0.1.14" + }, + "scripts": { + "generate-aqua": "../service/build.sh", + "compile-aqua": "aqua -i . -o ./target/typescript", + "build": "npm run compile-aqua" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/fluencelabs/trust-graph", + "directory": "aqua" + }, + "keywords": [ + "aqua", + "fluence", + "trust-graph", + "p2p" + ], + "author": "Fluence Labs", + "license": "MIT", + "bugs": { + "url": "https://github.com/fluencelabs/trust-graph/issues" + }, + "homepage": "https://github.com/fluencelabs/trust-graph#readme", + "devDependencies": { + "@fluencelabs/aqua": "^0.3.1-228" + } +} diff --git a/aqua/trust-graph.aqua b/aqua/trust-graph.aqua new file mode 100644 index 0000000..ea51774 --- /dev/null +++ b/aqua/trust-graph.aqua @@ -0,0 +1,60 @@ +module TrustGraph declares * + +data AddRootResult: + success: bool + error: string + +data AddTrustResult: + success: bool + error: string + weight: u32 + +data Trust: + issued_for: string + expires_at: u64 + signature: string + sig_type: string + issued_at: u64 + +data Certificate: + chain: []Trust + +data AllCertsResult: + success: bool + certificates: []Certificate + error: string + +data GetTrustMetadataResult: + success: bool + error: string + result: []u8 + +data InsertResult: + success: bool + error: string + +data IssueTrustResult: + success: bool + error: string + trust: Trust + +data VerifyTrustResult: + success: bool + error: string + +data WeightResult: + success: bool + weight: u32 + peer_id: string + error: string + +service TrustGraph("trust-graph"): + add_root(peer_id: string, weight: u32) -> AddRootResult + add_trust(trust: Trust, issuer_peer_id: string, timestamp_sec: u64) -> AddTrustResult + get_all_certs(issued_for: string, timestamp_sec: u64) -> AllCertsResult + get_trust_metadata(issued_for_peer_id: string, expires_at_sec: u64, issued_at_sec: u64) -> GetTrustMetadataResult + get_weight(peer_id: string, timestamp_sec: u64) -> WeightResult + insert_cert(certificate: Certificate, timestamp_sec: u64) -> InsertResult + insert_cert_raw(certificate: string, timestamp_sec: u64) -> InsertResult + issue_trust(issued_for_peer_id: string, expires_at_sec: u64, issued_at_sec: u64, signed_metadata: []u8) -> IssueTrustResult + verify_trust(trust: Trust, issuer_peer_id: string, timestamp_sec: u64) -> VerifyTrustResult diff --git a/builtin-package/blueprint.json b/builtin-package/blueprint.json new file mode 100644 index 0000000..c77f06a --- /dev/null +++ b/builtin-package/blueprint.json @@ -0,0 +1,7 @@ +{ + "name": "trust-graph", + "dependencies": [ + "name:sqlite3", + "name:trust-graph" + ] +} \ No newline at end of file diff --git a/builtin-package/package.sh b/builtin-package/package.sh new file mode 100755 index 0000000..3ba3919 --- /dev/null +++ b/builtin-package/package.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +set -o pipefail -o nounset -o errexit + +# set current working directory to script directory to run script from everywhere +cd "$(dirname "$0")" +SCRIPT_DIR="$(pwd)" + +( + echo "*** copy wasm files ***" + cd ../service + cp artifacts/*.wasm "$SCRIPT_DIR" +) + +( + echo "*** create builtin distribution package ***" + cd .. + mv builtin-package trust-graph + tar --exclude="package.sh" -f trust-graph.tar.gz -zcv ./trust-graph + mv trust-graph builtin-package +) + +echo "*** done ***" diff --git a/builtin-package/sqlite3_config.json b/builtin-package/sqlite3_config.json new file mode 100644 index 0000000..39ffa45 --- /dev/null +++ b/builtin-package/sqlite3_config.json @@ -0,0 +1,4 @@ +{ + "name": "sqlite3", + "mem_pages_count": 100 +} diff --git a/builtin-package/trust-graph_config.json b/builtin-package/trust-graph_config.json new file mode 100644 index 0000000..32ba0da --- /dev/null +++ b/builtin-package/trust-graph_config.json @@ -0,0 +1,10 @@ +{ + "name": "trust-graph", + "mem_page_count": 1, + "preopened_files": [ + "/tmp" + ], + "mapped_dirs": { + "tmp": "./tmp" + } +} diff --git a/service/build.sh b/service/build.sh index 7efe94e..dbc459d 100755 --- a/service/build.sh +++ b/service/build.sh @@ -16,4 +16,4 @@ cp ../target/wasm32-wasi/release/trust-graph.wasm artifacts/ curl -L https://github.com/fluencelabs/sqlite/releases/download/v0.15.0_w/sqlite3.wasm -o artifacts/sqlite3.wasm # generate Aqua bindings -marine aqua artifacts/trust-graph.wasm -s TrustGraph -i trust-graph > trust-graph.aqua +marine aqua artifacts/trust-graph.wasm -s TrustGraph -i trust-graph > ../aqua/trust-graph.aqua