From c6cbf46f1b19797b1f4b69cf435f427b558896a5 Mon Sep 17 00:00:00 2001 From: Arthur_kamau Date: Mon, 1 Dec 2025 16:43:15 +0300 Subject: [PATCH 01/15] start of using mintlify --- .gitignore | 56 -- .gitmodules | 3 - .nvmrc | 1 - LICENSE | 185 +++++ README.md | 62 +- ai-tools/claude-code.mdx | 76 ++ ai-tools/cursor.mdx | 420 ++++++++++ ai-tools/windsurf.mdx | 96 +++ api-reference/endpoint/create.mdx | 4 + api-reference/endpoint/delete.mdx | 4 + api-reference/endpoint/get.mdx | 4 + api-reference/endpoint/webhook.mdx | 4 + api-reference/introduction.mdx | 33 + api-reference/openapi.json | 217 +++++ blog/2019-05-28-first-blog-post.md | 12 - blog/2019-05-29-long-blog-post.md | 44 - blog/2021-08-01-mdx-blog-post.mdx | 24 - .../docusaurus-plushie-banner.jpeg | Bin 96122 -> 0 bytes blog/2021-08-26-welcome/index.md | 29 - blog/authors.yml | 23 - blog/tags.yml | 19 - development.mdx | 94 +++ docs.json | 109 +++ docs/implementations/_index.md | 8 - .../implementations/reference-architecture.md | 336 -------- docs/intro.md | 12 - docs/overview/_index.md | 39 - docs/protocol/_index.md | 11 - docs/protocol/aqua-identity-protocol.md | 446 ---------- docs/protocol/aqua-name-resolution.md | 17 - docs/protocol/aqua-protocol-version_1.3.md | 226 ----- docs/protocol/aqua_protocol_v1_2.md | 68 -- docs/protocol/assurance-levels-aal.md | 52 -- docs/protocol/data-accounting.md | 77 -- docs/protocol/data-governance.md | 115 --- docs/protocol/delegated-witnessing.md | 14 - docs/protocol/design-principles.md | 127 --- docs/protocol/guardian.md | 373 --------- docs/protocol/immutable-hyperlinks.md | 85 -- docs/protocol/whitepaper.md | 786 ------------------ docusaurus.config.ts | 161 ---- essentials/code.mdx | 35 + essentials/images.mdx | 59 ++ essentials/markdown.mdx | 88 ++ essentials/navigation.mdx | 87 ++ essentials/reusable-snippets.mdx | 110 +++ essentials/settings.mdx | 318 +++++++ favicon.svg | 19 + images/checks-passed.png | Bin 0 -> 160724 bytes images/hero-dark.png | Bin 0 -> 110614 bytes images/hero-light.png | Bin 0 -> 104264 bytes index.mdx | 97 +++ .../android-192x192.png => logo/aqua-logo.png | Bin logo/dark.svg | 21 + logo/light.svg | 21 + package.json | 48 -- previous_versions/version-1.mdx | 4 + previous_versions/version-2.mdx | 4 + previous_versions/version-3.mdx | 4 + quickstart.mdx | 80 ++ sidebars.ts | 33 - snippets/snippet-intro.mdx | 4 + src/components/HomepageFeatures/index.tsx | 81 -- .../HomepageFeatures/styles.module.css | 22 - src/css/custom.css | 56 -- src/pages/community.tsx | 98 --- src/pages/coummunity.module.css | 68 -- src/pages/index.module.css | 129 --- src/pages/index.tsx | 67 -- static/.nojekyll | 0 static/docs_pics/Cheque_Filled_Example.png | Bin 149525 -> 0 bytes static/docs_pics/Escrow_Gateway_Aqua.png | Bin 56943 -> 0 bytes .../Escrow_Gateway_Aqua.png:Zone.Identifier | 3 - static/docs_pics/Flow_Cheque.jpg | Bin 220176 -> 0 bytes static/docs_pics/Flow_Cheque.png | Bin 220176 -> 0 bytes static/favicon.ico | Bin 1627 -> 0 bytes static/favicons/android-144x144.png | Bin 9474 -> 0 bytes static/favicons/android-36x36.png | Bin 1891 -> 0 bytes static/favicons/android-48x48.png | Bin 2650 -> 0 bytes static/favicons/android-72x72.png | Bin 4390 -> 0 bytes static/favicons/android-96x96.png | Bin 5922 -> 0 bytes static/favicons/apple-touch-icon-180x180.png | Bin 15374 -> 0 bytes static/favicons/favicon-16x16.png | Bin 755 -> 0 bytes static/favicons/favicon-32x32.png | Bin 1627 -> 0 bytes static/featured-background.png | Bin 95557 -> 0 bytes static/img/aqua_chrome_plugin.png | Bin 204143 -> 0 bytes static/img/docusaurus.png | Bin 5142 -> 0 bytes static/img/favicon.ico | Bin 1627 -> 0 bytes static/img/favicon_old.ico | Bin 3626 -> 0 bytes static/img/logo.svg | 1 - static/img/undraw_docusaurus_mountain.svg | 171 ---- static/img/undraw_docusaurus_react.svg | 170 ---- static/img/undraw_docusaurus_tree.svg | 40 - tsconfig.json | 8 - .../Implementations/__category__.json | 8 - .../version-1.1.0/Implementations/_index.md | 8 - .../Implementations/reference-architecture.md | 336 -------- .../version-1.1.0/Protocol/__category__.json | 9 - .../version-1.1.0/Protocol/_index.md | 11 - .../Protocol/aqua-identity-protocol.md | 446 ---------- .../Protocol/aqua-name-resolution.md | 17 - .../Protocol/assurance-levels-aal.md | 52 -- .../version-1.1.0/Protocol/data-accounting.md | 77 -- .../version-1.1.0/Protocol/data-governance.md | 115 --- .../Protocol/delegated-witnessing.md | 15 - .../Protocol/design-principles.md | 128 --- .../version-1.1.0/Protocol/guardian.md | 374 --------- .../Protocol/immutable-hyperlinks.md | 86 -- .../version-1.1.0/Protocol/whitepaper.md | 786 ------------------ versioned_docs/version-1.1.0/intro.md | 41 - .../Components/__category__.json | 7 - .../Components/containers/__category__.json | 6 - .../Components/containers/aquafier.md | 15 - .../Components/containers/media-wiki.md | 6 - .../version-1.2.0/Components/intro.md | 48 -- .../verifier/aqua-cli-javascript.md | 69 -- .../Components/verifier/aqua-cli-rust.md | 72 -- .../Components/verifier/verifier.md | 4 - .../Components/verifier/webextension.md | 5 - .../version-1.2.0/contribution-guidelines.md | 144 ---- .../version-1.2.0/getting-started.md | 70 -- versioned_docs/version-1.2.0/prologue.md | 44 - versioned_docs/version-1.2.0/references.md | 185 ----- .../aqua-protocol-version_1.3.md | 226 ----- versioned_docs/version-1.3.0/aqua_protocol.md | 251 ------ versioned_docs/version-1.3.0/intro.md | 12 - versioned_docs/version-1.3.2/AccessControl.md | 175 ---- versioned_docs/version-1.3.2/AquaIdentity.md | 171 ---- versioned_docs/version-1.3.2/Cheque.md | 178 ---- versioned_docs/version-1.3.2/RestAPI.md | 349 -------- versioned_docs/version-1.3.2/VerifierTests.md | 77 -- versioned_docs/version-1.3.2/cli-tool.md | 150 ---- versioned_docs/version-1.3.2/intro.md | 34 - versioned_docs/version-1.3.2/schema_2.md | 349 -------- versioned_docs/version-1.3.2/sdk/README.md | 37 - .../version-1.3.2/sdk/api/chainable.md | 181 ---- .../version-1.3.2/sdk/api/signing.md | 223 ----- .../version-1.3.2/sdk/api/verification.md | 233 ------ .../version-1.3.2/sdk/api/witnessing.md | 223 ----- .../version-1.3.2/sdk/core-concepts.md | 136 --- .../version-1.3.2/sdk/getting-started.md | 85 -- .../version-1.1.0-sidebars.json | 8 - .../version-1.2.0-sidebars.json | 8 - .../version-1.3.0-sidebars.json | 8 - .../version-1.3.2-sidebars.json | 99 --- versions.json | 5 - 146 files changed, 2236 insertions(+), 10584 deletions(-) delete mode 100644 .gitignore delete mode 100644 .gitmodules delete mode 100644 .nvmrc create mode 100644 LICENSE create mode 100644 ai-tools/claude-code.mdx create mode 100644 ai-tools/cursor.mdx create mode 100644 ai-tools/windsurf.mdx create mode 100644 api-reference/endpoint/create.mdx create mode 100644 api-reference/endpoint/delete.mdx create mode 100644 api-reference/endpoint/get.mdx create mode 100644 api-reference/endpoint/webhook.mdx create mode 100644 api-reference/introduction.mdx create mode 100644 api-reference/openapi.json delete mode 100644 blog/2019-05-28-first-blog-post.md delete mode 100644 blog/2019-05-29-long-blog-post.md delete mode 100644 blog/2021-08-01-mdx-blog-post.mdx delete mode 100644 blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg delete mode 100644 blog/2021-08-26-welcome/index.md delete mode 100644 blog/authors.yml delete mode 100644 blog/tags.yml create mode 100644 development.mdx create mode 100644 docs.json delete mode 100644 docs/implementations/_index.md delete mode 100644 docs/implementations/reference-architecture.md delete mode 100644 docs/intro.md delete mode 100644 docs/overview/_index.md delete mode 100644 docs/protocol/_index.md delete mode 100644 docs/protocol/aqua-identity-protocol.md delete mode 100644 docs/protocol/aqua-name-resolution.md delete mode 100644 docs/protocol/aqua-protocol-version_1.3.md delete mode 100644 docs/protocol/aqua_protocol_v1_2.md delete mode 100644 docs/protocol/assurance-levels-aal.md delete mode 100644 docs/protocol/data-accounting.md delete mode 100644 docs/protocol/data-governance.md delete mode 100644 docs/protocol/delegated-witnessing.md delete mode 100644 docs/protocol/design-principles.md delete mode 100644 docs/protocol/guardian.md delete mode 100644 docs/protocol/immutable-hyperlinks.md delete mode 100644 docs/protocol/whitepaper.md delete mode 100644 docusaurus.config.ts create mode 100644 essentials/code.mdx create mode 100644 essentials/images.mdx create mode 100644 essentials/markdown.mdx create mode 100644 essentials/navigation.mdx create mode 100644 essentials/reusable-snippets.mdx create mode 100644 essentials/settings.mdx create mode 100644 favicon.svg create mode 100644 images/checks-passed.png create mode 100644 images/hero-dark.png create mode 100644 images/hero-light.png create mode 100644 index.mdx rename static/favicons/android-192x192.png => logo/aqua-logo.png (100%) create mode 100644 logo/dark.svg create mode 100644 logo/light.svg delete mode 100644 package.json create mode 100644 previous_versions/version-1.mdx create mode 100644 previous_versions/version-2.mdx create mode 100644 previous_versions/version-3.mdx create mode 100644 quickstart.mdx delete mode 100644 sidebars.ts create mode 100644 snippets/snippet-intro.mdx delete mode 100644 src/components/HomepageFeatures/index.tsx delete mode 100644 src/components/HomepageFeatures/styles.module.css delete mode 100644 src/css/custom.css delete mode 100644 src/pages/community.tsx delete mode 100644 src/pages/coummunity.module.css delete mode 100644 src/pages/index.module.css delete mode 100644 src/pages/index.tsx delete mode 100644 static/.nojekyll delete mode 100644 static/docs_pics/Cheque_Filled_Example.png delete mode 100644 static/docs_pics/Escrow_Gateway_Aqua.png delete mode 100644 static/docs_pics/Escrow_Gateway_Aqua.png:Zone.Identifier delete mode 100644 static/docs_pics/Flow_Cheque.jpg delete mode 100644 static/docs_pics/Flow_Cheque.png delete mode 100644 static/favicon.ico delete mode 100644 static/favicons/android-144x144.png delete mode 100644 static/favicons/android-36x36.png delete mode 100644 static/favicons/android-48x48.png delete mode 100644 static/favicons/android-72x72.png delete mode 100644 static/favicons/android-96x96.png delete mode 100644 static/favicons/apple-touch-icon-180x180.png delete mode 100644 static/favicons/favicon-16x16.png delete mode 100644 static/favicons/favicon-32x32.png delete mode 100644 static/featured-background.png delete mode 100644 static/img/aqua_chrome_plugin.png delete mode 100644 static/img/docusaurus.png delete mode 100644 static/img/favicon.ico delete mode 100644 static/img/favicon_old.ico delete mode 100644 static/img/logo.svg delete mode 100644 static/img/undraw_docusaurus_mountain.svg delete mode 100644 static/img/undraw_docusaurus_react.svg delete mode 100644 static/img/undraw_docusaurus_tree.svg delete mode 100644 tsconfig.json delete mode 100644 versioned_docs/version-1.1.0/Implementations/__category__.json delete mode 100644 versioned_docs/version-1.1.0/Implementations/_index.md delete mode 100644 versioned_docs/version-1.1.0/Implementations/reference-architecture.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/__category__.json delete mode 100644 versioned_docs/version-1.1.0/Protocol/_index.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/aqua-identity-protocol.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/aqua-name-resolution.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/assurance-levels-aal.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/data-accounting.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/data-governance.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/delegated-witnessing.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/design-principles.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/guardian.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/immutable-hyperlinks.md delete mode 100644 versioned_docs/version-1.1.0/Protocol/whitepaper.md delete mode 100644 versioned_docs/version-1.1.0/intro.md delete mode 100644 versioned_docs/version-1.2.0/Components/__category__.json delete mode 100644 versioned_docs/version-1.2.0/Components/containers/__category__.json delete mode 100644 versioned_docs/version-1.2.0/Components/containers/aquafier.md delete mode 100644 versioned_docs/version-1.2.0/Components/containers/media-wiki.md delete mode 100644 versioned_docs/version-1.2.0/Components/intro.md delete mode 100644 versioned_docs/version-1.2.0/Components/verifier/aqua-cli-javascript.md delete mode 100644 versioned_docs/version-1.2.0/Components/verifier/aqua-cli-rust.md delete mode 100644 versioned_docs/version-1.2.0/Components/verifier/verifier.md delete mode 100644 versioned_docs/version-1.2.0/Components/verifier/webextension.md delete mode 100644 versioned_docs/version-1.2.0/contribution-guidelines.md delete mode 100644 versioned_docs/version-1.2.0/getting-started.md delete mode 100644 versioned_docs/version-1.2.0/prologue.md delete mode 100644 versioned_docs/version-1.2.0/references.md delete mode 100644 versioned_docs/version-1.3.0/aqua-protocol-version_1.3.md delete mode 100644 versioned_docs/version-1.3.0/aqua_protocol.md delete mode 100644 versioned_docs/version-1.3.0/intro.md delete mode 100644 versioned_docs/version-1.3.2/AccessControl.md delete mode 100644 versioned_docs/version-1.3.2/AquaIdentity.md delete mode 100644 versioned_docs/version-1.3.2/Cheque.md delete mode 100644 versioned_docs/version-1.3.2/RestAPI.md delete mode 100644 versioned_docs/version-1.3.2/VerifierTests.md delete mode 100644 versioned_docs/version-1.3.2/cli-tool.md delete mode 100644 versioned_docs/version-1.3.2/intro.md delete mode 100644 versioned_docs/version-1.3.2/schema_2.md delete mode 100644 versioned_docs/version-1.3.2/sdk/README.md delete mode 100644 versioned_docs/version-1.3.2/sdk/api/chainable.md delete mode 100644 versioned_docs/version-1.3.2/sdk/api/signing.md delete mode 100644 versioned_docs/version-1.3.2/sdk/api/verification.md delete mode 100644 versioned_docs/version-1.3.2/sdk/api/witnessing.md delete mode 100644 versioned_docs/version-1.3.2/sdk/core-concepts.md delete mode 100644 versioned_docs/version-1.3.2/sdk/getting-started.md delete mode 100644 versioned_sidebars/version-1.1.0-sidebars.json delete mode 100644 versioned_sidebars/version-1.2.0-sidebars.json delete mode 100644 versioned_sidebars/version-1.3.0-sidebars.json delete mode 100644 versioned_sidebars/version-1.3.2-sidebars.json delete mode 100644 versions.json diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 27cb1b9b..00000000 --- a/.gitignore +++ /dev/null @@ -1,56 +0,0 @@ -.hugo_build.lock -public/ -resources/_gen/ -node_modules -.docusaurus -.docusaurus/ - -# Node.js dependencies -/node_modules/ - -# Docusaurus build output -/build/ - -# Logs -logs -*.log - -# Operating System files -.DS_Store -Thumbs.db - -# Editor directories and files -.vscode/ -.idea/ -*.sublime-project -*.sublime-workspace - -# Environment files -.env - -# Temporary files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# .pnp files for Yarn (if using Yarn PnP) -.pnp.* -.pnp - -# Jest testing artifacts -/coverage/ - -# Docusaurus plugin build artifacts (e.g., generated by docusaurus-plugin-pwa) -*.pwa/ - -# Generated by Docusaurus: Jest test reports, cache, and build folders -/jest-test-results/ -.cache/ - -# Yarn and npm lock files -yarn.lock -package-lock.json - -# Optional IDE and build files -.vscode/* -.idea/* diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index ed7f0d76..00000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "themes/docsy"] - path = themes/docsy - url = https://github.com/google/docsy diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index b009dfb9..00000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -lts/* diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..1451535f --- /dev/null +++ b/LICENSE @@ -0,0 +1,185 @@ +GNU GENERAL PUBLIC LICENSE +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. + +Preamble +The GNU General Public License is a free, copyleft license for software and other kinds of works. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and modification follow. + +TERMS AND CONDITIONS +0. Definitions. +“This License” refers to version 3 of the GNU General Public License. + +“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. + +To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. + +A “covered work” means either the unmodified Program or a work based on the Program. + +To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. + +1. Source Code. +The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. + +A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +2. Basic Permissions. +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. + +4. Conveying Verbatim Copies. +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + +a) The work must carry prominent notices stating that you modified it, and giving a relevant date. +b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. +c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. +d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. + +6. Conveying Non-Source Forms. +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + +a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. +b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. +c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. +d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. +e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. + +7. Additional Terms. +“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + +a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or +b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or +c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or +d) Limiting the use for publicity purposes of names of licensors or authors of the material; or +e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or +f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. +All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. + +8. Termination. +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. + +9. Acceptance Not Required for Having Copies. +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. + +11. Patents. +A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's “contributor version”. + +A contributor's “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. + +In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. + +A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. +If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. + +13. Use with the GNU Affero General Public License. +Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. + +14. Revised Versions of this License. +The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. + +15. Disclaimer of Warranty. +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. Limitation of Liability. +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. +If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/README.md b/README.md index 2355f763..055c983a 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,43 @@ -# Aqua Docs - -Check out aqua docs [here](https://aqua-protocol.org/docs) - -Contribution: -- To add a new page you go to the versioned docs folder and select the version you want to add to. -- Creaste a new page "My new page.md" -- If you want to give a page a specific title use the title metadata tag -```markdown ---- -title: "Version 3.2" -menu: - main: - weight: 10 ---- -``` +# Mintlify Starter Kit + +Use the starter kit to get your docs deployed and ready to customize. + +Click the green **Use this template** button at the top of this repo to copy the Mintlify starter kit. The starter kit contains examples with + +- Guide pages +- Navigation +- Customizations +- API reference pages +- Use of popular components + +**[Follow the full quickstart guide](https://starter.mintlify.com/quickstart)** -## GitHub Actions -Any changes pushed to main-branch will trigger an automatic build and publishing to https://aqua-protocol.org/docs. +## Development + +Install the [Mintlify CLI](https://www.npmjs.com/package/mint) to preview your documentation changes locally. To install, use the following command: + +``` +npm i -g mint +``` -## Local Build & Installation -If you want to run it locally for testing you can do: +Run the following command at the root of your documentation, where your `docs.json` is located: -```bash -npm i & npm start & npm run build ``` -This will start up a local test-instance on localhost:3000 +mint dev +``` + +View your local preview at `http://localhost:3000`. + +## Publishing changes + +Install our GitHub app from your [dashboard](https://dashboard.mintlify.com/settings/organization/github-app) to propagate changes from your repo to your deployment. Changes are deployed to production automatically after pushing to the default branch. + +## Need help? + +### Troubleshooting + +- If your dev environment isn't running: Run `mint update` to ensure you have the most recent version of the CLI. +- If a page loads as a 404: Make sure you are running in a folder with a valid `docs.json`. + +### Resources +- [Mintlify documentation](https://mintlify.com/docs) diff --git a/ai-tools/claude-code.mdx b/ai-tools/claude-code.mdx new file mode 100644 index 00000000..bdc4e04b --- /dev/null +++ b/ai-tools/claude-code.mdx @@ -0,0 +1,76 @@ +--- +title: "Claude Code setup" +description: "Configure Claude Code for your documentation workflow" +icon: "asterisk" +--- + +Claude Code is Anthropic's official CLI tool. This guide will help you set up Claude Code to help you write and maintain your documentation. + +## Prerequisites + +- Active Claude subscription (Pro, Max, or API access) + +## Setup + +1. Install Claude Code globally: + + ```bash + npm install -g @anthropic-ai/claude-code +``` + +2. Navigate to your docs directory. +3. (Optional) Add the `CLAUDE.md` file below to your project. +4. Run `claude` to start. + +## Create `CLAUDE.md` + +Create a `CLAUDE.md` file at the root of your documentation repository to train Claude Code on your specific documentation standards: + +````markdown +# Mintlify documentation + +## Working relationship +- You can push back on ideas-this can lead to better documentation. Cite sources and explain your reasoning when you do so +- ALWAYS ask for clarification rather than making assumptions +- NEVER lie, guess, or make up information + +## Project context +- Format: MDX files with YAML frontmatter +- Config: docs.json for navigation, theme, settings +- Components: Mintlify components + +## Content strategy +- Document just enough for user success - not too much, not too little +- Prioritize accuracy and usability of information +- Make content evergreen when possible +- Search for existing information before adding new content. Avoid duplication unless it is done for a strategic reason +- Check existing patterns for consistency +- Start by making the smallest reasonable changes + +## Frontmatter requirements for pages +- title: Clear, descriptive page title +- description: Concise summary for SEO/navigation + +## Writing standards +- Second-person voice ("you") +- Prerequisites at start of procedural content +- Test all code examples before publishing +- Match style and formatting of existing pages +- Include both basic and advanced use cases +- Language tags on all code blocks +- Alt text on all images +- Relative paths for internal links + +## Git workflow +- NEVER use --no-verify when committing +- Ask how to handle uncommitted changes before starting +- Create a new branch when no clear branch exists for changes +- Commit frequently throughout development +- NEVER skip or disable pre-commit hooks + +## Do not +- Skip frontmatter on any MDX file +- Use absolute URLs for internal links +- Include untested code examples +- Make assumptions - always ask for clarification +```` diff --git a/ai-tools/cursor.mdx b/ai-tools/cursor.mdx new file mode 100644 index 00000000..fbb77616 --- /dev/null +++ b/ai-tools/cursor.mdx @@ -0,0 +1,420 @@ +--- +title: "Cursor setup" +description: "Configure Cursor for your documentation workflow" +icon: "arrow-pointer" +--- + +Use Cursor to help write and maintain your documentation. This guide shows how to configure Cursor for better results on technical writing tasks and using Mintlify components. + +## Prerequisites + +- Cursor editor installed +- Access to your documentation repository + +## Project rules + +Create project rules that all team members can use. In your documentation repository root: + +```bash +mkdir -p .cursor +``` + +Create `.cursor/rules.md`: + +````markdown +# Mintlify technical writing rule + +You are an AI writing assistant specialized in creating exceptional technical documentation using Mintlify components and following industry-leading technical writing practices. + +## Core writing principles + +### Language and style requirements + +- Use clear, direct language appropriate for technical audiences +- Write in second person ("you") for instructions and procedures +- Use active voice over passive voice +- Employ present tense for current states, future tense for outcomes +- Avoid jargon unless necessary and define terms when first used +- Maintain consistent terminology throughout all documentation +- Keep sentences concise while providing necessary context +- Use parallel structure in lists, headings, and procedures + +### Content organization standards + +- Lead with the most important information (inverted pyramid structure) +- Use progressive disclosure: basic concepts before advanced ones +- Break complex procedures into numbered steps +- Include prerequisites and context before instructions +- Provide expected outcomes for each major step +- Use descriptive, keyword-rich headings for navigation and SEO +- Group related information logically with clear section breaks + +### User-centered approach + +- Focus on user goals and outcomes rather than system features +- Anticipate common questions and address them proactively +- Include troubleshooting for likely failure points +- Write for scannability with clear headings, lists, and white space +- Include verification steps to confirm success + +## Mintlify component reference + +### Callout components + +#### Note - Additional helpful information + + +Supplementary information that supports the main content without interrupting flow + + +#### Tip - Best practices and pro tips + + +Expert advice, shortcuts, or best practices that enhance user success + + +#### Warning - Important cautions + + +Critical information about potential issues, breaking changes, or destructive actions + + +#### Info - Neutral contextual information + + +Background information, context, or neutral announcements + + +#### Check - Success confirmations + + +Positive confirmations, successful completions, or achievement indicators + + +### Code components + +#### Single code block + +Example of a single code block: + +```javascript config.js +const apiConfig = { + baseURL: 'https://api.example.com', + timeout: 5000, + headers: { + 'Authorization': `Bearer ${process.env.API_TOKEN}` + } +}; +``` + +#### Code group with multiple languages + +Example of a code group: + + +```javascript Node.js +const response = await fetch('/api/endpoint', { + headers: { Authorization: `Bearer ${apiKey}` } +}); +``` + +```python Python +import requests +response = requests.get('/api/endpoint', + headers={'Authorization': f'Bearer {api_key}'}) +``` + +```curl cURL +curl -X GET '/api/endpoint' \ + -H 'Authorization: Bearer YOUR_API_KEY' +``` + + +#### Request/response examples + +Example of request/response documentation: + + +```bash cURL +curl -X POST 'https://api.example.com/users' \ + -H 'Content-Type: application/json' \ + -d '{"name": "John Doe", "email": "john@example.com"}' +``` + + + +```json Success +{ + "id": "user_123", + "name": "John Doe", + "email": "john@example.com", + "created_at": "2024-01-15T10:30:00Z" +} +``` + + +### Structural components + +#### Steps for procedures + +Example of step-by-step instructions: + + + + Run `npm install` to install required packages. + + + Verify installation by running `npm list`. + + + + + Create a `.env` file with your API credentials. + + ```bash + API_KEY=your_api_key_here + ``` + + + Never commit API keys to version control. + + + + +#### Tabs for alternative content + +Example of tabbed content: + + + + ```bash + brew install node + npm install -g package-name + ``` + + + + ```powershell + choco install nodejs + npm install -g package-name + ``` + + + + ```bash + sudo apt install nodejs npm + npm install -g package-name + ``` + + + +#### Accordions for collapsible content + +Example of accordion groups: + + + + - **Firewall blocking**: Ensure ports 80 and 443 are open + - **Proxy configuration**: Set HTTP_PROXY environment variable + - **DNS resolution**: Try using 8.8.8.8 as DNS server + + + + ```javascript + const config = { + performance: { cache: true, timeout: 30000 }, + security: { encryption: 'AES-256' } + }; + ``` + + + +### Cards and columns for emphasizing information + +Example of cards and card groups: + + +Complete walkthrough from installation to your first API call in under 10 minutes. + + + + + Learn how to authenticate requests using API keys or JWT tokens. + + + + Understand rate limits and best practices for high-volume usage. + + + +### API documentation components + +#### Parameter fields + +Example of parameter documentation: + + +Unique identifier for the user. Must be a valid UUID v4 format. + + + +User's email address. Must be valid and unique within the system. + + + +Maximum number of results to return. Range: 1-100. + + + +Bearer token for API authentication. Format: `Bearer YOUR_API_KEY` + + +#### Response fields + +Example of response field documentation: + + +Unique identifier assigned to the newly created user. + + + +ISO 8601 formatted timestamp of when the user was created. + + + +List of permission strings assigned to this user. + + +#### Expandable nested fields + +Example of nested field documentation: + + +Complete user object with all associated data. + + + + User profile information including personal details. + + + + User's first name as entered during registration. + + + + URL to user's profile picture. Returns null if no avatar is set. + + + + + + +### Media and advanced components + +#### Frames for images + +Wrap all images in frames: + + +Main dashboard showing analytics overview + + + +Analytics dashboard with charts + + +#### Videos + +Use the HTML video element for self-hosted video content: + + + +Embed YouTube videos using iframe elements: + + + +#### Tooltips + +Example of tooltip usage: + + +API + + +#### Updates + +Use updates for changelogs: + + +## New features +- Added bulk user import functionality +- Improved error messages with actionable suggestions + +## Bug fixes +- Fixed pagination issue with large datasets +- Resolved authentication timeout problems + + +## Required page structure + +Every documentation page must begin with YAML frontmatter: + +```yaml +--- +title: "Clear, specific, keyword-rich title" +description: "Concise description explaining page purpose and value" +--- +``` + +## Content quality standards + +### Code examples requirements + +- Always include complete, runnable examples that users can copy and execute +- Show proper error handling and edge case management +- Use realistic data instead of placeholder values +- Include expected outputs and results for verification +- Test all code examples thoroughly before publishing +- Specify language and include filename when relevant +- Add explanatory comments for complex logic +- Never include real API keys or secrets in code examples + +### API documentation requirements + +- Document all parameters including optional ones with clear descriptions +- Show both success and error response examples with realistic data +- Include rate limiting information with specific limits +- Provide authentication examples showing proper format +- Explain all HTTP status codes and error handling +- Cover complete request/response cycles + +### Accessibility requirements + +- Include descriptive alt text for all images and diagrams +- Use specific, actionable link text instead of "click here" +- Ensure proper heading hierarchy starting with H2 +- Provide keyboard navigation considerations +- Use sufficient color contrast in examples and visuals +- Structure content for easy scanning with headers and lists + +## Component selection logic + +- Use **Steps** for procedures and sequential instructions +- Use **Tabs** for platform-specific content or alternative approaches +- Use **CodeGroup** when showing the same concept in multiple programming languages +- Use **Accordions** for progressive disclosure of information +- Use **RequestExample/ResponseExample** specifically for API endpoint documentation +- Use **ParamField** for API parameters, **ResponseField** for API responses +- Use **Expandable** for nested object properties or hierarchical information +```` diff --git a/ai-tools/windsurf.mdx b/ai-tools/windsurf.mdx new file mode 100644 index 00000000..fce12bfd --- /dev/null +++ b/ai-tools/windsurf.mdx @@ -0,0 +1,96 @@ +--- +title: "Windsurf setup" +description: "Configure Windsurf for your documentation workflow" +icon: "water" +--- + +Configure Windsurf's Cascade AI assistant to help you write and maintain documentation. This guide shows how to set up Windsurf specifically for your Mintlify documentation workflow. + +## Prerequisites + +- Windsurf editor installed +- Access to your documentation repository + +## Workspace rules + +Create workspace rules that provide Windsurf with context about your documentation project and standards. + +Create `.windsurf/rules.md` in your project root: + +````markdown +# Mintlify technical writing rule + +## Project context + +- This is a documentation project on the Mintlify platform +- We use MDX files with YAML frontmatter +- Navigation is configured in `docs.json` +- We follow technical writing best practices + +## Writing standards + +- Use second person ("you") for instructions +- Write in active voice and present tense +- Start procedures with prerequisites +- Include expected outcomes for major steps +- Use descriptive, keyword-rich headings +- Keep sentences concise but informative + +## Required page structure + +Every page must start with frontmatter: + +```yaml +--- +title: "Clear, specific title" +description: "Concise description for SEO and navigation" +--- +``` + +## Mintlify components + +### Callouts + +- `` for helpful supplementary information +- `` for important cautions and breaking changes +- `` for best practices and expert advice +- `` for neutral contextual information +- `` for success confirmations + +### Code examples + +- When appropriate, include complete, runnable examples +- Use `` for multiple language examples +- Specify language tags on all code blocks +- Include realistic data, not placeholders +- Use `` and `` for API docs + +### Procedures + +- Use `` component for sequential instructions +- Include verification steps with `` components when relevant +- Break complex procedures into smaller steps + +### Content organization + +- Use `` for platform-specific content +- Use `` for progressive disclosure +- Use `` and `` for highlighting content +- Wrap images in `` components with descriptive alt text + +## API documentation requirements + +- Document all parameters with `` +- Show response structure with `` +- Include both success and error examples +- Use `` for nested object properties +- Always include authentication examples + +## Quality standards + +- Test all code examples before publishing +- Use relative paths for internal links +- Include alt text for all images +- Ensure proper heading hierarchy (start with h2) +- Check existing patterns for consistency +```` diff --git a/api-reference/endpoint/create.mdx b/api-reference/endpoint/create.mdx new file mode 100644 index 00000000..5689f1b6 --- /dev/null +++ b/api-reference/endpoint/create.mdx @@ -0,0 +1,4 @@ +--- +title: 'Create Plant' +openapi: 'POST /plants' +--- diff --git a/api-reference/endpoint/delete.mdx b/api-reference/endpoint/delete.mdx new file mode 100644 index 00000000..657dfc87 --- /dev/null +++ b/api-reference/endpoint/delete.mdx @@ -0,0 +1,4 @@ +--- +title: 'Delete Plant' +openapi: 'DELETE /plants/{id}' +--- diff --git a/api-reference/endpoint/get.mdx b/api-reference/endpoint/get.mdx new file mode 100644 index 00000000..56aa09ec --- /dev/null +++ b/api-reference/endpoint/get.mdx @@ -0,0 +1,4 @@ +--- +title: 'Get Plants' +openapi: 'GET /plants' +--- diff --git a/api-reference/endpoint/webhook.mdx b/api-reference/endpoint/webhook.mdx new file mode 100644 index 00000000..32913402 --- /dev/null +++ b/api-reference/endpoint/webhook.mdx @@ -0,0 +1,4 @@ +--- +title: 'New Plant' +openapi: 'WEBHOOK /plant/webhook' +--- diff --git a/api-reference/introduction.mdx b/api-reference/introduction.mdx new file mode 100644 index 00000000..c835b78b --- /dev/null +++ b/api-reference/introduction.mdx @@ -0,0 +1,33 @@ +--- +title: 'Introduction' +description: 'Example section for showcasing API endpoints' +--- + + + If you're not looking to build API reference documentation, you can delete + this section by removing the api-reference folder. + + +## Welcome + +There are two ways to build API documentation: [OpenAPI](https://mintlify.com/docs/api-playground/openapi/setup) and [MDX components](https://mintlify.com/docs/api-playground/mdx/configuration). For the starter kit, we are using the following OpenAPI specification. + + + View the OpenAPI specification file + + +## Authentication + +All API endpoints are authenticated using Bearer tokens and picked up from the specification file. + +```json +"security": [ + { + "bearerAuth": [] + } +] +``` diff --git a/api-reference/openapi.json b/api-reference/openapi.json new file mode 100644 index 00000000..da5326ef --- /dev/null +++ b/api-reference/openapi.json @@ -0,0 +1,217 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "OpenAPI Plant Store", + "description": "A sample API that uses a plant store as an example to demonstrate features in the OpenAPI specification", + "license": { + "name": "MIT" + }, + "version": "1.0.0" + }, + "servers": [ + { + "url": "http://sandbox.mintlify.com" + } + ], + "security": [ + { + "bearerAuth": [] + } + ], + "paths": { + "/plants": { + "get": { + "description": "Returns all plants from the system that the user has access to", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Plant response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Plant" + } + } + } + } + }, + "400": { + "description": "Unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + }, + "post": { + "description": "Creates a new plant in the store", + "requestBody": { + "description": "Plant to add to the store", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NewPlant" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "plant response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Plant" + } + } + } + }, + "400": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + } + }, + "/plants/{id}": { + "delete": { + "description": "Deletes a single plant based on the ID supplied", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of plant to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "Plant deleted", + "content": {} + }, + "400": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + } + } + }, + "webhooks": { + "/plant/webhook": { + "post": { + "description": "Information about a new plant added to the store", + "requestBody": { + "description": "Plant added to the store", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NewPlant" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + } + }, + "components": { + "schemas": { + "Plant": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "The name of the plant", + "type": "string" + }, + "tag": { + "description": "Tag to specify the type", + "type": "string" + } + } + }, + "NewPlant": { + "allOf": [ + { + "$ref": "#/components/schemas/Plant" + }, + { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "description": "Identification number of the plant", + "type": "integer", + "format": "int64" + } + } + } + ] + }, + "Error": { + "required": [ + "error", + "message" + ], + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + }, + "securitySchemes": { + "bearerAuth": { + "type": "http", + "scheme": "bearer" + } + } + } +} \ No newline at end of file diff --git a/blog/2019-05-28-first-blog-post.md b/blog/2019-05-28-first-blog-post.md deleted file mode 100644 index d3032efb..00000000 --- a/blog/2019-05-28-first-blog-post.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -slug: first-blog-post -title: First Blog Post -authors: [slorber, yangshun] -tags: [hola, docusaurus] ---- - -Lorem ipsum dolor sit amet... - - - -...consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/blog/2019-05-29-long-blog-post.md b/blog/2019-05-29-long-blog-post.md deleted file mode 100644 index eb4435de..00000000 --- a/blog/2019-05-29-long-blog-post.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -slug: long-blog-post -title: Long Blog Post -authors: yangshun -tags: [hello, docusaurus] ---- - -This is the summary of a very long blog post, - -Use a `` comment to limit blog post size in the list view. - - - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/blog/2021-08-01-mdx-blog-post.mdx b/blog/2021-08-01-mdx-blog-post.mdx deleted file mode 100644 index 0c4b4a48..00000000 --- a/blog/2021-08-01-mdx-blog-post.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -slug: mdx-blog-post -title: MDX Blog Post -authors: [slorber] -tags: [docusaurus] ---- - -Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/). - -:::tip - -Use the power of React to create interactive blog posts. - -::: - -{/* truncate */} - -For example, use JSX to create an interactive button: - -```js - -``` - - diff --git a/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg b/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg deleted file mode 100644 index 11bda0928456b12f8e53d0ba5709212a4058d449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 96122 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 diff --git a/blog/2021-08-26-welcome/index.md b/blog/2021-08-26-welcome/index.md deleted file mode 100644 index 349ea075..00000000 --- a/blog/2021-08-26-welcome/index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -slug: welcome -title: Welcome -authors: [slorber, yangshun] -tags: [facebook, hello, docusaurus] ---- - -[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog). - -Here are a few tips you might find useful. - - - -Simply add Markdown files (or folders) to the `blog` directory. - -Regular blog authors can be added to `authors.yml`. - -The blog post date can be extracted from filenames, such as: - -- `2019-05-30-welcome.md` -- `2019-05-30-welcome/index.md` - -A blog post folder can be convenient to co-locate blog post images: - -![Docusaurus Plushie](./docusaurus-plushie-banner.jpeg) - -The blog supports tags as well! - -**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config. diff --git a/blog/authors.yml b/blog/authors.yml deleted file mode 100644 index 8bfa5c7c..00000000 --- a/blog/authors.yml +++ /dev/null @@ -1,23 +0,0 @@ -yangshun: - name: Yangshun Tay - title: Front End Engineer @ Facebook - url: https://github.com/yangshun - image_url: https://github.com/yangshun.png - page: true - socials: - x: yangshunz - github: yangshun - -slorber: - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png - page: - # customize the url of the author page at /blog/authors/ - permalink: '/all-sebastien-lorber-articles' - socials: - x: sebastienlorber - linkedin: sebastienlorber - github: slorber - newsletter: https://thisweekinreact.com diff --git a/blog/tags.yml b/blog/tags.yml deleted file mode 100644 index bfaa778f..00000000 --- a/blog/tags.yml +++ /dev/null @@ -1,19 +0,0 @@ -facebook: - label: Facebook - permalink: /facebook - description: Facebook tag description - -hello: - label: Hello - permalink: /hello - description: Hello tag description - -docusaurus: - label: Docusaurus - permalink: /docusaurus - description: Docusaurus tag description - -hola: - label: Hola - permalink: /hola - description: Hola tag description diff --git a/development.mdx b/development.mdx new file mode 100644 index 00000000..ac633bad --- /dev/null +++ b/development.mdx @@ -0,0 +1,94 @@ +--- +title: 'Development' +description: 'Preview changes locally to update your docs' +--- + + + **Prerequisites**: + - Node.js version 19 or higher + - A docs repository with a `docs.json` file + + +Follow these steps to install and run Mintlify on your operating system. + + + + +```bash +npm i -g mint +``` + + + + +Navigate to your docs directory where your `docs.json` file is located, and run the following command: + +```bash +mint dev +``` + +A local preview of your documentation will be available at `http://localhost:3000`. + + + + +## Custom ports + +By default, Mintlify uses port 3000. You can customize the port Mintlify runs on by using the `--port` flag. For example, to run Mintlify on port 3333, use this command: + +```bash +mint dev --port 3333 +``` + +If you attempt to run Mintlify on a port that's already in use, it will use the next available port: + +```md +Port 3000 is already in use. Trying 3001 instead. +``` + +## Mintlify versions + +Please note that each CLI release is associated with a specific version of Mintlify. If your local preview does not align with the production version, please update the CLI: + +```bash +npm mint update +``` + +## Validating links + +The CLI can assist with validating links in your documentation. To identify any broken links, use the following command: + +```bash +mint broken-links +``` + +## Deployment + +If the deployment is successful, you should see the following: + + + Screenshot of a deployment confirmation message that says All checks have passed. + + +## Code formatting + +We suggest using extensions on your IDE to recognize and format MDX. If you're a VSCode user, consider the [MDX VSCode extension](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) for syntax highlighting, and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for code formatting. + +## Troubleshooting + + + + + This may be due to an outdated version of node. Try the following: + 1. Remove the currently-installed version of the CLI: `npm remove -g mint` + 2. Upgrade to Node v19 or higher. + 3. Reinstall the CLI: `npm i -g mint` + + + + + Solution: Go to the root of your device and delete the `~/.mintlify` folder. Then run `mint dev` again. + + + +Curious about what changed in the latest CLI version? Check out the [CLI changelog](https://www.npmjs.com/package/mintlify?activeTab=versions). diff --git a/docs.json b/docs.json new file mode 100644 index 00000000..d40c4eb5 --- /dev/null +++ b/docs.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://mintlify.com/docs.json", + "theme": "mint", + "name": "Mint Starter Kit", + "colors": { + "primary": "#16A34A", + "light": "#07C983", + "dark": "#15803D" + }, + "favicon": "/favicon.svg", + "navigation": { + "tabs": [ + { + "tab": "Guides", + "groups": [ + { + "group": "Getting started", + "pages": [ + "index", + "quickstart", + "development" + ] + }, + { + "group": "Previous Versions", + "pages": [ + "previous_versions/version-1", + "previous_versions/version-2", + "previous_versions/version-3" + ] + }, + { + "group": "Use Cases", + "pages": [ + "essentials/markdown", + "essentials/code", + "essentials/images", + "essentials/reusable-snippets" + ] + }, + { + "group": "Development tools", + "pages": [ + "ai-tools/cursor", + "ai-tools/claude-code", + "ai-tools/windsurf" + ] + } + ] + }, + { + "tab": "API/Schema reference", + "groups": [ + { + "group": "API documentation", + "pages": [ + "api-reference/introduction" + ] + }, + { + "group": "Aquafier Endpoints", + "pages": [ + "api-reference/endpoint/get", + "api-reference/endpoint/create", + "api-reference/endpoint/delete", + "api-reference/endpoint/webhook" + ] + } + ] + } + ] + }, + "logo": { + "light": "/logo/aqua-logo.png", + "dark": "/logo/aqua-logo.png" + }, + "navbar": { + "links": [ + { + "label": "Support", + "href": "mailto:info@inblock.io" + } + ], + "primary": { + "type": "button", + "label": "Checkout Aquafier", + "href": "https://dev.inblock.io/app" + } + }, + "contextual": { + "options": [ + "copy", + "view", + "chatgpt", + "claude", + "perplexity", + "mcp", + "cursor", + "vscode" + ] + }, + "footer": { + "socials": { + "x": "https://x.com/inblockio", + "github": "https://github.com/inblockio", + "linkedin": "https://www.linkedin.com/company/inblock-io" + } + } +} diff --git a/docs/implementations/_index.md b/docs/implementations/_index.md deleted file mode 100644 index 3bbf41fd..00000000 --- a/docs/implementations/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Implementations" -linkTitle: "Implementations" -weight: 3 -description: > - Details various software that is implementing the Aqua Protocol ---- - diff --git a/docs/implementations/reference-architecture.md b/docs/implementations/reference-architecture.md deleted file mode 100644 index aa22dd20..00000000 --- a/docs/implementations/reference-architecture.md +++ /dev/null @@ -1,336 +0,0 @@ ---- -title: "Reference Implementation" -linkTitle: "Reference Implementation" -weight: 1 -description: > - Explains the technologies selected for the reference implementation and why we selected them. ---- - -Implementation specific architecture documentation for the Aqua Data -Vault 'Personal Knowledge Container (PKC)'. In this document you will -find reasoning as to why certain components were chosen to build this -prototype. We have not duplicated any vendor documentation. Please find -the linked-list for the documentation of the components we use here: - -- [MetaMask](https://docs.metamask.io/guide/) -- [Ethereum](https://ethereum.org/en/developers/docs/) -- [Docker](https://docs.docker.com/) -- [MediaWiki](https://www.mediawiki.org/wiki/Documentation) -- [MediaWiki Extension: Aqua](https://github.com/inblockio/aqua-docs) -- [MediaWiki Skin Tweeki](https://tweeki.kollabor.at/) -- [Pelith Eauth Server](https://github.com/pelith/node-eauth-server) -- [Nodejs](https://nodejs.org/en/docs/) -- [GitHub](https://docs.github.com/en) -- [Apache](https://httpd.apache.org/docs/) -- [Nginx](https://nginx.org/en/docs/) -- [Let's Encrypt](https://letsencrypt.org/docs/) - -All software components selected are open source licenses. They each -have active developer communities behind them to secure future support -and further development. - -## Wallets / Accounts - -Why do we use Ethereum Wallets / Accounts? - -An identity anchor needs to be a public, private key. This allows a -public component which we can share (public key) and a private component -which proves ownership over that public-key. Public keys are used in -Ethereum as accounts to receive and send transactions. Therefore the -Ethereum ecosystem has developed standards. These have evolved to a -larger eco-system involving wallet-providers which have built software -and hardware wallets to securely manage those keys. We leverage one of -the most vibrant developer communities and utilize these wallets. In our -case they are used mainly for offline-activities (Login, Signing) which -do not require connectivity to the Ethereum blockchain. - -## Web-Application (Chrome-Extension MetaMask) - -Was selected as it is one of the most advanced, widely used, -feature-rich web-wallets. Most importantly it's a browser-plugin which -allows us to interact with browser applications. MetaMask also has the -ability to connect to a hardware wallet allowing for increased security -and levels of assurance. - -- Large User-Base 10 Million + - - - -- Hardware Wallet Support (E.g. Ledger) - - Large User-base 5 Million + - - - -- All related source code is open source, lot's of money behind it - (future proof) -- SSI (Self-sovereign identity): Compatible with the DID schema - did:ethr:`` -- Fulfills SSI principles: - - Controlled by user, allows for creation of new accounts / wallet - addresses - - User can create new identity anchor independent of third party - - Can be moved between devices by users recovery key or even to a - hardware wallet (not recommended but possible: - https://kryptonitelex.medium.com/how-to-transfer-your-metamask-to-a-ledger-hardware-wallet-bcece7d5567b) - -## Witness Network - -We are using the Ethereum Network as an optional Witness Network for -cryptographic time-stamping. - -### Why public Blockchain? - -The witness event serves the purpose of being able to prove the -existence of a document without the ability to deny it. This requires -censorship resistance and global coverage. The security of the network, -it's distribution, and the high economical price to attack the network, -are all good reasons why we want to use a public blockchain to publish -highly obfuscated hashes (fingerprints). This proves the state of the -data in a Data Vault (PKC). - -The MetaMask wallet is able to publish the witness event verification -hash to the public Ethereum blockchain. This completes our third -important layer of integrity verification, which is to prove -cryptographic time and existence of a document by writing it's -fingerprint onto the ledger. This is not done directly, but through a -process which highly obfuscates the hash. This ensures that that there -is no plausible attack (even if the attacker owns a powerful quantum -computer) to match the fingerprint with any personal data. - -## Data Vault - -The Data Vault named 'Personal Knowledge Container' is creatd by using a -tool for containerization called 'Docker'. This allows us to package our -application so it can be deployed to different operating system -environments. Docker provides the abstraction / virtualization layer. - -Inside Docker we containerized multiple services: - -## MediaWiki for data governance - -MediaWiki is a data governance tool which has a legacy as a -collaboration tool. It powers Wikipedia, the largest encyclopedia in the -world. We step into this experience, and the benefits of a feature rich, -battle-proven application. It's a powerful tool to both manage and -present data. - -As MediaWiki has an active and established developer community, it is -possible to tap into existing professional service companies. Supporting -development and any required changes within the application. - -MediaWiki has been modified to use workflows for data processing. This -will allow for implementing and testing workflows and business logic -between Personal-Knowledge-Containers. - -We use all the benefits of MediaWiki to manage and present data in the -browser, while we work around one of its main limitations: Security. -MediaWiki was never developed to have advanced security and permission -structures, as it was built for Wikipedia - a fully public website. This -has several implications for us. - -Security Practices: - -- We assume that we can't defend against insider attacks on the same - MediaWiki instance, therefore every user has their own instance -- If there is a need for a collaboration space, it is possible to - spawn containers for multiple accounts which trust each other to - work together on shared data - - - -- If you use a hosted PKC instance, assume the provider has access to - your data as we don't use homomorphic encryption nor do we have - encryption implemented -- We are using typed and tested PHP (for MediaWiki Extension Data - Accounting) to improve test coverage to increase stability and - security of our application - - - -- To securely exchange data between PKC's, we implement a separate - security software called Guardian. The Guardian protects the PKC and - manages all access according to the accounts owners set permissions. - The Guardian is under active development. It will receive the - highest scrutiny and attention to ensure a minimal attack surface - while allowing trust between Guardians so data can be exchanged. - - - -- The Apache WebServer present in the MediaWiki container has a - technological dependency and needs regular updates as Apache was - effected by critical security issues like - [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) -- Therefore we do not expose the Apache web-server to the internet by - default and do not recommend this to ensure that there is no - unnecessary attack surface. If an organization decides to expose the - web-surface of a PKC to the internet, they should expect this - instance to be compromised and leak all it's stored data. Therefore - we re-emphasize: If PKC / MediaWiki is exposed to the web, there - can't be any guarantee that data can be kept private. Therefore - assume your data can be leaked on a web-facing MediaWiki instance. - Organizations hosting PKC's for collaboration should do so with - restricted firewall permissions, ensuring that the web-interface is - only reachable for the employees authorized to see the content. - -## MediaWiki Extension: Aqua - -The existing ecosystem and reference implementations around MediaWiki -allowed us to quickly prototype our reference implementation for Aqua. -The implementation itself allowed us to further develop the protocol. -The downsides are currently old PHP code and MediaWiki's legacy. In -return we benefit from a well documented project. - -Looking forward we want to see other client-implementations in different -languages independent of MediaWiki to show the potential of the Aqua -Protocol. We hope to re-use part of the PHP code base to apply it to -other applications, like Word-Press. - -## MediaWiki Skin Choice - -Using Tweeki as a Bootstrap 4 compatible Skin for MediaWiki, we were -able to establish contact with the chief maintainer of the extension, -and were able to collaborate to solve various issues to improve the -skin. We are coordinating with other parties to see how we can improve -support for the Skin. In the future we are hoping to increase the -maintainer base. Prospectively we want to use Tweeki as an abstraction -layer from MediaWiki classic to Bootstrap 4, and respectively Bootstrap -5+. - -## Authentication - -- For Authentication with Web-Wallets, we use - [https://github.com/pelith/node-eauth-server](https://github.com/pelith/node-eauth-server) which provides us with - an open source solution for a signature-response challenge. We then - integrate with OAUTH2 and OIDC using existing authentication - standards to achieve the login. -- The Pelith server provides us with the Signature-Challenge and is - forwarding the access token via OAUTH2 to MediaWiki. Here we check - if the user exists. If this is the case, access is granted. - -## WebServer-Proxy / HTTPs - -- We are using NGINX Web-Server as the proxy server. NGINX is a modern - and the most popular (#1 since 2021 by share[^1]) web-server on the - web. -- We are using Let's Encrypt to provide secure connections via HTTPS - if a PKC is deployed to the web. Let's encrypt serves over 260 - million websites according to the vendor website.[^2] provides free - TLS Certificates for secure HTTPS connections. -- The NGINX Web-Proxy allows us to ensure that we can add additional - services to the PKC and redirect the services according to our - needs. - -## Software-Development - -- We use [https://github.com](https://github.com) for software development. As we started - with very little budget, we gratefully utilised free resources to - develop our open source software. This allowed us to focus on being - productive. - - Github is owned by Microsoft and is therefore subject to US - policies and Microsofts interests. - - This itself requires us to move away to be independent or at - least host a mirror instance outside of Github. The deletion of - a repository or losing access could harm our development process - significantly. -- We use GPL-V3 license on the majority of our repositories. - - We maintain the rights on branding - - We maintain more restrictive rights on deployment scripts - (service provider technologies) - -## Browser Choice - -We are using the Chrome-Engine as our Web-Browser of choice. It's the -most dominant web-browser on the Web, and has become the quasi standard -with many different forks creating an ecosystem around it. -Microsoft-Edge is actually Chrome. There are non-google chrome forks -which deserve attention, funding and support (like -[https://github.com/Eloston/ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium)). This will provide us -with a modern and state of the art browser architecture to work with. - -As Chrome is the most secure and modern base to build on, we support --only- chrome. Therefore we use a chrome extension to verify the content -of an Aqua file. This extension is available for download in the Google -Chrome App Store, or can be built from scratch following the -instructions in our repository.[^3] - -This allows us to provide ease of setup, as users can easily deploy the -chrome extension without further effort by adding it from the google app -store. - -We are using NPM / node.js for fast prototyping. This comes with severe -security implications as the npm ecosystem has been prone to various -supply-chain attacks over recent months [^4] . - -## Technology choices on cryptography - -All cryptography used in our development is based on international NIST -standards and follows the international understanding for internet -security. This is consistent with the perspective of the BSI in Germany, -but for some specific details there are no insights provided by the -ministry. - -### Hashing Algorithms (SHA3-512) - -PKC uses standard Crypto (SHA3-512) winner of the National Institute of -Standards and Technology see -[https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf) . We do not -use custom encryption as this comes at the cost of unnecessary risks. - -This is an accepted secure and recommended standard according to [BSI - -Technische Richtlinie – Kryptographische Algorithmen und Schlussellängen -Seite -42](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.pdf?__blob=publicationFile). - -### Merkle Tree[^5] - -- We use merkle trees to be able to witness the state of all pages / - files in a single hash. Used to generate a unique fingerprint of a - domain (a collection of verified data hash chain's within one - domain). -- There is a lot of future potential in ongoing research to improve - privacy and utility of merkle trees in the [Aqua - Protocol](https://pkc.inblock.io/index.php/Aqua_Protocol) - - See related technologies and research like TAPROOT: - [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) - -### Public-Private-Key Signatures (secp256k1) - -Used in combination with Ethereum Accounts. It is used for signing and -authentication challenges. - -- in ether.js - [cryptography/secp256k1](https://github.com/ethereumjs/ethereumjs-monorepo/blob/ade4233ddffffdd146b386de701762196a8c941c/packages/util/src/signature.ts#L23-L45) - see - [implementation](https://github.com/ethereum/js-ethereum-cryptography/blob/b1f35053df3f0cfa132fc45d59b688ca0d62994a/src/secp256k1-compat.ts#L99-L123) -- related documents of the 'Standards for Efficient Cryptography - Group' [https://secg.org](https://secg.org) specific doc secp256k1 [Both variants - of the same standardization process of the Standards for Efficient - Cryptography Group 2015, See differences - P9](https://www.secg.org/sec2-v2.pdf) - - - -- Supported by BSI secp256r1 but secp256k1 is not - mentioned.https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03116/BSI-TR-03116-4.pdf?__blob=publicationFile&v=7 - Request for clarification was send via E-Mail on the 3rd of November - 2021 by Tim Bansemer. Answer of the BSI: Currently the BSI has no - assessment or recommendation for secp256k1. - - - -- For authentication with Metamask Ethereum wallets we currently use - [https://github.com/pelith/node-eauth-server](https://github.com/pelith/node-eauth-server). We are signing a - unique input value with ethereum.js using the personal sign method. - Once the challenge is completed successfully we receive an OAUTH - token from the Eauth identity provider of the pelith Eauth server. - -1. [NGINX: Most Popular Web Server](https://linuxiac.com/nginx-most-popular-web-server/) - -2. [Let's Encrypt](https://letsencrypt.org/) - -3. [Aqua Verify Page Chrome Extension - GitHub](https://github.com/inblockio/aqua-verifypage-chrome-extension) - -4. [NPM Supply Chain Attack](https://duckduckgo.com/?q=npm+supply+chain+attack&ia=software) - -5. [Merkle Tree - Wikipedia](https://en.wikipedia.org/wiki/Merkle_tree) - diff --git a/docs/intro.md b/docs/intro.md deleted file mode 100644 index 16321314..00000000 --- a/docs/intro.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Documentation" -linkTitle: "Documentation" -weight: 10 -menu: - main: - weight: 10 ---- - -The following are documentation used to understand the AQUA Protocol and it's -implementations. AQUA is heavily under development at the moment and is evolving -rapidly. diff --git a/docs/overview/_index.md b/docs/overview/_index.md deleted file mode 100644 index acdc996c..00000000 --- a/docs/overview/_index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Overview" -linkTitle: "Overview" -weight: 1 -description: > ---- - -We develop the AQUA-Protocol to increase trust and digital sovereignty for individuals and organizations. - -We believe that this is an effective way to redefine collaboration and strengthen democracy to be more inclusive and participatory by providing accountability for data. We do this in a context where it is critical to address challenges and threats which come with the advancement of technologies (e.g. deep fake, manipulation of data, digital surveillance, monopolization). - -With the powerful tools we provide, we can showcase how trusted data and digital sovereignty are key enablers to support the emancipation and integration of individuals and small to medium businesses into a digital economy, which is currently dominated by large players. We are showing how this is a feasible approach to empower more inclusive and democratic participation. - -# What are exemplary applications that are meeting current organizational demands? - -Aside from the core features of the AQUA-Protocol and its reference implementation (to provide data integrity verification, proof of existence, and a strong identity by using public-private key infrastructure), there is an amazing potential that comes as an emergent property of the interaction of individuals using sovereign instances of Personal-Knowledge-Containers. - -This potential lies in the ability to collaborate by exchanging verified data between independent parties to form a network of relationships as a web of trust. This allows for peer-to-peer institutions and organizations to be built fully software-defined, in traditional or network structures. - -It is possible to model existing institutions on top of this infrastructure today. It is a free and open-source tool to provide a process to issue and verify digital certificates for various use cases. Including examples, showcased for the educational sector (school and university degrees) but the use cases go beyond this: - -* Provide an infrastructure to curate knowledge and enable peer-to-peer wiki's in which a contribution itself is attested. This has potentially huge implications, as a successfully merged contribution to a leading scientific endeavor could one could imagine this succeeding the reputational value of a university degree. -* Fighting fake news by providing an audible trail for the information source to the consumer and which steps have been taken, by which account, to reach its current state. E.g. an intelligence report about an ongoing conflict or crisis. -* Providing credible credentials to fight deep fake and impersonation. In one shocking case, this shows the danger for our political landscape. In this example the mayor of Berlin was tricked, when she had a zoom call with a fake Vladimir Klitschko (in the role of the Mayor of Kyiv, using deep fake for the video and audio to impersonate him) who tried to get money from her. [Source](https://www.theguardian.com/world/2022/jun/25/european-leaders-deepfake-video-calls-mayor-of-kyiv-vitali-klitschko) -* Providing a trust infrastructure for invoice validation: Large companies are challenged by the increasing number of fraud and fishing emails to trick companies to send money to criminals. We can use the SSI-Approach of aqua to verify invoices and do automated tests towards the trustworthiness of the sender, by checking the sender's account and the trust relationship cryptographically. Allowing for automated verification of the invoices instead of lengthy manual testing procedures or complicated processes requiring a CRM-System with an intense KYC (Know You Customer) approach. -* Proving where the information has originated. This can be used to protect intellectual property (IP) or to prove where data originated. This is highly relevant in various contexts, be it for the credibility of evidence in court or for whistle-blowers or investigative journalists to give their claims more credibility. - -# The socio-technological impact on society -We provide a prototype implementation of the aqua protocol with a Personal-Knowledge-Container(PKC). An approach towards digital sovereignty without compromises. It enables data accounting and with it an effective way to enable peer-to-peer trusted data generation and exchange. We showcase that it is possible to have full control over your data, you can share and govern it independently of third parties. This is essential to democratize access to the digital economy, so individuals can utilize the value of their data and do trusted interactions with each other. - -This technology enables various applications by offering a peer-to-peer-publishing platform technology, this includes but is not limited to: -* Self-Sovereign Identity (SSI) -* crowdsourced knowledge management, a distributed Wikipedia -* crowdsourced news -* crowdsourced petition systems (crowdsourcing problems, solutions, decisions). - -This Protocol and prototype allow for the practical exploration this how this can redefine our collective sense-making by providing a rational process for forming a truth by consensus between trusted peers. This allows for the practical exploration of digital, participatory collaboration at scale, as the AQUA-Protocol can account for contributions that are currently not measurable in monetary value while those contributions provide value to society and/or nature. It seems possible to envision a different economy where data becomes a multi-dimensional currency that allows us to make better-informed decisions. It can inform us to have a greater choice in how we participate economically as service providers and/or consumers. - -* **What is it *not yet* good for?**: This is an experimental protocol with a pilot implementation, which is meant for the exploration of new design principles to improve digital sovereignty and trust. This prototype is not production-grade software and should not be used outside of experimental applications. The prototype does currently (Dec'22) not include a transport layer. diff --git a/docs/protocol/_index.md b/docs/protocol/_index.md deleted file mode 100644 index e65a65e5..00000000 --- a/docs/protocol/_index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Protocol" -linkTitle: "Protocol" -weight: 2 -description: > - Low level reference documentation of the AQUA Protocol ---- - -This section of documentation gets into specific details about the AQUA Protocol -and is meant for those doing an implementation or contributing to the Protocol -itself. diff --git a/docs/protocol/aqua-identity-protocol.md b/docs/protocol/aqua-identity-protocol.md deleted file mode 100644 index 3d46bba6..00000000 --- a/docs/protocol/aqua-identity-protocol.md +++ /dev/null @@ -1,446 +0,0 @@ ---- -title: "Identity Protocol" -linkTitle: "Identity Protocol" -weight: 2 -sidebar_position: 3 -description: > - The following text has the goal to highlight the possibility to build identity protocol functionality on top of the core verifiction protocol. - This part of the project is in early stages and not mature. ---- - -The Aqua Identity Protocol (AIP) is an experimental application protocol -under development for Self Sovereign Identity's (SSIs) on top of the -Aqua Protocol. This is an active field of research which is related to -the work of the Decentralized-Identity-Foundation (DIF)[^1] and the -World-Wide-Web-Consortium[^2]. As this is under active development, -anything you see is experimental and subject to change. The goal is to -provide a Self-Sovereign-Digital Identity Protocol to protect individual -rights, freedom and the opportunity for the individual to participate in -the digital economy. - -We are building on the advancements and insights for rebooting the -web-of-trust initiative[^3] and the definition of a -Self-Sovereign-Identity provided by Christopher Allen in shortened form here.[^4] - -### Self-Sovereign-Identity-Principles - -1. **Existence:** users must have an independent existence. -2. **Control:** users must control their identities. -3. **Access:** users must have access to their own data. -4. **Transparency:** Systems and algorithms must be transparent. -5. **Persistence:** Identities must be long-lived. -6. **Portability:** Information and services about identity must be transportable. -7. **Interoperability:** Identities should be as widely usable as possible. -8. **Consent:** users must agree to the use of their identity. -9. **Minimization:** Disclosure of claims must be minimized. -10. **Protection:** The rights of users must be protected. - - -Those 10 stated principles are implemented within the Aqua Protocol and -it's existing reference implementation in various degrees. They are also -represented in the [Design Principles](design-principles.md). - - -# Architecture - -For the Aqua Identity Protocol to be implemented in accordance with the -above statements, SSI-Principles and critical component choices from -outside the protocol need to be made, and required tools need to be -provided. **Data Vault**'s will provide a space which is fully account -controlled. Other architectural decisions enabling SSI can be found in -the reference implementation PKC Architecture Documentation. - -### Usage of **Data Vaults** to protect identity claims - -Pages with the namespace ``: must be 'read and write able' by -`` only by default. This is to protect the personal-identifiable -data of the user. This data should be stored in a place where only the -account owner has access to. This can be achieved by having the data -stored locally on a machine the account owner has, or by using -cryptography which requires the account's owner explicit interaction to -decrypt it. The content should not be decrypted on the server, but -within the web-browser or client-application to ensure that a -potentially compromised service-provider can't leak the sensitive -information. - -- Identity claims are **encrypted by default** and can only be - decrypted by the account owner or other accounts explicitly given - permission to do so. -- Identity claims **must** be given access by the account owner to - e.g. let somebody else sign them. - -Note: There should be an extra effort by any **Data Vault** -implementation to protect identity claims. It is recommended to strongly -regulate and audit the emerging solutions to ensure a high level of -protection for citizens. - -### Self Issued Identity Claims - -These are used to make statements about an account to form an identity. Those -claims can be partially revealed on demand to other parties. Those -claims can also be protected by advancements in privacy technologies -like Zero-Knowledge-Proofs and ongoing advancements in key management. - -Identity claims are sets of [Verified -Data](https://pkc.inblock.io/index.php/Verified_Data) which follow a -structured data convention to claim or attest attributes to an account. -For example, an attribute could be the year of birth of an account -owner, or the legal name of an account owner. Claims should always be -atomic to allow the account owner to disclose them selectivity. -Different claims can be combined to represent a citizen ID or a -drivers-license. Other claims can be educational certificates, like -school certificates. - -Identity claims in the [Aqua Identity -Protocol](https://pkc.inblock.io/index.php/Aqua_Identity_Protocol) are -**always self issues**. This means that the first signature on the claim -needs to be from the private key which belongs to the account, i.e. the claim -is issued for. This proves account ownership. This means: - -- All claims can only be issued from the account which they make a - claim about. A claim belongs to it's origin account and can only be - managed from it's address. -- A claim can 'accumulate trust' by being signed by other accounts who - support this claim. -- Self-issuance protects accounts against spam, and the issuance of - fraudulent claims to an account without the knowledge of the account - owner. - -##### **Claim Attestation** - -Can be completed by a Trust Authority referring to the Identity Claim in -collaboration with the account owner, or a referencing statement. - -It is possible **to attest to a claim** by referencing the claim's -unique revision_verification hash within the attestation. This means you -can make statements about an account or about a claim without involving -the account owner in that process. An attestation contains a statement -about the referenced data set, and is expected to be signed by the -account who makes the attestation. This ensures there is clear account -attribution. Attestations without signature should be disregarded, as -they have no account attribution. - ---- - -## **Specification for the Aqua Identity Protocol** - -Policies for Self-Issued-Identity-Claims: - -- Syntax of Title: ``:`` -- Example: - [0xa2026582b94feb9124231fbf7b052c39218954c2:Birthdate](https://pkc.inblock.io/index.php/0xa2026582b94feb9124231fbf7b052c39218954c2:Birthdate) - -The title is not protected against changes, but the content of the page -is protected.**IMPORTANT:** Therefore, we **must** compare the page -stored **``,``**. Then reassemble the title to check if -they are consistent before proceeding with further validation of the -identity claim. - -Content of the page - -- **Account:** `` - - Is repeated to reassemble the title to check it. -- **Attribute:** `` - - Is repeated to reassemble the title to check it. -- **Value:** Is the value of the claim. E.g. '1889' for a year of - birth. - - The first revision **must** be signed by the account owner to - create a self-issued identity claim - - Values **must** not change within a hash-chain. If a value - changes, the claim will be marked as invalid with the revision - of the change. If a new attribute value needs to be defined for - an account, this is done through a new claim. - ------ - -**Claim issuance Process** - -1. Claim is created (based on template) -2. Claim is signed by issuer (first revision) -3. Claim is registered by issuer (optional, done via Claim Registry) -4. Claim is verified by authority to accumulate trust (this might - include the requirement to hold a revocation authority on a claim - registered via a Claim Registry) - -Trust-Chains with Identity Claims - -Will build a web of trust, which can be applicable not only for public -institutions, but also for commercial organizations and private -entities. - -### A trust chain of identity claims for educational certificates (example) - -1. The certificate is issued as integrity verified data via the Aqua - Protocol. -2. The recipient of the certificate registers the certificate as an - identity claim -3. The certificate is signed after it was issued as an identity claim - by a Trust Authority (e.g. the university professor) and the - university director's office (director) -4. The university professor holds trust claims from the university - director -5. The university director holds trust claims by the ministry of - education -6. The educational ministry of education holds trust claims by the - minister-president -7. The minister-president holds trust claims of a verified election - -The chain of trust is supplied by the party signing the statement. - -*IMPORTANT: **The authority who is given authority needs to prove -where their authority originated** **when they act in the function of -that authority.*** - -1. E.g. the professor needs to supply the claim of the university - entitling him -2. E.g. the university director needs to supply the claim of the - educational ministry -3. E.g. the educational ministry needs to supply the claim of the - minister-president. -4. ... and so on. - -# Verification Process - -1. Claim is presented -2. Claim integrity is validated - 1. How can you trust the content of a claim: Claim content needs to - be static. E.g. a given-name claim 'Jarred Maxim' cannot change, - even if there are many revisions to the page. If the static - content HAS changed, the claim is INVALID or at least only valid - until the point where it changed. In the case of such an - information change, a new claim needs to be issued. -3. Claim registry is validated (root trust) -4. Claim signatures are validated - 1. Comparison between signature time and validity of the signing - authority. Is the account authority still valid? - 2. lookup of authority claims from expected root trust? - -### Trust in Signatures - -If somebody signs an identity claim, we believe they do that to - -1. Vouch with their account for the integrity of the presented data. - This can be supported via an Authoritative Claim and a comment which - gets attached to the claim itself or is issued via an Attestation. -2. To verify the signature, we use an automated verification process. - This is done through implementations of an Aqua-Verifier like - [https://github.com/inblockio/aqua-verifier-js](https://github.com/inblockio/aqua-verifier-js) or - [https://github.com/inblockio/aqua-VerifyPage-chrome-extension](https://github.com/inblockio/aqua-verifypage-chrome-extension) - which also checks against the restrictions given by the Aqua - Identity Protocol or/and additional defined policies. -3. Add access rights to a claim by adding a Data Usage Agreement which - is enforced by the Guardian. Access rights can be restricted: - 1. to specific accounts - 2. to specific domain id's representing an instance of a Data Vault -4. Verification: The verification process considers which account it - signed, and what was stated with the signature, or with the - additional data added to the claim. To consider a claim valid, the - relationship between the verifying party and the Trust Authority who - signed it, is essential. Can the party be trusted? Why do I trust - this party? - 1. Claims can be either chained (cascaded into each other) and - offline verified, and/or online verified against an existing - Claim-Registry. In both cases a known trusted party account - reference point is required for the verifying party to trust. - -#### **Trust Authorities** - -are accounts which have an elevated trusted position. They issue -[Authoritative Trust -Claims](https://pkc.inblock.io/index.php/Authoritative_Claim) to give -legitimacy to a self-issued identity claim. - -Why do you trust a professor to issue an [Educational -Certificate](https://pkc.inblock.io/index.php/Educational_Certificate)? - -Because the professor is able to provide a trust chain, represented by a -chained [Authoritative Trust -Claim](https://pkc.inblock.io/index.php/Authoritative_Claim), proving -that he has authority to attest an [Educational -Certificate](https://pkc.inblock.io/index.php/Educational_Certificate) -with his signature. With his signature, he is increasing the trust of -the self-issued [Identity -Claim](https://pkc.inblock.io/index.php/Identity_Claim) to allow it to -have practical utility. - -### **Claim Registries** - -A claim registry in the context of the Aqua Identity Protocol is a -global registry to allow for real-time global claim revocation and -re-instantiation of Identity Claim's. This solves the problems related -and known to certificate revocation. The Claim Registry acts like a -global Claim Revocation List (CRL)[^5]. - -E.g. a driver's license can be revoked by a Trust Authority and later be -re-instantiated after the 'Punishment for driving too fast' is over. -Identity claims are either valid or invalid. The Claim Registry is -managing who can revoke / re-instantiate a registered claim. - -There is ongoing research and optimizations on privacy concerns to -reduce costs for on-chain Identity Claim. - -Implementation in Ethereum with Smart-Contracts (Solidity). All claims -are account bound. - -**Claim Registration Specification - Smart Contract Structure** - -- **``** as root trust of the self-issued - identity claim. A claim has to be a verified page, which is signed - and timestamped. If all are present, the next page-verification hash - entangles all of those properties and becomes the 'address' of the - claim. In the receipt of the publish process for the claim, there is - an attached receipt, and by writing the receipt into the claim, - there is also a new revision generated. This creates the second - revision of the claim, which entangles the signature and the witness - event with the hash-chain to make them immutable. -- **``** \[type:boolean\] of claim - - 0 - valid - - 1 - revoked - - - -- **``** \[type: date DDMMYYYY\]: if current date past - expiration date, the claim is considered expired and is not accepted - anymore -- **``** \[type:address\] an account which - updates the status of the claim, e.g. revocation or suspension of an - account -- **``** \[type:address\] list of - accounts which are authorized to update status of the claim other - than the owner. The owner has a special right to update the list of - revocation authorities to hold new addresses. ---- - - EXAMPLE: Claim Registration Data \[Receipt\] - -The presence of Claim Registration Data \[Receipt\] means that the claim -address (verification hash) has been written to a Claim Registry on a -Witness Network. - -Protocol: Aqua Identity Protocol Version 1.0 - -Registration Event: 1 - -- Domain ID: e9ece84189 -- Claim address (verification hash of self-signed claim): - 1db331add502cf1b1712468d1c3e5d66a0016a6f04885c5533619ffbb43fffb6dfa452e119d4bee7628e9792af69089d38d860a5f8d0708184bbb74b8cabdaf7 -- `` - - Merkle Root: - 7e9782fb8a6e749ef2ba48f8cd410b05335ba48b20ba42508efeb76add38b0f39e717e91381c8de34641af4c477c39fc169eaa0908dba25e0a54e8de615fcd00 - - Claim Snapshot Verification Hash: - 278f930a35d06d7b9d28aab37d402c147d1beffdbe53d212481c17ec686698e9469f9cf7d7d53b9a4435c4b99ca2e578b5dc5fec6c63cb802b540493fe927575 -- Witness Network: goerli -- Claim Registry Smart Contract Address: - 0x45f59310ADD88E6d23ca58A0Fa7A55BEE6d2a611 -- Transaction Hash: - 0xa572e8d6ef8d4a1bb3b5087680817e70bb79a0376c3a9be9e2c6b4d92df228a1 - Sender Account Address: 0xa2026582b94feb9124231fbf7b052c39218954c2 - ___ - -#### **Claim Revocation** - -**Traditional** **revocation:** - -- Traditional strategies for certificate revocation can be - applied.[^6] -- Most effective are short expiration dates where possible, due to the - lack of effective revocation processes for certificates without - global registries. - -**Using Distributed Ledgers** - -- Done via [Claim - Registry](https://pkc.inblock.io/index.php/Claim_Registry) - (indicates the global status of an identity claim to be either valid - or invalid) - -**Process:** - -- Locally completed (within the Self-Issued Identity Claim) by - changing the status to 'revoked' and signing by the issuer. This - adds a receipt to the identity claim, which is displayed when - verifying the claim. This includes the revocation transaction for - the revocation on the - [Identity-Registry](https://pkc.inblock.io/index.php/Identity-Registry) -- If there is a new claim which is succeeding the previous identity - claim[Claim - Registry](https://pkc.inblock.io/index.php/Claim_Registry), then - this is also noticed within the revocation receipt under - 'Successor-Claim: ``. - -Bulk Claim Registration (Should be part of Claim Registry) - -- To reduce costs during registration of the identity claims via a - [Claim Registry](https://pkc.inblock.io/index.php/Claim_Registry) - they can be clustered and registered together -- We use the - [SmartContract:Identity-Registry](https://pkc.inblock.io/index.php/SmartContract:Identity-Registry) - for this. To scale our efforts we utilize a variant of the - 'Domain-Manifest-Generator / Publisher' which is very similar. The - differences are in the selection of what can be published, and the - data structure which is published to the Claim Registry instead of - the witness smart contract. -- The Claim Snapshot Generator can only include ID claims of your own - `` namespace. -- The Claim Snapshot Publisher is registering all selected claims - (select them by page name (filter required) and will populate the - target - [SmartContract:Identity-Registry](https://pkc.inblock.io/index.php/SmartContract:Identity-Registry). - Every claim will hold the relative merkle-proof to show the path for - it's registration. - -Examples for **Identity Claims with Aqua:** - -- [Example Identity Documents with PKC and Data - Accounting](https://pkc.inblock.io/index.php/User:0xa2026582b94feb9124231fbf7b052c39218954c2) -- Reference:Example Identity Documents (Research) - -# FAQ - -1. How to find [Claim - Registry](https://pkc.inblock.io/index.php/Claim_Registry)'s? By - following the chain of trust of authoritative claims and validating - them one by one. -2. How to check if authority is still valid and how to find an - authority registry? As before, by reading the chain of trust and - looking up the status of the related identity claims. -3. How to visually check authority dependencies? It is possible to - visualize the links of links of links to represent the chain of - trust. - -Important References: - -- [Basic intro into - DID](https://www.youtube.com/watch?v=gWfAIYXcyH4&ab_channel=Okta) -- [Basic intro into - DIDComm](https://www.youtube.com/watch?v=8c7yRTENqSc&ab_channel=DecentralizedIdentityFoundation) -- [W3C Verified Data - Model](https://www.w3.org/TR/vc-data-model/#claims) -- [Revocation List 2020](https://w3c-ccg.github.io/vc-status-rl-2020/) - A privacy-preserving mechanism for revoking Verifiable Credentials -- [DIDCOMM implementations and - use-cases](https://github.com/decentralized-identity/didcomm-messaging) -- [DIDkit](https://github.com/spruceid/didkit) - -Thought leader Christopher Allen: - -- [Self-Sovereign-Identity-Principles](https://github.com/WebOfTrustInfo/self-sovereign-identity/blob/master/self-sovereign-identity-principles.md) -- [A bitcoin based SSI infrastructure - prototype](https://github.com/BlockchainCommons/Gordian) - -### References - -See Implementation Specific Aqua Identity Protocol Implementation in MWe - -1. [Identity Foundation](https://identity.foundation/) - -2. [W3C (World Wide Web Consortium)](https://www.w3.org/) - -3. [Web of Trust](https://www.weboftrust.info/) - -4. [Self-Sovereign Identity Principles - GitHub](https://github.com/WebOfTrustInfo/self-sovereign-identity/blob/master/self-sovereign-identity-principles.md) - -5. [Certificate Revocation (CRL) Explained - SecureW2](https://www.securew2.com/blog/certificate-revocation-crl-explained) - -6. [PKI Certificate Revocation Process Explained - TechNet](https://social.technet.microsoft.com/wiki/contents/articles/34071.pki-certificate-revocation-process-explained.aspx) - diff --git a/docs/protocol/aqua-name-resolution.md b/docs/protocol/aqua-name-resolution.md deleted file mode 100644 index 87ca9863..00000000 --- a/docs/protocol/aqua-name-resolution.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Aqua Name Resolution (ANS)" -linkTitle: "Name Resolution" -weight: 3 -sidebar_position: 4 -description: > - ANS is used to hashes of various types to human readable names ---- - -ANS is used to resolve hashes of various types to human readable names. - -The following hashes are resolved by the ANS: -* wallet-addresses to names, organisations an aliases. -* genesis_hashes to titles. -* domain_ids to registered endpoints of that domain. - -See the [reference implementation](https://github.com/inblockio/aqua-verifier-webextension/blob/main/src/name_resolver.ts). diff --git a/docs/protocol/aqua-protocol-version_1.3.md b/docs/protocol/aqua-protocol-version_1.3.md deleted file mode 100644 index 56d3e0a0..00000000 --- a/docs/protocol/aqua-protocol-version_1.3.md +++ /dev/null @@ -1,226 +0,0 @@ -# Aqua Protocol Version v1.3 -(Writing in process, unfinished Nov. 10th, 2024) -This is a developer documentation. - -The Aqua Protocol (AQP) is a data accountability and exchange protocol between hosts in peer-to-peer environments. The AQP is used to realize the goal of accounting for data origin and history (data provenance). Short: A verifiable linkable data structure to attest and certify data. - -Issues for improving the protocol are tracked here: https://github.com/inblockio/aqua-improvement-proposal - -## Data Structure: - -Every revision is represented by a merkle-root hash representing a list of alphabetically ordered key-value pairs which are hashed (implementation example SHA3-512). This allows us to dynamically change the data structure without the need to introduce breaking protocol changes. - - * The input data MUST NOT have dublicated keys as this would lead to non-deterministic ordering. - -Aqua-Chain: Is a portable hash-chain. This provides immutability for the history of the file, once signed and/or witnessed with the respective security guarantees. -Aqua-revisions form a portable Aqua-Chain. - -There are 4 Types of Revisions: - * Content Revision: Contains the data object if wrapped by the protocol. This is used to secure the data integrity and reference the data object for provenance purposes. The content revision makes the data object referencable for signatures, witness, and link revisions. - * Signature Revision: Is used to cryptographically sign, we are currently supporting DID and Ethereum signatures. - * Witness Revision: Used to witness the Hash to prove its existence. We are supporting Ethereum by default. - * Link Revision (TBD): Protocol specification for how to interlink Aqua-Chains. This also includes tracking externally managed datasets which are not wrapped into the Aqua-Chain itself. - -Example: - -1. Content-Revision - - -``` -{ - "revisions": { - "0xb576b6920e9bbb3e76d69b76e5b86f60590df43e9407d7d1b359cb8e2db00ce44d4c0741cbd1ca0f1a3605d3b2b56b58c412b2040743e12a1488de519e365587": { - "previous_verification_hash": "", - "domain_id": "5e5a1ec586", - "nonce: 4231256454123", - "local_timestamp": "20241105093856", - "revision_type": "content", - "content": "MIT License\n\nCopyright (c) 2024 inblock.io\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", - "leaves": [ - "da5385762bb4cd5e2fbc76861cceeb7fb5e7d5f3181e0e36997146c65a31fb7c363221759f77c2ed468f8874da81ec2467fa363243c71b90f94e2734db0134c1", - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "4c6cabd6d78399bc0bc6bcd255e4a08576e9b0204a4f03ff83a328a065c076e327aaaa503bbc840636ccbf62d7b577b3db010b6775b4576be3fc30a068df70f1", - "52e56bad6857482a1c56a0b52f577e2b513873573d15a48eee310b4c3f7efdee430945935ace2acbbe0fe3cf5ff914a9b6d0c9622453365203a7f55eefdf9771" - ] - } -``` -2. Signature-Revision example (Ethereum Wallet) -``` - "0x25bc631dc35efd51f1a43e886097c5809e633cfbe5448c5a1ca973be20a10f2dcbab0939e66b752aa84191f6705591615e1a3cacb4d28eef824267fd9dc19064": { - "previous_verification_hash": "0xb576b6920e9bbb3e76d69b76e5b86f60590df43e9407d7d1b359cb8e2db00ce44d4c0741cbd1ca0f1a3605d3b2b56b58c412b2040743e12a1488de519e365587", - "domain_id": "5e5a1ec586", - "local_timestamp": "20241105093856", - "revision_type": "signature", - "signature": "0x222d6a0c4024d50c5165f30125f64969a98af9f75cbe2b6a9798b5cd637714b60c7d7caf236afe773ce3879ede9a3dc95895dce60f6227a282a30cc116a56d681c", - "signature_public_key": "0x03b6ff4b0c45ce230eb48499614538ca7daa43000395e694ac92eaa1e4b805df8a", - "signature_wallet_address": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "signature_type": "Ethereum", - "leaves": [ - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "eab2e00fd4ca01067827148e7df80aab6813eb5b26023c117f6ab66b1db2da6a9704eb80f87e28aa5ab4ab025285764f1f3f81f0ee2e51602163bbfa25ff48ac", - "ed97cc41ef70162c0c3ca5b7f1bd88d9f3f3c249a3a9444376417d6cb9deb834f22890e25abb4fac8577e3d65e0e949f7224c11d5f549ad127c09d3b8dfa2df2", - "9b03a873f0dff741aab24307681728c586c1dcff4df6b194d09c6b239b572d00406e2d7390a541f70e083ca99414b3879f8c92ab231e6bdebe0612a24fabce3f", - "6ce0a5ba3573bb0d4650f912828af0f843856d0d67762cc647b65577eee5cf17c04ffb42472d71d53e5f228a6f581e6932cd671c0a505cf9e1f847b6eb01527d", - "02d2b681147691fbe0b98d3d8bfb67e2da13694d7e9e2c953a96ef9ea942237127efa787b8ca9f8c0253574586171683bfacec5613b9950bd440c49cf5faedf6", - "026bfe6061bbc69a805f5f9aeaa2d5c251fbd7a59602eafc1204542c37264700e3f45f79f972748f8424dfc5b0298273990638a4f11b143d11fd0483da7ad7c1" - ] - } - } -} -``` - -3. Signature-Revision example (DID Example) -``` - "0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3": { - "previous_verification_hash": "0x25bc631dc35efd51f1a43e886097c5809e633cfbe5448c5a1ca973be20a10f2dcbab0939e66b752aa84191f6705591615e1a3cacb4d28eef824267fd9dc19064", - "domain_id": "5e5a1ec586", - "local_timestamp": "20241105093856", - "revision_type": "signature", - "signature": { - "payload": "eyJtZXNzYWdlIjoiSSBzaWduIHRoZSBmb2xsb3dpbmcgcGFnZSB2ZXJpZmljYXRpb25faGFzaDogWzB4MHgyNWJjNjMxZGMzNWVmZDUxZjFhNDNlODg2MDk3YzU4MDllNjMzY2ZiZTU0NDhjNWExY2E5NzNiZTIwYTEwZjJkY2JhYjA5MzllNjZiNzUyYWE4NDE5MWY2NzA1NTkxNjE1ZTFhM2NhY2I0ZDI4ZWVmODI0MjY3ZmQ5ZGMxOTA2NF0ifQ", - "signatures": [ - { - "protected": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa24xd01panVGdzVkZEE3SmN5dmdVa0tpZDhXaDN3WW5Cc1hXa2FUVVJrTWRMI3o2TWtuMXdNaWp1Rnc1ZGRBN0pjeXZnVWtLaWQ4V2gzd1luQnNYV2thVFVSa01kTCJ9", - "signature": "h-OBw7eHVVNkgprtcEVD9GVu5_NgiLXzdshcyWXjdrJxljSdlu6yY9trrXBAuXcUXrxUuU-KWAR_eMTOq2-dCw" - } - ] - }, - "signature_public_key": "did:key:z6Mkn1wMijuFw5ddA7JcyvgUkKid8Wh3wYnBsXWkaTURkMdL", - "signature_wallet_address": "did:key:z6Mkn1wMijuFw5ddA7JcyvgUkKid8Wh3wYnBsXWkaTURkMdL", - "signature_type": "did:key", - "leaves": [ - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "d1bae393048ec8a35eacb290e538cc9575b616ee99e59af86585b36fe70541d8395d511a18f7cf31020f85a36b092784da29c4afb7ff641a541e342514b0a1c2", - "ed97cc41ef70162c0c3ca5b7f1bd88d9f3f3c249a3a9444376417d6cb9deb834f22890e25abb4fac8577e3d65e0e949f7224c11d5f549ad127c09d3b8dfa2df2", - "8a2a10de17eeed57fc11b8b277c9104cb4d0e1d4b919d07cf678401c80687c90b31cfbd6c35cb5590b7b02fdb7da0def97f0efdb8553f7fabcf6172a0c5fab5f", - "9744c7f71cc7062d1fca9b2b39a6f6b91a53ead1fe4db788a4bf33d21f0509cd04ce7d9e04aa01f6dfe952524649895c807fe21984e5d7826f5d12228b9219b3", - "94cccc4616e78a77cef476e299d75dab406c129cc28290d8779466fd4ab9364056521ca5356dcee82198dddb080ede7ec9dc210bc61c4deea9a5b439aaaf8cfc", - "646b45aba43fdb8f083c7a7b652dcfa4279f81afcc532736bbac8b29da690d3ea922bad14565d80974a0fb05123ffdb952a2708bedd1ad58f7c6bcb72ec90006" - ] - } - } -} -``` - -4. A) Witness-Revision example Ethereum (non-aggregated) - - -4. B) Witness_Revision example timestamping authority (TSA_RFC3161) -The witness_transaction_hash contains the server certificate chain. -``` -"0x0487556a32b8ba92cd579ace7062027e779295960eeb8ca7ac3908e3f379ae551953ae7bfb121f030d1f29b81dcf3dc955aebf992bcfbaee3f08487ab00416b7": { - "previous_verification_hash": "0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3", - "domain_id": "5e5a1ec586", - "local_timestamp": "20241105093856", - "revision_type": "witness", - "witness_merkle_root": "0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3", - "witness_timestamp": 1730802112, - "witness_network": "TSA_RFC3161", - "witness_smart_contract_address": "http://timestamp.digicert.com", - "witness_transaction_hash": "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", - "witness_sender_account_address": "DigiCert", - "witness_merkle_proof": "[{\"depth\":\"0\",\"left_leaf\":\"0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3\",\"right_leaf\":null,\"successor\":\"0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3\"}]", - "leaves": [ - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "f90837f8515c0def443cb512ee9dfaf8919722467d4019aaf63c13603600903202e8bf21304de25caafc61925b96e024c77c8f0e3223f00c724f524a12cebe95", - "13aa6a0a8800b4d8adeea104f8328bb1b5035276e2522a561c48d3db628263e26093426b35626dbd43b8198a15c6b017609d9fe4f9506f167a7997f80fd71859", - "9df7e7c5741d4373d29f576f3b0e894dacc4feda2cbed0b165a89c7ed3997f29482a5ac1f3f95ed34be0690b53f41d687334e132e80041563b15442380033a01", - "065c9da00b8c0e1d6f165ec946431b88f3a0d5764f9d3d3a5994a095122c81da3d0f3719d1ef712adf47effcea88ea1a2c7e6dbea7d71f0ae70ec388ed646995", - "a2ad3cedcedf8c9ae6ebbb0adde1863bf45247dcc51c14edea7fe4524b06f8ea7cba97f6da77641b537384bae53fa042bb43e377a2e98e71158c99e78185c6b3", - "41bb7271d1596fa17fa5ffcec141eb787d56c79c897ecc6cc83cda650171988e5cfd04e9b878f57d5bcc6f1054cd6162d271d06635b43011ad6785d6f0536b6e", - "6fe1ebd64bfcefda3b61ad5db9b450013e998b511384a9b671fe4c8809fe1f9868a5669bb6211e14346c8af55a41abd02994c73c52ced299d7e23fccd8a4cb13", - "e875b9b6fb0e609b72c6e303701abc3035e160ac541f0b7d542e8f1c354f957fb1d09518e02c6600d9b7e4e4a2591e7754cb60c4869153751bd49e231cdeb1ee", - "078df46bfe5b9db36854c62a053fc68c80a074ce9c13aef0f22e41f266583f1558a37bf56ec2346e34ac125a7aded5534d9506e624774680f128c817770d0370" - ] - } - } -``` -# Drafts - -5. Linkage - -Restriction: The linked resource MUST be an Aqua-Chain or MAY contain content addressed files (BitTorrent, IPFS, Swarm, any content that is verifiable by hash). - -url: path to ressource -remote expect-aqua-chain: boolean - expect type: aqua-chain / bittorrent / ipfs - the type of the linked resources. - require-in-depth-verification: if false, in depth verification will only draw a warning for not verifing or not be able to load the resource, if true, it will cause a critical verification error. - -* load and hash ressource (pull in with copy, pull in without copy). Restriction: only single files allowed. Possible to embedd remote content. -* -```json -{ - "revision_type": "link (when linking to other aqua-chain) / reference (when referencing an external source)", - "expect type": "aqua / bittorent / ipfs" - "required-indepth-verification: "true / false", - "verification-hash": "078df46bfe5b9db36854c62a053fc68c80a074ce9c13aef0f22e41f266583f1558a37bf56ec2346e34ac125a7aded5534d9506e624774680f128c817770d0370", - "url": "FQDN/path: full network-path to ressource / local: ABSOLUTE or RELATIVE path to the aquafier directly -} -``` - -Requirements: -* Remote data needs to be verifiable (stateful) -* This means the ressource must be loadable to hash it for verification - -* Aqua chains MAY support various content addressed storage solutions including: BitTorrent, IPFS, Swarm, any content that is verifiable by hash, these are specifc link types -* Content revisions MUST indicate if its an internal or externally tracked file object -* MIME type of the file (?) -* Filepath + SHA3 Hash - -How to load external resources / Summery: "how to draw the world in": - -* Verifier has its own content storage to store resources which have been loaded for verification. -* This content storage is content hashed (which means same files are not stored files) -* If content references an externally linked file, then the file is loaded and stored when verifying the aqua-chain -* A file is always looked up in the local content storage first by hash, before its loaded from the URL - -Object which is referenced needs to be persistant and verifiable. -Verifiable ressources must be: available (available), hashed, type defined - -Discussion: -* Using JSON-LD https://json-ld.org/ ? -* No, to many aspects which are not needed, Aqua chain focuses on verifiability - -# Backlog - -Future capabilities: - -Content links with external file tracking (and specific tools to interact): -6. Bit-Torrent file support (public files) referencing only the magnet link with the data requered for a torrent tool to load the data. -7. Git-File support to track a repository. -8. Generlised external-file-storage integration (write basic own implementation). -9. X-API integration: E.g. load the JSON and embedd data strucutre of a single tweet via API (TBD: how to solve media pull in pictures and videos). Solve by content addressed storage implementation for large media files: pictures, video, others. -10. Archive.org / Website download (offline archiving) with local storing but externally storage management. - -Support basic statements with a md-text-editor, form. -Type: Contract, requires in-depth-verification. - -Aggregator: Timestamping at maximum. - -When timestamping an aqua-chain receive a mutable flag on the revision which is timestamp. LOCKING it (do not allow new revisions until unlocked / unflagged). Idea: End-revisions, are not allowed to be extended. - -Topic: Witness Contract: -API Read function? -Verifier needs to have a hard conviction of whats our truth. ONE SMART contract, if not we could fall into the trap that somebody changes a witness revision to a different contract and it still would be valid. --> Is this a problem? - -Discussion: - -Optimizations: - -Different Hashing machanism -* https://crypto.stackexchange.com/questions/31674/what-advantages-does-keccak-sha-3-have-over-blake2 i can't find a strong reason for preferring sha3 -* tl; dr: blake2 didn't win nist because it's too similar to sha2. on the other hand, sha2 has been proven to stay even after decades, so being similar to it is actually a feature, not bug. but this is an argument from the author of blake2, which is biased -* Potentially using blake3 (optimized) which seems to be up to 15x faster -* What are the security considerations / drawbacks - - -Discussion "removing internally tracked files / content revisions": -* Remove Content revision with wrapping -* Track files with a local storage deamon -> only have their hash, receive files by hash, store them by hash -* Storage service and hasher service always come togather -* Possible to extend the aqua-verifier to support other storage implementations via shared interface (?) -* Track matadata of file with DB or with an extra file containing the sha3 hash and URL how to receive the file (?)RITIQUE and option (OPTIMIZATION): In depth verification (secure every field) vs shadllow verification (just hash the whole JSON file structure with one hash (root hash). diff --git a/docs/protocol/aqua_protocol_v1_2.md b/docs/protocol/aqua_protocol_v1_2.md deleted file mode 100644 index 817db89d..00000000 --- a/docs/protocol/aqua_protocol_v1_2.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Aqua Protocol Version 1.2 -linkTitle: "Aqua Protocol Version 1.2" -weight: 1 -description: > - Specificaiton of Aqua Protocol with example implementaiton ---- - - -| | | -|------------------|--------------------------------------------| -| Current version: | Aqua Protocol v1.2 Specification | -| Author: | Tim Bansemer, Publius Dirac | -| Date: | 26.11.2024 | -| Status: | DRAFT / Experimental | -| Implementation: | [https://github.com/inblockio/micro-pkc](https://github.com/inblockio/micro-pkc) | - -## Introduction - -Please find version 1.1 here [LINK TBD]. - -Major changes to version 1.1: - -Change the way how verification of siganture and witness events work. They are now part of the currently written revision and always force that a new revision which is created. Verification hashes for signatures and witness events are included into the new forced written revision. This was necessary to avoid unresolvable conflicts which could be created by divergant forks of an aqua-chain in two distinct containers after sharing the original chain. - -Version 1.2 was used to pilot and prototype the aqua-guardian. A security compontent being used to exchange data between two or more aqua-containers (Personal-knowledge-containers) by doing access control and policy enforcement for data acccess agreements. - -## System Components - -### Core Components - -- **Aquafier**: A software component that enriches files with cryptographic metadata for verification according to the Aqua protocol. -- **Aqua Verifier**: An automatic verification tool to validate aqua-chains. - -### Prototype Implementations - -#### CLI Tools (Aquafier + Verifier) -- **Languages**: JavaScript (v1.2, v1.3), Rust (v1.2) -- **Description**: A command-line tool allowing users to create and verify aqua-chains. -- **Status**: Active development, pilots completed, v1.3 ongoing development -- **Links**: - - [Rust Version](#) (TBD) - - [JavaScript/TypeScript Version](#) (TBD) - -#### Chrome Extension (Name-Resolution v1.2) -- **Description**: A Chrome web extension that enables: - - Automatic verification of pages on a visited PKC. - - Offline verification of aqua-chains stored in the extension. - - Resolution of wallet addresses to names. -- **Link**: [Chrome Extension](#) (TBD) - -#### PKC (Personal Knowledge Container) -- **Description**: A MediaWiki-enhanced version designed to turn pages into aqua-chains with full integration of core Aqua functionalities (hash-chains, signing, witnessing with aggregation function, and verifiable links). -- **Status**: Pilot completed with local feature completeness. -- **Link**: [PKC](#) (TBD) - -#### Aqua-Container (Focused on Doku-Sign Use Case) -- **Description**: A Rust implementation for creating, verifying, and managing aqua-files. -- **Link**: - - [Rust Version](#) (TBD) - - [React, TypeScript/JavaScript](#) (TBD) - -#### Guardian -- **Description**: A security enforcement point for verifying, transporting, and managing access for aqua-files. -- **Status**: Pilot completed with PKC serving as an aqua-file storage. - -## Version 1.2 Protocol Specification -TBD diff --git a/docs/protocol/assurance-levels-aal.md b/docs/protocol/assurance-levels-aal.md deleted file mode 100644 index 2fe5506c..00000000 --- a/docs/protocol/assurance-levels-aal.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Assurance Levels (AAL)" -linkTitle: "Assurance Levels" -weight: 4 -sidebar_position: 5 -description: > - Highlights the levels of assurances you can receive by using technology provided in the Aqua reference implementation. ---- - -How safe are the wallets to used? - Current PKC Pilot - relating to the -'Authentication assurance level's (AAL)' according to the World Bank -standards: - -See short presentation [Aqua_PKC_-_Wallet-Security.pdf](https://github.com/inblockio/aqua-docs/files/7885411/Aqua_PKC_-_Wallet-Security.pdf) - -### Level 1 - -The Metamask wallet alone has a low (level 1 ) level of assurance. -MetaMask is the most common browser blockchain wallet applications on -the web and their developer teams strive for increased security to keep -crypto-assets of their 10 Million+ Users safe. - -### Level 2 - -Metamask offers integration with Hardware-Wallets which raises the level -of assurance by having at least 2 authentication factors (e.g., a token -with a password or PIN) to min. level 2. The Hardware-Tokens are build -to be temper proof. - -### Level 3 - -- It is possible to integrate the different layers of security at once - -with Metamask (Password Protection) a hardware-token (temper proof) with -PIN a one-time-password generator based on your mobile-phone -(recommended is a hardened mobile phone which also uses biometrics for -highest security) requires implementation of one-time-password -authentication for logins after wallet-authentication see -[https://github.com/inblockio/micro-PKC/issues/37](https://github.com/inblockio/micro-PKC/issues/37) - -- Other high security options allow multi-signature logins with - smart-contracts requiring multiple parties to confirm the operation - to be executed. This can be defined based on the smart contract to - extreme security as each of the layers mentioned above can be added - to each party being involved in the multi-signature event to open a - PKC or to SIGN a verified page within the PKC or to witness a data - set via a witness network. - -- The mentioned security model is not dependent on the security of - Metamask. If Metamask is hacked it will not allow to compromise the - model above as the security of the private key of the hardware token - is preserved. diff --git a/docs/protocol/data-accounting.md b/docs/protocol/data-accounting.md deleted file mode 100644 index f70279f2..00000000 --- a/docs/protocol/data-accounting.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Data Accounting" -linkTitle: "Data Accounting" -weight: 5 -sidebar_position: 6 -description: > - Introduces the concept of Data Accounting ---- - -We first exchanged goods, then we used means to exchange goods, such as -shells and coins. Today we use money. We have transitioned to a world where -we present and exchange data to receive goods and services. - -The system for accounting provided by Luca Pacioli, the double-entry -accounting is the foundation of our work. We present a modern -way to do double-entry bookkeeping for data. - -Data accounting is the process of metering data in a standardized unit -of exchange, and converting it into a form which can be exchanged to -provide data symmetry between accounts. - -The unit of exchange is not measured in a numeric value as found in cash -systems. Data have multi-dimensional value, which means they depends on your -perspective and your relationship to data. This determines how much this -data-set is worth to the individual. - -The standard measure of exchange is a hash, representing the state of the -data. A SHA3-512 hash always has 128 characters, regardless of the size -of the data it is representing. - -## Metering data / anchoring data in space - -To meter data, we can refer to them using a digital fingerprint, i.e. their -hash. This allows us to refer to the data in a consistent form. The hash has -captured sufficient entropy to be unique, so it becomes a unique resource -locator. This ensures that it is always deterministic to what data we relate -to. - -## Accounting data / anchoring data to account - -The second step is that the data is attributed to a specific account. This is -achieved by using cryptographic signatures known as [public/private key -encryption](https://en.wikipedia.org/wiki/Public-key_cryptography). The public -key acts as a unique account address. It is necessary that the accounts in use -are globally unique, so there is no realistic probability of a name collision -between accounts. This ensures that no data is attributed by mistake to two -accounts or more. - -## Proof of existence / anchoring data to time - -The last step to account data is the usage of a cryptographically secure clock, -so we know which data were witnessed first. Data can be replicated, so the -value lies within the social implications of the message within the published -data. This cryptographic timestamping allows us to determine the first account -to witness the data. The most secure witness-networks which provide a service -for cryptographic witnessing of datasets are Bitcoin and Ethereum. The first -known examples of partial data accounting were done by [Surety in -1995](https://www.vice.com/en/article/j5nzx4/what-was-the-first-blockchain) and -[OpenTimestamps in -2012](https://petertodd.org/2016/opentimestamps-announcement). - -## Practical accounting - -The accounting book in the data accounting age is a 'data vault' which is -controlled by one or multiple accounts. This allows both personal data vaults -or organizational data vaults. - -A data vault is controlled by a cryptographic wallet. The vault has the -objective to govern the data for the account owner who is associated with the -vault. - -The vault provides a capability to export and import data, so it can be -exchanged between data vaults. This allows for collaboration at scale, and the -usage of data as a means of exchange. - -*Please contribute to this article (fixing errors) by exporting it and -sending it back with your improvement to community\[at\]inblock\[dot\]io.* diff --git a/docs/protocol/data-governance.md b/docs/protocol/data-governance.md deleted file mode 100644 index 9bf3e83e..00000000 --- a/docs/protocol/data-governance.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: "Data Governance" -linkTitle: "Data Governance" -weight: 6 -sidebar_position: 7 -description: > - Introduces the concept of Data Governance ---- - -Author: Ben Koo -E-Mail: koo0905\[at\]gmail\[dot\]com -Year: 2021 - -Data Governance identifies how to manage the value of data. A well-known -turning point in history was the publication of [Luca -Pacioli](wikipedia:Luca_Pacioli "wikilink")'s [Summa de -arithmetica](wikipedia:Summa_de_arithmetica "wikilink"). This -encyclopedia of mathematics, had 26 pages worth of text on what we call -[Double-entry -bookkeeping](wikipedia:Double-entry_bookkeeping "wikilink"). This became -the foundational literature for -[accounting](wikipedia:accounting "wikilink"), the progenitor of using -data to assign value to accounts, and henceforth gave birth to the -practice of data governance. - -# Accounting as the foundation of Data Governance - -According to historian Jane-Gleeson White[^1][^2], Pacioli's double -entry book keeping idea influenced the development of arts, sciences, -and capitalism. [Double-entry -bookkeeping](wikipedia:Double-entry_bookkeeping "wikilink") as a -rigorous approach to ensure data integrity, not only influenced the -practice of the accounting profession, and it had a significant impact -on the the formulation of [Hamiltonian -Mechanics](wikipedia:Hamiltonian_Mechanics "wikilink"), which is a -foundational theory of both classical mechanics and quantum mechanics. - -Sir [William Rowan -Hamilton](wikipedia:William_Rowan_Hamilton "wikilink") wrote a paper[^3] -cited many many scholars to demonstrate that many ideas about complex -algebraic manipulation that laid the foundation of scientific -revolutions are based on the formulation of creating accountable -mathematical formulation strategies through double entry book keeping. -[David Ellerman](https://www.ellerman.org) had a paper that explains the -powers of double entry bookkeeping in sciences[^4]. The notion that -creating public addresses for transactions amongst different accounts -has been documented as a scientific theory on Double Entry Book-keeping. -This book can be found online[^5]: - -## Digital Governance - -Given the intellectual roots of data governance have strong linkages to -mathematics and accounting, it is only after the introduction of -[personal computing devices](wikipedia:personal_computer "wikilink"), -and later the ubiquity of [Internet](wikipedia:Internet "wikilink") -access that made data governance an idea relevant to public affairs. The -argument is that many people's basic privacy and property rights may be -challenged by people who have access to data collection and deployment -technologies. Imminent threats such as fake news, big brother monitoring -practices, identity thefts, and crypto currency issuance are already -challenging the stability of the existing social fabric. These type of -social debates are often related to the ideas of [Digital -governance](wikipedia:Digital_governance "wikilink"). At this time, -digital governance has not yet become a mature field of study, and it -needs to be grounded in simple principles, so that it can be -transparently practiced with local adaptations. - -## Conceptualization of Data Governance - -Beside the notion of digital governance, data as an asset class must be -kept accountable, so that it can be evaluated, and transferred with an -objective operational framework. Knowing how to organize data in formats -that satisfy consistent abstraction strategies, such as [Universal -Resource Identifier](wikipedia:URI "wikilink") and [Universal Resource -Locator](wikipedia:URL "wikilink") are important starting points in this -field. Earlier work in data governance in a web of [hyperlinked -media](wikipedia:Hyperlink "wikilink") can be traced back to [Project -Xanadu](wikipedia:Project_Xanadu "wikilink") by [Ted -Nelson](wikipedia:Ted_Nelson "wikilink"). - -More recent more publications in this fields are -[Lessig](wikipedia:Lawrence_Lessig "wikilink")'s [Code -v2](https://lessig.org/product/codev2)[^6] and soon to be published work -of [Alex Pentland](wikipedia:Alex_Pentland "wikilink")'s [Building the -New Economy](https://wip.mitpress.mit.edu/new-economy)[^7]. - -## References - -[^1]: J. Gleeson-White, Double Entry: How the merchants of Venice shaped - the modern world--and how their invention could make or break the - planet, publisher Allen & Unwin, ``, November - 2011 - -[^2]: J. Gleeson-White, SIX CAPITALS, or CAN ACCOUNTANTS SAVE THE - PLANET?, publisher Allen & Unwin, ISBN-10:9780393246674, February - 2015 - -[^3]: Hamilton, S.W.R. (1837) Theory of Conjugate Functions, or - Algebraic Couples: with a Preliminary and Elementary Essay on - Algebra as the Science of Pure Time, Transactions of the Royal Irish - Academy, 17pp. 293–422. - -[^4]: David Ellerman, On Double-Entry Bookkeeping: The Mathematical - Treatment, [https://arxiv.org/pdf/1407.1898.pdf](https://arxiv.org/pdf/1407.1898.pdf) - -[^5]: J.C. Colt, The Science of Double Entry Book-keeping, online - media:[https://core.ac.uk/download/pdf/56693696.pdf](https://core.ac.uk/download/pdf/56693696.pdf), last accessed: - May 4th, 2021 - -[^6]: L. Lessig, Code: And Other Laws of Cyberspace, Version 2.0, - Publisher: Basic Books, 2nd Revised edition, December 2006 - -[^7]: Alex Pentland, Alexander Lipton, and Thomas Hardjono, Building the - New Economy, MIT Press, Work in Progress, - [https://wip.mitpress.mit.edu/new-economy](https://wip.mitpress.mit.edu/new-economy) diff --git a/docs/protocol/delegated-witnessing.md b/docs/protocol/delegated-witnessing.md deleted file mode 100644 index ab26c2b6..00000000 --- a/docs/protocol/delegated-witnessing.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Delegated Witnessing" -linkTitle: "Delegated Witnessing" -weight: 7 -description: > - Describes the process of sending domain snapshots to remote data vaults. ---- - -Describes the process of sending a domain snapshot to a remote data vault for -witnessing. The domain snapshot is then included in the witnessing event and -sent back to its original data vault. This makes the domain snapshot behave -like an ordinary portable hash chain that can be witnessed. The relative path -of the Merkle proof is used as a prefix for all other included portable hash -chains included in the domain snapshot. diff --git a/docs/protocol/design-principles.md b/docs/protocol/design-principles.md deleted file mode 100644 index 8321d133..00000000 --- a/docs/protocol/design-principles.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: "Design Principles" -linkTitle: "Design Principles" -weight: 8 -description: > - Lists the design principles underlying our reference implementation ---- - -The following design principles pertain to Aqua reference Implementation `PKC` - -## Private is Default - -The principle default to private is that no data of the PKC [Data -vault](whitepaper.md#data-vault) is shared without it being explicitly -authorized by the associated account. - -### Domain Access Levels - -Levels of access are: - -Private: Only the account owner has access to files and services -initialized by his account. Agreement / Permissioned access: The Account -owner grants other Account's access to files or services based on -verifiable contracts which are themselves written with the Aqua Protocol -to ensure they are forgery-proof and therefore safe. Public: Other -Account's have access to the file or service without agreements. - -## Offline Capability - -The PKC Data Vault follow's the principle of being able to run and be -functional without internet connection after setup or through -installation based on local installation files. - -This allows PKC setups to be kept offline from any internet connectivity -while still functional. This can provide the required assurances for -very sensitive data. - -## Separation of Account and Service - -Concern: There is a trend in the DIF/WC3 Identity space that some -players like to accumulate personal identifiable data (PII) inside of -Wallets. We think this is a ill-fated direction and there should be -a clear separation between account and service. Wallets should not hold -personal identifiable data. - -Benefits: - -- If the service gets hacked, no account related data is leaked if - it's not stored. -- Account is not compromised, as there is no password saved within the - service with Password free login. - -#### [Wallet](whitepaper.md#wallet)'s have one job. Keep private keys safe! (Account Management) - -- Should be stupid, simple, safe! -- Allowed operations: - - Signing - - De- / Encrypt - - Publishing transactions to service (e.g. witness networks) -- Ability to choose “high level of assurance” depending on the stakes - associated with the account(s) managed by the wallet -- Takes care of key recovery mechanisms - -#### [Data Vault](whitepaper.md#data-vault) (Service)- Has one job: keep the data safe! - -- [Principle: Offline - Capability](Principle:_Offline_Capability) so it can run - offline; works offline on local machine -- All significant actions authorized and managed though the wallet -- Should offer good tooling for data storage and manipulation -- Strong access control: By [Principle: Default is - Private](Principle:_Default_is_Private) which means data - is only accessible by the owner. -- Data is well protected - - The Data Vault should apply additional security features to keep - the data safe. - - e.g. Encryption of files / databases if service is not used. - - e.g. Encryption of pages with web-decryption (allowing for - End-to-End Encryption). -- Capabilities for sharing and publishing data -- Offers full Backup and Recovery mechanisms to move data freely - - [Principle: Data - Portability](Principle:_Data_Portability "wikilink") - -## Signature Login - -We do not use passwords for login but instead we use a signature of a -private key to authorize access to a service. This increases security -and does not require the user to remember a password, creating a better -user experience. - -Pros: -\* Account owner uses his wallet to complete a signature challenge for -login. With this challenge he proves that he owns the private key to a -public key. If the public key is registered as an account at the -service, the account is granted access. - -- The password can't be leaked as it does not exist. -- Very high security - -Contra: -\* Requires access to the wallet which holds the private key to -authorize access - -- Not commonly understood by users as a way to login (new process) - -## Principle: Data Portability - -The Principle of Data Portability means that the -[Account](whitepaper.md#account) owner can instruct the Service to Export -all data associated with the [Account](whitepaper.md#account) and is free -to move this data to a new service which is capable of importing the -data. - -### Implementation Specifics - -In PKC's this is guaranteed by: -\* providing a Backup and restore procedure which allows to move data -between PKC's and restore them in case of a required recovery. - -- providing a file import and export function -- providing an import / export API - -Furthermore we ensure with the development of the MediaWiki Data -Accounting Extension, that the data is still compatible with the legacy -import / export (which means only the text not the verification data is -imported / exported. diff --git a/docs/protocol/guardian.md b/docs/protocol/guardian.md deleted file mode 100644 index 0ad72d6c..00000000 --- a/docs/protocol/guardian.md +++ /dev/null @@ -1,373 +0,0 @@ ---- -title: "Guardian" -linkTitle: "Guardian" -weight: 9 -description: > - Shows access and transport layer logic used to interconnect data vaults ---- - -# Context - -It is highly problematic to expose sensitive data, such as personal -identifiable data, to the internet. The service who hosts that sensitive -data, needs to be compromised only for a short amount of time, to leak -all the data. Often caused by configuration mistakes or by -vulnerabilities being present in the used technology stack. - -We can't effort to have leaks on personal-identifiable data in data -vaults. To raise the bar on making attacks difficult and reducing the -chance of leakage of information, we introduce the Guardian as a extra -security layer to protect services like the PKC from attacks. - -# Summary - -The Guardian is a software which manages the boundaries of your digital -domain. Guardians are used to connect to secure transport networks -(HTTPS, Matrix Network, Didcomm) and publishing networks (e.g. -Swarm.eth). The Guardian is used to build trusted connections to other -Guardians via trusted transport-layers to exchange data with them. As -the Guardian connects to other Guardians, it also manages all -connections to services in it's domain and access to those services. - -# Goal - -Secure all services behind the Guardian from attacks and unauthorized -access. Keep the data vault and it's data private and safe, while -enabling the ability to exchange data with other Guardians. - -## How - -Enforcement is handled on each connection and each data set so that -services behind the Guardian are never directly exposed. This makes the -Guardian the most security sensitive component in the Aqua reference -implementation, as we expect the Guardian to handle all incoming and -outgoing traffic. The Guardian enjoys additional attention and effort to -be up to it's task by hardening it and applying security best practices -to ensure that it is fulfilling it's security promise to keep services -behind the Guardian safe. - -Every transaction leaving or wanting to enter your domain will be -supervised and checked by the Guardian. The core functionality of the -Guardian is a library to verify the Aqua Protocol. Only if the -verification succeeds additional steps are introduced to make decisions -how the data is handled. - -This allows the Guardian to read and understand Aqua verified data. This -allows for the implementation of a wide set of behavioral rules and -offers the opportunity to create various 'Smart contract' languages on -top of it. - -The Guardian verifies a file, reads its contents and checks it's -permissions to classify if an action is considered legal or illegal, -permitted or denied. Basic functionality for a Guardian can be compared -with a traditional firewall, or a application firewall but is much more -sophisticated to manage access on the data-level. - -# Terminology: - -Proving ownership over a domain by signing the domain ID with an -self-issued identity claim which is also registered in a claim registry -to ensure nobody claims to have owned that domain before by manipulating -the digital clock and faking an earlier owner-ship claim over the -domain. - -## **Permission Agreements** / Data Usage Agreement / Access Rights - -are contracts which represent the terms and conditions under which files -and/or services are shared with other accounts and/or their digital -domains. - -By nature those Permission Agreements will be compiled through pages and -stored as files. To form an agreement, the other party must be notified -about new resources as they become available. For example, when we share -a page with another account. To complete a permission agreement, the -counter party has to sign the permission agreement or reject it. If the -permission agreement is signed, the other party enters a contractual -relationship in which they will be liable for any agreement violates -executed from their digital domain. - -# Processes - -## Domain Handshake -Establish trust between two Aqua domains. For this we have Alice and Bob which -want to establish trust between their domains. They both have a Guardian in -place to protect their data vaults. - -Steps: -1. Alice: Create access contract: I `` want to connect from my `` to a `` controlled by `` with my `` via the following channel: DNS/HTTPS via `alice_Guardian.domain.com`. -2. Alice: sign contract -3. Alice: SEND contract send the page via 'mail' / 'matrix' whatever to the remote PKC instance. -4. Bob: veries the contract contract and imports it -5. Bob: extend contract: I `` connect my PKC `` to your PKC `` via my Guardian_endpoint ``. -6. Bob: sign extended contract: Bob uses his wallet to sign his extended contract. -7. Bob: send extended contract TO Alice: Bob sends his Contract to his Guardian. -8. Bob's Guardian: Verifies and sends the contract to Alice Guardian. -9. Alice Guardian: - Guardian verifies all data - Sends OK back to Bob's Guardian - Sends Updates contract into Alice PKC - Waits for Bob's Guardian to request available pages -10. Bob's Guardian requests a list of pages: ' What pages do you share with me?' -11. Alice Guardian: Returns list of accessible resources for Bob - -## Example: Sharing a File - -Target: Sharing a file with another account. Using two Aqua data vaults -with their two Guardians to manage access to them. We assume the -Guardians already have executed a handshake to enter a trusted -relationship. We also assume, that the file should underlay access -basedon account restrictions and domain restrictions. - -**Example 1:** Sharing a file **without additional** constrains with -another account. - -Alice wants to share her page 'My secret research' with Bob. Their -Guardians have already formed a trusted connection. What Alice needs to -do now is to add a sub-page with an immutable link under the 'My secret -research' page and define access. To be able to define access Alice -needs to have a claim over the ownership over the domain she is sharing -from. - -Alice creates an Access Permission for the whole page or for a single -revision by creating a page with the following syntax: - -- ``:access_contract - - To give access to the whole page with all it's revisions. - -- ``:access_contract - - To give access to a specific revision. - ----- - -**Content of the page:** - -I Alice `` give access to Bob `` - -- option 1: to the whole page including it's history `` -- option 2: to the following revision ``'My secret - research' - -**Additional one-sided conditions:** - -- This access contract expires in 7 days - -This contract will come into place with my `` signature. - -The Guardian will react to a specific syntax of pages holding contracts, -agreements and access rights to adjust his network access rights -accordingly to it. Alice-Guardian will respond to the question what -resources are shared by Bobs-Guardian with the answer that there is a -new page available according to the access contract which now gives -Bobs-Guardian the ability to query the content of 'My secure research' -from Alice according to the contract. Depending on Bobs-Guardian -setting, the Guardian might automatically load the resource and forward -it into the post-box of Bobs Data Vault. - -**Example 2:** Sharing a file **with** constrains forming a **contract** -to do so. - -Same as 1 expect that for the contract to come into place, Bob needs to -sign the contract from Alice containing additional constrains. - ---- - -**Content of the page:** - -I Alice `` give access to Bob `` - -- option 1: to the whole page including it's history `` -- option 2: to the following revision ``'My secret - research' - -**Under the following conditions:** - -- Do not share outside your domain `` -- Do not share with any body else (Bobs domain can't have another - account registered to it, if there is an account registered the - Guardian of Bob will say that Bobs domain does not fulfill the - requirements to establish this contract. -- Do not modify it. -- Delete it after 7 days. - -For this contract to be valid, signatures of first Alice and then Bob -need to be present. This means, after Alice signed the access contract, -the contract is a new available resource to Bob to be loaded. Bob can -now sign the resource in his domain and return the contract. Leading to -the contract send back to Alice domain and being updated there. Bob now -gets access to 'My secret research' which has been updated as well, to -contain via an immutable link the access contract. - -Permission Templates, Complex Permissions (Groups and more) - -It is possible to apply complex permissions based on templates, or and -connecting multiple access contracts by using - -- instead of this syntax ``:permission_agreement -- the following the syntax ``:`` in - which the `` contains a list of sub-pages with access - contracts which can be used to apply access via permission-objects - which are represented by the `` page object. - -1. Alice wants to -2. If the user wants to propose changes to the page, he will send an - updated PAGE FILE to the OWNER of the PAGE. -3. The owner can decide to ACCEPT the changes. Or to include the - changes in the HISTORY File, but not COMMIT them. Or to NOT include - the update of the PAGE, and disregard it. - ---- - -### Specifications: - -The Guard Daemon checks if there is digital contract present in his -domain. Those contracts set permissions for allowing a counter party to -access a service or resource (like a file or a page, or a revision). -It's also defining the constrains under which permissions access is -given. In this case it requires the digital signature of the receiving -party for the agreement to come into place and be valid. - -Guardians have administrative access to the services they manage. -Therefore they can supervise the activities of services and use them as -triggers to e.g. provide access according to a set permission without -additional user action. - -# Guardian Components: - -APIs -- System-API to control a service via a service specific library. Each - services will have their own control-library and control API to - create an abstraction layer which allows for a unified control logic - in the Guardian. - - E.g. an account is allowed to access a service - - E.g. a resource is shared with an account - - E.g. a trust relationship between two services is established - (based on an agreement between two accounts) to exchange data - - **Implementation Specific PKC:** All interactions for system - interaction with MediaWiki / PKC - - Execute Actions: Move, Update, Edit, Delete Pages - - Request send to the Guardian: Verify a specific page or a - list of pages - -- **Data-API** to retrieve Aqua-Data between a service and the - Guardian, or between two Guardians. - - Send data to import API - - Read data via export API - - **Implementation Specific PKC:** Read special Pages used to - give access e.g. Data Usage Agreements, Permission - Agreements - -- **Aqua Verification Library** to be able to verify incoming and - outgoing data - - implementation of the 'external-verifier' in e.g. GO, Typescript - or Javascript (current) -- Account-Registry (Holding the list of trusted keys and the - relationship between them) - - This includes defined 'trusted accounts' -- Session-Handler/Registry (Acts like Stateful-Firewall on the - page-object level to mange imports / exports). The Guardian verifies - incoming and outgoing data and constructs sessions based on it. -- Guardian Policies: Are sets of rules followed and enforced by the - Guardian. This includes set of rules used to protect the domain from - unauthorized operations and access. Part of that are page access - permissions which are managed by the [Data Usage - Agreements](Data_Usage_Agreement "wikilink"). - - ``:`` -- Transport Layer API's / Sub-Modules for connectivity to distributed - services - - The Guardian-to-Guardian communication handler (via DNS/HTTPS - transport) - - Ethereum Integration, Ethereum Handler (As a witness Network) - - Matrix Integration, Matrix Handler (As a restrictive/ - permissioned transport layer) - - Schwarm Integration, Swarm Handler (As a publishing network) - -# Guardian-Integration-Services -The Guardian has a modular design to support integration with many services and -transport layers. - -## Web (HTTPS / DNS) Integration Goal: Have a -handler to connect web-facing Guardians with each other in a safe way. Be able -to run guardian procedures via two public Facing guardians which use a public -DNS name and HTTPS to interconnect with each other. Guardian procedures are: -Guardian handshakes to establish trust or remove trust Request or Send portable -Hash-Chains based on access rights between each other - -## Ethereum Node - -Integration Goal: Connect to a self-hosted or remote Ethereum Node. Option 1: -Configuration via Alchemy (Providing Keys) via Special:DataAccountingConfig -Option 2: Implementation of Ethereum Node via ./setup --ethereum-node (provide -container) Configuration of Connection to RPC Ethereum node via address (if in -same network) The Wallet can be directly be connected to a local Ethereum node -via RPC to avoid meta-data gathering of large providers, like INFURA which -could potential track which IP address has created which Ethereum Transaction -with which Metamask-Wallet, leading to a de-pseudonymousation of the user. ### -Ethereum Node Handler Goal: Accelerate lookups of the Guardian via caching -Every-time a witness contract is called, the Ethereum Node Handler will start -to cache the all Ethereum-Witness events of that Witness-Contract and Index -them in it's database. This will reduce access times to ms vs potential seconds -in lookup times, making the Guardian more performant and responsive. ## Matrix -Node Integration Goal: Connect to a self-hosted or remote synapse-server -(MATRIX) Node. Configure a remote matrix server or a local one via Guardian. -Implementation of Matrix-Node deployment via ./pkc setup --matrix-node (provide -container). - -### Matrix Node Handler - -Context: We use Ethereum Wallets as Identity-Anchors as they are globally -unique addresses (which are collision free) broadly adopted with supported -hardware ledgers as secure hardware elements with an existing fast moving -ecosystem for further development. They act as 'web-based' PGP-like utilities -which do not need any Blockchain-Interaction for Signing messages and can be -used as a valuable off-line capable identity anchor. With this step we separate -Identity and Service; even in case of compromising the computer of the user or -by having a breach of secrets in the Element-Client the Identity would be safe -(in case a hardware wallet would be used). This also drastically reduces attack -surface to phish a users credentials; as there is no Password-Login there is no -way to steal the password to impersonate the user. All security assumptions of -the User-Identity come back to the security of his private key. For the -Kolibri/PKC project this is the foundation for using wallet-addresses as -Identities to route traffic with matrix bots between PKC's. The following -actions are required to use the Ethereum Wallet as a strong Identity Anchor -within Matrix. - -This requires the following functionality: -* Register the user via an Ethereum wallet address (successfully piloted by inblockio) -* Detect that it is an Ethereum Wallet-Address; Verify integrity of address with the Ethereum Wallet-Address Checksum (TBD) -* Make username not changeable (Done via Matrix settings,successfully piloted by inblockio) -* Wallet login with Web-Wallet Metamask via OIDC (Open ID Connect) (successfully Piloted by inblockio) -* Verify Ownership of the Wallet by doing an Element-Client side Signature Challenge to the User. Challenge resolved by signing a message with sufficient entropy to not be ever the same (to protect against leakage) with the private key via the Ethereum -Metamask Webwallet (or a connected Hardware-Wallet) -* Implement a User-to-User request of proof of Identity Users / Server can challenge other users to proof that they hold the private Wallet-Key by triggering the Signature Challenge to the User; After the challenge is done, the requested party is provided with all information to do a manual verification of the signature (the Message which was -Signed, the Signature, the used method used for the signature) - -### Matrix-BOT - -Context: The Matrix-Network communicates with the PKC through the Guardian who -will manage all access to the MediaWiki service. The Guardian uses a Matrix-Bot (to -handle the communication) and a Matrix-Integration (to be flexible to use a -private synapse or a remote synapse server) to interact with the Matrix Network -as a permissioned transport layer. - -Referenz-Implementation: -Suitable options for a matrix-integration are 'go-lang' or 'rust'. Guardian -next generation Guardian will be written in Rust, so integration of security -relevant components would be preferably in Rust and Webassambly. A central -point to configure the guardian to connect to matrix and other services needs -to be provided. The matrix server is connected to the guardian with a service -bot which is able to open rooms to exchange revisions between PKC’s. - -Required Functionality of the Matrix-Bot: -* open new room for user (required) - to share resource invite / remove other -users to/ from room (required) - to set permissions who can read -* shared resource close room (required) - after resource share is revoked join a -room the user is invited too (by other matrix-bot) -*'accept invite' check for -challenge (provided via text from remote Guardian), leave room if challenge is -faulty and block user (required) delete? room / delete history? -Note: Use matrix only as channel not as storage (optional) preferably the -history of the channel is not kept -* post content of (mediawiki API query results from the Guardian) into a room -* (required) read content of room (send it to the Guardian for verification, - before it's send to the import API) (required) - diff --git a/docs/protocol/immutable-hyperlinks.md b/docs/protocol/immutable-hyperlinks.md deleted file mode 100644 index 9ef1afb5..00000000 --- a/docs/protocol/immutable-hyperlinks.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: "Immutable Hyperlinks" -linkTitle: "Immutable Hyperlinks" -weight: 10 -description: > - Shows how the Aqua URI's can be used as immutable links. ---- - -Traditional hyperlinks are usually -[URL's](https://en.wikipedia.org/wiki/URL) based on the -[DNS](https://en.wikipedia.org/wiki/Domain_Name_System) structure. - -This allows the resource to be routed via DNS and specified via the URL -on the remote server. - -The limitations of URL's is that they are not expressing a specific -state of the resource they represent. There is no way to verify if the content -of the page is consistent with the content of the page who send a URL. -For news pages this means that the content of the page could have changed. E.g. -two visitors of the same news page could see two different pages. - -We need a better way to hyperlink so it's sure, that what is linked -is consistent across domains and users. Therefore we introduce Aqua URI's which are -used to enable the receive to verify the state of the resource. - -Goal ----- - -Use Immutable Hyperlinks as Unique Resource Identifiers (URI's) to allow -a consistent referenciation of resources with the ability to verify them with the AQP. - -Success Criteria ----------------- - -A Immutable Hyperlink schema which links to a specific state of a -resource. Instead of a stateless hyperlink we use verification_hash as a -URI which acts as the checksum to verify the retrieved revision. - -Input ------ - -- file upload wizard is executed with file-data and description as - input -- file is stored with in the service triggering a hook leading to the - calculation of -- verification_hash (calculated with the file as input for - content_hash) which is stored in the revision_object (file or - database) - -Output -###### - -When linking the file it's displayed in the following format: \[SHA3-512 -Hash\|Descriptor Text\] - -Boundary conditions -------------------- - -- File is too big to be hashed. We support currently up to 50 MB. -- File can't be hashed for some reason (error during the process to - due an unexpected code execution) -- File is empty (has no content) - -Implementation --------------- - -We create Immutable Hyperlinks by moving from URL's to sha3-512 hashes as -URI's. These URI's are globally unique and therefore collision resistant -as the namespace is sufficiently large. By using the hashes as links we -also refer to the state of the resource. As the hash is the -verification_hash of the resource it allows us to verify the integrity -of the resource with it. - -We are referring to files with their SHA3-512 hash in this format -\[SHA3-512\|human_readable_filename\]. Displayed is the human readable -filename white it's stored with the full SHA3-512 hash which allows us -to be used as Immutable Hyperlinks. - -To allow routing between resources we can add the `` as a -prefix to the `` resulting in the following syntax: - -`example: aqua:///` - -Note: Implementatstion specific to aqua-PKC: -- The verification_hash is stored in the content-slot 'transclusion hashes' with the internal links which referne the resource. diff --git a/docs/protocol/whitepaper.md b/docs/protocol/whitepaper.md deleted file mode 100644 index 4009058f..00000000 --- a/docs/protocol/whitepaper.md +++ /dev/null @@ -1,786 +0,0 @@ ---- -title: Whitepaper -linkTitle: "Whitepaper" -weight: 1 -sidebar_position: 2 -description: > - High level outline of Aqua Protocol (AQP) specification ---- - - -| | | -|------------------|--------------------------------------------| -| Current version: | Aqua Protocol v1.1 Specification | -| Author: | Tim Bansemer, Publius Dirac | -| Date: | 30.12.2021 | -| Status: | DRAFT / Experimental | -| Implementation: | [https://github.com/inblockio/micro-pkc](https://github.com/inblockio/micro-pkc) | - -## Introduction - -The Aqua Protocol (AQP) is a data accountability and exchange protocol between -hosts in peer-to-peer environments. The AQP is used to realize the goal of -[accounting for data origin and history](data-accounting.md). The description -for the proof-of-concept implementation of the AQP can be found in [this -page](../implementations/reference-architecture.md). - -## Motivation - -In today's world, there are no widely adopted trustless processes of checking if -data have been manipulated or corrupted, are attributed to the wrong author, or -are attributed to the wrong time. Today's processes are dependent on centralized -trusted services which retain all power over governing the data. - -There is a lack of transparency or ability to check if data have been altered -by an unauthorized party. Additionally, consumers of data are incapable of -verifying if centralized services have altered the data. This leads to a world -of untrustworthy information in which we don't know how to conclude what is -true. - -In a world where every piece of information is a grain in a sandstorm, it has -become impossible to navigate reality. In contrast, in a world where every -piece of information is a fixed star in the sky for a lifetime, we are able to -relate and make sense of the information given. The Aqua Protocol (AQP) turns -grains of information into fixed stars of information. - -The AQP adds a peer-to-peer layer of accountability, making it impossible to -change data unnoticed. AQP adds an essential line of defense against attacks on -data integrity, plagiarism, or misattribution. AQP is used to govern trusted -data, which can be quickly verified. This includes the verification of its -integrity and history, the verification of its account (the entity who creates -or manipulates the data), and the verification of its existence and timestamp. - - The Aqua Protocol provides trustworthiness to data by - securing data ✅ integrity, 🔏 account and ⌚ time. - -In order to account data, it is necessary to track and verify its history. The -AQP provides a globally unique resource identification (URI) for each revision -of the verified data. This identifier is collision-free, and is referred the -same way across multiple interacting hosts. - -## Terminology - -## Wallet -A wallet is a software for protecting and managing private cryptographic keys -(of private-public key pairs) which are used to govern digital assets. This is -done by authorization of transactions via digital signatures or by initiating -decryption processes to access data. - -See [Separation of Concerns](design-principles.md#separation-of-account-and-service). - -### Account - -We are following Ethereum's account definition: -> In general, there are two types of accounts. Externally owned accounts, -> controlled by private keys. And contract accounts, controlled by their -> contract code --- [Ethereum Whitepaper](https://ethereum.org/en/whitepaper/#ethereum-accounts) - -In general, we can't prove if an account owner is a person or a machine. With -advancements in AI, it will become increasingly difficult to prove that a human -is a human. [Attempts are being made](https://www.proofofhumanity.id/) to -increase trustworthiness of accounts which fall short in questions of privacy -and security as they make public claims. Traditional know your customer (KYC) -combined with the AQP and Aqua Identity Protocol (AIP) identification processes -can provide similar "proof of being human" which can be attested to an account. -This allows us to outsource the problem of identification, where we only focus -on unique accounts which are sufficient for data accounting independent of -humans or machines. Identity claims issued via the AIP will help to provide the -context required to meaningfully interact between accounts. - -For more on this topic, please read the [Aqua Identity -Protocol](aqua-identity-protocol.md). - -### Domain -A domain is a unique namespace attributed to an account. It allows us to manage -services and files within that namespace creating a domain of data governance -After granted permissions, additional accounts can be added to share control -over a domain or singular assets. To enforce boundaries of a domain, additional -software like the [Guardian](guardian.md) is required. - -E.g. by setting up the a data vault with your account it becomes your -domain of data governance. - -### Revision - -A revision is the smallest portable entity within the AQP. Multiple revisions -form a single portable hash chain which is serialized in JSON format. -They have existed before in unsecured systems where multiple revisions form a -file which can be displayed as a page. The AQP adds the cryptographic harness -to secure it. With presenting a portable hash chain, it is possible to track -all incremental changes stored in each revision to understand the history of a -page and how it came to be. This allows us to have version control on digital -assets being able to restore earlier states and to relate to them. This allows -us to have historical evidence of digital assets. - -### Page - -A page is a visible representation of a file containing multiple or a single -revision attributed to a shared origin. A page view could also be used to -create a new revision by a used service which interfaces with the file for -manipulation. In AQP all revisions share a global URI hash to -attribute them together called a genesis hash. - -### Transaction Security - -Transaction security is an economic measure of the level of integrity assurance -for a transaction. It is defined as the cost required to forge a transaction. -The transaction security can be increased by cryptographic security and by strong -replication of transactions. Public distributed ledger systems are highly suitable -for providing very high level of transaction security at the cost of privacy -and immutability (data can't be changed or deleted). Today, public distributed -ledgers such as Bitcoin and Ethereum provide the highest level of transaction -security. - -### Data Asset - -Data turns into a valuable asset if it is accounted for. In an accounted form -it can be easily priced, exchanged or traded. - -### Data Vault - -Software used to store and manage data with an account. The software must apply -a secure architecture and measures for keeping data assets safe. This is -achieved through encryption, strong authentication and restrictive access to -keep data private by default. - -See [Design Principles / Separation of Account and -Service](design-principles.md#separation-of-account-and-service) - - -### Witness - -We define witnessing as the process of observing an event. A witness is judged -by their capability to recollect and share an observed event. In other words, -witnessing is the process of storing input data for later playback to provide -data symmetry around an event. - -### Witness Network - -The digital service in a distributed ledger or similar infrastructure which -provides transaction security and data symmetry for shared data within the -network. An example of a witness network would be Ethereum. - -E.g. Ethereum can be used to store a digital fingerprint of a domain snapshot -of a data vault. A domain snapshot is the Merklized state of all witnessed hash -chains being present in the data vault. It is required to pay the witness -network for its service. In the case of Ethereum, this is done using 'Ether'. -This in return allows the account owner to create an 'undeniable' proof that a -specific revision and the previous revisions within a hash chain has existed. - -### Portable Hash Chain - -A hash chain is a linked list where each node contains the cryptographic hash -of the previous node content. A portable hash chain is a hash chain that can be -moved from one host to another. - -### Immutable Hyperlinks / Transclusions -See [Immutable Hyperlinks](immutable-hyperlinks.md). - -## Specification - -To identify a revision with a unique fingerprint, we hash its content using -the SHA3-512 hashing function which always has a 128 characters long -output. This value can be used as a checksum to verify data integrity. -The checksum can then be entangled in a hash-chain to create an -immutable track record. We then calculate multiple properties associated -with the revision, in addition to its content checksum. In the next section, -we differentiate between REQUIRED and OPTIONAL properties for each -revision. - -All hashes are based on -[SHA3-512](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf). -This encryption standard is used to construct [portable hash -chains](#portable-hash-chain), which are serializing of data and its history in -a form that can be verified, and independent of location. The portable hash -chain can be fully or partially exchanged between hosts depending on the -application of the data. From here on, we refer the term "portable hash chain" -as "hash chain." - -In order to implement the AQP, we need to utilize a software that is capable of -generating portable hash chains and facilitating actions described in the -AQP. We call those nodes which facilitate the Aqua Protocol 'Aqua Data -Vaults' which given their role should be implemented as a software with secure -architecture and measures for keeping data assets safe. This is achieved -through encryption, authentication and restrictive access to keep data private -by default. - -# Revision Verification Structure - -A revision is RECOMMENDED to be limited to 50 Megabytes to ensure that the verification can take -place on all imaginable clients which might have slow network connectivity, low -memory, low cpu performance. Once a revision is verified, the next one can be -verified. Clients with more performance will be able to parallelize the -verification. Larger files can be chunked to be placed in multiple revisions. - -A verified data structure is identified by its URI `verification_hash` -and grouped by its `genesis_hash`. The first revision created will -create a `verification_hash` which has a special meaning and is -referred to as the `genesis_hash`. All future revisions building upon -that first revision will be attributed to the `genesis_hash` as a unique -URI for grouping the revisions. This allows us to understand if two -revisions are related without needing to verify the whole history of the -hash chain. - -## Verification Hash -`revision_verification_hash` is the hash sum over the string formed by the -following operation - -``` -revision_verification_hash = calculate_hash_sum( - content_hash + metadata_hash + - signature_hash + witness_hash -) -``` -The content_hash and metadata_hash are REQUIRED. -The signature_hash and witness_hash are OPTIONAL. - -## Content - -A content hash is the check sum for all content data fields which simplifies -hash construction and the ability to identify data corruption in this part of -the verification structure. -`content_hash` is the hash sum over the string formed by following operation: - -``` -contentObj = { - "main": content, - "extension_key_1": content_extension_1, - "extension_key_2": content_extension_2, - ..., - "extension_key_n": content_extension_n, -} -sortedContenObj = sort_by_keys(contentObj) -content_hash = calculate_hash_sum( - sortedContenObjValue_1, - sortedContenObjValue_2, - ..., - sortedContenObjValue_n, -) -``` -Description: -- content: The string input of the visible page using UTF-8 encoding schema. - REQUIRED. -- content extensions: more data MAY be encapsulated in addition to the main - content. These could be a file, a stateful link, or a signature. The content - extensions are sorted alphabetically by their key names. OPTIONAL. -- The `sort_by_keys` function sorts the content object elements by their keys - alphabetically. The JSON input MAY be a canonical JSON, in which the keys - order is already alphabetical, but we sort it always to ensure the order is - correct. - -To see an example of `contentObj` of a revision, see the [example](#Example) -section, - -## Metadata - -``` -metadata_hash = calculate_hash_sum( - domain_id + time_stamp + previous_verification_hash -) -``` - -Description: -- metadata_hash: The check sum for all metadata data fields. It simplifies the - hash construction and the ability to identify data corrupton in this part of - the verification structure. -- domain_id: 10 digits hexadecimal randomly generated to identify the host - system that runs the AQP service. -- time_stamp: time-stamp of the current revision (decimal numbers - YYYYMMDDHHMMSS e.g. 20211128092608). -- previous_verification_hash: previous_revision_verification_hash if present - -## Signature - -A signature in AQP is a cryptographic signature generated by public-private key -pair. The protocol should be abstract, where it will support 'Method' in later -iterations. This will allow us to use different types of implementations such -as: PGP signatures, Ethereum, or Bitcoin -[wallet](https://en.wikipedia.org/wiki/Cryptocurrency_wallet)'s signatures. - -In this specification, we use the AQP reference implementation's signing -method, which is via an Ethereum wallet. - -``` -signature_hash = calculate_hash_sum( - signature + public_key -) -``` - -The signature is generated by a wallet signing the following message: - -``` -I sign the following page verification_hash:" +[0x] -``` - -The `revision_verification_hash` MUST NOT be signed twice by the same key, to -avoid information leakage of the private key. - -For example, a wallet with an address of -`0xa2026582b94feb9124231fbf7b052c39218954c2` and a public key of -`0x041518581af65749b3ddc69889df3e5d229bc8ad79279a07ddeb368ade5e1592368c5ff3b69143d7a1e7cf64f7d0774a6724e6eaf138d318d07ddc30f6081ca89a` -signs the following message: -``` -I sign the following page verification_hash:" +[0x9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57] -``` -which results in the following signature: -``` -0x19b5697c4541509c1add3db9fc2f678b7b80325ebffd4d945ca00db5f8b3f98a142edbf9a7faa0a0c7ec4f10ae1b64cf2ea62ce3ee73ed2e37ce916d6bd016601c -``` - -## Witness - -Witnessing allows one to undeniably prove the existence of a dataset -(represented as a portable hash chain). To complete the witnessing process, a -Domain Snapshot is created. This is a collection of all revision hashes within -one domain. A Merkle tree is used to unify all hashes of the latest revisions -of all portable hash chains within a domain into a single hash value. - -The `witness_event_verification_hash` is written to the [Witness -Network](#witness-network). The -`witness_event_verification_hash` is then generated by using the -`domain_snapshot_genesis_hash` and the `merkle_root` hash together. This -allows the page snapshot itself to also be witnessed. - -A single revision which has been witnessed, will not store the whole Merkle -tree, but only its relevant path to the Merkle root. Performing a Merkle proof -means that its revision is included in the Merkle tree. - -``` -witness_hash = calculate_hash_sum( - domain_snapshot_genesis_hash + merkle_root + - witness_network + witness_event_transaction_hash -) -``` - -Description: -- `witness_hash`: the checksum for all signature data fields. It simplifies hash - construction and identifies data corruption in this part of the verification - structure. -- `domain_snapshot_genesis_hash`: Refers to the URI of the page which stores the - whole Merkle tree of the witness event. -- `merkle_root`: the root hash of the Merkle tree. The presence of the - Merkle tree allows for lazy verification to reduce required computational - steps for verification by skipping the Merkle proof as both datasets can be - entangled in the chain by a newer revision and therefore be immutable. -- `witness_network`: specifies which witness network was used to store the - `witness_event`. The following structure shows an AQP hash chain with 3 - revisions which wrote the `witness_event_verification_hash` into the - witness network. - -Additional context: -- relative-merkle-tree-proof: This provide the relative path with all required - hashes to verify the Merkle tree root from the first node which the - `verification_hash` of the revision as a starting point. -- `witness_event_verification_hash`: It is calculated by taking the sha3-512 - checksum of the `domain_snapshot_genesis_hash` and the `merkle_root` hash. - This ensures that the`domain_snapshot` itself will be witnessed. - - -## Example -The following structure shows an AQP hash chain with 3 revisions: - -### 1st Revision -This revision features all REQUIRED (content, metadata) and all OPTIONAL -(signature, witness) AQP data fields. -```json -{ - "verification_context": { - "has_previous_signature": false, - "has_previous_witness": false - }, - "content": { - "rev_id": 358, - "content": { - "main": "First revision text", - "transclusion-hashes": "" - }, - "content_hash": "ae188be061822074716b43925b3ffa90a03c530342be73c3440d8f022765ffebbb56c16552f13cd1ea61f876d2d892e0a73dcba5173fc47d371b4251d6c094da" - }, - "metadata": { - "domain_id": "acfa9f682e", - "time_stamp": "20220116090401", - "previous_verification_hash": "", - "metadata_hash": "d1025fd8866d9367735d2f6617b3aa87401e08d726f311cdf834ea9540955bfc59b428676bce5d47d5fed381394ab2ed838c5eecfc9cb37313705374752c247d", - "verification_hash": "9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57" - }, - "signature": { - "signature": "0x19b5697c4541509c1add3db9fc2f678b7b80325ebffd4d945ca00db5f8b3f98a142edbf9a7faa0a0c7ec4f10ae1b64cf2ea62ce3ee73ed2e37ce916d6bd016601c", - "public_key": "0x041518581af65749b3ddc69889df3e5d229bc8ad79279a07ddeb368ade5e1592368c5ff3b69143d7a1e7cf64f7d0774a6724e6eaf138d318d07ddc30f6081ca89a", - "wallet_address": "0xa2026582b94feb9124231fbf7b052c39218954c2", - "signature_hash": "cc42f40c4452a25f9ea48a97b6dfba6f69dec347db5c1adf25475b0b4a5da36af3fe48bf9f7ea0dda6bbed9367dc9c82834dbf8cc7f6220fd190cdb729d3f4ec" - }, - "witness": { - "witness_event_id": "2", - "domain_id": "acfa9f682e", - "domain_snapshot_title": "Data Accounting:DomainSnapshot:b33afaf53ed3d245f0319d4997db2032de9d77791ae11f5125189815eef44f2fba9633bebe2e57bc5ea4b0424872ed02fa6aa9ad909f467726b536933bf715bf", - "witness_hash": "9707780cebcf6ed02b40bd7e6956b35ffe142a2b5f8cee15c703a652fa389eb118ef101e2f463e95663aa4013a42d9f1ce4a83eed3528b02bf98626e7599bbd8", - "domain_snapshot_genesis_hash": "b33afaf53ed3d245f0319d4997db2032de9d77791ae11f5125189815eef44f2fba9633bebe2e57bc5ea4b0424872ed02fa6aa9ad909f467726b536933bf715bf", - "merkle_root": "14f26d7dc0be77afff9131c03cab39a2fa9e1270c6face3fdc35b9b4b4ac4550d048c356a4713568c42411c3e7fe3553ec7b993c9bd7da97cb976e843d7e4d29", - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "witness_network": "goerli", - "smart_contract_address": "0x45f59310ADD88E6d23ca58A0Fa7A55BEE6d2a611", - "witness_event_transaction_hash": "0x5900103adc09a789fd3bd7c23dfeff1ffce41dfba0a52b525ecc032e9279eb1f", - "sender_account_address": "0xa2026582b94feb9124231fbf7b052c39218954c2", - "source": "default", - "structured_merkle_proof": [ - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "4", - "left_leaf": "2554fb53531f4de26ff3ad1fb8c61feea6ea47c3f13c4abda385c46ef8541361f7eee42433050281714a3900115f04fe52b5a8d781a71c4c439c5de6b91cbe3c", - "right_leaf": "9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57", - "successor": "789e508ccb23fe053b628cebc19a2d32f34e6aa21e878e8611f7c14d891625c7b2e243b3c3105b98295333b9183e5ea272a055a84ab65ad927f7fd9c27aae48e" - }, - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "3", - "left_leaf": "789e508ccb23fe053b628cebc19a2d32f34e6aa21e878e8611f7c14d891625c7b2e243b3c3105b98295333b9183e5ea272a055a84ab65ad927f7fd9c27aae48e", - "right_leaf": "c16a966333cd22ff3497875a62202874221c1dae2e74b4351d058910f8d37160be480fce9aab4ec5e725beb695509f0fd65ae581568c6f1ae25eb4f1440b287f", - "successor": "80d7549af24e9a6bdfc32cefe0536d6528d665cc8e65859ef4cff87270f3db8d9b95aaecc167e10c9b5be9ce3ab36d8d880c3a518e1c5eb899ca9d95af24e9db" - }, - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "2", - "left_leaf": "80d7549af24e9a6bdfc32cefe0536d6528d665cc8e65859ef4cff87270f3db8d9b95aaecc167e10c9b5be9ce3ab36d8d880c3a518e1c5eb899ca9d95af24e9db", - "right_leaf": "f4e189a08b486253ea0a5cc7bf7150055e738898115c4caf00e45634d6925539d51852409d1fe9108469e9b15668b940f3369300bb27cc292d1fabc0c07cd593", - "successor": "e227dd97e5166364483b41f058f0d176e3a50a7510299038b09ae3aef2cbafb26c787afad82563a945b433fa2d1279af3535755235ab69d6e5ab089179177c14" - }, - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "1", - "left_leaf": "e227dd97e5166364483b41f058f0d176e3a50a7510299038b09ae3aef2cbafb26c787afad82563a945b433fa2d1279af3535755235ab69d6e5ab089179177c14", - "right_leaf": "780f3eb08f24022be4463be141bcda6a33a157cd0fd44cf209312b8427ac4036637a63d239526555128a4e7f4bb588ebfdbd8a8cc7d797038e29b852a4fae26c", - "successor": "f3bd4e82b1e3d304005a7ddf4ab940f3e4e1cf099ca1c058454c431ed3feb0674c044e53150eb5691073ba58a3491565f72f6a6c2a24562ea080b569b4496c9f" - }, - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "0", - "left_leaf": "f3bd4e82b1e3d304005a7ddf4ab940f3e4e1cf099ca1c058454c431ed3feb0674c044e53150eb5691073ba58a3491565f72f6a6c2a24562ea080b569b4496c9f", - "right_leaf": "4a0c120fbdd6219b774eb2cb2076f4050d606b621e384c3ec645be0e5dbcdac3132f1f2acb531fa5ff62429907b77cf8d29a760be3765eb4decd83949a2925f8", - "successor": "14f26d7dc0be77afff9131c03cab39a2fa9e1270c6face3fdc35b9b4b4ac4550d048c356a4713568c42411c3e7fe3553ec7b993c9bd7da97cb976e843d7e4d29" - } - ] - } -} -``` - -### 2nd Revision -This revision entangles all data fields of the previous revision. As the -calculation of the revision_verification hash depends on the revision of the -previous revision, it is shown in verification_context. - -```json -{ - "verification_context": { - "has_previous_signature": true, - "has_previous_witness": true - }, - "content": { - "rev_id": 362, - "content": { - "main": "First revision text", - "signature-slot": "[\n {\n \"user\": \"0xa2026582b94feb9124231fbf7b052c39218954c2\",\n \"timestamp\": \"20220116090439\"\n }\n]", - "transclusion-hashes": "" - }, - "content_hash": "9732084a45fd344d63687ccf9b5cd942f99ffe1debd11622b05d0cd24a2de3e5608d5f5121bdd7559c0a2d39067f9258c4f9612e44728df2e8d9026a88ed650c" - }, - "metadata": { - "domain_id": "acfa9f682e", - "time_stamp": "20220116090439", - "previous_verification_hash": "9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57", - "metadata_hash": "8df483539e2f81e64c9b9df0c7e13ae7778947b5defef860fbaed1260eade794999839bb254ea5006a5d4b6a89a37980ab576dc546d6336518d65b80bf2a5cb5", - "verification_hash": "296347471b33f3d3c69cc6e0699d80b4cb68ffc79c3ecce96beb659fa324fab1de7a888932fbfb7c60bb8cc83c9445ce15532987a7b59440cada649681618293" - }, - "signature": { - "signature": "", - "public_key": "", - "wallet_address": "", - "signature_hash": "" - }, - "witness": null -} -``` - -### 3rd Revision -This revision features a transclusion-hash for an immutable link to another -revision. - -```json -{ - "verification_context": { - "has_previous_signature": false, - "has_previous_witness": false - }, - "content": { - "rev_id": 363, - "content": { - "main": "First revision text\n\n[[File:Logo_inblockio.png]]", - "signature-slot": "[\n {\n \"user\": \"0xa2026582b94feb9124231fbf7b052c39218954c2\",\n \"timestamp\": \"20220116090439\"\n }\n]", - "transclusion-hashes": "[{\"dbkey\":\"Logo_inblockio.png\",\"ns\":6,\"verification_hash\":\"9b2b3cafb90a07433a2b61885a9e64641a99b1e9024cf53b640501d3706b142fed7bc372300973137ef9d92584fac70976c3889d5610abcfe1f187c248263a56\"}]" - }, - "content_hash": "14b8256ccd5fa1d883983317f92f428eadb52f699f476b9be69f14c6892b41979ff7b5b7a7a978177985d6aaa0bcfd9857a2646aedc4cbb3299373daa647814b" - }, - "metadata": { - "domain_id": "acfa9f682e", - "time_stamp": "20220116090556", - "previous_verification_hash": "296347471b33f3d3c69cc6e0699d80b4cb68ffc79c3ecce96beb659fa324fab1de7a888932fbfb7c60bb8cc83c9445ce15532987a7b59440cada649681618293", - "metadata_hash": "09688c05a83bb74bb255fb0c571cb6314b65f5b7f00750547a2c43f4959d4702ae2aec019c6fb4b0e5d23adea87fd456b0eaffc6ae271163a1fa45b4bae54230", - "verification_hash": "b35894d74dfcf8b41ff95eed97705e1acf9081021e0d478d8645cb04b8a0b4a013ee8f7fb6e140d149f2c92f20bba984fad5535938a5e36ae6a799a18343b806" - }, - "signature": { - "signature": "", - "public_key": "", - "wallet_address": "", - "signature_hash": "" - }, - "witness": null -} -``` - -# API Endpoints - -The AQP provides 3 API endpoints which return data from a host that runs the -AQP: - -## Get Hash Chain -`/get_hash_chain_info/{identifier}?identifier=` -Input: -- `identifier_type`: the value must either be "title" or "genesis_hash" -- `identifier`: the title or genesis_hash string, e.g. "Main Page" or "02c3c2...215d8d" -Returns: all context for the requested hash_chain. - -Example: - -API Request: -`/get_hash_chain_info/genesis_hash?identifier=dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26` - -API Response: -```json -{ - "genesis_hash": "dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26", - "domain_id": "acfa9f682e", - "latest_verification_hash": "2554fb53531f4de26ff3ad1fb8c61feea6ea47c3f13c4abda385c46ef8541361f7eee42433050281714a3900115f04fe52b5a8d781a71c4c439c5de6b91cbe3c", - "site_info": { - "sitename": "Personal Knowledge Container", - "dbname": "my_wiki", - "base": "http://localhost:9352/index.php/Aqua", - "generator": "MediaWiki 1.37.1", - "case": "first-letter", - "namespaces": { - "0": { - "case": true, - "title": "" - }, - "6942": { - "case": true, - "title": "Data Accounting" - } - }, - "version": "0.3.0" - }, - "title": "Aqua", - "namespace": 0, - "chain_height": 3 -} -``` - -## Get Revision Hashes -`/get_revision_hashes/{verification_hash}` -Input: -- `verification_hash` -Returns: the revision requested if it exists and/or a list of any newer -revision than the one requested. - -Example: - -API Request: -`/get_revision_hashes/dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26` - -API Response: -```json -[ - "dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26", - "f483d7746f67e7099099bcfa8ea5a93148251c598857e8fad21ce842da62794467067802ef9e818d240cd3312a3346a769f363145a87bfc1eeae19fe8d21b328", - "2554fb53531f4de26ff3ad1fb8c61feea6ea47c3f13c4abda385c46ef8541361f7eee42433050281714a3900115f04fe52b5a8d781a71c4c439c5de6b91cbe3c" -] -``` - -## Get Revision -`/get_revision/{verification_hash}` -Input: -- `verification_hash` -Returns: the revision content together with its verification data - -Example: See example above. - -API Request: `/get_revision/dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26` - -# Verification Process - -The verification process is a redo of the verification data generation -process, and additionally a comparison of their results. - -**Verification of Content** - -All hashes are recalculated in a separate client implementation, and -compared with the ones sent via the API. If the data was not altered or -corrupted; nor was there a difference in the process to calculate the -hash, they will match. This will create a high level of assurance that -the integrity and history of the portable hash chain in question has not been -altered. - -**Verification of Account** - -We cryptographically verify that the revision signature is indeed generated by the account specified in the verification data. - -**Verification of Time** - -To verify that the witness event included in a revision is correct, a -lookup and comparison of the `witness_event_verification_hash` on-chain is -performed and compared with the recalculated event. - -**Reference Implementation** - -| | | -|------------------------------------|--------------------------------------------------------------------| -| Command-Line-Verification-Tool | [https://github.com/inblockio/aqua-verifier-js](https://github.com/inblockio/aqua-verifier-js) | -| Chrome Extension Verification Tool | [https://github.com/inblockio/aqua-verifier-webextension](https://github.com/inblockio/aqua-verifier-webextension) | - - - - -# Appendix - -The following content is informational and not part of the -specification. It should help to better understand utility, context and -services which can be built on top of AQP. - -## Aqua Protocol v1.1 Changes - -Moving over to revision based verification. This allows: - -- Bulk / in parallel verification; ensuring logarithmic verification - times, not linear increasing verification times with longer history. - In short: Much faster and scalable. -- Single revision and range verification (you want to verify a - specific part of the content-chain) - - This is useful for verification of identity claims, where - trusted parties have signed the claim and for the validator it's - sufficient to see that signature. -- This allows direct verification after every edit via the Guardian. - This is the preparation in the interaction to provide services - through the [Guardian](guardian.md). -- Changing the design to include transclusions e.g. this allows the - verification of subpages via their stateful links / - revision_verification_hashes - - This also allows the inclusion of media files in the - verification process - - You can upload pictures, PDF's, Word-Documents and have them - automatically included in the aqua protocol and therefore in the - verified data-structure -- Introduction of verification_context which indicates if the previous - revision has signature or witness data, or if the current revision - has transcluded resources. This will build the correct verification - structure before verification. - -Change in the data-structure: - -- when requesting a revision this is done via the - GetRevisionHandler.php -- the previous verification hash is always served as well -- if signature or witness data is present in the previous revision, - there is a flag (1/0) that this revision depends on the previous - revision -- transcluded resources will be added to the content hash for - verification - -## Data Accounting Protocol v1.2 \[TBD\] - -- Generalization of the Signature-Metadata to inform which signature - method was used. - - GPG Signatures - - BTC Wallet Signatures - - Ethereum Wallet Signatures - - Done by: Displaying method used for signing, displaying - underlying architecture. -- Including Account as part of the verified data structure -- Defining maximum payload size per revision - -## Services on AQP (Not yet implemented, exploration) - -- AQP-DACS: [Domain](#domain) Access Control System - - See: [Guardian](guardian.md) (Acting similar to a WebApplication-Firewall) - -- ANS: Name-System and Name-Registry. - - See [Aqua Name Resolution](aqua-name-resolution.md) - -- AQP-SSI: Self-Sovereign-Identity Protocol for [Identity - Claim](aqua-identity-protocol.md#self-issued-identity-claims) management - - See [Aqua Identity Protocol](aqua-identity-protocol.md) - -- AQP Delegated Witnessing - - See [Delegated Witnessing](delegated-witnessing.md) - -## Similar Projects - -None of the listed projects apply the concepts of versioning to their documents, -the concept of portable hash chains, the concept of personal data vaults for data -management in comparison with the AQP reference implementation. - -This following list is not exhaustive: -- [Surety](http://surety.com/) - The oldest blockchain-like timestamping service which has been publishing - to the New York Times since 1995. -- [OpenTimestamp](https://opentimestamps.org/) - A free and open-source service provided by Peter Todd using the Bitcoin - network as a distributed cryptographic clock. The AQP MAY use OpenTimestamp - as a witness network. -- [OriginStamp](https://originstamp.com/) - A company providing paid timestamping services for their customers. - It looks very similar to OpenTimestamps with open-source client libraries. -- [Factom Protocol](https://www.factomprotocol.org/) - A service which creates an architecture with an extra layer of blockchain, - to provide an extra layer of trusted parties while providing their own - token. In our opinion, it introduces unnecessary complexity and - intermediaries as dependencies compared to the AQP. -- [OpenAttestation](https://www.openattestation.com/) - An implementation of a timestamping service for document certification. One - application of it is for secure digital vaccination certificates by the - Singaporean government. They use the MetaMask Ethereum wallet for signing - documents making it the most similar project to AQP to our knowledge. - -## Blockchain Context - -DISCLAIMER: AQP is not a permissionless distributed ledger. In order for the -AQP to be valuable and working, a single node implementation and single node -deployments are sufficient, and do not require the witnessing part. The AQP MAY -benefit from being published to a distributed ledger technology (DLT)) to -achieve a witness event with high transaction security. AQP does not have a -token nor is it distributing data by default. - -As some concepts are very similar as those used in DLT's, please refer to the -following: - -A portable hash chain and its revisions are similar to a blockchain structure -and its blocks, which has its own root hash and a set of transactions which -are included inside. - -| **Blockchain Term** | **AQP Term** | **Explanation** | -|----------------------|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Transaction** | **Input Data** | In a blockchain, it's a signed transaction. In AQP, it's all the input data provided to calculate the respective content slot hashes. | -| **Block** | **Revision** | A block contains the Merklized list of transactions. A revision contains various hashed data inputs such as: | -| | | - Content slots | -| | | - Metadata data | -| | | - Signature data | -| | | - Witness data | -| **Genesis Block** | **Genesis Revision** | The first object in the hash chain/blockchain. | -| **Blockchain** | **Hash Chain** | The hash chain is not distributed but resides by default only in the local PKC. It is not a distributed ledger and lacks a consensus algorithm to create a shared truth between nodes. | - - -### A side note - -It has not escaped our notice that the provided AQP improves the existing -process of double-entry bookkeeping and provides a foundation for a new data -economy. This also allows to create unforgeable invoices which can be clearly -attributed to its sender, avoiding fraud. This is one of many other use cases, -e.g. providing trusted news via revision-controlled journalism. diff --git a/docusaurus.config.ts b/docusaurus.config.ts deleted file mode 100644 index 28941617..00000000 --- a/docusaurus.config.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { themes as prismThemes } from 'prism-react-renderer'; -import type { Config } from '@docusaurus/types'; -import type * as Preset from '@docusaurus/preset-classic'; - -// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) - -const config: Config = { - title: 'AQUA Protocol', - tagline: 'Account & Verify data in seconds using Aqua Protocol.', - favicon: 'img/favicon.ico', - - // Set the production url of your site here - url: 'https://aqua-protocol.org/', - // Set the /<baseUrl>/ pathname under which your site is served - // For GitHub pages deployment, it is often '/<projectName>/' - baseUrl: '/', - - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: 'inblockio', // Usually your GitHub org/user name. - projectName: 'AQUA PKC', // Usually your repo name. - - onBrokenLinks: 'warn', - onBrokenMarkdownLinks: 'warn', - - // Even if you don't use internationalization, you can use this field to set - // useful metadata like html lang. For example, if your site is Chinese, you - // may want to replace "en" with "zh-Hans". - i18n: { - defaultLocale: 'en', - locales: ['en'], - }, - - presets: [ - [ - 'classic', - { - docs: { - sidebarPath: './sidebars.ts', - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: - 'https://github.com/inblockio', - lastVersion: '1.3.2', - versions: { - '1.3.2': { - label: 'v3', - path: 'v3', - banner: 'none', - }, - '1.2.0': { - label: 'v2', - path: 'v2', - banner: 'none', - }, - '1.1.0': { - label: 'v1', - path: 'v1', - banner: 'none', - }, - } - }, - blog: { - showReadingTime: true, - feedOptions: { - type: ['rss', 'atom'], - xslt: true, - }, - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: - 'https://github.com/inblockio', - // Useful options to enforce blogging best practices - onInlineTags: 'warn', - onInlineAuthors: 'warn', - onUntruncatedBlogPosts: 'warn', - }, - theme: { - customCss: './src/css/custom.css', - }, - } satisfies Preset.Options, - ], - ], - - themeConfig: { - // Replace with your project's social card - image: '/featured-background.png', - navbar: { - title: 'Aqua Protocol', - logo: { - alt: 'Aqua Protocol', - src: '/favicons/android-192x192.png', - }, - items: [ - { - type: 'docSidebar', - sidebarId: 'tutorialSidebar', - position: 'right', - label: 'Documentation', - href: "/docs/v3/intro" - }, - { - href: '/community', - label: 'Community', - position: 'right', - }, - { - href: 'https://github.com/inblockio', - label: 'GitHub', - position: 'right', - }, - { - type: 'docsVersionDropdown', - }, - ], - }, - footer: { - style: 'dark', - links: [ - { - title: 'Documentation', - items: [ - { - label: 'Docs', - to: '/docs/v3/intro', - }, - ], - }, - { - title: 'Community', - items: [ - //{ - // label: 'Matrix', - // href: 'https://matrix.org', - //}, - { - label: 'X', - href: 'https://github.com/inblockio', - }, - ], - }, - { - title: 'More', - items: [ - { - label: 'GitHub', - href: 'https://github.com/inblockio', - }, - ], - }, - ], - copyright: `© ${new Date().getFullYear()} AQUA Protocol. All right reserved.`, - }, - prism: { - theme: prismThemes.github, - darkTheme: prismThemes.dracula, - }, - } satisfies Preset.ThemeConfig, -}; - -export default config; diff --git a/essentials/code.mdx b/essentials/code.mdx new file mode 100644 index 00000000..ae2abbfe --- /dev/null +++ b/essentials/code.mdx @@ -0,0 +1,35 @@ +--- +title: 'Code blocks' +description: 'Display inline code and code blocks' +icon: 'code' +--- + +## Inline code + +To denote a `word` or `phrase` as code, enclose it in backticks (`). + +``` +To denote a `word` or `phrase` as code, enclose it in backticks (`). +``` + +## Code blocks + +Use [fenced code blocks](https://www.markdownguide.org/extended-syntax/#fenced-code-blocks) by enclosing code in three backticks and follow the leading ticks with the programming language of your snippet to get syntax highlighting. Optionally, you can also write the name of your code after the programming language. + +```java HelloWorld.java +class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` + +````md +```java HelloWorld.java +class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` +```` diff --git a/essentials/images.mdx b/essentials/images.mdx new file mode 100644 index 00000000..1144eb2c --- /dev/null +++ b/essentials/images.mdx @@ -0,0 +1,59 @@ +--- +title: 'Images and embeds' +description: 'Add image, video, and other HTML elements' +icon: 'image' +--- + +<img + style={{ borderRadius: '0.5rem' }} + src="https://mintlify-assets.b-cdn.net/bigbend.jpg" +/> + +## Image + +### Using Markdown + +The [markdown syntax](https://www.markdownguide.org/basic-syntax/#images) lets you add images using the following code + +```md +![title](/path/image.jpg) +``` + +Note that the image file size must be less than 5MB. Otherwise, we recommend hosting on a service like [Cloudinary](https://cloudinary.com/) or [S3](https://aws.amazon.com/s3/). You can then use that URL and embed. + +### Using embeds + +To get more customizability with images, you can also use [embeds](/writing-content/embed) to add images + +```html +<img height="200" src="/path/image.jpg" /> +``` + +## Embeds and HTML elements + +<iframe + width="560" + height="315" + src="https://www.youtube.com/embed/4KzFe50RQkQ" + title="YouTube video player" + frameBorder="0" + allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" + allowFullScreen + style={{ width: '100%', borderRadius: '0.5rem' }} +></iframe> + +<br /> + +<Tip> + +Mintlify supports [HTML tags in Markdown](https://www.markdownguide.org/basic-syntax/#html). This is helpful if you prefer HTML tags to Markdown syntax, and lets you create documentation with infinite flexibility. + +</Tip> + +### iFrames + +Loads another HTML page within the document. Most commonly used for embedding videos. + +```html +<iframe src="https://www.youtube.com/embed/4KzFe50RQkQ"> </iframe> +``` diff --git a/essentials/markdown.mdx b/essentials/markdown.mdx new file mode 100644 index 00000000..a45c1d56 --- /dev/null +++ b/essentials/markdown.mdx @@ -0,0 +1,88 @@ +--- +title: 'Markdown syntax' +description: 'Text, title, and styling in standard markdown' +icon: 'text-size' +--- + +## Titles + +Best used for section headers. + +```md +## Titles +``` + +### Subtitles + +Best used for subsection headers. + +```md +### Subtitles +``` + +<Tip> + +Each **title** and **subtitle** creates an anchor and also shows up on the table of contents on the right. + +</Tip> + +## Text formatting + +We support most markdown formatting. Simply add `**`, `_`, or `~` around text to format it. + +| Style | How to write it | Result | +| ------------- | ----------------- | --------------- | +| Bold | `**bold**` | **bold** | +| Italic | `_italic_` | _italic_ | +| Strikethrough | `~strikethrough~` | ~strikethrough~ | + +You can combine these. For example, write `**_bold and italic_**` to get **_bold and italic_** text. + +You need to use HTML to write superscript and subscript text. That is, add `<sup>` or `<sub>` around your text. + +| Text Size | How to write it | Result | +| ----------- | ------------------------ | ---------------------- | +| Superscript | `<sup>superscript</sup>` | <sup>superscript</sup> | +| Subscript | `<sub>subscript</sub>` | <sub>subscript</sub> | + +## Linking to pages + +You can add a link by wrapping text in `[]()`. You would write `[link to google](https://google.com)` to [link to google](https://google.com). + +Links to pages in your docs need to be root-relative. Basically, you should include the entire folder path. For example, `[link to text](/writing-content/text)` links to the page "Text" in our components section. + +Relative links like `[link to text](../text)` will open slower because we cannot optimize them as easily. + +## Blockquotes + +### Singleline + +To create a blockquote, add a `>` in front of a paragraph. + +> Dorothy followed her through many of the beautiful rooms in her castle. + +```md +> Dorothy followed her through many of the beautiful rooms in her castle. +``` + +### Multiline + +> Dorothy followed her through many of the beautiful rooms in her castle. +> +> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. + +```md +> Dorothy followed her through many of the beautiful rooms in her castle. +> +> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. +``` + +### LaTeX + +Mintlify supports [LaTeX](https://www.latex-project.org) through the Latex component. + +<Latex>8 x (vk x H1 - H2) = (0,1)</Latex> + +```md +<Latex>8 x (vk x H1 - H2) = (0,1)</Latex> +``` diff --git a/essentials/navigation.mdx b/essentials/navigation.mdx new file mode 100644 index 00000000..60adeff2 --- /dev/null +++ b/essentials/navigation.mdx @@ -0,0 +1,87 @@ +--- +title: 'Navigation' +description: 'The navigation field in docs.json defines the pages that go in the navigation menu' +icon: 'map' +--- + +The navigation menu is the list of links on every website. + +You will likely update `docs.json` every time you add a new page. Pages do not show up automatically. + +## Navigation syntax + +Our navigation syntax is recursive which means you can make nested navigation groups. You don't need to include `.mdx` in page names. + +<CodeGroup> + +```json Regular Navigation +"navigation": { + "tabs": [ + { + "tab": "Docs", + "groups": [ + { + "group": "Getting Started", + "pages": ["quickstart"] + } + ] + } + ] +} +``` + +```json Nested Navigation +"navigation": { + "tabs": [ + { + "tab": "Docs", + "groups": [ + { + "group": "Getting Started", + "pages": [ + "quickstart", + { + "group": "Nested Reference Pages", + "pages": ["nested-reference-page"] + } + ] + } + ] + } + ] +} +``` + +</CodeGroup> + +## Folders + +Simply put your MDX files in folders and update the paths in `docs.json`. + +For example, to have a page at `https://yoursite.com/your-folder/your-page` you would make a folder called `your-folder` containing an MDX file called `your-page.mdx`. + +<Warning> + +You cannot use `api` for the name of a folder unless you nest it inside another folder. Mintlify uses Next.js which reserves the top-level `api` folder for internal server calls. A folder name such as `api-reference` would be accepted. + +</Warning> + +```json Navigation With Folder +"navigation": { + "tabs": [ + { + "tab": "Docs", + "groups": [ + { + "group": "Group Name", + "pages": ["your-folder/your-page"] + } + ] + } + ] +} +``` + +## Hidden pages + +MDX files not included in `docs.json` will not show up in the sidebar but are accessible through the search bar and by linking directly to them. diff --git a/essentials/reusable-snippets.mdx b/essentials/reusable-snippets.mdx new file mode 100644 index 00000000..376e27bd --- /dev/null +++ b/essentials/reusable-snippets.mdx @@ -0,0 +1,110 @@ +--- +title: "Reusable snippets" +description: "Reusable, custom snippets to keep content in sync" +icon: "recycle" +--- + +import SnippetIntro from '/snippets/snippet-intro.mdx'; + +<SnippetIntro /> + +## Creating a custom snippet + +**Pre-condition**: You must create your snippet file in the `snippets` directory. + +<Note> + Any page in the `snippets` directory will be treated as a snippet and will not + be rendered into a standalone page. If you want to create a standalone page + from the snippet, import the snippet into another file and call it as a + component. +</Note> + +### Default export + +1. Add content to your snippet file that you want to re-use across multiple + locations. Optionally, you can add variables that can be filled in via props + when you import the snippet. + +```mdx snippets/my-snippet.mdx +Hello world! This is my content I want to reuse across pages. My keyword of the +day is {word}. +``` + +<Warning> + The content that you want to reuse must be inside the `snippets` directory in + order for the import to work. +</Warning> + +2. Import the snippet into your destination file. + +```mdx destination-file.mdx +--- +title: My title +description: My Description +--- + +import MySnippet from '/snippets/path/to/my-snippet.mdx'; + +## Header + +Lorem impsum dolor sit amet. + +<MySnippet word="bananas" /> +``` + +### Reusable variables + +1. Export a variable from your snippet file: + +```mdx snippets/path/to/custom-variables.mdx +export const myName = 'my name'; + +export const myObject = { fruit: 'strawberries' }; +``` + +2. Import the snippet from your destination file and use the variable: + +```mdx destination-file.mdx +--- +title: My title +description: My Description +--- + +import { myName, myObject } from '/snippets/path/to/custom-variables.mdx'; + +Hello, my name is {myName} and I like {myObject.fruit}. +``` + +### Reusable components + +1. Inside your snippet file, create a component that takes in props by exporting + your component in the form of an arrow function. + +```mdx snippets/custom-component.mdx +export const MyComponent = ({ title }) => ( + <div> + <h1>{title}</h1> + <p>... snippet content ...</p> + </div> +); +``` + +<Warning> + MDX does not compile inside the body of an arrow function. Stick to HTML + syntax when you can or use a default export if you need to use MDX. +</Warning> + +2. Import the snippet into your destination file and pass in the props + +```mdx destination-file.mdx +--- +title: My title +description: My Description +--- + +import { MyComponent } from '/snippets/custom-component.mdx'; + +Lorem ipsum dolor sit amet. + +<MyComponent title={'Custom title'} /> +``` diff --git a/essentials/settings.mdx b/essentials/settings.mdx new file mode 100644 index 00000000..884de13a --- /dev/null +++ b/essentials/settings.mdx @@ -0,0 +1,318 @@ +--- +title: 'Global Settings' +description: 'Mintlify gives you complete control over the look and feel of your documentation using the docs.json file' +icon: 'gear' +--- + +Every Mintlify site needs a `docs.json` file with the core configuration settings. Learn more about the [properties](#properties) below. + +## Properties + +<ResponseField name="name" type="string" required> +Name of your project. Used for the global title. + +Example: `mintlify` + +</ResponseField> + +<ResponseField name="navigation" type="Navigation[]" required> + An array of groups with all the pages within that group + <Expandable title="Navigation"> + <ResponseField name="group" type="string"> + The name of the group. + + Example: `Settings` + + </ResponseField> + <ResponseField name="pages" type="string[]"> + The relative paths to the markdown files that will serve as pages. + + Example: `["customization", "page"]` + + </ResponseField> + + </Expandable> +</ResponseField> + +<ResponseField name="logo" type="string or object"> + Path to logo image or object with path to "light" and "dark" mode logo images + <Expandable title="Logo"> + <ResponseField name="light" type="string"> + Path to the logo in light mode + </ResponseField> + <ResponseField name="dark" type="string"> + Path to the logo in dark mode + </ResponseField> + <ResponseField name="href" type="string" default="/"> + Where clicking on the logo links you to + </ResponseField> + </Expandable> +</ResponseField> + +<ResponseField name="favicon" type="string"> + Path to the favicon image +</ResponseField> + +<ResponseField name="colors" type="Colors"> + Hex color codes for your global theme + <Expandable title="Colors"> + <ResponseField name="primary" type="string" required> + The primary color. Used for most often for highlighted content, section + headers, accents, in light mode + </ResponseField> + <ResponseField name="light" type="string"> + The primary color for dark mode. Used for most often for highlighted + content, section headers, accents, in dark mode + </ResponseField> + <ResponseField name="dark" type="string"> + The primary color for important buttons + </ResponseField> + <ResponseField name="background" type="object"> + The color of the background in both light and dark mode + <Expandable title="Object"> + <ResponseField name="light" type="string" required> + The hex color code of the background in light mode + </ResponseField> + <ResponseField name="dark" type="string" required> + The hex color code of the background in dark mode + </ResponseField> + </Expandable> + </ResponseField> + </Expandable> +</ResponseField> + +<ResponseField name="topbarLinks" type="TopbarLink[]"> + Array of `name`s and `url`s of links you want to include in the topbar + <Expandable title="TopbarLink"> + <ResponseField name="name" type="string"> + The name of the button. + + Example: `Contact us` + </ResponseField> + <ResponseField name="url" type="string"> + The url once you click on the button. Example: `https://mintlify.com/docs` + </ResponseField> + + </Expandable> +</ResponseField> + +<ResponseField name="topbarCtaButton" type="Call to Action"> + <Expandable title="Topbar Call to Action"> + <ResponseField name="type" type={'"link" or "github"'} default="link"> + Link shows a button. GitHub shows the repo information at the url provided including the number of GitHub stars. + </ResponseField> + <ResponseField name="url" type="string"> + If `link`: What the button links to. + + If `github`: Link to the repository to load GitHub information from. + </ResponseField> + <ResponseField name="name" type="string"> + Text inside the button. Only required if `type` is a `link`. + </ResponseField> + + </Expandable> +</ResponseField> + +<ResponseField name="versions" type="string[]"> + Array of version names. Only use this if you want to show different versions + of docs with a dropdown in the navigation bar. +</ResponseField> + +<ResponseField name="anchors" type="Anchor[]"> + An array of the anchors, includes the `icon`, `color`, and `url`. + <Expandable title="Anchor"> + <ResponseField name="icon" type="string"> + The [Font Awesome](https://fontawesome.com/search?q=heart) icon used to feature the anchor. + + Example: `comments` + </ResponseField> + <ResponseField name="name" type="string"> + The name of the anchor label. + + Example: `Community` + </ResponseField> + <ResponseField name="url" type="string"> + The start of the URL that marks what pages go in the anchor. Generally, this is the name of the folder you put your pages in. + </ResponseField> + <ResponseField name="color" type="string"> + The hex color of the anchor icon background. Can also be a gradient if you pass an object with the properties `from` and `to` that are each a hex color. + </ResponseField> + <ResponseField name="version" type="string"> + Used if you want to hide an anchor until the correct docs version is selected. + </ResponseField> + <ResponseField name="isDefaultHidden" type="boolean" default="false"> + Pass `true` if you want to hide the anchor until you directly link someone to docs inside it. + </ResponseField> + <ResponseField name="iconType" default="duotone" type="string"> + One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" + </ResponseField> + + </Expandable> +</ResponseField> + +<ResponseField name="topAnchor" type="Object"> + Override the default configurations for the top-most anchor. + <Expandable title="Object"> + <ResponseField name="name" default="Documentation" type="string"> + The name of the top-most anchor + </ResponseField> + <ResponseField name="icon" default="book-open" type="string"> + Font Awesome icon. + </ResponseField> + <ResponseField name="iconType" default="duotone" type="string"> + One of: "brands", "duotone", "light", "sharp-solid", "solid", or "thin" + </ResponseField> + </Expandable> +</ResponseField> + +<ResponseField name="tabs" type="Tabs[]"> + An array of navigational tabs. + <Expandable title="Tabs"> + <ResponseField name="name" type="string"> + The name of the tab label. + </ResponseField> + <ResponseField name="url" type="string"> + The start of the URL that marks what pages go in the tab. Generally, this + is the name of the folder you put your pages in. + </ResponseField> + </Expandable> +</ResponseField> + +<ResponseField name="api" type="API"> + Configuration for API settings. Learn more about API pages at [API Components](/api-playground/demo). + <Expandable title="API"> + <ResponseField name="baseUrl" type="string"> + The base url for all API endpoints. If `baseUrl` is an array, it will enable for multiple base url + options that the user can toggle. + </ResponseField> + + <ResponseField name="auth" type="Auth"> + <Expandable title="Auth"> + <ResponseField name="method" type='"bearer" | "basic" | "key"'> + The authentication strategy used for all API endpoints. + </ResponseField> + <ResponseField name="name" type="string"> + The name of the authentication parameter used in the API playground. + + If method is `basic`, the format should be `[usernameName]:[passwordName]` + </ResponseField> + <ResponseField name="inputPrefix" type="string"> + The default value that's designed to be a prefix for the authentication input field. + + E.g. If an `inputPrefix` of `AuthKey` would inherit the default input result of the authentication field as `AuthKey`. + </ResponseField> + </Expandable> + </ResponseField> + + <ResponseField name="playground" type="Playground"> + Configurations for the API playground + + <Expandable title="Playground"> + <ResponseField name="mode" default="show" type='"show" | "simple" | "hide"'> + Whether the playground is showing, hidden, or only displaying the endpoint with no added user interactivity `simple` + + Learn more at the [playground guides](/api-playground/demo) + </ResponseField> + </Expandable> + </ResponseField> + + <ResponseField name="maintainOrder" type="boolean"> + Enabling this flag ensures that key ordering in OpenAPI pages matches the key ordering defined in the OpenAPI file. + + <Warning>This behavior will soon be enabled by default, at which point this field will be deprecated.</Warning> + </ResponseField> + + </Expandable> +</ResponseField> + +<ResponseField name="openapi" type="string | string[]"> + A string or an array of strings of URL(s) or relative path(s) pointing to your + OpenAPI file. + + Examples: + <CodeGroup> + ```json Absolute + "openapi": "https://example.com/openapi.json" + ``` + ```json Relative + "openapi": "/openapi.json" + ``` + ```json Multiple + "openapi": ["https://example.com/openapi1.json", "/openapi2.json", "/openapi3.json"] + ``` + </CodeGroup> + +</ResponseField> + +<ResponseField name="footerSocials" type="FooterSocials"> + An object of social media accounts where the key:property pair represents the social media platform and the account url. + + Example: + ```json + { + "x": "https://x.com/mintlify", + "website": "https://mintlify.com" + } + ``` + <Expandable title="FooterSocials"> + <ResponseField name="[key]" type="string"> + One of the following values `website`, `facebook`, `x`, `discord`, `slack`, `github`, `linkedin`, `instagram`, `hacker-news` + + Example: `x` + </ResponseField> + <ResponseField name="property" type="string"> + The URL to the social platform. + + Example: `https://x.com/mintlify` + </ResponseField> + </Expandable> +</ResponseField> + +<ResponseField name="feedback" type="Feedback"> + Configurations to enable feedback buttons + + <Expandable title="Feedback"> + <ResponseField name="suggestEdit" type="boolean" default="false"> + Enables a button to allow users to suggest edits via pull requests + </ResponseField> + <ResponseField name="raiseIssue" type="boolean" default="false"> + Enables a button to allow users to raise an issue about the documentation + </ResponseField> + </Expandable> +</ResponseField> + +<ResponseField name="modeToggle" type="ModeToggle"> + Customize the dark mode toggle. + <Expandable title="ModeToggle"> + <ResponseField name="default" type={'"light" or "dark"'}> + Set if you always want to show light or dark mode for new users. When not + set, we default to the same mode as the user's operating system. + </ResponseField> + <ResponseField name="isHidden" type="boolean" default="false"> + Set to true to hide the dark/light mode toggle. You can combine `isHidden` with `default` to force your docs to only use light or dark mode. For example: + + <CodeGroup> + ```json Only Dark Mode + "modeToggle": { + "default": "dark", + "isHidden": true + } + ``` + + ```json Only Light Mode + "modeToggle": { + "default": "light", + "isHidden": true + } + ``` + </CodeGroup> + + </ResponseField> + + </Expandable> +</ResponseField> + +<ResponseField name="backgroundImage" type="string"> + A background image to be displayed behind every page. See example with + [Infisical](https://infisical.com/docs) and [FRPC](https://frpc.io). +</ResponseField> diff --git a/favicon.svg b/favicon.svg new file mode 100644 index 00000000..b785c738 --- /dev/null +++ b/favicon.svg @@ -0,0 +1,19 @@ +<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.06145 23.1079C5.26816 22.3769 -3.39077 20.6274 1.4173 5.06384C9.6344 6.09939 16.9728 14.0644 9.06145 23.1079Z" fill="url(#paint0_linear_17557_2021)"/> +<path d="M8.91928 23.0939C5.27642 21.2223 0.78371 4.20891 17.0071 0C20.7569 7.19341 19.6212 16.5452 8.91928 23.0939Z" fill="url(#paint1_linear_17557_2021)"/> +<path d="M8.91388 23.0788C8.73534 19.8817 10.1585 9.08525 23.5699 13.1107C23.1812 20.1229 18.984 26.4182 8.91388 23.0788Z" fill="url(#paint2_linear_17557_2021)"/> +<defs> +<linearGradient id="paint0_linear_17557_2021" x1="3.77557" y1="5.91571" x2="5.23185" y2="21.5589" gradientUnits="userSpaceOnUse"> +<stop stop-color="#18E299"/> +<stop offset="1" stop-color="#15803D"/> +</linearGradient> +<linearGradient id="paint1_linear_17557_2021" x1="12.1711" y1="-0.718425" x2="10.1897" y2="22.9832" gradientUnits="userSpaceOnUse"> +<stop stop-color="#16A34A"/> +<stop offset="1" stop-color="#4ADE80"/> +</linearGradient> +<linearGradient id="paint2_linear_17557_2021" x1="23.1327" y1="15.353" x2="9.33841" y2="18.5196" gradientUnits="userSpaceOnUse"> +<stop stop-color="#4ADE80"/> +<stop offset="1" stop-color="#0D9373"/> +</linearGradient> +</defs> +</svg> diff --git a/images/checks-passed.png b/images/checks-passed.png new file mode 100644 index 0000000000000000000000000000000000000000..3303c773646ca12fb6852356663540e3ed048115 GIT binary patch literal 160724 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≥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 C1V-)v literal 0 HcmV?d00001 diff --git a/images/hero-dark.png b/images/hero-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a61cbb12528f786ae756dd330da5e60ab4b98ccb GIT binary patch literal 110614 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 G)X%Rp%WO7G+P&6y&$YI`qyb?;!- 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ɊgP+1Kmq9C+NW`N{6BwF_FKP% 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 literal 0 HcmV?d00001 diff --git a/images/hero-light.png b/images/hero-light.png new file mode 100644 index 0000000000000000000000000000000000000000..68c712d6db8984866c0d644f8d6b9e7a6c529a97 GIT binary patch literal 104264 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 YiTW=8yKw8Dd3cP@IsLQXFmb^D0S!qnZU6uP literal 0 HcmV?d00001 diff --git a/index.mdx b/index.mdx new file mode 100644 index 00000000..15c23fb6 --- /dev/null +++ b/index.mdx @@ -0,0 +1,97 @@ +--- +title: "Introduction" +description: "Welcome to the new home for your documentation" +--- + +## Setting up + +Get your documentation site up and running in minutes. + +<Card + title="Start here" + icon="rocket" + href="/quickstart" + horizontal +> + Follow our three step quickstart guide. +</Card> + +## Make it yours + +Design a docs site that looks great and empowers your users. + +<Columns cols={2}> + <Card + title="Edit locally" + icon="pen-to-square" + href="/development" + > + Edit your docs locally and preview them in real time. + </Card> + <Card + title="Customize your site" + icon="palette" + href="/essentials/settings" + > + Customize the design and colors of your site to match your brand. + </Card> + <Card + title="Set up navigation" + icon="map" + href="/essentials/navigation" + > + Organize your docs to help users find what they need and succeed with your product. + </Card> + <Card + title="API documentation" + icon="terminal" + href="/api-reference/introduction" + > + Auto-generate API documentation from OpenAPI specifications. + </Card> +</Columns> + +## Create beautiful pages + +Everything you need to create world-class documentation. + +<Columns cols={2}> + <Card + title="Write with MDX" + icon="pen-fancy" + href="/essentials/markdown" + > + Use MDX to style your docs pages. + </Card> + <Card + title="Code samples" + icon="code" + href="/essentials/code" + > + Add sample code to demonstrate how to use your product. + </Card> + <Card + title="Images" + icon="image" + href="/essentials/images" + > + Display images and other media. + </Card> + <Card + title="Reusable snippets" + icon="recycle" + href="/essentials/reusable-snippets" + > + Write once and reuse across your docs. + </Card> +</Columns> + +## Need inspiration? + +<Card + title="See complete examples" + icon="stars" + href="https://mintlify.com/customers" +> + Browse our showcase of exceptional documentation sites. +</Card> diff --git a/static/favicons/android-192x192.png b/logo/aqua-logo.png similarity index 100% rename from static/favicons/android-192x192.png rename to logo/aqua-logo.png diff --git a/logo/dark.svg b/logo/dark.svg new file mode 100644 index 00000000..8b343cd6 --- /dev/null +++ b/logo/dark.svg @@ -0,0 +1,21 @@ +<svg width="177" height="24" viewBox="0 0 177 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.06145 23.1079C5.26816 22.3769 -3.39077 20.6274 1.4173 5.06384C9.6344 6.09939 16.9728 14.0644 9.06145 23.1079Z" fill="url(#paint0_linear_17557_2145)"/> +<path d="M8.91928 23.0939C5.27642 21.2223 0.78371 4.20891 17.0071 0C20.7569 7.19341 19.6212 16.5452 8.91928 23.0939Z" fill="url(#paint1_linear_17557_2145)"/> +<path d="M8.91388 23.0788C8.73534 19.8817 10.1585 9.08525 23.5699 13.1107C23.1812 20.1229 18.984 26.4182 8.91388 23.0788Z" fill="url(#paint2_linear_17557_2145)"/> +<path d="M32.3008 19.3922V3.89432H37.9383L39.925 9.94786C40.0359 10.3154 40.1642 10.7869 40.3098 11.3624C40.4624 11.938 40.6114 12.5516 40.7571 13.2035C40.9096 13.8553 41.0483 14.4828 41.1731 15.0861C41.3049 15.6824 41.4123 16.1921 41.4955 16.6151H40.6946C40.7709 16.1921 40.8715 15.6824 40.9963 15.0861C41.128 14.4897 41.2667 13.8657 41.4123 13.2139C41.5649 12.562 41.714 11.9484 41.8596 11.3728C42.0052 10.7904 42.1335 10.3154 42.2444 9.94786L44.1999 3.89432H49.8478V19.3922H46.1657V12.7042C46.1657 12.3575 46.1726 11.9172 46.1865 11.3832C46.2004 10.8493 46.2143 10.2703 46.2281 9.64623C46.2489 9.02215 46.2663 8.39114 46.2801 7.75319C46.3009 7.11525 46.3113 6.51891 46.3113 5.96418H46.6234C46.4847 6.56052 46.3321 7.18112 46.1657 7.826C45.9993 8.47088 45.8329 9.10189 45.6665 9.71903C45.507 10.3362 45.3509 10.9013 45.1984 11.4144C45.0528 11.9276 44.928 12.3575 44.824 12.7042L42.6085 19.3922H39.5609L37.3142 12.7042C37.2033 12.3575 37.0715 11.9276 36.919 11.4144C36.7734 10.9013 36.6139 10.3396 36.4405 9.72944C36.2741 9.11229 36.1042 8.48128 35.9309 7.8364C35.7644 7.19153 35.6084 6.56745 35.4628 5.96418H35.8269C35.8338 6.51198 35.8442 7.10485 35.8581 7.74279C35.8719 8.3738 35.8858 9.00481 35.8997 9.63582C35.9205 10.2599 35.9378 10.8389 35.9517 11.3728C35.9655 11.9068 35.9725 12.3506 35.9725 12.7042V19.3922H32.3008ZM51.6684 19.3922V8.02363H55.288V19.3922H51.6684ZM53.4678 6.78588C52.927 6.78588 52.4728 6.61599 52.1053 6.27621C51.7377 5.92951 51.554 5.50652 51.554 5.00726C51.554 4.508 51.7377 4.08848 52.1053 3.74871C52.4728 3.40893 52.927 3.23904 53.4678 3.23904C54.0087 3.23904 54.4629 3.40893 54.8304 3.74871C55.1979 4.08155 55.3817 4.50107 55.3817 5.00726C55.3817 5.50652 55.1979 5.92951 54.8304 6.27621C54.4629 6.61599 54.0087 6.78588 53.4678 6.78588ZM60.7075 13.0266V19.3922H57.0879V8.02363H60.5515L60.5931 10.9672H60.2811C60.5931 10.0241 61.0612 9.26831 61.6852 8.69971C62.3093 8.12417 63.1379 7.8364 64.1711 7.8364C64.9755 7.8364 65.6724 8.01669 66.2618 8.37727C66.8512 8.73091 67.3019 9.23364 67.614 9.88545C67.9329 10.5373 68.0924 11.307 68.0924 12.1945V19.3922H64.4832V12.9122C64.4832 12.2604 64.3202 11.7542 63.9943 11.3936C63.6753 11.0331 63.2212 10.8528 62.6318 10.8528C62.2504 10.8528 61.9141 10.936 61.6228 11.1024C61.3316 11.2688 61.1062 11.515 60.9467 11.8409C60.7873 12.1599 60.7075 12.5551 60.7075 13.0266ZM76.4555 8.02363V10.7488H69.0081V8.02363H76.4555ZM70.6828 5.16328H74.292V15.783C74.292 16.1019 74.3613 16.3342 74.5 16.4799C74.6456 16.6255 74.8987 16.6983 75.2593 16.6983C75.4049 16.6983 75.5956 16.6879 75.8314 16.6671C76.0741 16.6463 76.2509 16.6289 76.3618 16.6151L76.6323 19.309C76.3133 19.3783 75.9631 19.4269 75.5817 19.4546C75.2073 19.4824 74.8363 19.4962 74.4688 19.4962C73.1999 19.4962 72.2499 19.2223 71.6189 18.6745C70.9948 18.1267 70.6828 17.3085 70.6828 16.2198V5.16328Z" fill="#FAFAFA"/> +<path d="M88.6674 19.6522C87.5232 19.6522 86.5282 19.4581 85.6822 19.0698C84.8432 18.6815 84.1879 18.1371 83.7164 17.4368C83.2448 16.7364 82.9917 15.9078 82.9571 14.9509H84.9333C84.968 15.5957 85.1483 16.1401 85.4742 16.5839C85.8001 17.0207 86.2404 17.3536 86.7951 17.5824C87.3499 17.8043 87.974 17.9152 88.6674 17.9152C89.3885 17.9152 90.0265 17.8008 90.5812 17.572C91.1429 17.3432 91.5832 17.0242 91.9022 16.6151C92.2281 16.199 92.391 15.7171 92.391 15.1693C92.391 14.6978 92.2662 14.306 92.0166 13.994C91.7669 13.675 91.4133 13.408 90.9556 13.1931C90.498 12.9781 89.9537 12.7874 89.3227 12.621L87.5024 12.1321C86.1225 11.7646 85.0824 11.255 84.382 10.6031C83.6886 9.94439 83.3419 9.09496 83.3419 8.05483C83.3419 7.17419 83.5708 6.4045 84.0284 5.74575C84.4861 5.087 85.1171 4.57734 85.9214 4.21676C86.7258 3.84925 87.6446 3.6655 88.6778 3.6655C89.7179 3.6655 90.6297 3.85272 91.4133 4.22717C92.2038 4.60161 92.8244 5.12167 93.2751 5.78736C93.7259 6.4461 93.9651 7.20886 93.9928 8.07563H92.0894C92.0131 7.22966 91.656 6.57438 91.0181 6.10979C90.387 5.63827 89.5861 5.40251 88.6154 5.40251C87.9497 5.40251 87.3603 5.51346 86.8471 5.73535C86.341 5.95724 85.9457 6.26235 85.6614 6.65066C85.3771 7.03204 85.235 7.46889 85.235 7.96122C85.235 8.44661 85.3771 8.84879 85.6614 9.16777C85.9457 9.4798 86.3167 9.73984 86.7743 9.94786C87.232 10.149 87.7243 10.3188 88.2513 10.4575L89.8843 10.884C90.4391 11.0227 90.9765 11.2064 91.4965 11.4352C92.0235 11.6571 92.495 11.9345 92.9111 12.2673C93.3341 12.5933 93.6704 12.9954 93.92 13.4739C94.1696 13.9454 94.2945 14.5036 94.2945 15.1485C94.2945 16.0153 94.0656 16.7884 93.608 17.468C93.1573 18.1475 92.5124 18.6815 91.6733 19.0698C90.8343 19.4581 89.8323 19.6522 88.6674 19.6522ZM101.097 8.02363V9.59422H95.1062V8.02363H101.097ZM96.9368 5.16328H98.7674V16.5215C98.7674 16.9999 98.8645 17.3466 99.0587 17.5616C99.2597 17.7696 99.5995 17.8736 100.078 17.8736C100.21 17.8736 100.366 17.8667 100.546 17.8528C100.733 17.832 100.903 17.8147 101.056 17.8008L101.285 19.3506C101.097 19.3922 100.886 19.4234 100.65 19.4442C100.414 19.465 100.189 19.4754 99.974 19.4754C98.9962 19.4754 98.2439 19.2362 97.7169 18.7577C97.1968 18.2723 96.9368 17.5789 96.9368 16.6775V5.16328ZM106.33 19.621C105.595 19.621 104.932 19.4893 104.343 19.2258C103.754 18.9554 103.285 18.5636 102.939 18.0504C102.592 17.5304 102.419 16.8959 102.419 16.147C102.419 15.4952 102.547 14.9647 102.804 14.5556C103.06 14.1465 103.403 13.8275 103.833 13.5987C104.263 13.3629 104.742 13.1861 105.269 13.0682C105.796 12.9504 106.333 12.8567 106.881 12.7874C107.574 12.6903 108.132 12.6175 108.555 12.569C108.978 12.5204 109.287 12.4407 109.481 12.3298C109.675 12.2119 109.772 12.0142 109.772 11.7369V11.6537C109.772 11.2029 109.679 10.8146 109.492 10.4887C109.311 10.1628 109.041 9.90972 108.68 9.72944C108.32 9.54915 107.872 9.459 107.338 9.459C106.805 9.459 106.34 9.54568 105.945 9.71903C105.556 9.89239 105.241 10.1177 104.998 10.3951C104.755 10.6655 104.593 10.9533 104.509 11.2584L102.71 10.9152C102.897 10.2218 103.22 9.64969 103.677 9.19897C104.135 8.74825 104.679 8.41194 105.31 8.19005C105.941 7.96815 106.607 7.85721 107.307 7.85721C107.8 7.85721 108.295 7.91961 108.795 8.04443C109.301 8.16925 109.765 8.38074 110.188 8.67891C110.611 8.97014 110.951 9.36886 111.208 9.87505C111.464 10.3743 111.593 11.0053 111.593 11.7681V19.3922H109.793V17.8216H109.7C109.568 18.0851 109.363 18.359 109.086 18.6433C108.809 18.9207 108.444 19.153 107.994 19.3402C107.543 19.5274 106.988 19.621 106.33 19.621ZM106.621 17.9984C107.321 17.9984 107.904 17.8667 108.368 17.6032C108.84 17.3328 109.19 16.9861 109.419 16.5631C109.654 16.1331 109.772 15.6824 109.772 15.2109V13.6923C109.703 13.7686 109.554 13.8414 109.325 13.9107C109.096 13.9732 108.829 14.0321 108.524 14.0876C108.226 14.143 107.921 14.1916 107.609 14.2332C107.304 14.2748 107.033 14.3095 106.798 14.3372C106.354 14.3927 105.938 14.4897 105.549 14.6284C105.168 14.7602 104.86 14.9543 104.624 15.2109C104.388 15.4675 104.27 15.8107 104.27 16.2406C104.27 16.6151 104.367 16.934 104.561 17.1975C104.762 17.461 105.04 17.6621 105.393 17.8008C105.747 17.9326 106.156 17.9984 106.621 17.9984ZM114.193 19.3922V8.02363H115.951V9.79184H116.045C116.253 9.20937 116.61 8.74131 117.116 8.38767C117.622 8.03403 118.219 7.85721 118.905 7.85721C119.058 7.85721 119.217 7.86414 119.384 7.87801C119.55 7.88494 119.682 7.89188 119.779 7.89881V9.73984C119.716 9.71903 119.578 9.69476 119.363 9.66703C119.155 9.63929 118.922 9.62542 118.666 9.62542C118.174 9.62542 117.726 9.7329 117.324 9.94786C116.922 10.1628 116.603 10.4714 116.367 10.8736C116.138 11.2758 116.024 11.7577 116.024 12.3194V19.3922H114.193ZM126.322 8.02363V9.59422H120.33V8.02363H126.322ZM122.161 5.16328H123.992V16.5215C123.992 16.9999 124.089 17.3466 124.283 17.5616C124.484 17.7696 124.824 17.8736 125.302 17.8736C125.434 17.8736 125.59 17.8667 125.77 17.8528C125.958 17.832 126.127 17.8147 126.28 17.8008L126.509 19.3506C126.322 19.3922 126.11 19.4234 125.874 19.4442C125.639 19.465 125.413 19.4754 125.198 19.4754C124.221 19.4754 123.468 19.2362 122.941 18.7577C122.421 18.2723 122.161 17.5789 122.161 16.6775V5.16328ZM132.604 19.6418C131.502 19.6418 130.555 19.3957 129.765 18.9034C128.974 18.4041 128.364 17.7141 127.934 16.8335C127.511 15.9459 127.3 14.9266 127.3 13.7755C127.3 12.6106 127.511 11.5843 127.934 10.6968C128.364 9.80224 128.964 9.10189 129.734 8.5957C130.51 8.0895 131.408 7.8364 132.428 7.8364C133.1 7.8364 133.738 7.95429 134.341 8.19005C134.952 8.42581 135.489 8.78292 135.954 9.26138C136.425 9.73984 136.793 10.3431 137.056 11.0712C137.327 11.7924 137.462 12.6453 137.462 13.6299V14.2956H128.433V12.7354H136.463L135.631 13.2971C135.631 12.5412 135.506 11.8756 135.257 11.3C135.007 10.7245 134.643 10.2772 134.165 9.95826C133.686 9.63236 133.107 9.4694 132.428 9.4694C131.748 9.4694 131.162 9.63236 130.67 9.95826C130.177 10.2842 129.796 10.7245 129.526 11.2792C129.262 11.827 129.13 12.4407 129.13 13.1202V14.046C129.13 14.8642 129.273 15.5715 129.557 16.1678C129.841 16.7572 130.243 17.2114 130.763 17.5304C131.283 17.8424 131.901 17.9984 132.615 17.9984C133.093 17.9984 133.523 17.9291 133.905 17.7904C134.293 17.6448 134.619 17.4333 134.882 17.1559C135.153 16.8786 135.354 16.5457 135.486 16.1574L137.275 16.4487C137.108 17.0797 136.81 17.6344 136.38 18.1129C135.95 18.5913 135.413 18.9658 134.768 19.2362C134.123 19.5066 133.402 19.6418 132.604 19.6418ZM139.459 19.3922V8.02363H141.217V9.79184H141.311C141.519 9.20937 141.876 8.74131 142.382 8.38767C142.888 8.03403 143.485 7.85721 144.171 7.85721C144.324 7.85721 144.483 7.86414 144.649 7.87801C144.816 7.88494 144.948 7.89188 145.045 7.89881V9.73984C144.982 9.71903 144.844 9.69476 144.629 9.66703C144.421 9.63929 144.188 9.62542 143.932 9.62542C143.439 9.62542 142.992 9.7329 142.59 9.94786C142.188 10.1628 141.869 10.4714 141.633 10.8736C141.404 11.2758 141.29 11.7577 141.29 12.3194V19.3922H139.459ZM153.429 14.9613V12.7146C153.783 12.2569 154.136 11.8201 154.49 11.404C154.844 10.9811 155.204 10.565 155.572 10.1559C155.939 9.73984 156.314 9.32725 156.695 8.91814L161.355 3.89432H163.893L157.277 10.9672H157.184L153.429 14.9613ZM152.108 19.3922V3.89432H154.043V9.24058L154.022 12.5586L154.043 13.5051V19.3922H152.108ZM161.615 19.3922L155.967 11.4768L157.173 9.96866L163.903 19.3922H161.615ZM165.661 19.3922V8.02363H167.492V19.3922H165.661ZM166.587 6.02658C166.24 6.02658 165.942 5.9087 165.692 5.67294C165.443 5.43025 165.318 5.13901 165.318 4.79923C165.318 4.45946 165.443 4.17169 165.692 3.93593C165.942 3.69323 166.24 3.57189 166.587 3.57189C166.934 3.57189 167.232 3.69323 167.482 3.93593C167.731 4.17169 167.856 4.45946 167.856 4.79923C167.856 5.13901 167.731 5.43025 167.482 5.67294C167.232 5.9087 166.934 6.02658 166.587 6.02658ZM174.836 8.02363V9.59422H168.844V8.02363H174.836ZM170.675 5.16328H172.506V16.5215C172.506 16.9999 172.603 17.3466 172.797 17.5616C172.998 17.7696 173.338 17.8736 173.816 17.8736C173.948 17.8736 174.104 17.8667 174.284 17.8528C174.472 17.832 174.641 17.8147 174.794 17.8008L175.023 19.3506C174.836 19.3922 174.624 19.4234 174.388 19.4442C174.153 19.465 173.927 19.4754 173.712 19.4754C172.735 19.4754 171.982 19.2362 171.455 18.7577C170.935 18.2723 170.675 17.5789 170.675 16.6775V5.16328Z" fill="#9F9FA9"/> +<defs> +<linearGradient id="paint0_linear_17557_2145" x1="3.77557" y1="5.91571" x2="5.23185" y2="21.5589" gradientUnits="userSpaceOnUse"> +<stop stop-color="#18E299"/> +<stop offset="1" stop-color="#15803D"/> +</linearGradient> +<linearGradient id="paint1_linear_17557_2145" x1="12.1711" y1="-0.718425" x2="10.1897" y2="22.9832" gradientUnits="userSpaceOnUse"> +<stop stop-color="#16A34A"/> +<stop offset="1" stop-color="#4ADE80"/> +</linearGradient> +<linearGradient id="paint2_linear_17557_2145" x1="23.1327" y1="15.353" x2="9.33841" y2="18.5196" gradientUnits="userSpaceOnUse"> +<stop stop-color="#4ADE80"/> +<stop offset="1" stop-color="#0D9373"/> +</linearGradient> +</defs> +</svg> diff --git a/logo/light.svg b/logo/light.svg new file mode 100644 index 00000000..03e62bf1 --- /dev/null +++ b/logo/light.svg @@ -0,0 +1,21 @@ +<svg width="177" height="24" viewBox="0 0 177 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M9.06145 23.1079C5.26816 22.3769 -3.39077 20.6274 1.4173 5.06384C9.6344 6.09939 16.9728 14.0644 9.06145 23.1079Z" fill="url(#paint0_linear_17557_2020)"/> +<path d="M8.91928 23.0939C5.27642 21.2223 0.78371 4.20891 17.0071 0C20.7569 7.19341 19.6212 16.5452 8.91928 23.0939Z" fill="url(#paint1_linear_17557_2020)"/> +<path d="M8.91388 23.0788C8.73534 19.8817 10.1585 9.08525 23.5699 13.1107C23.1812 20.1229 18.984 26.4182 8.91388 23.0788Z" fill="url(#paint2_linear_17557_2020)"/> +<path d="M32.3008 19.3922V3.89432H37.9383L39.925 9.94786C40.0359 10.3154 40.1642 10.7869 40.3098 11.3624C40.4624 11.938 40.6114 12.5516 40.7571 13.2035C40.9096 13.8553 41.0483 14.4828 41.1731 15.0861C41.3049 15.6824 41.4123 16.1921 41.4955 16.6151H40.6946C40.7709 16.1921 40.8715 15.6824 40.9963 15.0861C41.128 14.4897 41.2667 13.8657 41.4123 13.2139C41.5649 12.562 41.714 11.9484 41.8596 11.3728C42.0052 10.7904 42.1335 10.3154 42.2444 9.94786L44.1999 3.89432H49.8478V19.3922H46.1657V12.7042C46.1657 12.3575 46.1726 11.9172 46.1865 11.3832C46.2004 10.8493 46.2143 10.2703 46.2281 9.64623C46.2489 9.02215 46.2663 8.39114 46.2801 7.75319C46.3009 7.11525 46.3113 6.51891 46.3113 5.96418H46.6234C46.4847 6.56052 46.3321 7.18112 46.1657 7.826C45.9993 8.47088 45.8329 9.10189 45.6665 9.71903C45.507 10.3362 45.3509 10.9013 45.1984 11.4144C45.0528 11.9276 44.928 12.3575 44.824 12.7042L42.6085 19.3922H39.5609L37.3142 12.7042C37.2033 12.3575 37.0715 11.9276 36.919 11.4144C36.7734 10.9013 36.6139 10.3396 36.4405 9.72944C36.2741 9.11229 36.1042 8.48128 35.9309 7.8364C35.7644 7.19153 35.6084 6.56745 35.4628 5.96418H35.8269C35.8338 6.51198 35.8442 7.10485 35.8581 7.74279C35.8719 8.3738 35.8858 9.00481 35.8997 9.63582C35.9205 10.2599 35.9378 10.8389 35.9517 11.3728C35.9655 11.9068 35.9725 12.3506 35.9725 12.7042V19.3922H32.3008ZM51.6684 19.3922V8.02363H55.288V19.3922H51.6684ZM53.4678 6.78588C52.927 6.78588 52.4728 6.61599 52.1053 6.27621C51.7377 5.92951 51.554 5.50652 51.554 5.00726C51.554 4.508 51.7377 4.08848 52.1053 3.74871C52.4728 3.40893 52.927 3.23904 53.4678 3.23904C54.0087 3.23904 54.4629 3.40893 54.8304 3.74871C55.1979 4.08155 55.3817 4.50107 55.3817 5.00726C55.3817 5.50652 55.1979 5.92951 54.8304 6.27621C54.4629 6.61599 54.0087 6.78588 53.4678 6.78588ZM60.7075 13.0266V19.3922H57.0879V8.02363H60.5515L60.5931 10.9672H60.2811C60.5931 10.0241 61.0612 9.26831 61.6852 8.69971C62.3093 8.12417 63.1379 7.8364 64.1711 7.8364C64.9755 7.8364 65.6724 8.01669 66.2618 8.37727C66.8512 8.73091 67.3019 9.23364 67.614 9.88545C67.9329 10.5373 68.0924 11.307 68.0924 12.1945V19.3922H64.4832V12.9122C64.4832 12.2604 64.3202 11.7542 63.9943 11.3936C63.6753 11.0331 63.2212 10.8528 62.6318 10.8528C62.2504 10.8528 61.9141 10.936 61.6228 11.1024C61.3316 11.2688 61.1062 11.515 60.9467 11.8409C60.7873 12.1599 60.7075 12.5551 60.7075 13.0266ZM76.4555 8.02363V10.7488H69.0081V8.02363H76.4555ZM70.6828 5.16328H74.292V15.783C74.292 16.1019 74.3613 16.3342 74.5 16.4799C74.6456 16.6255 74.8987 16.6983 75.2593 16.6983C75.4049 16.6983 75.5956 16.6879 75.8314 16.6671C76.0741 16.6463 76.2509 16.6289 76.3618 16.6151L76.6323 19.309C76.3133 19.3783 75.9631 19.4269 75.5817 19.4546C75.2073 19.4824 74.8363 19.4962 74.4688 19.4962C73.1999 19.4962 72.2499 19.2223 71.6189 18.6745C70.9948 18.1267 70.6828 17.3085 70.6828 16.2198V5.16328Z" fill="#09090B"/> +<path d="M88.6674 19.6522C87.5232 19.6522 86.5282 19.4581 85.6822 19.0698C84.8432 18.6815 84.1879 18.1371 83.7164 17.4368C83.2448 16.7364 82.9917 15.9078 82.9571 14.9509H84.9333C84.968 15.5957 85.1483 16.1401 85.4742 16.5839C85.8001 17.0207 86.2404 17.3536 86.7951 17.5824C87.3499 17.8043 87.974 17.9152 88.6674 17.9152C89.3885 17.9152 90.0265 17.8008 90.5812 17.572C91.1429 17.3432 91.5832 17.0242 91.9022 16.6151C92.2281 16.199 92.391 15.7171 92.391 15.1693C92.391 14.6978 92.2662 14.306 92.0166 13.994C91.7669 13.675 91.4133 13.408 90.9556 13.1931C90.498 12.9781 89.9537 12.7874 89.3227 12.621L87.5024 12.1321C86.1225 11.7646 85.0824 11.255 84.382 10.6031C83.6886 9.94439 83.3419 9.09496 83.3419 8.05483C83.3419 7.17419 83.5708 6.4045 84.0284 5.74575C84.4861 5.087 85.1171 4.57734 85.9214 4.21676C86.7258 3.84925 87.6446 3.6655 88.6778 3.6655C89.7179 3.6655 90.6297 3.85272 91.4133 4.22717C92.2038 4.60161 92.8244 5.12167 93.2751 5.78736C93.7259 6.4461 93.9651 7.20886 93.9928 8.07563H92.0894C92.0131 7.22966 91.656 6.57438 91.0181 6.10979C90.387 5.63827 89.5861 5.40251 88.6154 5.40251C87.9497 5.40251 87.3603 5.51346 86.8471 5.73535C86.341 5.95724 85.9457 6.26235 85.6614 6.65066C85.3771 7.03204 85.235 7.46889 85.235 7.96122C85.235 8.44661 85.3771 8.84879 85.6614 9.16777C85.9457 9.4798 86.3167 9.73984 86.7743 9.94786C87.232 10.149 87.7243 10.3188 88.2513 10.4575L89.8843 10.884C90.4391 11.0227 90.9765 11.2064 91.4965 11.4352C92.0235 11.6571 92.495 11.9345 92.9111 12.2673C93.3341 12.5933 93.6704 12.9954 93.92 13.4739C94.1696 13.9454 94.2945 14.5036 94.2945 15.1485C94.2945 16.0153 94.0656 16.7884 93.608 17.468C93.1573 18.1475 92.5124 18.6815 91.6733 19.0698C90.8343 19.4581 89.8323 19.6522 88.6674 19.6522ZM101.097 8.02363V9.59422H95.1062V8.02363H101.097ZM96.9368 5.16328H98.7674V16.5215C98.7674 16.9999 98.8645 17.3466 99.0587 17.5616C99.2597 17.7696 99.5995 17.8736 100.078 17.8736C100.21 17.8736 100.366 17.8667 100.546 17.8528C100.733 17.832 100.903 17.8147 101.056 17.8008L101.285 19.3506C101.097 19.3922 100.886 19.4234 100.65 19.4442C100.414 19.465 100.189 19.4754 99.974 19.4754C98.9962 19.4754 98.2439 19.2362 97.7169 18.7577C97.1968 18.2723 96.9368 17.5789 96.9368 16.6775V5.16328ZM106.33 19.621C105.595 19.621 104.932 19.4893 104.343 19.2258C103.754 18.9554 103.285 18.5636 102.939 18.0504C102.592 17.5304 102.419 16.8959 102.419 16.147C102.419 15.4952 102.547 14.9647 102.804 14.5556C103.06 14.1465 103.403 13.8275 103.833 13.5987C104.263 13.3629 104.742 13.1861 105.269 13.0682C105.796 12.9504 106.333 12.8567 106.881 12.7874C107.574 12.6903 108.132 12.6175 108.555 12.569C108.978 12.5204 109.287 12.4407 109.481 12.3298C109.675 12.2119 109.772 12.0142 109.772 11.7369V11.6537C109.772 11.2029 109.679 10.8146 109.492 10.4887C109.311 10.1628 109.041 9.90972 108.68 9.72944C108.32 9.54915 107.872 9.459 107.338 9.459C106.805 9.459 106.34 9.54568 105.945 9.71903C105.556 9.89239 105.241 10.1177 104.998 10.3951C104.755 10.6655 104.593 10.9533 104.509 11.2584L102.71 10.9152C102.897 10.2218 103.22 9.64969 103.677 9.19897C104.135 8.74825 104.679 8.41194 105.31 8.19005C105.941 7.96815 106.607 7.85721 107.307 7.85721C107.8 7.85721 108.295 7.91961 108.795 8.04443C109.301 8.16925 109.765 8.38074 110.188 8.67891C110.611 8.97014 110.951 9.36886 111.208 9.87505C111.464 10.3743 111.593 11.0053 111.593 11.7681V19.3922H109.793V17.8216H109.7C109.568 18.0851 109.363 18.359 109.086 18.6433C108.809 18.9207 108.444 19.153 107.994 19.3402C107.543 19.5274 106.988 19.621 106.33 19.621ZM106.621 17.9984C107.321 17.9984 107.904 17.8667 108.368 17.6032C108.84 17.3328 109.19 16.9861 109.419 16.5631C109.654 16.1331 109.772 15.6824 109.772 15.2109V13.6923C109.703 13.7686 109.554 13.8414 109.325 13.9107C109.096 13.9732 108.829 14.0321 108.524 14.0876C108.226 14.143 107.921 14.1916 107.609 14.2332C107.304 14.2748 107.033 14.3095 106.798 14.3372C106.354 14.3927 105.938 14.4897 105.549 14.6284C105.168 14.7602 104.86 14.9543 104.624 15.2109C104.388 15.4675 104.27 15.8107 104.27 16.2406C104.27 16.6151 104.367 16.934 104.561 17.1975C104.762 17.461 105.04 17.6621 105.393 17.8008C105.747 17.9326 106.156 17.9984 106.621 17.9984ZM114.193 19.3922V8.02363H115.951V9.79184H116.045C116.253 9.20937 116.61 8.74131 117.116 8.38767C117.622 8.03403 118.219 7.85721 118.905 7.85721C119.058 7.85721 119.217 7.86414 119.384 7.87801C119.55 7.88494 119.682 7.89188 119.779 7.89881V9.73984C119.716 9.71903 119.578 9.69476 119.363 9.66703C119.155 9.63929 118.922 9.62542 118.666 9.62542C118.174 9.62542 117.726 9.7329 117.324 9.94786C116.922 10.1628 116.603 10.4714 116.367 10.8736C116.138 11.2758 116.024 11.7577 116.024 12.3194V19.3922H114.193ZM126.322 8.02363V9.59422H120.33V8.02363H126.322ZM122.161 5.16328H123.992V16.5215C123.992 16.9999 124.089 17.3466 124.283 17.5616C124.484 17.7696 124.824 17.8736 125.302 17.8736C125.434 17.8736 125.59 17.8667 125.77 17.8528C125.958 17.832 126.127 17.8147 126.28 17.8008L126.509 19.3506C126.322 19.3922 126.11 19.4234 125.874 19.4442C125.639 19.465 125.413 19.4754 125.198 19.4754C124.221 19.4754 123.468 19.2362 122.941 18.7577C122.421 18.2723 122.161 17.5789 122.161 16.6775V5.16328ZM132.604 19.6418C131.502 19.6418 130.555 19.3957 129.765 18.9034C128.974 18.4041 128.364 17.7141 127.934 16.8335C127.511 15.9459 127.3 14.9266 127.3 13.7755C127.3 12.6106 127.511 11.5843 127.934 10.6968C128.364 9.80224 128.964 9.10189 129.734 8.5957C130.51 8.0895 131.408 7.8364 132.428 7.8364C133.1 7.8364 133.738 7.95429 134.341 8.19005C134.952 8.42581 135.489 8.78292 135.954 9.26138C136.425 9.73984 136.793 10.3431 137.056 11.0712C137.327 11.7924 137.462 12.6453 137.462 13.6299V14.2956H128.433V12.7354H136.463L135.631 13.2971C135.631 12.5412 135.506 11.8756 135.257 11.3C135.007 10.7245 134.643 10.2772 134.165 9.95826C133.686 9.63236 133.107 9.4694 132.428 9.4694C131.748 9.4694 131.162 9.63236 130.67 9.95826C130.177 10.2842 129.796 10.7245 129.526 11.2792C129.262 11.827 129.13 12.4407 129.13 13.1202V14.046C129.13 14.8642 129.273 15.5715 129.557 16.1678C129.841 16.7572 130.243 17.2114 130.763 17.5304C131.283 17.8424 131.901 17.9984 132.615 17.9984C133.093 17.9984 133.523 17.9291 133.905 17.7904C134.293 17.6448 134.619 17.4333 134.882 17.1559C135.153 16.8786 135.354 16.5457 135.486 16.1574L137.275 16.4487C137.108 17.0797 136.81 17.6344 136.38 18.1129C135.95 18.5913 135.413 18.9658 134.768 19.2362C134.123 19.5066 133.402 19.6418 132.604 19.6418ZM139.459 19.3922V8.02363H141.217V9.79184H141.311C141.519 9.20937 141.876 8.74131 142.382 8.38767C142.888 8.03403 143.485 7.85721 144.171 7.85721C144.324 7.85721 144.483 7.86414 144.649 7.87801C144.816 7.88494 144.948 7.89188 145.045 7.89881V9.73984C144.982 9.71903 144.844 9.69476 144.629 9.66703C144.421 9.63929 144.188 9.62542 143.932 9.62542C143.439 9.62542 142.992 9.7329 142.59 9.94786C142.188 10.1628 141.869 10.4714 141.633 10.8736C141.404 11.2758 141.29 11.7577 141.29 12.3194V19.3922H139.459ZM153.429 14.9613V12.7146C153.783 12.2569 154.136 11.8201 154.49 11.404C154.844 10.9811 155.204 10.565 155.572 10.1559C155.939 9.73984 156.314 9.32725 156.695 8.91814L161.355 3.89432H163.893L157.277 10.9672H157.184L153.429 14.9613ZM152.108 19.3922V3.89432H154.043V9.24058L154.022 12.5586L154.043 13.5051V19.3922H152.108ZM161.615 19.3922L155.967 11.4768L157.173 9.96866L163.903 19.3922H161.615ZM165.661 19.3922V8.02363H167.492V19.3922H165.661ZM166.587 6.02658C166.24 6.02658 165.942 5.9087 165.692 5.67294C165.443 5.43025 165.318 5.13901 165.318 4.79923C165.318 4.45946 165.443 4.17169 165.692 3.93593C165.942 3.69323 166.24 3.57189 166.587 3.57189C166.934 3.57189 167.232 3.69323 167.482 3.93593C167.731 4.17169 167.856 4.45946 167.856 4.79923C167.856 5.13901 167.731 5.43025 167.482 5.67294C167.232 5.9087 166.934 6.02658 166.587 6.02658ZM174.836 8.02363V9.59422H168.844V8.02363H174.836ZM170.675 5.16328H172.506V16.5215C172.506 16.9999 172.603 17.3466 172.797 17.5616C172.998 17.7696 173.338 17.8736 173.816 17.8736C173.948 17.8736 174.104 17.8667 174.284 17.8528C174.472 17.832 174.641 17.8147 174.794 17.8008L175.023 19.3506C174.836 19.3922 174.624 19.4234 174.388 19.4442C174.153 19.465 173.927 19.4754 173.712 19.4754C172.735 19.4754 171.982 19.2362 171.455 18.7577C170.935 18.2723 170.675 17.5789 170.675 16.6775V5.16328Z" fill="#52525C"/> +<defs> +<linearGradient id="paint0_linear_17557_2020" x1="3.77557" y1="5.91571" x2="5.23185" y2="21.5589" gradientUnits="userSpaceOnUse"> +<stop stop-color="#18E299"/> +<stop offset="1" stop-color="#15803D"/> +</linearGradient> +<linearGradient id="paint1_linear_17557_2020" x1="12.1711" y1="-0.718425" x2="10.1897" y2="22.9832" gradientUnits="userSpaceOnUse"> +<stop stop-color="#16A34A"/> +<stop offset="1" stop-color="#4ADE80"/> +</linearGradient> +<linearGradient id="paint2_linear_17557_2020" x1="23.1327" y1="15.353" x2="9.33841" y2="18.5196" gradientUnits="userSpaceOnUse"> +<stop stop-color="#4ADE80"/> +<stop offset="1" stop-color="#0D9373"/> +</linearGradient> +</defs> +</svg> diff --git a/package.json b/package.json deleted file mode 100644 index 4e4af2c0..00000000 --- a/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "aqua-docs-v-2", - "version": "0.0.0", - "private": true, - "scripts": { - "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc" - }, - "dependencies": { - "@docusaurus/core": "3.6.3", - "@docusaurus/preset-classic": "3.6.3", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "prism-react-renderer": "^2.3.0", - "react": "^18.0.0", - "react-dom": "^18.0.0", - "react-icons": "^5.3.0" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "3.6.3", - "@docusaurus/tsconfig": "3.6.3", - "@docusaurus/types": "3.6.3", - "typescript": "~5.6.2" - }, - "browserslist": { - "production": [ - ">0.5%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 3 chrome version", - "last 3 firefox version", - "last 5 safari version" - ] - }, - "engines": { - "node": ">=18.0" - } -} diff --git a/previous_versions/version-1.mdx b/previous_versions/version-1.mdx new file mode 100644 index 00000000..eeb8c4ea --- /dev/null +++ b/previous_versions/version-1.mdx @@ -0,0 +1,4 @@ +--- +title: 'Aqua Protocol Version 1' +description: 'An overview of verision 1 of the Aqua protocol' +--- \ No newline at end of file diff --git a/previous_versions/version-2.mdx b/previous_versions/version-2.mdx new file mode 100644 index 00000000..0222197b --- /dev/null +++ b/previous_versions/version-2.mdx @@ -0,0 +1,4 @@ +--- +title: 'Aqua Protocol Version 2' +description: 'An overview of verision 2 of the Aqua protocol' +--- \ No newline at end of file diff --git a/previous_versions/version-3.mdx b/previous_versions/version-3.mdx new file mode 100644 index 00000000..18960704 --- /dev/null +++ b/previous_versions/version-3.mdx @@ -0,0 +1,4 @@ +--- +title: 'Aqua Protocol Version 3' +description: 'An overview of verision 3 of the Aqua protocol' +--- \ No newline at end of file diff --git a/quickstart.mdx b/quickstart.mdx new file mode 100644 index 00000000..c711458b --- /dev/null +++ b/quickstart.mdx @@ -0,0 +1,80 @@ +--- +title: "Quickstart" +description: "Start building awesome documentation in minutes" +--- + +## Get started in three steps + +Get your documentation site running locally and make your first customization. + +### Step 1: Set up your local environment + +<AccordionGroup> + <Accordion icon="copy" title="Clone your docs locally"> + During the onboarding process, you created a GitHub repository with your docs content if you didn't already have one. You can find a link to this repository in your [dashboard](https://dashboard.mintlify.com). + + To clone the repository locally so that you can make and preview changes to your docs, follow the [Cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) guide in the GitHub docs. + </Accordion> + <Accordion icon="rectangle-terminal" title="Start the preview server"> + 1. Install the Mintlify CLI: `npm i -g mint` + 2. Navigate to your docs directory and run: `mint dev` + 3. Open `http://localhost:3000` to see your docs live! + + <Tip>Your preview updates automatically as you edit files.</Tip> + </Accordion> +</AccordionGroup> + +### Step 2: Deploy your changes + +<AccordionGroup> + <Accordion icon="github" title="Install our GitHub app"> + Install the Mintlify GitHub app from your [dashboard](https://dashboard.mintlify.com/settings/organization/github-app). + + Our GitHub app automatically deploys your changes to your docs site, so you don't need to manage deployments yourself. +</Accordion> +<Accordion icon="palette" title="Update your site name and colors"> + For a first change, let's update the name and colors of your docs site. + + 1. Open `docs.json` in your editor. + 2. Change the `"name"` field to your project name. + 3. Update the `"colors"` to match your brand. + 4. Save and see your changes instantly at `http://localhost:3000`. + + <Tip>Try changing the primary color to see an immediate difference!</Tip> + </Accordion> +</AccordionGroup> + +### Step 3: Go live + +<Accordion icon="rocket" title="Publish your docs"> + 1. Commit and push your changes. + 2. Your docs will update and be live in moments! +</Accordion> + +## Next steps + +Now that you have your docs running, explore these key features: + +<CardGroup cols={2}> + +<Card title="Write Content" icon="pen-to-square" href="/essentials/markdown"> + Learn MDX syntax and start writing your documentation. +</Card> + +<Card title="Customize style" icon="palette" href="/essentials/settings"> + Make your docs match your brand perfectly. +</Card> + +<Card title="Add code examples" icon="square-code" href="/essentials/code"> + Include syntax-highlighted code blocks. +</Card> + +<Card title="API documentation" icon="code" href="/api-reference/introduction"> + Auto-generate API docs from OpenAPI specs. +</Card> + +</CardGroup> + +<Note> + **Need help?** See our [full documentation](https://mintlify.com/docs) or join our [community](https://mintlify.com/community). +</Note> diff --git a/sidebars.ts b/sidebars.ts deleted file mode 100644 index 28971397..00000000 --- a/sidebars.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; - -// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) - -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ -const sidebars: SidebarsConfig = { - // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - - // But you can create a sidebar manually - /* - tutorialSidebar: [ - 'intro', - 'hello', - { - type: 'category', - label: 'Tutorial', - items: ['tutorial-basics/create-a-document'], - }, - ], - */ -}; - -export default sidebars; diff --git a/snippets/snippet-intro.mdx b/snippets/snippet-intro.mdx new file mode 100644 index 00000000..e20fbb6f --- /dev/null +++ b/snippets/snippet-intro.mdx @@ -0,0 +1,4 @@ +One of the core principles of software development is DRY (Don't Repeat +Yourself). This is a principle that applies to documentation as +well. If you find yourself repeating the same content in multiple places, you +should consider creating a custom snippet to keep your content in sync. diff --git a/src/components/HomepageFeatures/index.tsx b/src/components/HomepageFeatures/index.tsx deleted file mode 100644 index 366877b1..00000000 --- a/src/components/HomepageFeatures/index.tsx +++ /dev/null @@ -1,81 +0,0 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; -import { ReactNode } from 'react'; -import { FaAppStoreIos, FaGithub } from 'react-icons/fa'; -import { FaX, FaXTwitter } from 'react-icons/fa6'; - -type FeatureItem = { - title: string; - icon: ReactNode; - description: JSX.Element; - link: string; - linkLabel: string; -}; - -const FeatureList: FeatureItem[] = [ - { - title: 'Aquafier Demo', - icon: <FaAppStoreIos size={'40px'} />, - description: ( - <> - Aquafier is a reference implementation of AQUA Protocol. Upload, verify and notarize any file. - </> - ), - link: "https://aquafier.inblock.io/", - linkLabel: "Try Aquafier now", - }, - { - title: 'Contributions welcome!', - icon: <FaGithub size={'40px'} />, - description: ( - <> - We welcome feedback, bug reports, ideas, or contributions code and documentation alike. - </> - ), - link: "https://github.com/inblockio", - linkLabel: "Our Github", - }, - { - title: 'Follow us on X', - icon: <FaXTwitter size={'40px'} />, - description: ( - <> - For announcements and updates about our progress on the AQUA Protocol - </> - ), - link: "https://twitter.com/inblockio", - linkLabel: "Follow Us", - }, -]; - -function Feature({ title, icon, description, link, linkLabel }: FeatureItem) { - return ( - <div className={clsx('col col--4')}> - <div className="text--center"> - {icon} - </div> - <div className="text--center padding-horiz--md"> - <Heading as="h3">{title}</Heading> - <p>{description}</p> - </div> - <div className={clsx("text--center padding-horiz--md", styles.action_link)}> - <a href={link}>{linkLabel}</a> - </div> - </div> - ); -} - -export default function HomepageFeatures(): JSX.Element { - return ( - <section className={styles.features}> - <div className="container"> - <div className="row"> - {FeatureList.map((props, idx) => ( - <Feature key={idx} {...props} /> - ))} - </div> - </div> - </section> - ); -} diff --git a/src/components/HomepageFeatures/styles.module.css b/src/components/HomepageFeatures/styles.module.css deleted file mode 100644 index 76591c09..00000000 --- a/src/components/HomepageFeatures/styles.module.css +++ /dev/null @@ -1,22 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 4rem 0; - width: 100%; -} - -.featureSvg { - height: 200px; - width: 200px; -} - - -.action_link a{ - color: #72a1e5; - text-decoration: none; - background-color: transparent; -} - -.action_link a:hover{ - color: #3176d9; -} \ No newline at end of file diff --git a/src/css/custom.css b/src/css/custom.css deleted file mode 100644 index a1aee073..00000000 --- a/src/css/custom.css +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Any CSS included here will be global. The classic template - * bundles Infima by default. Infima is a CSS framework designed to - * work well for content-centric websites. - */ - -/* You can override the default Infima variables here. */ -/* :root { - --ifm-color-primary: #2e8555; - --ifm-color-primary-dark: #29784c; - --ifm-color-primary-darker: #277148; - --ifm-color-primary-darkest: #205d3b; - --ifm-color-primary-light: #33925d; - --ifm-color-primary-lighter: #359962; - --ifm-color-primary-lightest: #3cad6e; - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); -} */ - -/* For readability concerns, you should choose a lighter palette in dark mode. */ -/* [data-theme='dark'] { - --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: #21af90; - --ifm-color-primary-darker: #1fa588; - --ifm-color-primary-darkest: #1a8870; - --ifm-color-primary-light: #29d5b0; - --ifm-color-primary-lighter: #32d8b4; - --ifm-color-primary-lightest: #4fddbf; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); -} */ - - -:root { - --ifm-color-primary: #1600bd; - --ifm-color-primary-dark: #1400aa; - --ifm-color-primary-darker: #1300a1; - --ifm-color-primary-darkest: #0f0084; - --ifm-color-primary-light: #1800d0; - --ifm-color-primary-lighter: #1900d9; - --ifm-color-primary-lightest: #1d00f6; - - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); -} - - -[data-theme='dark'] { - --ifm-color-primary: #86b4fe; - --ifm-color-primary-dark: #609cfe; - --ifm-color-primary-darker: #4c90fe; - --ifm-color-primary-darkest: #136cfd; - --ifm-color-primary-light: #acccfe; - --ifm-color-primary-lighter: #c0d8fe; - --ifm-color-primary-lightest: #f9fcff; - --ifm-background-color: #00010a; -} diff --git a/src/pages/community.tsx b/src/pages/community.tsx deleted file mode 100644 index 33c733f3..00000000 --- a/src/pages/community.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import clsx from 'clsx'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import Layout from '@theme/Layout'; - -import styles from './index.module.css'; -import communityStyles from './coummunity.module.css'; -import { ReactNode } from 'react'; -import { MdEmail, MdMerge } from 'react-icons/md'; -import { BsGithub, BsStackOverflow, BsTwitterX } from 'react-icons/bs'; -import { BiMessage } from 'react-icons/bi'; - -const ListItem = ({ icon, title, link, description }: { icon: ReactNode, title: string, link: string, description: string }) => { - - return ( - <a href={link}> - <div className={communityStyles.gridItem}> - <div className='icon'> - {icon} - </div> - <h3 className='title'>{title}</h3> - <p className={clsx(communityStyles.threeLines, 'description')}> - {description} - </p> - </div> - </a> - ) -} - -export default function Community() { - const { siteConfig } = useDocusaurusContext(); - return ( - <Layout - title={`${siteConfig.title}`} - description="A peer to peer trust protocol to govern data."> - <div className={clsx(styles.quote)}> - <h1>Join the AQUA Protocol community</h1> - </div> - <div className={clsx(styles.quote_2)}> - <p> - AQUA Protocol is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! Here's a few ways to find out what's happening and get involved. - </p> - </div> - <div className={communityStyles.container}> - {/* <div className={clsx(communityStyles.column, communityStyles.learnConnect)}> - <h2 className={communityStyles.title}>Learn and Connect</h2> - <p className={communityStyles.twoLines}> - Using or want to use AQUA Protocol? Find out more here: - </p> - - <div className={communityStyles.grid}> - <ListItem - icon={<MdEmail size={"40px"} />} - title={'Mailing List'} - link={'info@inblock.io'} - description={'Discussion and help from your fellow users'} - /> - <ListItem - icon={<BsTwitterX size={"40px"} />} - title={'Twitter'} - link={'https://twitter.com/inblockio'} - description={'Follow inblock.io on Twitter for latest news!'} - /> - <ListItem - icon={<BiMessage size={"40px"} />} - title={'Matrix'} - link={'https://matrix.to/#/#aqua-community:matrix.jembawan.com'} - description={'Chat with other project developers on Matrix'} - /> - </div> - </div> */} - <div className={clsx(communityStyles.column, communityStyles.developContribute)}> - <h2 className={communityStyles.title}>Develop and Contribute</h2> - <p className={communityStyles.twoLines}>If you want to get more involved by contributing to AQUA Protocol, join us here:</p> - <div className={communityStyles.grid}> - <ListItem - icon={<BsGithub size={"40px"} />} - title={'Github'} - link={'https://github.com/inblockio'} - description={'AQUA development takes place here!'} - /> - {/* <ListItem - icon={<BsStackOverflow size={"40px"} />} - title={'Stack Overflow'} - link={'https://stackoverflow.com/questions/tagged/aqua'} - description={'Questions and curated answers by developers working with AQUA'} - /> - <ListItem - icon={<MdMerge size={"40px"} />} - title={'Contribution Guidelines'} - link={'/docs/v2/contribution-guidelines'} - description={'You can find out how to contribute here '} - /> */} - </div> - </div> - </div> - </Layout> - ); -} diff --git a/src/pages/coummunity.module.css b/src/pages/coummunity.module.css deleted file mode 100644 index 8e5bfd5f..00000000 --- a/src/pages/coummunity.module.css +++ /dev/null @@ -1,68 +0,0 @@ -.container { - /* max-width: 1400px; */ - margin: auto; - display: flex; - flex-direction: column; - gap: 2rem; - padding: 1rem; -} - -.column { - flex: 1; - padding: 40px 0; -} - -.title { - font-size: 1.5rem; - font-weight: bold; - margin-bottom: 1rem; -} - -.grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 20px; - margin-top: 20px; -} - -.twoLines { - height: calc(1.3rem * 2.5); -} - - -.threeLines { - height: calc(1.3rem * 3); - font-size: 14px; -} - -.gridItem { - padding: 10px; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - text-align: center; - row-gap: 10px; - border: 1px solid rgba(90, 90, 90, 0.589); - border-radius: 10px; -} - -.gridItem .icon { - display: flex; - justify-content: center; -} - -.gridItem .title, -.gridItem .description { - text-align: center; -} - -.link:hover { - text-decoration: underline; -} - -@media (min-width: 768px) { - .container { - flex-direction: row; - } -} \ No newline at end of file diff --git a/src/pages/index.module.css b/src/pages/index.module.css deleted file mode 100644 index 385c0b57..00000000 --- a/src/pages/index.module.css +++ /dev/null @@ -1,129 +0,0 @@ -/** - * CSS files with the .module.css suffix will be treated as CSS modules - * and scoped locally. - */ - -.heroBanner { - padding: 20rem 0; - text-align: center; - position: relative; - overflow: hidden; - background: url("/static/featured-background.png"), linear-gradient(#30638e, #30638e); - background-size: cover; - background-position: center; - color: white !important; -} - -@media screen and (max-width: 996px) { - .heroBanner { - padding: 2rem; - } -} - -.buttons { - display: flex; - align-items: center; - justify-content: center; - gap: 20px; - flex-wrap: wrap; -} - - -.btn { - display: inline-block; - font-size: 1.25rem; - padding: 0.75rem 1.5rem; - border-radius: 0.5rem; - font-weight: 500; - text-decoration: none; - display: flex; - align-items: center; - gap: 0.5rem; -} - -.btn_lg { - padding: .5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: 50px; - text-decoration: none !important; -} - -.btn_lg span { - margin-right: 10px; -} - -.btn_light { - color: #222 !important; - background: #d3f3ee linear-gradient(180deg, #daf5f1, #D3F3EE)repeat-x; - border-color: #d3f3ee; - box-shadow: inset 0 1px rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); -} - -.btn_light:hover { - background: #005c5c !important; - color: #ffffff !important; -} - -.btn_dark { - color: #fff !important; - background: #403f4c linear-gradient(180deg, #5d5c67, #403F4C)repeat-x; - border-color: #403f4c; - box-shadow: inset 0 1px rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); -} - -.btn_dark:hover { - background: #444444 !important; -} - -.quote { - padding: 80px 20px; - /* margin: 20px auto; */ - text-align: center; - color: #ffffff; - background-color: #305f88; - /* border-radius: 8px; */ - - background: linear-gradient(180deg, #5d5c67, #305f88); - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); - position: relative; - -} - -.quote p { - margin: auto; - font-size: 1.25rem; - line-height: 1.5; - font-weight: 400; - color: #ffffff; - max-width: 1000px; - text-align: center; -} - -.quote::after{ - content: ""; - --size: 40px; - width: var(--size); - height: var(--size); - background: #305f88; - position: absolute; - bottom: -20px; - left: 50%; - transform: translateX(-50%) rotate(135deg); -} - -.quote_2 { - background-color: #d3f3ee; - color: #222; - padding: 80px 20px; - -} - -.quote_2 p { - margin: auto; - font-size: 1.25rem; - line-height: 1.5; - font-weight: 400; - max-width: 800px; - text-align: center; -} \ No newline at end of file diff --git a/src/pages/index.tsx b/src/pages/index.tsx deleted file mode 100644 index f96f7db1..00000000 --- a/src/pages/index.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import clsx from 'clsx'; -import Link from '@docusaurus/Link'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import Layout from '@theme/Layout'; -import HomepageFeatures from '@site/src/components/HomepageFeatures'; -import Heading from '@theme/Heading'; - -import styles from './index.module.css'; -import { FaArrowAltCircleRight, FaGithub } from 'react-icons/fa'; -import { CgCommunity } from 'react-icons/cg'; - -export function HomepageHeader() { - const { siteConfig } = useDocusaurusContext(); - return ( - <header className={clsx('hero hero--primary', styles.heroBanner)}> - <div className="container"> - <Heading as="h1" className="hero__title"> - Welcome to the AQUA Protocol! - </Heading> - <p className="hero__subtitle"> - Account & Verify data in seconds using Aqua Protocol. - An open, private and decentralised solution for data accountability and governance! - </p> - <div className={styles.buttons}> - <a className={clsx(styles.btn, styles.btn_lg, styles.btn_light)} href="/docs/v3/intro"> - <span>Documentation</span> - <FaArrowAltCircleRight /> - </a> - {/* <a className={clsx(styles.btn, styles.btn_lg, styles.btn_light)} href="/community"> - <span>Community</span> - <CgCommunity /> - </a> */} - <a className={clsx(styles.btn, styles.btn_lg, styles.btn_dark)} href="https://github.com/inblockio"> - <span>Source Code</span> - <FaGithub /> - </a> - </div> - </div> - </header > - ); -} - -export default function Home() { - const { siteConfig } = useDocusaurusContext(); - return ( - <Layout - title={`${siteConfig.title}`} - description="A private peer to peer trust protocol for data governance."> - <HomepageHeader /> - <div className={clsx(styles.quote)}> - <p> - The AQUA Protocol is a privacy preserving, open-source protocol for data verification which is built with modern cryptographic standards. The AQUA Protocol is not and does not require a blockchain! - </p> - </div> - <div className={clsx(styles.quote_2)}> - <p> - AQUA Protocol is made possible by crypto, - <br /> - as in <i>cryptography</i>! - </p> - </div> - <main> - <HomepageFeatures /> - </main> - </Layout> - ); -} diff --git a/static/.nojekyll b/static/.nojekyll deleted file mode 100644 index e69de29b..00000000 diff --git a/static/docs_pics/Cheque_Filled_Example.png b/static/docs_pics/Cheque_Filled_Example.png deleted file mode 100644 index f6d3502920254582ee247d6b58d23f69e429f30f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149525 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%0ASS)!~NLpg%Z6Z${I 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 diff --git a/static/docs_pics/Escrow_Gateway_Aqua.png b/static/docs_pics/Escrow_Gateway_Aqua.png deleted file mode 100644 index 9f5204325d799a4f4d917febde7f660cd739fb98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56943 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 aZrbl&Ize|S$$$?2X{sGkEmXET|9=1}i=4dx diff --git a/static/docs_pics/Escrow_Gateway_Aqua.png:Zone.Identifier b/static/docs_pics/Escrow_Gateway_Aqua.png:Zone.Identifier deleted file mode 100644 index 8001b8b2..00000000 --- a/static/docs_pics/Escrow_Gateway_Aqua.png:Zone.Identifier +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -HostUrl=https://app.diagrams.net/ diff --git a/static/docs_pics/Flow_Cheque.jpg b/static/docs_pics/Flow_Cheque.jpg deleted file mode 100644 index 8ff3a4e9f79c46968895ae72c162b02f33e29fe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220176 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�v+&8CjShfGqxm;b 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 diff --git a/static/docs_pics/Flow_Cheque.png b/static/docs_pics/Flow_Cheque.png deleted file mode 100644 index 8ff3a4e9f79c46968895ae72c162b02f33e29fe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220176 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�v+&8CjShfGqxm;b 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 diff --git a/static/favicon.ico b/static/favicon.ico deleted file mode 100644 index 487fce482c6b78e0e1793aedbc2f82641874c152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1627 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 ZaAhuUa%Y?FJQ@H1002ovPDHLkV1oW3%#;8C diff --git a/static/favicons/android-144x144.png b/static/favicons/android-144x144.png deleted file mode 100644 index 57ee3d35948247614413caa053f6df86d5296954..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9474 zcmV+dCH>loP)<h;3K|Lk000e1NJLTq0058x0058(1ONa4O;0K_00004XF*Lt006O% z3;baP0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt010qNS#tmY4#NNd4#NS*Z>VGd000McNliru<^cu~BQk$j%k=;N zBhX1iK~#9!-JN-SRMpwXzq4cyBqR`a*+dX(L=;7F0Y$Ldy5d?DEw*A8an~+tsav(y zr7A^Rw}K0{)(w}Us8|76L=a`)!V(}MA%yIincw@zJ#%w!GBcT(1Zm&reE5*L%em+N z?sJ~)obwzH2bVmgl1?TWWROM*UPOon>Zzrc8tMq3gWJIGo_u7}m0t9r4?XEd9v#Uf zjTC%%fDl0%siTH{l(CEL6j8)>N~t0A{~4fEx-y7i9LXShkxNG0cZwRy*v4v>vx4=M z5%~WEkcW;O&L~DvNRO7V_(?UzZy2bNMjEK6Ariw>v6W?f&O$a&^S=*JM}{$uQyD@| z(?K6OrjPZa2L*H@n@m#h;{}2QsHcWX$|+$7TiMDEN~v-RBe93&e8^l@Q~SROke|ai zld~B{hw!0vdNPDz9Kk@klS5iuj}K8xIonyw3RbX=-Om2Chef=}hip4g(&@kel+6iT z$~d}P^?S&tkdru`A#^1*>1stS+gZVU7O;l>;ln{T@eZ?CLH&UNseLJzi+P_aWR-lK zp~tmcRSK!SD5P?Irn@v!SqeXgJ-p1g1O)#<p&TybQ|hfIr)s!<r=_Zi_=*h)0M;1s z>X7#8L;YO+<qd<hpMNo)^!9wE_UmF9oX#&fi8KqT(OkwDIyZYjka9Ni4a*VtksD{# zAMqrEIFcdsr6b;EHEv}#udpoKzxMMkPq6sAGX&xxFURn5xLf6GqCRQCH#PcNf7O*b zLLKE1>Za9kbI=1q$g6yf&~<uQ>s8<EiZZ>bamomDQYnux;9!H&L|wUyVykJnx>EC- zHNQ?P^e2s1fjmtTL+P3mx5Sy`xDWZ%TNmgVty81xx=OvSu}TeJx0-93^yk4NKjZnF zp!LdUYpx5NkalXO&T~QIR}Y=6pKH3d#SPFGdQ?Bwaq8S8ZRFJ<ny9x_?z*-@f7gic zRrUOnqYjEQWm6aKr5quTj?xV6cQiGi)tah8`R!Ngpb@%3|InJGG+Iy<TA}APNkf(H z;KSqfxQbl$?bLnh6~1B%lgT<b;CMKe4=vuw({0-70%y5yRB!t=GIgBp(q}4f2UQ=? zPQ9n=HB>1!FAdV~wZTz$P+#gIrCI0ec#;0!Jv^yQWQ)Z+qcq1M4MJL@o7KZK-lIeG zQ+?1b(75@jSg-0rb+(^#sP1!pq$)k5{^3uwl+&6izXMF2c)-$G*}6%^uBN}Bezq_z z)B{?hK+IPSsX_ZyqODq|Z?#e@wMrYbO?y<OKr67;X^C!DUnAi>I!a%;YF@5$!(DtQ zlPv=zQA$RH_2EG#;DbZ?Jr^`{9iC${jrcf{Nt{QwC=Uow!FD#WkuB_?lzmjwK!6b7 zC51Gy$)$i^^kV@1=+VOd2~&uTyu?g40>gQmp02YMJi(*v1*qi-9-!jDat=Tt^DGWI zP0J#D)qVP*2I^7mjM6nqG*1ufVihXSA;4pmR2AqLU8QMStcr*{71BE0u73J^gmaDh zmkzUP3NV8n2O6FeSdLJNCN=9?O|;G>Fr8B4U%F0(%5DLHPZ`QpfqJU9dZ~xHsH4&y zDm^S`ay3%7=|h!8s6U|fE-mV$Wf~o><=sRL$i%wXX-wlV$l?}mAv^Bds#(gL%wYo! z_OTT5=}kZSafpe!W{_gyK@HTfk3AGq#AY^AOobzwk;(TsiytyHfw;gnZsRqpj(J?i z>h|QBCK|^kggWV|7N&l5D$(CHUL73V(o<*XF1@AI+S`f%mqMyniI(Xl-Jns*cNm-n zx>U1O8FxF%^oy`zFrT3Z0-n>@Xf<p`tFINNU7Ds5w!Pw0UtOWUYprVIek~_dm0G4h z>jx@u*jMB9n)bz6!+!lLY#YsIaC^fuiggHe)2uixnhHIq5%QT=>8LaGS8Z(OJtaf6 zTCN9lT=-R$uJM{3C*(D{J8Xr2OuzPor_d731#!aDpg9_6yN%uSQ_WL#o1tl<kjnH= zonv?0Y+a#c3dRNR-C=0ordxZ#(}zzjhhj!t@NCf(<=Ws((O2!jH<9__LtSWt)JqSk zEUvq551SXy(Xl<?>BOrDW$CFnzEOkT&{1}`x>`%)mRC|R33sGc?`gc@RiDOdVH|br z*JMlB2e^lnw!)Lj0|b#@zl%e2mFf<4G>sjt_Y%-`QoWwgb4hi?3O%F2=A-n~Q*qQ$ zstdv)+N;|N&{dYtbxl+wtch0YOk>=2)BP$<=p}=irYxoDGJTztTf1IAF#-HE{Zu<z zy?&EMSrBdI#J0e5oaM2PZS|2MeV`%6-aSR1#U(JE^osHf5A@TMaVu^o)oEtfrO;_w z(dzYIgnj+b>6I)z1$>Cmq59HP8ql7IuimH^)J+Iw==vyLSS<QLJ%v2R2}#k}T9h!v zlJvEHV0d__=0?0?pNj0iUkVHOr;_vYecVR~W$R_T%1?B%UT@L#dOe~XA=FjVRhRH< zEi_+#j6Tq1MhW-OAG9Y4i1z4a6S_Y{Z?x#FJN09opmpX~gYK||bv2hK1JD_iA#{@( zOobaXLMTr!xE@-k`;{q#2I;*d<i|HUS_lo-N=a3E*1+Y{Y5F7q9oW>KCro$krdM6< zsnkV6Xo4NbF44GffInf&x*PvN=tNukRO&KWp4jUy?z!K5v17C-i7&ocV}#H^EwGQR z(nM2dXZ<E>%pf`i^{R<zx((Y#-KP{GukN;iU!b00n<$~-Mh|xrLV5bPsVJm}l_Hd) z2OV9kQI8nz8Ksp;z_VND8Rh)G>v)Z3*dqUU&9-?sUJ7Zp`Us)!ddqQqzpgfeQ*YYG z9=6<}DlSX}pkvvA&}}x-^NbL_+@bD6dfv#MQ3(tJHc^FsEXzWFCBoSz#hs%m+LCbX z?;D8vX`bU~k&YKa!?e*HDc2bm4=sv6n3loImQ)B!{8F7}s$K7DLO0X7lHr~j-6Ee* zmZn9~Saq7EBaPxdQnM0{0lcm5rq$m%j?PtAA#|;+PCf~T{(l=UK<7|}(lx_W5Yqkf z3U$;Qjt70Mp++<(BYPTjztV(Kb#KfLv{^ql$~a4tv?ifvgf!FmglB5E<EZsE+4_e$ z63|WIF|_Z+15d7H{hVWWrX@y@O>w+RiOw{d;=Lr`32M5sg?zdx;@l4>)$0wT=g=TM ztEvQ^6VRWG*>Hoy{3z3SAv8kU&5`vQWIf@}_*w_(a_Uj8J~B7g=u*Svo9#z58Ve#r z)01)xUQ@mhx=IysUB6W~8fllNi?uv~XV&QFCbZ@>PUfkL5c-{6(<7FFxr<|4gQt@f z+L&lNn*UOkP?~GR;9sV>Q<5+Xr8#EI^<3?W`<@29tC1$)+DDJa39KaT)L0=jK+El8 zLERyQdfVe@#X82~q3QTz19U0%C|~o<jpaJkyiAk!+H3+Eqmytdq(z3EM>{w&J}TB7 z#su{1(gYw{Z1mX#M+AGbjxeG+9IN_^rS5lebS!wX`M_fRu(WwWDMESr#ICwgQ;hWa zED3m4nJ+awg60df8dz)89E}u0$0y{_PB#kSX~(f?@(Fd;=jQjWFb_QvYoup9`%#V! z#~z(1geEz}^S{+e$gBI4kUmAmTsX{OH#foajP8jemh+epx-OyTR_PKUG+1lxW2GkG z(ZmdoSzUM&1Eay?=Xpzig*D3zr3e-13%lCA#(No)V7y0?N=%rlr#@(LE~uxKqZIw7 z6|EMYO!aJn&;H7EvndYm?nR{tb=E@jdrMfC-5d>|p=?K~nq_XN)aizQnppo?r3mFD zq1^ZBC-Mm8>(vNn8+E(9LaD7lRIU+1xmuj?^B<H)sEggDq&<d*eqkG`mgr^yd65CS z6``Y5VlIDQSwguEQ+=mK2%#S*6ik(*THP+6P<B+ixl-55-zr4Q)miAsB=~oikzPM? zXx^vg73yO<N{cO<x`s0&!IQ&h2u-!W=~Y7LJco(@l)OUSwKT!Th4hHhgwk|h47<4r zqTfb^Xr{bEmnRVhk!C1WC`TXLN4D#GLg*p$yH@8~JoI#=sU)XRi8^bEx%gZ4lC#4} zyAA)`kZ`oGOh*ZMTeX|R5T!+h=msJ5XcF*9dyR^?+`<2M3ZaqqfYI}o!MKh?S^{*R z<+X$xHd7fwM>)Kh7v&e~?wX_&AAPH?LPKLlwrllQEz$m%5LIckP?p2!NQ_=qs!(T# z(pjo5^5{t0o!w+bsvEhaIXt;6K<IJ%)^fe0Nsez-Wx@j2Cc)nCDNX3y7~QK@_b5$A z>dTlAtyNE<!)zZaQ7SWH`6k;$snLUaPFw7E3TUF$$)0WA$&RN2b#a*ElGNy6#!u8y zC`X?r(Xhv5MVF$}78BSQ789a3mC_2(t<jV62pwj}mqH3Pv*%v2Eb3L^=ujA^QRF}& zhc+{enr7g<MI~?oBS@Uq0K^RY_Tdo@1(q|3b==3#@Ketpx!<)IY(0&D+OW#tOa=fO zm}`D}@H8`=kF_T8^`p>vG?h0Hx;rZJJ2XVdtG_1k)oL_WD63W1<YOJ$f{Rjhr-NU< zP&c7$N5C{u3K{SIoTzSgz0R>Z+3%ek)Quw`ofD!W{{<U>KAf7wS1YFo=-le~+!&r| z#zj7Y)X}uga0FKYRXj#nk{smWhhzeaSRdtz)G!LiIhR(QPAxjrHP6_M`(z<>Wm5LX zV&w>pifcBQn~QGH&CTxGq@hASJ()BQm74I|v>0v36r#vE{rpyh&W>sy?^dCZ&kn*S zMz6{%G%-%+wh5x8s*9lNr^zpLxHcpWkriOQFsi8EZjH><@%?ZY^KvA>u&9$FSF;J| z-g>w#BCRC^42pBUXj4bKhHoM)AiS89fz>>d^di;Kqyk^DGs^ic3<5~wh%i7M83aD- zcSKr36>vl(^RiV6u@>-gnB$mO$hUDp^ks{)dE7t;;6)ZE2~Z)uf$gk{ay~VT#8A8z zKn3)K+-54ii2^JE;Mk<rI__s9kmFiUGKb5!nw4=tG>N4x&W__;U^kDkFDZb!^F5$0 z0{CGXV(G4dWLp6BrV|v<J<8>KSq-ExJgMfCvK{E^sJ)y&u!SXD69+_V`MSlqG_I!y z@CFljn#}|gY*DItljTwEsR7m;@E+l?$Bz*j7j<B6nevp_5=tk{Rff<R4!a|ycTM=} zSbZJy&O+T6(OwDZH)bHntNyx9a}tP9OJR#VdeCHx`U+9WNDH8;)*P~E^t${)BeXXu zfSwjY*Ec)*UK|hwwI!<ezg?4ch&`=5ODE|Ot&V%L=t^}F>JoKCc%KzJ3UC2<@mRKX z@2D)ffdJ4i$pxU1-Hh+^7y1B;V{|kxeWEUd@5vK<#G{--7EsN9xS7+rhIc5V^=vv_ z=?3g$Ta@#emO${)6TGC-)#`B3XbS-S;u&;oMvZ*Qd?3A996Z2k#xT8Ah+>hSflT3T z-efZU@FKSJA{X&}?q`K#O-Ll_NKc?4DnS0Q#Ow}U(#ZoqU825ZF+jp9zKRd|31_kx z$aCEt;vbyJ<DAw;h^$u~%aeS>lZ>SUP{$H}%Xlv5O&X)#m1g?O_NZ5Mwf^g3p|lcZ zx+aM@X}?Yo^0}r>#io#UYlg<#%bvXYfol|Np?U~q>OnQwlT>1h>v(9tKGpRaXfJ*k z8gtzCF2$C+Pg=FSP73sABkE*N)ND>A8Y+|-XB;S~_4=cZwimEu>Qp`3Yy`Gc6XiVs z5J^E5>2Eq+DMEu|j{80#gwBsD)@ND@U=EoulpUyRR3%=dzCyWC0d&*f?G>b`vo6!S z5na?hx;i36%j0@RYqUXqS_No^JVIlmnl^7*%N6F6<0lP2q(t?@>S+K{<4UVi!%VgS z9{O`Gmrxj`)_nd5yhsgGfg735WQthKs}#0F9)Pqs)JZlz0@Oq`6*DYbIt{;{6nx;1 zT4^HzASJFv4I5bjbm3Mmpl{4|*pVO_#xL3_O+xF6J{>R6U|ZobuCLd$AjQJNkI!!% z^V+ZTE$<Ly029nSkf2$K9FLM;$ZlX9H^p(a1<?xzqA9#iw`MDr4<uRX_JVdqpqx9| zNe6ysd`9a$UcCP1n19W$5o0;m02KbFt$&pO9|ImvjniUsLv%wMGE=pks(GI+bmGS5 zC*-wY4B1$w-~qFO-GB%L<8TSLu>|PO@o_gRpFeUH9%`7%W33o>?Mv4C`R#sVy`RsX zJ!N<+NXSnkK?vApRXRRG)Y*Wfk^(fw(fp-s1&&H+tz$k96P88dhU6AaBtdnAz|v0u zG|-516vreeY$WKVjz(y(0m#G;)Y`w(Ndp>M&BZ4^CIE~{Flv;?!%W0W4G-|icLWdY zCkSNO0M$|tq}gq+wE(Ik;H8#2Xs~lOb|4j~qRs{=8>nwJI90*|pi>gdukv`9EAew- zQe$q((Ov*@Y=A1M2eNEqX1`?sRMX(6mKtcVlkRmSgMC!lzca`M8rajyBfn+?FeIt< z)_FX{XwD-4I|HZ$fX=o$DW?I*u>q<G<JRb<hJDaLxeZW9pxXYOP5}^#8sZMqr_=x^ zI}>guKwX$f=kE+283(*6%4sF9>}<<G!wzMZ3@U>lyUnR=Is>&fAU-qTR|F`kvajSb zATz0f#rCI`=B5xKLPk5)89%-$2DZZh78cS5jS}$F$S%NO3Yqi-f)v>|TUu!|K{hcn zVi3VYIV%7^Z}3SR7Sn+Rr;>7@l>100K#(8-^RJP7?xui!>;N+CAWX=_yu!a5!|YKE zeoR<oD<Qmq&j7N)e&hgBX<#!I<nuWn$7oz7(+(;)PAcQc2uCj<2iVDOAkQ8QuVD+| zwGEVNi(MMoVU21OA=qXs@_`1R@b7+f0*cvA9>0n<zwv*9QkXy*u%3NDFA8ihw*y%= zKzl7AUKQq`B5KImPK8MqcNkezvzao3a1Rb)H+xylk(|u)?1<oo*70XH9qjjaQCDsz z$JO0MCgT8DK@d3HPP|Y=2~c2j)DBBU?O}Jgi<Oa8!gk{<_Mw2y>|&F-p(Ed82|<=} z38|bNu{mN5(+@T#F6zV;QId0nhYW|?!u(sRfdRH2-9Qz<HuhRwtdy;=pLOPR0Rw?5 zd&tgf47ept35r{ghcT_K0<p<Q7rN0kYB|tOt2OA{fuqcC8Ndo{E65Csucg-Fpla4| zqFBKd0Aw(nIlv;WGltYLbYd^7*~qY{j~zj8HpkV#p3J0M)TsxJ{EYt`P=J=P6X<76 zQ2_R`9PrtzSn9$<2rIz?NGu0fL9M~?I8tcjD@qNM4rDM3DP=(nfO;_^PJmMBA0zV9 zaDWqMhJD84><+b_jX)QB&fRXSFIDkP7$8`|embmWhnc`oNDqqG%r^$0Tux>oFo#J| z{p}RS@{hP|pa!<M=8d_j@c?J?-^qUfKd0IfXdxBA5c-(kYb+~hI~$t-+Q3$Z?qa0@ zs24|3L=B%Z*4#9fC#hx;>o@`s>sshCFMdY1=r|iAj6LnJk}yUgB|W_^K3Zrd6PjUn z>P-ycB%5;=S&sTQlr{lW%2y0+WIpEskjkmN34Bb2Ns2w3p)6(>A8-WVp_pqZ#^>UL zbY5V*E3oF}4jymO#Gqxmx0$-fSc5C_S?KDlVhFtn@HP#=DYn(Tk)=R3r<mWhEU^Aq z;C33WwWj3nHNzguRUnjOuRN5d3ZWBBT8EIHb7Zy)mzFc3Z)tH&`;|*o8@1GHg?cMR zX{PvfgjPxVMm>en9q9(1l~-tlohjs7YcY96I4~O4&0kPL!D_x`6aa^D8oM~pk(KcW zJVgo1_>6M^50_KTN3L!bLcHbTAdhW290>Bo+;$?>L<ud*<_-=A-eLz(=$OxYDv$CG zqwP@30*k-bnpqb%KpR-W>HGND0F=&SWV%vGevi|5g*s-MtokYZjLEJhdDzR@EOg12 z1GyE?7G}i&Xg}lapkIjNxBw{TH2^MfgjV`;J(Fxv(a0R@?|CMs=AhfGWG2z4BE6$b zp<KsuqLwtZDX;u@P`ptKI$S#xQos~zhV3+Yh5FeEa$3@AD^+*3@kv}XoKn;w#_Ly_ z1^Ji7SPWjNPxLDtV^W?R%+hk`d8b*nduxmd$!5~RlBVEhlYg+9MVz&tw;2<KX*)29 zdDQVP^CAIkt{KfK+`=;c&0N+bwCzq_c+yD(@=(LpHg?!qECYITMbwU2#aq@NA4Ik_ zt|91L3Dc7HnI%y_h-21#NTqsTQ&i~4Kp(qIR;hMHDSPy;a~GCYN`{8%_sv#NZ!`&a zZi~S`pISNm$~Z1EfPGnuy!uOw*M3LYLaBPLRe&rCYPV+VinuaI-yE~11rgFLM}p=k z-K>ABv>6NmV{i;~EDUeiR%@XPZ#idbI9>1}W^+@BSGgqWo+)EFj~O)ZD5u1gN#9EW zXEBJ6P1H9Q6|*>MC-U)aD;+F@!Hi)%!^w}(g+Aj2z{_OUgmyQrV>Up5*PN2UUDt8U zrgJ(kaemZlmT@lIfS>aSsXzmtvZs}d`ZauJt6U4VZOo^+H<l7}Ts0U~o@FqYQyCWp z8h|}q%16K{{3GgAL%4^#0KVibdjz8erSg&`V`3$tdC=tFnPp_nbY%&7Vidn#mK3y$ z^twG&t}P`)N9m>r9jbZPnJTYPZnH#SZrZHFty-g|6|iU=l_*PZ$Ed2zi0UC`DQvy& zY*ohG)vS&;;>>5?HfSt*&m`lyCFVTpKUg)dX+E`}IZtLVlk?$BUX3v?dLb9F9XOxA z(Fv$zI-6s3Gtq;5hYa!Z70<RoX=m{;7ttxM=~nBwnB~BU%!)D9c@t+@zQvu~+ggp| zsYK}!6R$PVQ%V!^>W(;bFnk`D4vM#2+-lycCT_R#g>;X(lsshC&$Bun&694Wcss$d zV!kES=vpC^6=x2rjgF0M+FH6s$Q=`zYIT#mLg{)kW-Gt4S{LHh_&9hJCCIBk#(ek= zlgFS-Tr;Tmnyd}&QErVh^FyN^RGN@Szl_OobtVZ1OX5uw=;IND`n8f%ce%-Y(K|xA zo0g3|KM5%O>ZwCqrMCuauC{7Rlu~4O`GEdnB39?x=~^Pw8&>zPGh-IbD6*V8l(#t? zF6Wt;(|<qaYPJIXd4|(kLH!o~<obOrqgqVs3-D*xqJ%!oqK8YE*YQhMMGe>nIh%*b z27)}#tyBOf@j^_&Qp^Q>0q_P_TEk)S(KXbg^k#`|!`~+8K;KF>**~U@AxTfUc*CQY zA~O3KuB!&LNJ6p7B#(?-jxp2W8}t{GL2<Za{(d0Bn(aV1XHappsg==2`(|+l7u4|p z$28leV=s?$G(R-I&Y_;`DPa>o;ZID6q3ZjR>YC>mq-6$$#%8L&fi+Y(EN&lj$%`^O zK;-cdgRyowx|jXHkvwg$#0~L0`?!uw*Igg*v~_Zt#YTzHa5f`!k!vB!HeD=_1~~FK zg*3~2)qMRqMmo_I##{@R;W|e@Y*x-P`3=Lxt2}jflukNTn^mfkh-I%rlFD?GNiI3u zPW2;6|4_bC^fTAa37f)+-9C!pfyAK6)FZzu|L<b6Io^?uBsn3yZ7pF`hHi{15R1bZ z!rD|uw6geeoz6Eo$xn1Gj`_ft8N(dO39C%9U5Ys=8F(Oz7ZB>K*^WoOq)tNUSl5Ea zc^YQE`56&6)sm`B=IFMSBVyz!59oc<3XjgQv;9iaT$8`PuVc+pP>)*MO*C+0@+%<v zvjm}`E>ZWCv5H5!zR@au->mcLuV*8q`wN*|&TT7$qORfDqp7A7r|Xw4KK{t$a&YIC zo*nMaGZNV5DgupVCqm;K*`pftu!%Vz?aD^CTQ`{F>AGAiTiCAmv;#o>BIXxq)F&Ei z;sf3Eq{A!>X}0P9?(F2t!oK^Wwr&vVVKOxcO?34BdOc(Upoi;2$7AdCq6XNn@<_8~ z*E3xk(I!`Vw#eBL(k9(%GD3SaN}swirq3`6q^n+Wv~!bAw(8r;$!&uNAdLqJBA;${ ze3^PZX7*s|r5Ub0GFNDVy_L);z2eY;Tl8z4q5f?e7%I>z7d*T4c$gQIt6N-I(yH~4 zNy^(xuRGw`70z{6k=$+wEh(272&HPOW5B0T&zhaSI%=xR6sXkGw#G`=IK5^MXopm* zBF)vKx>CcHpG43s&(@wH73(iL#?;}{$$H<F&!t$Cjk-TfA2{GC(-l@-b=(&BoUc}? z2k#=3p$8n{jiBB#;?J*3T!V2Tt<&}P9;j(LNz+y2axnuc({jC}TQyF7qwthh>B?0P z4brh1ugi43ey?Y>M^d9!={^<O03WJ9xw>;mi*%~#&?8+L)5|r<G6MoU)V_Pu53uq~ zXX<{}u;HTc9yu!1o31a|sQJ3gusHJRFkK&E`^J!JwM8H5Px_IL(jbk{I9;k=YO1Db zmOj!_t=CTNQ=Ne~q@8+QSE{Ei&wA=Mt##E}t*6Z@Sf3`iWL8-io*>iPXX`8{9nO4< zi|%$Q@ghw$GABnjH{0O4P9N)XhXtLb5xQ0HYFmWlMgf&+rz&hHnp3UT>orZ*5PM@c zkNWBst#o-<A+6HoW+bkoe&gCIdzY@T;0f{Eftk%bgwHKmG{yDc{d&~6tR5Yse>RJ~ z)N7G$a;#@ZX*yKr={~)!Z?#ADF+y1()oPc%(rfy)&QNbh96L=T^q|%?1G7TYOs7YK z^_uH5Y}UCJ*9Cb#kySH^*^q;o#u)H%F%LSDwuP9_-OM8dWN<roHgj4-Y-28O^93a| zxt=L>qB}k5MGv}=OBU()fB>~rv6m8x+0J%$v(FJ2@pA~HIhzy7Yu5N0e!&a^KpN+B zCx<)EeZ>@OYG{zZ@oRgf&H<o)yls7<(al_n68%nHh0--M3P0598%@)N8enhW=qw)j zm8vwQDOJ9R7E`tgb&X!p<|wJ=Lb_KTp@I6VYuGBN+2IY^>iA>(%bw=cjpt~z)aUE2 zfs}ye>j%1|m95$uRHXNHuO_HaU2J(0t$3879y(SN^|=0{l2(GP#X4QrXpO7WR_W2O zQ&GWfiEFN8+_a9|$_->gE>pPPCGRS!jWI{VNdYR@#WuFFja`&cNsU=4>L-mXa_CHV zdeMho6wo2A-O$Bua$QS8w{Q<LtvJ*+e#NXdB=Jm$Qn`w4mLfe%OWVAcd`OL|(SGe! zxyn_cD%G{Rm3r&csCVrxOIXaw?Uc13PVz9y(rM@rJ(1L=dk2<^b%zPe(7=rL-F7x! z>cvx3Bb1^aYC%$2Iu8uh=}jFM7W6y0v26j3wop1hVl~EJ{#AmTTz#$oXoL2sHlpYa zDWDpaYOOv=DC=fW%XM{l95={ZPK--@MWwd)%R$`EMPz}8A^eOB;|%Wxxr%?%nS8p? znNH-8Y1=_{RI`tA_OORC%DA1Wan&h`c%J9Nv-@{3jp^2W`GZU8T*zXAmfJc~&&9Q8 zL4}Ts+lRj>j_w;$ksj3GaL20S4Mw(&ciNY_^IL0AR+OTVnx^foXrU5asQ$`RT8uE7 zN9pRULv>v%lNAD5qkD9CxTYXWxuU(~PW!1oFNbq27h4NKeGFm(=P@Me@;FgL1*Md* zn?01XpBm~3V%b5NbR>^16wsB<<d6}yq1AlJYrMlY%ZU-|`5QA^UFLs~$j=C-v#Tlo zH$g9HYn=Kmq>zFNw#YIcjT*E@Pw8|M*+hg`%boOVUwfzhjVC{aT+X@lwd(fMk5d@O zG4yKt*4&0_*}?+muz=$5SZpKT@G}3jR&f7!0|eluKW8(6VPW6LPcMcuiV+-2=Olp= z^^~xNMa<`Gb~g=E?`1x-m_uoMgLB{jvZxayIhQf?Yl{75(~H3rGK79~Czp(HGOVbe z1gK^&#jNLBzF{53&iS&ntm1uU^L0W~`u}SH0xKWt35?@-`Z~QxAKB#7jqY@(EBWM* zO$I3@+f{>!2$ivmo$O>c<y5=bqms4E<3qlr{6O%{cLz`yj{*ugfsqWRYozJW9(?#r z4muGeL@@GuSF@dOSil#oc1`^F9|tJ>taQ3_7=;XFAU((<Gp>AajZ{&_HrBF|Z`eR- zj5MwP(*QM*mn`z>Mo)Uuoi60jflSg&*0msw)KN_(Wt6a!9Tc;hz0`ge9P{4+Q1dqU zNg)M4K0D=JfCd@~9Slg^^ncWPe*^7p`G)`i03~!qSaf7zbY(hYa%Ew3WdJfTGBPbN zF)c7PR53O>F*Z6gG%GMLIxsK<%|PG)001R)MObuXVRU6WZEs|0W_bWIFfuYNFflDK zHB>P+Ix#jnGc+qOFgh?Wb&&X60000PbVXQnQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@W UXPfRk8UO$Q07*qoM6N<$f&x4a+yDRo diff --git a/static/favicons/android-36x36.png b/static/favicons/android-36x36.png deleted file mode 100644 index 20a4fb8bc23380886633398ea2b015e8e8a975c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1891 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 diff --git a/static/favicons/android-48x48.png b/static/favicons/android-48x48.png deleted file mode 100644 index dc662be53c04b93ee67e405b33efdb3a30eea727..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2650 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 IM6N<$f;o`NsQ>@~ diff --git a/static/favicons/android-72x72.png b/static/favicons/android-72x72.png deleted file mode 100644 index ca8a8828d0e490da017153ecc767ed32097a8d49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4390 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 diff --git a/static/favicons/android-96x96.png b/static/favicons/android-96x96.png deleted file mode 100644 index 4d4105b752e384f52147991b6ee768cdacc133e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5922 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 Eg0QZ4m;e9( diff --git a/static/favicons/apple-touch-icon-180x180.png b/static/favicons/apple-touch-icon-180x180.png deleted file mode 100644 index ab2c4bdec6a34b2f3d4e71b9c1a57f1a7113453c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15374 zcmV+pJn_ScP)<h;3K|Lk000e1NJLTq006WA006WI1ONa4m&DGw00004XF*Lt006O% z3;baP0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt010qNS#tmY4#NNd4#NS*Z>VGd000McNliru<^dZEF*dUU*4qF8 zI^0P_K~#9!)tz^I9M#qLzgyLt<tEF$_X@ZhFxa8D&>@h7kcR|9!V^*;z(Ybp2ni|V z$rC~X1W0ixp&5)JrWj+4ZEW0|+$7tQY)MuxTjuxvF?Uz9vZP%Vm-o!aLD`+1x%W3` z&OPm(<Kk2$7cShm@kIZ5@#4je3lJ6|f`qULV-Y5dg$3wj54^4EoLc0<jUPWrq>)7~ zx%4EL9J0tDl_dPQ@fer`G*L$ll^ms<GRing74<X`AVm0NPo?F=P7QM5BZYKw$zw1> z7({=1lS3*=hKG+GuN;4cX{45;lv2b#_E1PMmDJHd=wwgr*nyuM@{mRjeHq3W#xRV0 zvha8DnvGOY#7?%coqd#2Nh8+Do#x2|+Cw(|7|H}DF_r<OA3GW!ev(MSj}IRnJa}*c z78W7G1PRb&{<R`2EGpT{W;U>ey_8aW^58x>K)c9hAY+-vR7TSqkMm1E8Dx<~4|2`F zEHX$V1wTGKxPdTX0yI%i9o11GUBOYRsG_bV=m8G0na^0yb`Da1G8W7e4|Ea(naCNO z&NzBC-`_<Vy~rb<fefM_ed$FuX(Zu|dr1+Zff_0}LNP@YQOF@mD5uGJT8IN|WHoEp zLdl6<EKe-ZS&U;Avzg3*W-j*8harq$6vG)v9yz3RVOYYVmNE{pmtE|jfI^NsB}M~# z_>2{-qJV}IH}w+*w2PihXFjtSO=je-eg-g(NsMPW`Sifot+x~n9HEdMY+@tZIou4l z#Su2~5$~~qniB=UiMU4}=5anV7($Z$k(+#`FoVeqBd@hpup22v6$jYPT0Uh970qAN zu!E0S!lzW92oR3<^?Nd(%a~4nL}^QBB4;v-QRI={tv6FUQwmeb0XDLn73?M$`M81I ze8?+&O6~Cm;&@&=lX+aj9QsA1LSN?a1x{xG*|?6mxd>235qmhwMGWll;6l7cAp;pk zKG}F%xqgsx3iybntZPQLfxW!L3#_N<_~|3Z2WS_N#8hr%A^mM};b8y^xR^=wCdqMI zVQUTL6tIzv?BWnrr1CiD<L=;XtGJD2_~^j^Ml*p43?a*`y3KdAsO11Fd5x7EjUZb` z0k5!#-Gn(V{*vPXv<nY|xRz@eP6~jJ0bIysOd!V?91(~unkeRTK4Cq3IZ7h|EFhhq z@~sX7y_aiQg8&bHQt8P^rZI!@<l@8an67A|l$E^5@`z3%YFN*6ET$amRCP@`$xRMd z@(xv42zfP7|E2d;p^%!%Qb_gMr+@2PI$b@LEVnR+OI~H^dkUzdv|8ijmq)JXwY*AI zKb@uf^sb84sIV-@7@BlIf7b=diQGLzDbF&uOZsIS)ZG{KGm@`z6?u5TLoR1?6En$l zc!orfYPPeCWo)CGV001l;U|MUhBAt?I4c2DC6<a=$|iQQk5cLgMEyx_eB?5jh0J3J z=`n9rh!U3YH$JD<9!G#(Jk5(7>RywkJArnQ%>us3bdmuwnaY<rpWGOb8#&Bs7PFi~ zgp6kECYem~8OLPCGn8H=MIFx_ArU4_9i{AI1MAsIDYelR&P@_SIG6L8M6SbcB|_|G z5ihZuM*E{GmheZ`QhzD}?PVBW;wA<F_!-8P+`upg_dq>`Eax>=QE4D{kxDMZIF0E{ zq#wyqU8J)EllfnZTK2P^Rjj9wqfukrLm$rMQl^s^QR)%U$ZDSET}thdh1tv#yy~=a zP7O-s9A2i*mW(}hwU(;RArGZ`ZPD*FU+Gc#=~F+=)!lkcg`JSciBi3`=~>;PsmgV% z1G&0F&ufpGV%CkrdQ!8M8aeAQzhh!Io2y+S7d`nZYwg9)r-}N73Ke!tp;0^agcdkJ zPS;p{Nl$Bg%v6sb)o6_#(<K@rzXR;6^iLHk=r}K^)w)gjk#ib&gY!x49+0|9ZU%ER zU$I3-7Uys)XW2s9P>>b;f%iCS{(m-On8!IxrAI=yw~W6zU_yk#)*!w3P1MVqkRm7! z@CpCn6Lv?vNqJnyw-_9ARvG{18P*f9KUmNI@hatARror(upj&T3Ea+=WC0B3dTwS| zta}-Y-F#qR&So+TIF|_|w+phU<0uuBn}3zmP)8#HLRh$P<Hb)ZX=IX34|2&hp6j-+ z>tX=?IhVD(!+UI}0Vrlq1kmVNz4$Vtc#<Vl0!-n4^7$)8U6a;b<7gjqxQm4(ftP9g z7njnbmD9F!FRzf!6fR@|<D!euv1C!nAqv^Yeu^mJ2$j^(5LE$>B{zOj$s~tf^kV>n z8N@*PlF`mXtmZS8u#~Oz<7ZskiWs)o!?Qfke*6Dcu!ujfqbmwu=Ye+N=Y0N~S$H6o zh1||;+Ymg4LcGHBOyXiDv~dOmC}9U%*vf7Wa)jzmMOBl?q7MTY!C1yIg4`BwS2Ng^ ztmbuc_%B=LwL;~*!XNqEX5=~+^BC(o4|QjOc9F~%`7V=iK{nU&4aT)GDS!$}=}S(l z--Re)1FQL*-4sU^KPUM}CWT~@NHVS>iy%!j(Lh71aaSKb=+8)|at7ntSPR0G5vF%L z(zBiq_#GeGs$mn$_yr$#7V6FdoyPUt#b{j6m#_0x26f^hqL$5k$Vzrl9I?y{C6PlO z{pd#@dXYm0sU$~Zh895rG*U-36&$97gB;>;i^t?9oBoVvE^`^)j=*Z0f~@1Wylz`A zK|bbT-s>FHodY_Jo4Jc&xL`2f<_3Co_!1UJ_?RWEridyBJjwK9Bx4xKVET|nDk=E! z;%U{bDnbNlqJcUpC}uZ1*v4+k9D>J34#Sztc}yjv!xOgH$#40G9f%3BnumC|Gf;O1 z=u~dzZie7;F@hg(C7B)ixd>Cje|U{`9F7>hxXEAyr*Rr%=tm|g_}dXhty735>Nv`N zHnW=b6ww&<qok3~94=#4tDf-o$6LtndD_;S!mQ>eorAigl)|m-!a{D1(LYt&A;ZB^ zNC)+_&R1{wj9K7Tx+duky`XI>S3``4tutgPq*|3|t)9@e8lt4AH!oQOb)y#Rs6rjO zhowWhPq`5f-wMv{um`upl*El}v*8)17gXP&0f$tkmvo7G%4-~=e)ZGkdQzKJsX!M2 zZb@M^=&)Amr<$uAc?{To4b<24p=x4m*Z5GE>VMSJzDAH`%sIY6Kp&T}-iCQh2Vu5U ztL3^yd1lHkrD~MEskc?CrVdTIBV;M02JO*vx<dV;=C@xXb-y;NG2!uBvUFGvM7TP@ z8%#ZZFngHKN47^}r2f$%m;>6SM>H-fF48n!ck5%-bnqqaEZjkr>J?qD0a371G*8c| zBqkgY59(6gqwI(m<atINADCTC<#oac4c1c~kj<7VwOE%%T}sIst-JJz>SUb&kegu& zt6Z<>8ug2ckv{r{K2<{pu5wV{iOi#h-_rkh06mPq(1=i9{YF&@4=$tv{aho>)I1uf zFY8^^b_(KJm2}aeYN=Fz)p^Q^hPr0yS(PR%x-9M0ElRe3eS~}3u)$gt2Z>QHZsn__ zK@Q*K)`YL$$frEUQyc;yi+Oy9Z!!*lC)SciUgsZ#>D7gho{KalFoSH4a+EL@MXaHo zd~y;}BwS=Mj6>|gf>efZh+W;8ft|`N6xx#QHtkFJ=^xeKG|RZ#JsPbaX-kavw<8qL z>zXRJM(BQR=(2{=pk=yAeGFfx>PjtBV}id8X@$;;c&t}3zsnxbD0w-DwKiCnYeRy= z39Cpy*RZIg|02EI0fBSu)s|_Vk*%pZUw>C=mw=Wm73nvcYL;i0X6SiUCHVN7^ol0f zGqZTnc0_cYT#VvnTi2MOcN1Kt!`iMpBYLOu^<8aDczth;R_TJM#)8}$qPz5ImjhsR zdRtd2!(4TQex=fOptc-~ca8ox5{IedVS084&^i3njs*_ZGtm{=(gD4%>NbXDX|1j| ztFuRw^+%O-36PDtT1m3i%5lcnN!D3<QpH__I;^ewzWN!c^K_32+n7^GYxFM%&ll^v zkw<iZFU5qEIz@i2VLw7yx>x1V+g9jDI$ghLl>;oT(8UHAzZPn72hH@Bv`b%8nh+YL zXSGycQ!m5U{dKE8N?5kGMWy<K#+sF+hi+FvE9W%nEiKd-J>`gTZq{WHMe$=!>#$=c zhTKfx13TpUMQwN7_K)f>m-2M?F}!N&11&JGd5W&r>Mp+E2XvRRgwR0!N!7BnUr%Vd znPRf0>$f`4MX0OwvSyk$B}-q^&STDaQ>V)<w<c?8^s}(u)Fd0|CjLa9&P!?+IsBRi zgeGZ;gLju`l3YSQU8zIIz<iE@Ia9Z5dl!xCBYM!7y?yj6^F~>!(@K5A@U=_5b-k8# z!0c#^8ugwQ8mKe$742&A{regxmylN%XiN0ddi_ehBdH0ubapS93olnuWanu->X^tD zT_~TBTT`{H1;4I{a&xwR(5Adglq&Tb<q4r2-5>Mrgmp+yN4e0i33^2PyR_T}v|5)M z13g2xYER6!b^4Q$<mtLYN1~q>=|)>fTC8GnCz7iG7sGjn5c2D4?T=o%T>q_1A=F>b zt04x;wYu2A+(Y;4P#0mY(bF1iCiiW}2yC)cueG|v=)x{#>oUEqnogVbmV(-#FB+(` zbZ3k}vQ(ja&GMeF|8ua{`<i0&bUnW#yE8y1^CPMd8l$Dr!H4vWnS7caP-V=dw(ACC zoM!8Om2?s2dcCC4Mh<_u6{#snVI9`9nr-gt(+K@o1)Vl#EQPdDR~T05srwzAD_Pp3 zE6sOj=)>seje0cV)7#Hw9bXb%%w{7N%G3j@k6w1Qv57poQhQ@2RHQr26VKESy2#Cz znzU3?%{p*JJ4TYFCau>U>L<65OX)gKuj^>1SB9WI*TqI4_1EL7aoj1Wk2FOtp(K4- zMbU5e=~DXv1bDUMZl)~$k9y?M+1efj?TEf(GSepNgBWAFLO(a=Nvdw|qHMMl)W@1D zw~$8*v@-7b<$6wYjSA?|Al;)aomTpSTBUQ0vNuLA#H6g%>q#@qJpDd;2TQM*x12J* z*-@Upgxv`B)?cGbOi2IGP_s1sK1Mfg(BI5AK3%UJU4%KLb-F+vA-87fodm9CDWna$ zQ-cgZ$(pZ4I^0RV4(J`7ZcLbY`Y7fqCHjWp_u2Y5`e~K!P>K*?K4ff1VD8P|X+mCI z>yWiubcrz(Zc?G+<{>TDO!Lh`t?r^iXK9<RF<Q+e{ksF2#8LfC=NN0vrF`9`wGN@z z5o*vsHNw0fUy4!n!unLx&BOeT4oAoQsV3Ty$)nuck^IwZZEJ9#-il7NMvt24!gwu< znSOz8G@LX=Z+6-{7ooknRmnmwjnuOp%ry;blkV0CGnypL(^ERosRv)B$Bc%Yp@$q6 zu~erg)I$gj*URSGmKyYs5nX(ec#tcPe-cDK-KL5tKYy$lM%(zADjhej)We30`s)eR zbrI%+`mQpCTpFm~cj9W6s<cQK7+Vtc)oohdsZkx&on}26s+VFU{yyDk;_BCFck~f& z(ToUBKai;Dat(X!8@wOo+%o;pXqe||ljEiVEjH1UbbYsrt|QwH>}l-4hhrXRM<}Gt zx=*7G7=BIHpLMho*IBO%%{3NkljFSz=}nC?qkJm*2paY4NRVp<QxcQUe<g@K`j#r9 z&uf{+8xDEO@pLWi(xpZ^U!;v)gt<zO8P{Wu?rqm$8ILSg>EF5{5=hkrZRp|g9@xJ% z*2v=@MzN5jBl^B!yNk3fiqUq>vF}&T4-%2n7uk6mL-bx$-X7LnM($l7W180L=jJJn zj>@afQk|aEa3h@VR8gxi2ec>Q*n3dh^c^GAzS2pzQ<WYv@_3M5jd3=7Wb~3O{V}@W z*6Y`{?jhbiR`+NbD9hp;h5#&Nyou3RY~n2}U@(_Bk{QFS<8Rag*<9Jh<edO-@Ouid z{j%SpUn{n3n5F!Xe<Zk7%F9Tm;RAe(BD+(g%H$fe39pc+Ip|2joXAC_0ad&f$)P5R z1x&R69M9Z%#`r8&*&^cg=o2j0ca7b3v%?;;bVRopHS9cxN2@aw)SH?vmykzSX;Z5z zT~M!Uro0-VKeyP1)E3p~A$f%I^irqAkfm3QJkHc_W0u5EG~4j>pQAiot)Cbzn}4=U zyN+eUBxW-jU=EXwn6cQw+gQLL&UaXtVLsq3f<Qjk+dt|gS*+w&W^3^R?q*D@##JNB z*+hr}e!<^qNMK9JQIn!SfB{{In$PDFGJqQX#&$>6>v$HB4pi|5rRK9V&S8Z8=hT); zUM$c9nN1dC@P%k1ZXNHk18^~uS<w?kDbI5lNaoy5Y>&rrrS<%ZkFbEb{D7%#*s!Tw z!`UPub|(mR83h0grBA0v2bo;U1YC%%yco?+g>=p}f_Nos%sv=5BRJdsdN8x>eLbzy z7j4CEcGQhyX{)jN^7WMC1q|sa<FgvAce@}oEN#;bW(A+3H`+B&LRzbflqBTRFg+PZ zfQ0qB@`Sv)Pt{!*p%m0($`x{HtUhrp`Bl2xEPh{(#^eKfIT8x^AeN_{teC@e27rq* zqXMRhm23iFLQDeXAzq{kNaK8Fc7b0G^8_yw07mmY&S_WE_b{0sb1q4UJv_=k+AWFH zNC9O)4~BQK{EC;$n2HCnkC&tQ+>ja38~8A~kI2VFrrBSQWwP_-bOJrl4lxd3rr~-~ z#oN>YIm}~d^hAqgd`1WtL%6z2`yKc44voMdzRksLZX{|R>;!&dpf2DS{DZnS&#hqx zK_HJIT~50g%$4K-4J<KiXVX-s;Q@+R7JcY_m}jqUy*R_U5uzDr591gIFon_PV~YaT zAz%>m90@r`c#We#3g_Fqg*r(g4p9Oma}`&`<vX#LZHzEbLjjMns7<JkvIBsD<aH5d zaC4sF>HREr>`Uy;S@Z$itfSgU?+i{ie9lzo#-3)NvzbP3@H3sh(GOFY!x;K7o$-zv ze{A@90GD?up&>vKH9!w0ksIe+i(UMT+j)<X{DcK00lRpVMXeS?5{K9exEV(8E&~nu zTuvsoYOu@k`3$Bog3I}$<Gmgp5zZqR-)tc^vuU3F{XnKfdCSdY9%nP3Gs>}q*6=n* z03YWvp-aPWWFH|Qmws{2J;Y=Di#qCnb9oRK@6g0f9>v8~$86thVmGBgHpAQ5+L<`H zS-{^}iA4d+7#n?yhwxqej3vv#vAsB*S80T7rm{Gq`+1{R8g3_6k7HQ$CoWuMF`HQk zMK8XI)ieUVxVVd@TI$(nh8Cae$|<A~_?#aj7V<y1dD}qEF;LgBl}4a9L%V6a$p9{3 z9raZ59#=)hQA$Leb5JT18O(No$>c?Vj*KFm3G@LUlN^Gh8Sv&fy2Ww|0T0ue+Qms! zQ3yca1d`Xr@oi?~MQq?FEM+YBaXv}F4j$#j7Igv}qlR(!l-qFOWg&xb5oQx><D5N& zG4>xL7#`6)B1q*h2{-g*e4JP9AS<cFUI??g#LpIoDFOWCx2M}1^0I(?nS~dN4g8cP zjN@L;$8Vti7gdh4Qy764*vB%CbQ9Dgn2Q@I<)he|r^isANSTkGjE~6S2+(=<Lm2E3 z9Iewvwj*FTv$~iV9ONLCKsx>7Ds})K&gDnU!h^*Ie#To&;2thCT>WoK9Oq_p8IyrV z-sIzM;c6EtEFcT0W33T+ZBaU7ZEMuUgor=O2HMXs+eR5lejIRCQv$e{OMVvxN05Cq z0NHWw>4bVd_c0p}VK(qEi<!thT!4?koFB7$*UfmYCLP$t%SJ$TmAp(fM)w{*k8|$O zh-Nn`V*lG%r80&LNM~fLWgwdA5T8>6WHL7)E^LpQ*n@za1ayvOsL$el=HMpG=RCq< zCh~p0&iA>o#mF-_pSgf|mt}EY^~A_UFXrF|j_{eoLTrutMa;YY46&t%4Ro6Ae(S~X zIH7@^>;_;Y6S`b%s4l8=B<}Qa;pI#oU@k5!*7FE&Fp>MXp_N@VBe<G8pp+Nc*$qHL zGBe2r>e<A>cF)XZq|Jy~jI#f5o6m;><T0?_pNq{D18^F>yJ*;2lyea9kQe7IY6-QE zIXu8Tz+yc==Pi1)x*I)-vsr)(SixJ}Qc%~+Xhs6CKgMin?cPHpCfG>ZmT?1K`q^)9 z|2XFAQMMV4V_KIhI$0ER1W2KOjGiMzL!4@?e&+B$oEe4sjW$HXK)%Q*ppF;V)D26b zi=M{nD`9J#>kW*&r^D>!&<*$)OcwYV7-w7CAqud7evIjIV~G&^s0Gp)*un!{%40lF zT^y)q^8jb!LagUu-fUH7x|q!cBm*0G$yqtN)0D~-l7T9A#;B9WQeMO!$)`7N8)!d6 z@IwXz<M3&r*)KSv%Nhp+*+U4(Y>^jum|yc-e#&!kp`K%8wOG$j`A>@?R5s;uIg@}e zukax?_Qu~XjM{J12#Y;2>SSwoHW>AwKi&w?g8{PQs99pKQU1qvga4q3Jpkmy+*Q2A z-zle%M|r*-C#XH?x!liO+=yLlXd`GljZ4S@3b~&LSw=~hTC%vK`otj)w0mYc{cW~Q zVE{fG=yZFo*>P6?TJ}=~Bt=%#E|93A5aFUvjQ;Cl8fTD#*w3RpAEyAnk2ATC*<^AZ z*R&DoPT^9{0K|5F&zHH4r`gES=9=goq)f9MmQmF1d0zV2MxmR5_`!>tEPJjwaSHZS zQbZW&!JtmnCvuWSsWHF%w*Y874+2YRU?0B(ZfLi@jgPaj*vy5t+SDqI;c5!mO@JW9 zyurH+XFl_pKyOkyECN#*jvI?AifC-tN!*7_TfFp(0G(^Efw^(AA1aJg>Pw$4OK6Ki zs(@4mwiv9N2|S34B{Z@(0jRy4%h~NZ1KeCj221#iA}SFLY+^J2<aEwq217g8EyK?s zGN_`FL)5ejbkB%@?L(RkbWhU2XaA>NpvwU0*U5AgCxzKV6Oh(Qbul;N`5)Z8Nh5pt z6>xpKPA5;?-0vP-#TVGj2drQl#WW!f^Ctgc1amo)iS$pnbB2$;<WdEcP}Qys$cc<P zmrUGVJoLm5etN`-mXz5gB+2ih4lU}~&MLw{#xdpnL<0vI$^E!kOe1@EEH2cEP$n~( z&ULJ2IcwNW1<=H1HuDlwnad1D(>I}QRXOx#4^SRQ!OM&=WF}d-Y|-Ji>&&&s8DYxJ z($uF*;j0QZ^AYc{8Vl%kjEU61E4<28T*QxX@j6ZH?k1>Rco@Q9&SwiNS;+>92mnV| z$_EVR3}!QpQE{rKLb_2JDh=bcMX6-rAq**G*&LmN%PuzA9tAl{1Gb3ioUvk2%v#=O z1zSzb*h^jumwy8<@hCgkiN&SdgNxU?5o#OmOlEQ#SFoOs`IIeG0!?gT3yYb-Ly`Qs zHYwSRxh4)rCzFMjunn!-);h3zuC+%^R1yS|$?1e2I><g&@E)t#8&#~bIi1T|tP71S zXEz}>^K-=I{16wfMxnl;gBAALCLco>%zSpThL2gzenP+zR#MD_I2`RazL|Qe9Ra@9 z?va6yCh$dMbh`a<`%7WK1k_W=?BK?u2DY<|_u1fRxt7N)&Sge(q{mP?*Rz-9gxJg@ zz~%e^4Aj2@ZtRv&t4%JlIfF@D$QC}~6?PCd1v%qAq-+2hsUh4B)455rzjcv;%Zt}u z+kA11kbtq%l1c55a#zdCJi*RrYZ(tina{aQAwQ<^O=J@D@bY6mB+O<WL0rKP5U<h1 z9)5+mvD>)XrX&V4h}qPzFX4pX415F$Qb(xWw>vfRZ7OarzDVbv_KlFBaoZ$!&{#Rl zORO?~Co_)oIET^nifOXoBo8xrkO%nyi_QE37nk!x#OpM%hsPP-owaogxyVkirjk9v zRJ;TU(GaI{X0rXhx=6w0#bZ~J@;cP^X17Z-7$M`d@pnkQx7fo*05Un9i<!p|GTWV! z3okSHF%R-S7MpkkxQu%diwQD;fyb#@W#X<TH-5Z8IHvuo^Y;<dd=bIux79n3{qtsN zX%R+%+tJv|GR3gG9g@)XY~T=(%{RD(JdzWD$%U8c{1~E8ySRiO;lj)J7=HZAg2o+R z1i(<#Jtaa^5JLFLiLzo;;(Kh%&~5*`nR~bL5@ooV%5_mWYDJsVbY!B{tRVypVPV|( zdhArr;6cO(SZw6yxVVT%@RHZ<Vxuz@F>AsOJ}%}Sb|WV8K-36}iboGFZ)@*N5sTQ3 zp9;PhmB^6?(GhR1C^GTlQISmegvrPBsI1<|!??Mid-`;ABRPB6HL!v0ShhlUED*Sn zEokKM(z*x{rYR<%<cemPChpB`Vk7&3OeS_B>)yu<{)e;h02}!!OK3O++L+t*uWbyR z%3zofVHCy5{!Gz7+*mfyVMjqizd5<dA?!Uy@`O52xUiN_X$1N)sZ+1Kk6Anrh58}h z>dxj>ohA_^j4j}rK@A#Qe2$q$9ta_D6C!{h<Zy*28DZb(0M%;@@1}%Z=Awkp02tco z%|u@2aG%+NcB(*a83y!3ak6m<V7Kz{J3cdv+KAi{1v%`HEw-*K>K$>oh(XhsaF6F8 zTi64nG9lqyq+`j$Tz<rv_<)VP6zxxR@+eFlLBQK=kRTce0B%x_1zI#>c?sDjU(mrT zX=VwmbAazR*?NuCVI`z_G_r~spchlS6p`_8CIUWWG#4jc-uAdrm>NQWpEL(Y*BGGF z96;Ac-u^n|C2V^?gN{&W8fn<gJ8GkDlO!^6W6?l0p#=PQqKwrD7#Oo#pflv=EG&jH zpG!^w%_CskqbX!Wffh#z03I@<*o3LIMXyB-mKV$R_BA;Ip=o5`#-fg@sNUfx8$XRS zQjrkQVYaaoNMc;4dbG5J`b@@?-Sx_p-9Sy08<d*ewxWzM;B}ZQL8@(z4p4>V#-ak* zZqNv&&;u_}@5n9o(}PqX%#nmr21Bf(3dmtv9KT><<fHE?0W&ljR5D|LK8&!v^{(i7 zrVUjSl~``VloN&k6;XX6nO^vSASF?)*+s7Lo0ZT&Ji|p)nqXCaWZ&KY7u0MY+f@U@ zga{I#iAEX-A)v<WmdJ_5PDO}fEFj5YFVsc)9Mw@}%jhy1@dYTS(XhRnzWAxb;(!Ct zTyoe49HI`fjCF0AE-s+dwDYRr-@JRO^%HGn#488@bu3~HAuPhte_`|Ap4>)0qQY== zPX|ZWaR>`Yb^u)+iNI7+ZOiC#>c|LDPEFLUo=*}GrjP(W^OSQ<%=aKifhL}%xE;PW z$_#t?UtC>E!#Xk4Xn_6~UXwPanE$%DkR)6LI79{DBF_QzQPZn7%K>yn1n4qqkPUP> zeW9GA(UkE1q!Y=$h)CET=G#(=2{V&3d8*ZXw^$0s31OaEq&CygQaPJUpvfd>rWuTE zDyAIark5iD;YcJ^xR?g;BC05598@}%zC3zTfJF(VQSh@EKoU(<vWF&exP{Nz($0|U zPeenhZYCG0wB~0MW0{K&s5dneav0z+SN2j1_!!`b|CB`ZxPt`jeTEHo8d;?yKe8wJ zcnML#UM3sSk-}iIDJ9Gf>PcffkGGRiS<P=*`~QK+h^0)v%hXnZ?#T$;K&9C|(8rOH zVzH9|;Ad!5GYW9X-qRame+1|zdsAK&MN#u4ona&qqRH&RvS~2ADFwDsNiY0NX$Qy# zHt>0;QwdKNC2<<(w(29ay>elS*b6|uW9Lns+2Ehd$mnmYIbhq`wHzR1107%w4W!gj zNUd28J&Y!qIs$B^Au5XoFn~=!0fh{WlZutXO#a*n&xAK2KVL_Dh#ezOyOHoFwowN7 z8SdEaTf!c~M0cnFP!`$ca)g5sphFZ=L4Jrr%A$J5XtF6M#4bvrKkv&3d;~edCT7Ml zhCPg9IBPmQ(HV?yRZ2R^ViO;q6tPs#I)XqCMmx-~os=Rx40I&b7f1Fc7uv0^?I>dj z2grwm9E_AeU@(K&N0>wGhytC#IC3c=$Xc$C1GI}ioX%$*)Sz8l#%(0G3!;kve`MuJ z09ur=9)Nxh$FIc(vlNbXq<`*@0KLmz6YaO;s4d}3qC2Re2jlPo)vR}bHP$#h*Ksf| zgvre8M8dkqG*@r?@Q`@tsqUp9o7sz9EWSAcTEzw$fn=sc#a=zTZLt|*hb^k@Z|c~F zaFw%*1_O?d(|Ddn8dyhVbc5P(MzS7@{j6hb9OtKx$qbFD*pdj9v!9eW9364%oM>ub z1vNkxlN^T0Ub7VTaU_$KvCH-dm9xwC_j}D1wo^fFBReQFYKx0W^rearJJ`i^bAjGW zV<{Ch@Bx<@phHy9*vbOpLQJB(l{MU=vW@V8c!RBRz1<eOPl8czanJ~?JWg|raUCUq zm$42n<pHxphkX><=7iT^wU>S5LIFil{csQyDIi2CYob8AIGz4fAXZU8HXb0r$Gk$I z6?iPt_(?1L*~Fhs+U~KmfeptAC|?5Milj(nFG?<i3qNi`tfl~PGs@v%uVXbe*rDW% zXr{pK$o})KCVM|BR1UL+X|SK2%)pJ^kZu->2~o{T#}?pmjAtt$4)B2~gOx;IN_nT1 zVY`^gj~qp>FvDo%Kde2$JekXN^pCrMijVmq<{cDb9_Nrs4NIv9vY6q>>fXiYGy=H> zH-IX(*j9FcjS+`O1n5dW=UV(_Y>Y}|4>Rb?9)c9GKMHg%b6G|y0hV$d190KtH14K` zPg)uFUe+E1bjNZ-x{I>8E`bW#hxsqwivc>!D9*%-#b!P+l_8ylM+-OtxS7bPD9|O5 zeYywP7Lk$7%j9MbFjQ>hkOA7o2xj5sbk2>*%b&wAO0n3$3a-Wr_?XN0_&Y~iyqqG1 z!d6<tH@55dJ3izhDS^O25@CWdW6R=3X5*)Uw<y839i5@MsocwQHgc|`OiTgW>_4`# zFLJSFGi)DQ84BCk!8lylx$$>V%TRJ-hB%VBY^0WIUSlD-xPWB7z*GXQEPUJeF$Y?F zE)Jh?hf|OP^nf_}Oa++?bU6Rv0<I<pv5R*I06ke4lQ=wt8#$i?^pA%3YS>_J_Ow_Z zEnDgUx|Fq?hxZU`nQsJz$2gQ?Ve)exud;&>D_O+_=G)XZB7-6+vI3t}D&f8aLTVY@ zz}?Y@A>8DX2ZUJ6ZiJUf%x>{;Qpk@<rzmB$?c*tCee>>%W}vHC&jALDPdR9ScD0d$ zHI+H+r;)?F#Oyc;0DZZdqZCksby9tKO>9o!tUly%MvGayfL**n9gxXIt(0+bo^P=u zQlDlkJDR8L6sp^8>tYj|;&|OMxQyOFfDc#^2flQ!<L^Ad*O^3?BMtb}B$+qZc|efY z*@lIi2`r4GBv!M^791hgICn8SU1bOPlm#T0@e%XeO-ghzi+Q|2fMWi|%yx^ZxkzIK zL%4v0tl<MzbHHT!bew!-;*0xUgsJSbZ?APW*utw+0~uT%H+ABmDbY+3Yn|J+oIuyH zn%#_p73_&qVJ4evSxzAVKI9#)i^Hcbe0Ukja4u&rt60u@4pG}-xQFq52FBIDi}{Hu zNYpX%lg@}%8n`v^BHIvdrf^{#FG~~aA_munSXmY8{N2W9jDsDlU_!e^SzXNH3p`7J z68_1IR&?cKf8oMS8sizuwG{9PE7(Y3ocaZ^l*LR&$4zwD-Qk^Eelp2t60@1vN*?!0 z-k=)0WOqD%F6Ui4Mq16v_KK6axs?)x&e4uI<*P&bK%?Xm%GINtXaQ!aN-K4X>4uTm zG2PLQwe9QfigXxE;P9!prsyU;p>=JvDlXAilq}@dC2^ar1@*25*;ii8oLFdMIoe_s zo9F{;`Q(_o11+D)G_K;;)KkujoWYq<jv}E2&qXF@P|C|4h>};b+>~%@kBZ~$XpKy~ z2Ll<$bk1Nz)JxHl!Yt-p8i72%Oy4*&tKn^X{R{AE%eZyRxX~__a|W4Jyv{l8Hs^DZ z%5{9ihrlMDXM|CEEOt0zkL{BvW^OBa{0G?4swCdSeQ~2N5ROwl$xTlNGoI6!#waq| z9qD@h&H=#36`UC-$Y!z2w4I=k_gY5rTK=|?_ql}AU^%O}q}^mjH^cZU+bN}yB~0NK zk^vWc`IRGp&_2-le2eKVtVD|!d8pN5R6!0WbltYdMK6Xjo@q>BWCDFlOL?Bv08HUa zaVxRb^QIj?3A2Vz<BukT$EZUtU8CZ-{Yy&pP1AYg4E@KPU7?2}%|YWH{q$@rlI}02 z9a#4rF7?z*{g?ivRXUPjSC$4nsR2SLS5L%k*caAkk>=G!+<Yvo$G#0UEMXzz#ru53 zWpTD|_T*+Z@G-ECzc7H2Kn`E0il?ZG%P|)9X1jarr=f1OA$^QvCes+tP`hGALL@%n zX^H?3S8!3BpqyynRlC@In9uki5ujl;A2N)TGXBYI^4f*V!vwz0J`NIM3B&jfJ%L`_ z&d`KX4cvJ7$uZ8T?#&08%stGFQ;p<U+QFYpo#+{SHEy2(v4vOc;MEb{NWALoxooyy znP(Dc1X-#dnpb^*o-{2|Ej6e%fulw*Yp{})8gux&QD|i87mgOaiBgH~Htp61>AARK z!&0^GvU@oPc`Z)e(HKhSH`F4J=Bpq9iMB;on$CX{^jZhIYOc_jZkETf#|1I{7Zal@ z{l@eg&(s4kO{-g{u$F3=jle;^)G>F?OxD}{@NfdgNJz^}|4x_YX?cg*p>EdM#}Vdy z{iVarS?lz?h8c6_rkIYiZBePNx8K4h7Ik#zY7!4ng<P7Xj}zeOM*S_?4);Q>>p)B1 z{kpcB^oo`T^6EzIlN63~IOo@(*EGRgae-DPF!!*YGW^dTE^3RP+tR_Cc!BxMk!L5* zFe+}Blq4>ugvTf*%sZs;Afpppe9~H7Xxh%eQ;R4yKqkFf@#+OhWfBdMuu_}XOQx^M zx)K4F^HXEgP37C1mVg}C%JX)pyMZ@Y-j>4Dwy{&dbBv`|15230m*T2LnS6<I{zL^q z-oVHGj7+GwSqgdhT4)(w&SQ2PIh|!Ze@wFQIs7-hTbMl_j_@ab$5ZX9io(Oi+)1i| z`C}e5TSi9mZO%=AS!#Knb%a4|<M~#*@5CV&y?K@<<kngGyp7k!ig~pPb-U?boTO{D zNudN@ypWz%P75)RtY4{KfmV(tZHsi^b{t>UK{J--L;5_@1GZg(Gfy8XEL%@ns+sZ# zp}{R$%v){D#L~;Afh$M3vz6LK2?6b44x6x0y1pIL8@pLL6>CF`@>8H&OrO^zU7@ux zeOlY1B^ugd`YHNt8^5%)Ta%6f`X=pDP>qhGN%i`d^5vDk&BG_3rsx%Or#ii+(+tc5 z^h;Ga?s`<~RMslgTXmuRn;<XHzde}S79GOkGoIlAvTAvSNqi~hWD%x-C;6PaSs49h z7(c+`C2DBmb?W#bGvjVg&ZTFI@U2BD1+5Az7yDb;<+z8}$c}MCxd^b6xg@nCIE0Tc zun-?m#q0c%Em*kd&+UB85$UeyMV{dTZlZsSDC$w3<0D&S74RoY+LKc4Iiy4*FLD}J z<0<4BM#jW{#ddzitAr34%#Ok`f_w1rB2|P~Mm67MVH`(%<}npMgS^1XR?l_OK+!St z`J~leKMVLBdF{qyT=?+-B`o6i>_xa3#O-{|k$&66Vt&U~wsM&7#rQLWyvYmphM;Pm zW>wd6<GswYHR>eY9Mh^gq_;Fg2>Er9R>!<pyLG2&r0&)jJ+9(*MaLn1^|<KJUr=EJ zf-9_T`kqnGTpFeSjS(6Fy`j@hYvUREJf<c03Y}@+Da79y)b*%yDz{OJP_7<wv>~@t zp@&V|&tzSxbq=U473qHUHxurw|8Ao*vQ5>xw?lE3M31wzJ1)%idSBNVW80;vdQP>D zc?9&f<`}s>Qh$r-NnW6vBd&rqG0h&kKz;cgjR+0Xb82wFS)zMQH~AD@(*o)vdOT`e zr|VL^(Wb{CsK?DzyZ4wA?LyxcmFh{&G;sN}KyRoq2Ii$Y%fLKHe~ftqNAy5MS31Zo z-BohI%|za?2R}paI80hgh0$*EDY{B)9Iuw88oi)-W}se8)Favx^XfIzzm$I*fSw+0 zQQR5@v{rW-e>2L|P5LCpSZ~x@I@9>t^Yv>Tb--M!CpFOiWi5|%OJ_<$KF(tuLLObD z&m6Z5Yq#z&{Ftmu^>NH#oAi-xRHm6suCCGI80|Dd?`iyT0D7v{wgIxGQvF3|E6toa zNDpXNjBu;hE1G4PBu|gT1Phw<swPIH^P)&cz3!qkzQ%rgQM^gJVxZooI}BI*b*|ot zaYBW(OAkf$WS_?B9&I?r&9gqTtaR%!Q7c=8xn9fkRrNR8xL33FT#Kknjh@pKvu@<+ zk!Uk&ThJ}nyoe^hoO#{9ou(%bP;N`yJ9WTu>#z#+9b*xCb%tJ0T@3eB=p`*wQuHOA ztKVr~j4P*D4{E$}4F`4CF;?#%!^r`Cu6s4X_8kl5>Q=3EtUHoarr&CWfwI4Tslzdh zvrZQofx;H9O1y?q;?JX=y<{^Me}Emh7*DFvXk6ql2G~vm7R7A9%kXHER2L}>XBz1g zQ4KUv#9G!7qz`E((=CPZEMz{@7(f~#*e$yOdN`^_3J9``XLyV^DIx^;n8w}Q%4kOj z+M<xh`GW~A59MxdawNRj4Tj&cJu^l8mX{K)<kdkM%OaW(>ZylR=I{VmI;5XQm$bgR zTf1XC9br}IRb3pF*IxD3`TDc=sLAlQrJ(9mrafArzv}zCNMn>OpFGDH+-)5$x#X5d zUSoJq(o!?Fu<Erz4{L_9%+=iLr#rMdMq#rQ&|2MK#^};`J>$@+ErnH}n@w+f4)Z{V zdZ~3#&317b53&Fs^yV(UPLAUe6)fU$b|N611^hRs#dujl9N;zn##R~-;310%T*v~3 zkrJ)rDJ((+spl|z*v4jda)2s=groks=1fmFF5LJ@CWUk|$s&gy^q>bh^kV|O2~fip z-sBy2Q-=k($zl#)VV>FS6yf<=-sRV<r3vtHI^SnuG$bp;K7Pg`d(&Vg&+tpr2=BN6 z4Q}S}W9Hz6K75<6)5CFzdfwtOJ|l=7d%lB9V&cxCi5<MatL!siyGdaXXR(k;^d#9) zRayq}07u!+cDAsM{Z!&6g*4L1BHKXPgB-HSB%M@}@#8UtYQr>9%%?2n6G~0_Pd6D% z;(9J1FQ$TZh=V-O(`K()8s~C1GaOck#a<rfUv@Q*8ve=8<8(vq2J*0g6@(D#t)HkQ z=H&}&xh{*oe7$vt*2gS0mcpvjC;G0&E8V=tE_s!!dHRtSYnLk25VKHPvJ_HK4Jy?- zEzy6pM%z`SGF7WVO$sQekU|O@L1rnWIvvqwEz%vDqKv53=~WNS)o-**ffyabQjOlz zRgO`AQ`=%R{*bom=18td4bQgI#;BX2K97|))Vca$i_||$yL4AndGc$vo>g&-j%tJb zseYvC>JeGNg*@u1S^Acq)(Y*`5!EW#!ZjJ|Z*HkkG^tu8+OGfTaeY~nmFbY~Ny^vx z`hyA-Xz}ZS3iL~jjT%;C^_ULFoDtM|T@%q$YIxr6pWadGoGZk`0`6lvUdZAG?leV1 zB6O4&`3oD3L$f!RaU)Y(>>v?AcJUwHV>6{O1$I*C!*E72j6w7vhcuE&!e<IRG>ew7 z5iJ24siB-=_OXkd?Bj?dV&fr`{+z}am_y%Vl&lIq;yK<m$-`O9<{O+FliV5LQy%4A zdoDG+!ozl+%!vUSJe<uvcJ-SyF6G-yi78zlVikYp9kVIP#X=roax0e!bC|U(=QH+j zq(y;O4;l2NH@)da53)%o6+d1)2#X+%)KkMzDk!6rQYu<>Ky;Hq9;2DTTqd;9qG<{D zn8a~6L%D*lFfxW^>R85Oth7C#mAuF=Dc}Te#qltQH)yb5%!PV0#!QjID$;K>UCFYe z(fidlHEO#S>3cd~qm|Q!C(k9nQk9`>^-zwom97+r*oi&->Z_@`N<Y=xI@oSRey!#U zp=@2CMXGEelFIaCbKvYSzh-dfouOUvqI#IbU0g~AxS7mtT;5_gOB0{+58fi1hq);3 z<r+E2PPVa=JshHpsyHp7Taud;a_B>UhB1cG45L?E?`4R;@C(xUB3Cgg=4^|-JjY)n z*<D5ag}-!VA8Oa!)gFd(8#mY?l7ZaFO)Xm3h*Fjj;L?P(dy6VcI6x6a9Hf+Tj#5KC zO#}%!BHeaX4?oGIkx34{=u3YFFo1k|N3GWQw2yb_&)gPKpe8=!NnVfS4{qiESY($L zJvl&wi+<e1*X&I!S$u(8nbTsYK!~v2fuutuny8_QDk`a>iW=%^potI`F5LKxk&;0c zS!9t-7HOT>US|<HraDw5i}?$y>;*8)N`B9h&Lk3aC(r;nT*U31jvIVT;wG-5PdD!; zl&PT~Hrqm7c<|uCn^5jZM<~orp5ui`xVVnR{2!ktRQL7-Pzv*Tk=lr-<E#2Op+tjI zjV#sZWnE}Ik%)sl!szY^Q+1CwHAE2`Xk;jvP|J4K(Zs-nyI!6OBrLY^zx<xHwo5L| zdVa~X6n0Nxk?wL^Ta>ebee|U-o)E=+#x~N)!$)W2lO4Wjy?CsPV`~)Ho{?}XB?1z? zTNy9$FmIUh#8mStKVxY^8@v*t?q#_oCU7g4+tsT54CGR7U~DIr!Z2G{L@xd5LoS)5 z;KzrjMSbTGA)2V8nhJ_3B+N|==-|DCsACm><vkADAcxq^)BKAA-C66RyWedOxm?88 znP__$QyI;*T*kl-g5AU-zD)=}DP)jACK;rYYD{qvCP*W7)KN_h)zr~Ike)otoDRLD z77c7=5wDrHsE8{5!xOBc{zO}V9VHijCi6S?6R<71bj{TtRG@|gcSA{1t?qMJh!Kar zuSM>hS01??uA>w^*Ma>8Vby4z9?<w`V2gUzaVPyxiH2MWk(+ET<u%F(+dyULZ2hmc zs-}&EgO*gKJCvhT`4fsGy5v!k(v+*;#NBUVQ%Fa(S`TV+GssQs<#A4n+uOI({CB*r z>L!m%xQ2<5oselv=3>rfDA{ecjf_x$HLRnE63VEgh6Vx-E!uvTZrpfDB87Bv=tV#J zGmCL?*ii&1XB%&`gk6zB;~@_75r5+&YS8f!8OK-u@-l+UxtKALD(!woat`M(mcDV# zWMR=nJvCHQV=Th}L1P)(5T_Xlo=#e{!&lqa6V)7KJ@4`%MG>tn%n{b`5=%L9JS)T< ze?`~NI4))(W1IH`=W#moIE|t7IzcTzL>(pUWEIQV(7eq*L@A%~2Jdj-c$eWjF&0G< zWBCH}nMkh)+a)oSX`Idk2Gb{+oY4JbQA07i`J6SZcj6gjKWkaa``xR?wM8e+bn`Qu zxtzsR1~(^Cq%wrDOk@m0=tqxehm5Y1Xrzn-6tIQOY~_G+pG-A7`IPrq<!Cf>oaw~c z$R7GJh1pDJtfK`Fe)=+)VT@oX1IVKXX>pg!)=7k@ri?=rvYTD(rjT-HhIo(zY~T|< zVe^S?BzH2L5m^jlGG{QA5suV)AeEl<A&-3W=|>-Wl0$|uQ(9l>B0(+NIxM4vLmc2B zB^;(A*5wwagsrS$Et@Gk@!q(T<MnajrYA!f&r~KcqGizm4=H4jNv82L+je0JNhWIp z6P9hHo?5D@HeTx*s;M;@BMu5s%vRR3p6wJ-eR3?mlj&Y_;iU)t7{)jzGK&7KmxJ-( z!;25ENsY0cN_KOlAR&T|w$U*ZqJn*FWg}bJM=8}Ovy;@R;K%fkPBwiR%t%HtjC^tv zY9QV^g{Y;BLJHW<E($55lE#zYtm{+&Ix-S3DWs7_Z~D`pLG+_9J;)>#zfnh8j#hw0 zfF|mwqKsk=P(&ezD5siw8c&_(MyC$Y%_DN*#fP6HQpq#{!3;7;BN;zllUNs|i3aMT zfyHWSXrzgtX=r?k`QA=Fpkqg8r;NHy+NcX>A9!IQEG+ZiQx04w{Xehy4Z#@+6Yc;2 z03~!qSaf7zbY(hYa%Ew3WdJfTGBPbNF)cDTR539+GBi3cGAl4JIxsL=YIpen001R) zMObuXVRU6WZEs|0W_bWIFfuYNFflDLF;p=!Ix{gkH8CqNFgh?W$XSt=0000PbVXQn sQ*UN;cVTj60C#tHE@^ISb7Ns}WiD@WXPfRk8UO$Q07*qoM6N<$f;SphRR910 diff --git a/static/favicons/favicon-16x16.png b/static/favicons/favicon-16x16.png deleted file mode 100644 index 7288cf2b6666b08d023c6226819178c99de4ec09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{XiaP zfk$L90|Vb-5N14{zaj-F$X?><>&pI&QJPzr<LZUp00suegPtyqAsXjRFP`<DT*z?X z<NMEl!hYC1oj3if#kZz4DVCFGIV*h#=vUTR5j<V#P27`(3-U@|2u!-L)``Q4&FR8U zj&|v0E|r*zRT>#Po<5rqWjA@}t#2hAcK;8#Kaw{zo42Rtf*fac&A*Sfn?LRO(5TnI z;&|=rYUAYV9PFMC0+;lKMAm)!^0DzPo05y~?#~6!+7|AV*pi`qS@Eg=?W_l-*Rr~o z)ja)n#n+|TBvHmDh$q-((qGMo`%ZUXDXc!X{Nx<AA{nJ4)jE?zZcLe4VXLlp$IJh1 z(&qW8PJbQ=Gk-};3{qOR+rD=3Hx65$T{#OA0*^k?mSUbElUQ<TxvSZQMw{O&0#l_L z-R22Pm|R%2&nQ+&M5Abu>??~mjtUPI9&UK{bJo;#TaQ_B-$|dq@x9>V<@2Q>yLP1R zoaTASe@gd^nkTw!wk(f-1X{T1D$k0ZoGyGz{18u2V*B0~bCPG-%PftlDhbaC3sucB zPnoK*J|Hr+$#}|*rPnJBcmD`tIk7f_QTwX;c7s4mpB4$O+jE!x{K<YS|Dw{Jb7`gK zb~X!n6@?$$7_Q&)EA89Om<=}_e%+tzF>jYiN_F6bQ}@NDi_KxOZP@?Ud%9|_lUfBZ zepO3cBT7;dOH!?pi&B9UgOP!ek*<NEu910&p`n$5sg<Fbwt<0_fx%V9#%>f1x%nxX zX_asdhK3=AMpnj#R;Gp!4JRTeP6KL?1lbUrpH@<ySd_|8US6)3nU`IhoLG>mmtT}V T`<;yxP!WTttDnm{r-UW|<!>)X diff --git a/static/favicons/favicon-32x32.png b/static/favicons/favicon-32x32.png deleted file mode 100644 index 487fce482c6b78e0e1793aedbc2f82641874c152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1627 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 ZaAhuUa%Y?FJQ@H1002ovPDHLkV1oW3%#;8C diff --git a/static/featured-background.png b/static/featured-background.png deleted file mode 100644 index a6bb9d4f41ec531c7bde51e2c617645b155eafe6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95557 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:T{UH6CHK$H^sSJn`mK22i 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 diff --git a/static/img/aqua_chrome_plugin.png b/static/img/aqua_chrome_plugin.png deleted file mode 100644 index 7a1e83a9370cefb95cbde4645c6c5f546daa1f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204143 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 l+7W*wf?Bq+;1K5fZ`5dj`Knrj&rQcnm9u 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�*gaLe<3O4L1+-pw7tp+;MC8p7Y-QN)2o2?{ZPpn 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�rqI2vwdjXf|&=`kN_Jcvei5#lY z0Zvx8M`dNO3UlIfhg<_9Aupr_M!!es*5%OAlf$Eb1@8XbqYBrws776AZ2Z^6_vA@5 zC4HB~W8GynGjw?L4WCD>&8&~z{je?@r|IyLatGu*Wo3T%QDahu;xuY%Y80L~Lq<&7 zsED>#C>4EOx-uJ^q>D4af`Tg@Avr9ptoY(jv;l(Y0LmsPb(EN)33o|Rlas8p!4|U6 zsET(1i8ujh*Z|1{?$=PRK~4p<%p%I%9}j0}5;}@Z37RdMx7u~LPw3G2LL&SRufw~; z3~S>0enH`qrui~+!8%U`EsrgJ!EBvr$D8%t|Atj~aF0qs_Q_b(S+8uns$tsXwa0q% zF+V=A+37=-D*zh&^3l(~G#84#-TBUd=jV|2!5xT+D-Td-XPvzx^3u9UzJq#U-Nb`C z7hGhA@lO`q+t1%j4tE*yYh~mF<BCc}=SX*lKi6p<FE@1eF)k_o^{{hD9<zM@*^OPH zq_;A^cGUNyD?~uTV8=jo6qn}mwL~7IJBqiCs;=G+i}zQAar5vX*t>t%|LLRUv2u1_ zE7PtVt9sKta|8)J9Hc*SjgOpsv;D2X@_NmPP-QjeXwkgiAd?hInqKR)2*`Vej&M?9 zKxR=uv#!wIH0VB^NoE-v+fp-o<kivxZl9SLX#e@AE_HQv8q>{6&-jsX2K0ZT5iDhY z8?ZGTCgLzZ72a!}OT5)rRwiZjA)ue~**2~H)7A?7YbpN^2unFPY5Tx;9Etp+<**5V z`#d$>E-w}d!+!(DfrJ=Lcd<ty@>i#&wGN_rO`Ivd6nKN9uraHPL%TS8E`a4gMa5_o z$y)?cU-CR5?@XRB-8#b!*35m9fbjB-qlJT~2_cVCt*Jp;6$^wE)mI*nEVxhWN_YFK zWs`1etb6I5-u_rb{`!?zNN5fkmVAc(20h%3#piV_nuLLU-aq)|d^w8xthAC{^=Htb ztrD;&N=WH0{x?);!<%2rxZf3UG!!xrLw@}SbX$zw>h#Oz2KCyDe9sNDXdvLxAThW; zEUc7^Gy5}en6E}NY;{l%5wPfay1YjH8xQCw*xo02`80o<Z$9GevZ(%D#P{n5{KKL= z0Ij>aD6{S1)UKG~Z8%qjd}tHcZMN3XLeT2@UFO!H>lbjq3(413FhFmKLmh1=vvJgh z;^LQ(COjXI$V6RCuC)rQ+R&}!+5)|?(_oip!F<i}`RC?n69K4&e8HP&{q%Yc2GTCC zozuctDzib&n%sW^`iDlD_D<{G3UmS*kPsg8O$X_=mYOm&SI?Hj*G!!NDKl}YK-_uu zJV{ZIU#NZQZjJ&0GU>_7_cGNyLq&lAcBukGX-mN1pNnv|Z7$Y~IPwoT{b85GSHIM| z+cBy{VW;9|XNRXduk(RcH(z5b8Hpety;fw$VP`uja737Rd;Smepn@Ss^}(OdI|Nk! z^t3Nv_|l~jEZU0>*qn#VCALD+oI<BUVw7%Tp$ky@2Z7i&+cK@1$%eOxRvNu}jSiuQ zy8SFe5CD@a5=Nb*m$#X6@pD<F$g39kxwxje_F}Q^SEtrR|GJ!undrj_$Tmy@=7e~v z1qD5#cr?o=Z}F?N0m<1NeVwZ3>U~G{UX`gXZ(oL$EZLfc{GOio*K@9!Q0q#p5-v^? zaH9tOaMg<LARuMBhv#Enn_L`46$}3C=C~lCNa=H`PtcV|pGB-#uuL{UMzBbajP+`E z5OY$lF80OAjTp!Qa<BKA7TB9I(ona~H29^@eYQzxx|B=^%Qsu(JG|GdX#5T34C@Zo zH=i#W3P1nO#%4YB41<(hPhV1-Ub5LjFY$Tj45xOKY)O9-(9jShwRLSii)hVoZgf&1 zwYuDU>Pa-XyEmV6m5|<UnB7TBgH|MHhXI0z<t&%&bP?6z+CV27tNT5IL!=g+P{*I# zwOMEtQ<gjL+VAZ%vqVqu+(MU6uEt#rg6#uGXVu-9xdDPwzAp!9qti#Z(<m4zYyNjm zit9FeLkhd?FLx5^>M12v97h>NMMZ_N&C!3}HF6Ev*c;jdDjaXGg88}zDR4ntwMH+8 zbNk4$GIoxT1Pstl@Pdo)U0Gc{|F1M4uB<E-`4Y@sg4AUB*lGWu<9aqIi?xl)znds` zNx}QC;}CF9o3PEu0pHq>e~(Rea1~?Tv<s3``Pz%0JG*pkm0b!-R(R;>0r}ed<_#DQ z3N`zG5O9uWEYBk=R9(t@Z;RN!u2I+FAChcy0^sYi{mGP$B8~`uod0yi?L)q%p71`9 zFlVx7zoQU;gT)-`|C!`qK7@zFd|B9klA9DUeb#F(H<_q<e)A|9#O+Nmsm3HY^=BA9 zPuCnQcPWOcnn@}ycdTG3nnV*3C34i00P1YfE)T>xxXk*%<^tNG^Wc2(H2^JuGVq-i zANXC5TKC8D_SX)E>Le;KBKFz80my&aDz+c+2nOtZLA=V1(q);}Q&Y!KUr<)Tc3l5z z&s`O7B;H4HHgBiX+riPt?>_>DpV4x$eN)^_pw^!Kb4f09%R#Vxox{b<KHw!Zpc{yR z5&*@?A+9qjvi`6R1PSwN@rFI2fqjzGGC?%9%Qq$g7rOpgvS1TduR!E0fhYc`@=1n< zP-za>L<JF+d>AD`P2io^W&17p<3&#B(isT@L(D&^B@AEg?r-v{sQ+HRuwB<0<ch+Z z*nd<kj{&G-<V9lT`T!_UkPN~^1Xi*fH^le_ZeW}tWb1&O0CCB`j+cHPPE{XrUlj6~ ztxg1KkGhAtH}#iVyDZ(IvOO7?`2FcjAFo7;rbDLpC@bIoX`O|z#fTfRkx*gT5f4wh z)0u%pI5FlTIw-i1`}$2^+TLL;df{jEzU=VPL(<{Xp3~~yTG6Ud#AbZ<dBCIHgr_UN zspLKJq{XS*bY7U_T|-#9uPqCx`NV#ShP=qD?w79eYMi~v%3{j(b7#*^!gI!NGb$Vy zV$$5%jIS~L*+)dJDR~(;mFs+-@}VZ;DlSqkOATT2Uh=k@sXxd8LF<0g`yi2+$TNi~ zPfR4PKM$67s8}CreOvkdl_$V~@cqelv*qF|)V?{1oH=ECnN>+9Y?ZBI4ts{FEO8ku zJ|mUTl%eQ&9X*C&_vF#pSO4mmqVO@4w2et2P@JTxUVG^)IEC^EO|$%u+uA|w+9LNH z+DLM-xjw86K^L+}Dq&ORu^P1DJ5bDH#C;GciEAP<sV^SKaXn_;Z{r38|1WWUzow6B z+E$O}8SNbq!^d#4+|TwpfXAMQTXfLXOJY4o1)j$w>vsddEFpejHR|Zy8)EAv7LOBi zHaZ1sLM0jt=D4mmoX^&?f1@BBM=dMMx58~J%WtiFd7Dggnl~_SDj8<fYW7Cx4Hs6G z$3f&;%&^EDl9^^<Ge!_gHzgbA1`o;d0DdnTYW{Ima+gpev3Kc{T3j4$>S^rl+;zHU z@?iykB8`YuTS@oguHL#rXlyPYa6d5z3gCP0;rymj%Iv$3keXqb%gvg$t+TSJ0(`it z9?j1B+3NB}1$4fk5gTKJH;;#GY`R0sC}zSH&!x=!<SzA3owNOA5Asv&&N=$LVhuIV z7(^r|x2@~ByqfyEM|5xk_=pT+ZrhMcwS$;5{D@TcjYaPL(ZRn*M*0CS-V)mrF6VVm zl*Ym?$2rJkurJQlGxx-P*>MI7HL@^pZZ*&36^0ZLPO0{@`*YjtL-Vrl2vsIvJ0GQW zB-D#Qj0-t5P(XR4rTuDe48r#-87ir2f5)evb!@@>M+b7mz_HtNh&<p!7|;srI3tpo zx=>N?GsSx64*1p^4raT?a7#CeDj0|5h;~hDHw4E|v-gAYb>QIpWp86#=a6n(tc9nF zq@EJ{_l0>h3??Z<-dGo;GZ9m1P@>G%pfS;I0m?`YQ{ASrKeI@M`|z}oC=JDN@2+i> zn)T?<=rAVeRATrqTCMrf=f<F-F9A8bv!<c(J1)C-=|Gn;hPfnvLlZ(e-L7A!&-{zt z_DT)C@!2xE%X1jhn1lSyYiUbdJVKF<1c_7xes}oh9Rgv}{CKn-w-7o0HpY<zz8_U+ ziSEh{#?VnntyxqK0-@{z(me&tN5Hse|4vwHJ3Yuz^H`PdQ`^rnNY_L4%}!&z0w<|B zJ!ej)(0z0kY!{Qc*Pa{f65l1W{TS3hhLGCNUp&h!?=_DQvMV;^^5iz0L|7%EVy5B$ zVklT`C)n?HNas)|GbNsIk4{8B>=5Ok!dXu+x94vBjv_H4$-bf(wGo%Ku6KKPH!?XX z^TLg9U+zNhj{?e=U!||EvBF@-LW74Gp9`-10r6|_f(vN>rf0%`G<p~;R>!Zv3ahJg zjHgx`9h5DMPS+jKE!P<PjXlw~Nvetep>aWP-muD{DLf;!7ccb0&}D+o^=Bz)!vVS0 zlUVHDG3T<76By39n?+Tz^w3h!36U93{h03tcy26MWQwi7=wj(bE&nE8WP_5{7|C~G zF8v{7qbXv??o2sF2k%FB3*SO)3`S^J6DRo%DO|Rl)?Kc&(O2MI{oZ^K${$FpIxc8k z;Ii$FUK<a!{b*6i6onGLK>9~(sW}5caVh;--zq>B%tkug=SM(m{NCdfId;M|&sS2d zsWx7e>U8TSU2G_WxON_(VPegS*||HPd;5mo`*z-zNEk|ZrZF^1DdjTu8wNr;JWQ(J z-8Yw|1o#{R?<r431{o=JP>R2mT<*9{<g&}cd7(7OspJ9FZw0*Wy}c{0L8<}`5ltB? z>?CZbF^tg*`3R>p^7^r&_N9;ai;4m#jzv-)y>MlOn8rr^8U=6}D7Q7N34`w;=Z*!T zxF>%5FM0t($P*Wns<Jf*{b0H*X@(voL3+lbEI24|x7|qQDBxy)AOHNqwH}x|W46!m zq+Ma$Wi=Q4X)De$a`>6;jSu0HH7ODcDl`KqY3{Ch|6_np;kvWArbvu{AmA0=t$l!8 z$FtLMhrJJ5FbEOOq1%jnvfZi+O*{F8@wY=;tN!Ta!`%g7uH|*nBE35gWzaqjx_vUF zqpS=&v7!GeBFkMwe_{{^jd3sdnJ1>mez=-O#_5G8>x@wVRnxSx^`hLK!*Jr|uWhLP zPcueBKSCsXpZZRjV*^q!vX@tv<!i!2cTw%)s-jfuzqTHjlZF$E;kI2PBlv?qun2y^ zO<368pfJ38Z|Oyp&^opP3{zngL?o|YxagJ}IKso2tuHMZU*4PwjmOf+0fFQoa{sQ+ z)uX_kd@N01xN(8io`<idPGf(asv%b4bO~DP$9vxLUL7fD<th_J`T}*`d^a>Z`2$&f zvX5%5tgnQIluo$G)T3>;m*(yT@TM-pDg1aLR}IeO><iHK(@zh@H1FF}8m5ACZBP68 ziZ)l3-G@f>E?r4$+)U>LWI3Qw$#a)FC?%<2xvt(z=WgO26qLS!J#hYToZ|Bm0!72v zjr(bqR1K^&*i-FTB^?>71N3XVyBGhL3y|Hwu@M^c<5nV!Y?$joc5=#ib}@_X#5;C^ z%P?Jfr*Z;#Psb?&!1~@jHm=4Wu0>8`xWZT(0+fx;@cP~JB_MYo<IQXadv+3w#js<n z_&`$jdX41l`<X;^yC*1tM`M63E<0APz}mcVbm>QI@!s7D6PAgbfGhastiAq2YZ%%^ zBf}y|G6)@b;9MnG2ZOw9rn<j5Gx>q%a!BLKWzB4&Q1QA0ojMd!^W%yKpOqAo<ot4) zV@cnZ5O213-Cud@e4lM`VZM%Le(-1AvWlF!eF0|Gxfx3#r*}RcF;bC*6JemGK;(v^ zm>)!=NN0Z&hs5_0{E<Sup~joN39it|M?v%Dno<(d50ZDkT}b%JL=|-oZKLU|;f`qD z7jj8Aw(v6W+$uE#CYTe+;;uqfPnab=FKR}1`29jlnZ%VVsFmo>V{*w<Gh}s0kmGUb z(wR!Fv6AqAzdhr0XD&zMTfPgf=P6wFjbK<}`0=p#=m#k=3kq%D3*P!(0zALwcv4su znkxWz_K>ttZ?;L`Gay<m-)}s7?^SjMGbbs@OpS<H&TEo*EU!e_CoOOCQ5$Zny{^_| z@ewnIjFJTl6!#CE#FEy6bXOrk5VIZBb6SyspF|f|w*l6*g9xMP2A$r;z94db(Da$i z>K70Vz1Q3Cnh*Mm03u%*{NHq0^zi&4B$llQ8FVl(N8WSl$Xfs&gTfL_SRXh3<Dsls zo8rVl-B-sja7ZXWM8U{{-J`Sy{v^>v^6xz<OEJJ#vzx#82vWW+{kTR-UmM#{^=6lA zZlxCI$HUnXEQrG(V)@~je#^P*95Ks8LVUf)cA<wL{79bW#HEguKiR!f!C9n)5Ix2P zQJ^+Whw8fFT=h3EUvRBU5(wX74@!(Tz91B)9xbj+K$f>dcRF887?_$z&o4teF4Bl4 zMfIezpnMr&<a&EV?CB^%+~X5XO+W!X*<d!6#gx(QDuAE@Q9zS^yAgx8MD~{59b-Rk zL?-{x*2vC1Cmko@SoCzT{nz{&-sg->aMC&(JR>NMH(9_yXQGWVkU?WIA4A>IOa(C5 zTK3I05ImOWq<UcdzR}Y(B|P5y+rB%Q(Nbv?v|j(t$m1GOwQRfbASNxR=5B+9+Cuyk z3-q~Mt&}Ks9ZhKEdE*!A7ij18aD4ytf}JE>EBdXTM3`u09cTn{TvLBUK{Iyf`x=0V z^&c-^asb4a7T7kGtlZuwHzyp+G7<5wE&jTln?4g-P^%(b$;tIQs7G8su+B$+nsAMe ziDUIW+mTis=HDjwdp;*|eH+E`Bv9{osV?>X*o22dA{h8WhP2Z%H#Ebw-D}@`<=CjB zU0V>+Kd=tL?d!>O9$z7vbt^Ec*MYSB$rMfRAG5N+X~Gh;AeUy$jLwroY|&LSORam4 zvE?U__CuF+exb2)we55~h8w?%bD^4KppN1Xb!2pr<T0DCkfd39HJDDWs#Sf4#h=4_ zyuKO(D_^#18Y?jczN4>x1iGB|rsd~@e}+b`HW5mj5(niL-FUkKqv3ylDOMR@y}gd* ziB42Z(i_<fBNT~9t^qKtS@eT>KQiR`^hio%_mGrYDm)zj)aOJVF;9)7Cqc`%{p&0E z;tdJPOIS4<2GFw6i5J5H5WegadV+_ccaPl3^_dm=XgzF5tv9)%I6N@?KAI8ZKBx|J znfVy>yl_XwF!LCI_{$L#9sm>Yaz=e?`Pup<^l~Fk?@4}<;~RRu3?Ac`gp_e@T?{C_ zVD$(U(;?Mk85nI{-2(8-T?6<vA0@$82S~y8-?hFF<<^iJY(32PhCum}&>G2Z6+dpH z8lsuiQSL~t^~E4l$tUC2j;lnb->DVW`^)d_vYHj-meSPXGH0oBIt{59bfP7hi<bg^ z-W-uk5NUn_wdo=yCIZaxji)|chH7yn?ctVCFIK33=rmkC33l#PR;cGX0dbWWhvSWr zzm1GSD<^%>6x4Cpt;ydIt^KDsUD_SMI$=9nbkxT$GV8m80&!6Scz#Mwh7x)11wj&= zjn++KTYZVPtdUD{;$?fhfLakKc$c8jfiZmyC6tx#EPxlN3SqyE)$gwrST+~%jn zwEsQ*rDR3Nw=lWTqRfjao;Q4dJ-E;E2QFKfjh-B?(Ec#N(X0nNm2>x|N`tXi*_cGa z2YRNB%!Z(iSx8ko3OWtjQ)NnF#Z?jAip(E2)<)v?&Wx5PKF6{2iu`Zrb;!pfqdb43 zAwsp<+FDI&&zXpe^P>mVFW#Jt`xUB~rvtvD<DirouN^uQ#|%A`mkxx8Ek^LHpZgu7 zpu00$$VB%0I&s`vhCX=bK;E797+1=<OYzD>MRwCS)PUIh?Y`(U>%T1O*HGF5jgLzt zUBDPn;MXxe8R^`!B0)8mx8BZGWl~90D%F-4TGzgLUuj1ZxI|gE`&~Tdd$9#ZX16Id zSi^DDMcI-?9**Tpi4fz!oJyyeZGk;rA-XI|socXnxEWjj>~PPd<?)3loTVd-KFR#~ zdKU#_mKlP+Y8N^w6)P5_sl0H5f%IqQuL;78BA>4nj^$}+Q*0LV*<RVrX#`T|hk#p4 zxVQ;+W@d%skux=jazYq~*Sr*^fB-yYjdzq^N&!UWg&T`KVlfwneO<QnNGh!%k=Z_9 z%QeWMT;ynVlwkp->U9_?08~_DvIXT_KA3!95wWOYonHbvRGrfF%MWMd#mG{O1FtQm zaXL@5lOxsx?_$h`i1EL0g+M%t0vf^aiGLk@U&NJuY2p+yAKkHt%MoyLLvDeJ7dULP zeevL*&~<MC-I#%j{T7123=ZO3A@DbJWZC58DEVcF_M`o-ZOh_e<6`r8q>}G+fED}n z{*uJVL!q7EA(g#xFW^1UyyRxW23AZZtdWUUCPE@xQ<tSfoP?R;UY$J=C6q2w?>IAG zz4&@0H$6adW@-2SI4@yrE+R8*(<Gh%A15gp+C6y%9$tjJkg_2D{o3OB8)E=KW^Yp} zp-HHEC7W^HlDyPK$VUY=3R$}OZ-K`&0ai$hr#ii7NZ3`z7#-Z?`FJWY^H_~on_s3u zRk9xp-~iUV5x|#%Mzjs2Q0L}9c{WL*2j*o-+;#62q!IS&HV7RVcp|2O$e32)1F-(k zIl3fdeAPjNnd^Ds6b+?$ZJCbWhe^)Z$3oyY=+?5N){>mQvDL4oqD`Oc#GHGmc3IJ> z20`J#M#y$_W4iYZpc8owc8;9v<4oqWqe6;F&P+Z>^YR2~k)uuzD4L!fR$7+9DiX=| zE3FIM@L!$@Yj7BgCAflCbXP8_c)`llw&q$6tC9-q;%$0}{+@QQQe8vt2L@>Npbd3? zY3!{valu7Y)bHyg&GjgO!l|KIg-jo40&S9;`nkqECShyNiK7!f`~6yNJl^>v@dexF zrMW-tmYE_qIh_;Hjf&?cqKKq@BL4m;K5eTfM8;y6d^|@Dx_=ZRrzH#`@8(qQ7c3)@ z8fz07%D}yu2N6R#eftZYsN7Z%MT70sFS=n=qN%6u{m+HCXU3kwZR!nVO2#Jg7tN@e zDqXl=3VHP7CGZ4ulU{Md*)y1E`(xZ}V@6u^%oi_ejD6frlg1LkTGRb}pgrCFA%ylg zvIeWrapNlyGC_onYo$PV&@&Ns&Mu&XbYXkjcefbm{l#=b8Avk;a?N<P2<$|iTJ#ub zH|=w4Xi=`))mWW*-5z(3<e}V4zzbrH)oM=8Jk4ey*WV0q2y@dMnS%xD(*^F#)~Dv1 z${$iHD&d=BbbzqOpfJ4SuP@+MflUy9MbzMxFu!});jP7L)Vy<i8#!F2eY{xXOKUg9 zK?{gSBl^z&%*N`kABGty!dbk|nw<|c*gbgCyq>Jc0G*AzchjPR4w+{&;rAf&e^eNE zMwsP4?k|%J9JT2QuHg+W5QGLVyhpiC1Vkyt376rj7>OfS2J-H|D?cE)QtK$J9k?84 z5;HS-+3>11hK_&!f}xvV<aD2$vcyH;c+mGZU|1FRvmAz0a{j@wrXaJ4B0}78>qe>P zYT99#SH&Xf|6~H|!f)4Qpsg-pmyL5@Qf{?bXOT3qtqs~q-tN=+usRQg`CgA6z2EQY z{HlYCTS7P%Uz*&>i7;gL*{SS!z1H5BId`P|J$+>)^|TR&cebov>$bypsdY3>wSsPI z9d4u#!stm|1t+_EJONQv0cD}b3vZ;t*{TaJ?MSyHC2)EI3_bKqT{Ly>G{aHO;GG=# zEYSR#sr<L!+uX<d*68kZ_T$|le|LL7WB~~%lqAa)?A2rz=6&SiK8k29q}Ie+5E1R} zhxD!IP%Z_JLtH|?Q10nr1UFG7Xj5yUN~ukMkH-C-8UplGaMV7&ky|ej+<1kqR(e$n zn-3Ce49vE;c$s#0>lg203ROhjYjUo7b6w=HehAvaKRz%$vDMG+jx6_b>w}2&Z`bNY zot?N2=9D4}lcQV$6Odt;NqZ2jgYNVaDq63XpZ{3Gs5jpJ^(v<-$&j}F6ld5ebXvMU zn3=bPv1R$h%%HeP0nL=neP7JXGjJTcMK`snG#2&ZDe9ol>|pb~^=~Jt+}Fr<MZ#bX zQx)6M!iisQM@O0KMH!mr?m`25Cc|0MYPODP7e8FV<pOAbY=(XAbXIGq{h{%kn?+86 zYq>b};l8ey!nRCvm*y0WF{V8u``N7qKv`)@Ien!@3=7kmh+v{3a`D32EwIQr3^-r} zZ3szE#L|7AzACO$;id6$loV6LIvBX%drbUwY`iJ!xThWy1=N2@>z{i4AxEvQWcGU_ zIX&47S7Eq_TD-~b$3<JEbS${C8bn~?np~!?WG&z1M8i9Yp37MV`fGbC3MQLTb<hNS z*OoV3LWThP?jNh^hLa`J$1}y>gKHRKOCyiR{BC!igztr2`WEWot{cRimfV_~Elfw* z9#G?H)w}Iin5<9zPwAaS-&S@=sQS0hj)=B%cHWpDCj8AGw;hs=5<K(m2RpC1?Y^_G z)ST#Qx933xk?ubZ36sZaTjrbVQXovR`&yG3bQgy(03Q+>i4SzkS76b{ByY2tl8=%m zq0*|ftn7!Qp;=Lx(0#2Ab48a*Y7mV2E&@!qE?L{k++;NFWJCA9Wcp^9@fzzV;hdj1 zEqfC37fGd6?Zo%yEM#{+SsFZBc9(8{X2A<5@aOL)SzH}ur_i4G6Y2aW!cySRzWbOJ z8vMX+3+0pADe$SX7%Lb0xuIxh`iy1QHN+Iq5RPJFauJ#tY-~9!2ncDjy}4*Y+3B$m z?}hqO4F+J!NXV!O!qR`fJ2&c`xfId`OtzM^esU;?jpO$v1DXS_g6T6kJ&D+ekClo6 z<G&F>8|uYMrm)T^zVtd&Kh?oZ>%bzMMNA`*5r7_-Gd8ZpLw@qDgM&RuF;}*}<J2S| z@T1Pe6sv1h^(9kZs9C$P1w06Dr2vE?V4yppk>u=MRvLeup(5`VR}22>%?PE#C9xRT zYW3Siag`$0!N;w}GfIL)2zePb3T_kIu>XDH-JU|RMh}l5{5WGe!VIp|9l9@9;Jjwu z_2CXN9Lq2?qi)uE!1EJa9b@_8uy+GP0ZOr5Jl;3-GKJtX@_BO8cKn9^_xd}&Go15> zkk1nVk(3*w@4H8ltvb^X)Y=H-xHDDyrY<;F@Qf%bG0C^q_+VjhCX!%RRL0g|IT@y4 z@?d0`!Y_f!^3Zs;>vr^}a9B7i8flHQ)*j|lZ^P$R4YOq{tWYm6{(_1L8ue@zQ~WMd zpm*a*jksAyx@!J6R)iyURcnfy4kL}ko(J~O(r^de-m^2jZ(k#=l&Hss6$)whsT`7j zbW&AQE&cJK4fUwas&_9K_Vw1+|3=>)JbI^Sa@&FSG6I>q+pWp8-^}Hg?St8D40-2x zrg=M3UOB;A>!|e&Z(7C#10#O9E*&z8%lR_PON%!`szz#JhC7ysZIRwPG9*SM|BKLN zbjEiH^q#ez`Y0~bucQrByga}<2gf}MBH;(x?)l7K@$s>r7s2ppn^yaKihK#RNWcV4 zQF1Q9Q3s+|ZV!ES0<MgSLTCQzK{nCgh?`xA?!y#?c+J^})q@{ygDk^rwbs0l`U}V~ zvx|_>L|(X9Q=?B<xVRO+U8e<n(r};*-u{QJw+@T4+v0{1q!Ex1q!A^gyFo#^ySuwP z22i@Bdq$+ByJP5)?rso}?ireIe9q(f&ih{PKXbtyJ67zq)^DwQZ@g5;`B013ht`-b z1Ke895APsm1(L$W)2q$EZZ6Ye#fI<#U&=73mMrhLQpUJwnT>hbI0~%+6*@pVtD(<p z%*RW!iq<1^-E7=Y9~X+JJGEu^33rTB*Wu14q63k~Y1E{_H};GBDg@G}hxn|M?q~Xg zVvZmm-ukT0x)66q{VumkO?)&0e5L2<s_ejG)TN-$CRq3MgPlXeo;8AQ$h48l#CygM zn{zr%=UejW`27mB?7qvCb-QUazMS#xRTSY=sYDR;6b?UK5rhkDkhqHTYvvE*E5R<O zCjN)nQMrB8IU-Y!WNvD5LaDqrQ+`|!r0ko>c$N8sz<Hz7iDHdTR9^$Xla<k{@hz_P z43xswNJ4IfUJry#^tk5hHx*BV&B>eVCIzM$;E)=d_ZZ(_DRS`VtL&Xbjuu%|`3zhz zMS;2#H1X!@Yxj#i@w_#0oghg}+N)n>#rpl^OH~JZOZL>$?QH1896pP0WSiZ5^6jcO znZDUz;@ws<!QK9uXVr~aiO-?G*%?d+>Y*!qkK!$qqfzN$dkuK(3RhOl*5t%tUG18R z7w&nn>kmY%#7sNnk@m`H`<b{;8}otq_lFpf0rMKrL4P7YLf=m=NIu#Z+>_#O$+|kH z>o;_6m$|4lj613X5f_sW;PpyIua{V1_i?ocl^i+p+`b-nB**tNdG?VE-=D?Donnm& z?tMKz?73sc+1KWBcVGLB8U2PVS=LiP1~7AK&Jk&az;%AEHa78!sh7l@rCGYl2{Peg zAYJY#FrBXoL&U(9BmR`+asSW=t7@C*X?PfwhVh>#G3SsHIYTH7zkf!v<dF34epxJ` z(dkFzBsF-tiyN&D9K0XIYx_j!$pvC&T^U<pb&$~MQb%pM197|{c(MGnw07!l5MkZf z^CH>xkO88C=DpuOf3|;)4=9{?h??oJ7P7@DASm~k;p$ZgDW03V7dTvh{gHM|Fwzdb ztExt-Xk@?}3MGZ)(W<qSW7+rE^bu!ip!*O&*>Y%22z}-5&2+}C_W>)YkfwgK7$e2` z{EYMAc78%EfCH!Jpqu(<e&joPsy)68JJt;O@4>&~09D35NWnn~W-q^9ni57qo4$WV zp}1aiy2vYPG*0JfurSei6>J<)wbIE6cznHfJ0-h$^Z2tku1q7f6(Kq)uEbO}R|@rI zb`E3n6&+4Z-xZreO1;y7IUayoF+7%(x2o^z1Amk6nlP@5Su9th7v#rzRPp?WHyNFB zeHRrKEJ8>Eye#_@6Gt<jH8F}D81446&``ubA-<BKBgE&{M#kscsyT7K3a6W(fW^=L zwm;Rfvg~~|PC+u(^D}F#_+s!BF9&xxFYpZMe*I)7Xohaqnla*I4CEM0$2e>L3eCCJ z%)+-N@>hlLzJaLCz6}Rs!ZCIhwmQ|9_6y{|t2?Rr;7|uWox42~W0K5JF!-}nDt7`U zw@ac71~xyCrvGM5FL3y5m__mHsr>f=fk)@19HB;j^r*mt{iQ6P>h|gpkmHD44ucuC z6^Lhy@+$c~_+%N3t*is<xfBihw4}MZS{La}yK|JMyEgW|vwBz>{w3QFh04=1K{GDi zlWuBhCW?)q8h_c~3Kmpew`^>n&9|kw8utbGCI*jpg#l(d@ZD1>HyT=jc|#bcnG174 zR?n+#)<NJK(#mPBBuZ|Z182T7aXPl*X#@f~a*e+0Y9Du8>dEHRR)8-nH+i5~T`A+L z6It2bc+lro($7$j_pW5FhZ)1z9_x!Lf7rGq1vZO5Fj>D;t2BduGYxED0eJW*-Lcbi zTuG0L)MOj5r?mxH4#~kThKd@mF-7(cIb4{)^2hC49}SCbXszYmSl2C9nIJh;=%rmb z&Fs(A)i)NkaMd8zeSQ87*OW_T5VZ5wiFOwRz}sr4)fbG?0Do~Z@L<MiS4L`xwRu0R zK3U>3Wa@aoIoD+6Lh8x($xcpC3UG<2n3JS*TOSECVArN4+`6AL6Av4j?Nd4*A2gV6 zSjpk5a&TYL1YX}L-2Ym0N+Kd@Qc+gc-S>(SO8QZqQ$zuXBoA`X<8sm&PKxGXPY%uO zqVypKa-?0131b)K#VVUnzmTK+RWej**0tyh5Ph*dW@oE+sP8Ij)PAnlR@Iyof_7*f zeZGM?YN}Wa{$7{6I)W10-D#8o?N-X^`6VX7WP%$v=L+$7iqAUni!_jdOTNsvqmt4c zFJAot1%Qqu9|`sArM_piid$e&o`AL0UbUR`?y6u3qEv@kpBcNh7I!+_K54Eh>j}HE zVkh}4<JF@uGuxNgPRMfrD5w5yL6*1c1Z`rmugQX^<)=8ul3bB1TW>0Y&7jZy1)L2% zkD3rP(-VJcd`<x@q$y?ksm^hk+4ggUKNDb@C#JE!llc+}G3uqmzB2OS>_$~{Y}|VN z@qC))mC!vKTr@VvYaTR?9F__#hD?u}&WQd@I%or0Y~}bqHDE7ujAPXfzRKmM5-vY( zk2&|j0wL`HpL7U?U$zuwQx>J62eZ-5?27$9mJ04bedot<@G<rs@so$_JHziu_ia>8 z4|jC_dznTxZ4+yvOXpjk9hRDo^x!)f&bjW<vF;RtMC8aYr<_-}v9#lRRc{EQE<(H| zzfL;K73zQP!VSx<Vv06q>#bmpZr<~Ig4pRTxw*R=5LBH{fLzX+LEAfbhTna)iU5vG zL-B$^HA}TS3|HM2pJqB_ktJ>}t;Q@oe|-L8Wr^3ty9UFHMGv)kkF`w~tbRxGcnan{ zZ}&4Ci{dsCvcmpW`wH#n5T+_Yo%0cW@MtWPx1-woj9)6X_dc)6R%-j2#Bvejo*vy; zT5ormRwp;<2-MgoD)o#u_LqR>MMQn7EU`Hf`ksCKkG2C8#6A$$nF2a<iW=`M&@W7* z+h>@wvt|n`F!rSe_E_RdVIN*2@Gl{j+l{>Gf<)8Dko2f6RzA>;nR?;<<M{)t%S8a| zhOyaFs?mwslI>zmx?trE6J^V#C528irUh}vuaQ;&=Um1CZ)GnSwe&+oFVyz&W>B(o zFuSr(?_TRsgHP7QMdXzMnKJHHL6Om~<`J1E0ru9d_?eC{zd&z%7<hwjU{#A;xiXsQ z<mQ=C$Hi+~0eShUPBwx<oAHhw@LJ#ra871EG<|^h?7mswd&eImcr>39bxbhOlonf) zwJELC=^A;6^uc>l5L@J8_i1ZV$#D2eGypj7*#9x~Dady?7jim)qjiJxBf8r@@Yd>& z2&k^4{_Le@WJCdc#$<gYn|nOhNu(d17MC8z5OJS?a2zeWlm1GJFF%zE$$YOy+v30o zZry-?4Cc&$-imu95HV3K{3?%T_M=t!6YJ`Nj8qvCbF_BU%Quw>nAEFo=pQ(*Fy`;0 z!TmFsX)ZmVNvqz3@^Q1eZEu5iwNg;oOI_a}fBc-oZKqS4o66hRfEy<nQQyF^6CrmE z)nd&jaBiQrbv-FXwZt}7@i|0~c^W7^%#Zo7B+zklGj=xp+Uhj7`CXGtIJr~hMzh3_ zPMbHf3po{8JrxA)gT-~F?UnxvW>MCkCE%y@Xr9M#|N7{#7J>aC(O&qT82Gg)q{D?+ zSVBUBP3xJYIxUB8_xlCD-$O&o0<PBdT_#+2hO<U;)gXxxURAZ0%yMZJxrG`@AR=?W z0J_@ICz7@1eF7{lpviTmW=GZxQ~jWBpN!FZVd<>fP2-b<R3LjoD&hTgmeKA4Ska{W zmw39WWv$zt=WMx7*We4ms?RF!QkaT2{(;UzbLkc*Jw??R_b@ZYbZzb&X)SKYy62gi zZU=;*^{z<Ngi6n9^AXEY@E+^3hsxe+#;-u!!e^K#9pMloKsfDIU`bj>XA{E(pU2}{ zT1uf*=kd*)D@O0%luF}bXf2EEI07kZaZJnQ_aIO5sOaw>k{#@boVT}0GYoui@o6c= zI;MWkmS_3cZId)WUYuWqyftG!d@q_KSn<dg3dh84G@U2-rCgtIjHtD>dv}NeAq61c z@Y*pxU=$u2Eve4UVD$ZNz3pt9K|CP?)!edu*tyxlaBbyIL%D~(*Al*cJgK%JIiTa< zPKbcvJ0DJBwZWmiEd(om7e5U+)YLC=zmpOBrMrDJ1&TkXwQ~I;RUHrusEk%IBs1R- z7u_(62JX(AS#o;q^L2;yWY!;OH(DYe*sbQ4_m~VYiyH3_+blcZeyW2ipFmr`0#W<P zMg;>A<IDA9q6p5Qaxj;@qScMIq|$WX)8IpU>+g<xQ##uu!xQdTi$?1(ucy!ZGcL#X zI~qclLy^OR{vz;LZZsPN5IukXq%*H*NH6WTypzqTbc(M=oPM&;JObcm^PeYbIttHf zx?B{k<y4o<w?Os^ym$|MI5-rkwsg3%RL}oubohoV{v>dBXqb_ET=!0mIG-b3t@M4c zg!?;giD15`rYl{Z`yudgqei7T=ux!oe(D14s9$a^j)#E-Lv>np%nkPRWsw(Xeomc~ zt_+m2lVe=sDf`nno+tH05d42Zi2n}iJ!}vE89=maGkwT$JquH`uMrffqEC=(u`Ldl z;UO}wNtxkn?N5O}EtdpOs%&RUhCLRl_eu4+p&uw7ZwJzg?dVl~MBr;*UF-d3ea5-q z<8K=JVH}gg#r{Q&QVxfZxVS6-ZMikeMX;llVR7(*&2RwT4{l@j0Q(@sr2>sCGTf4_ zwZ_26865Z6H*P+EYXLx&oAFN}0RJZf``QpSMgAC3k%l<U)@9aOr8$?0*KU0Fv*xDN z*t2DZ1K+g_P2tm8^nh=j0J9#4eReUED_(>0;5?kvGx_{@qt>{&G+S*c&g?XI{7E7z z!kgW*PNMl&s}?-w^{?A~Swo=QUsQP`z&PihAX>Ih;!AcvQGZ``PPy!=*mt`1P4&mL zFl=hhKL>fJ)$DW=a353a>))94+gxs>zwE@&YY2zFGJTMFS3PJq{(H{NhLY<Q1h^H3 z%8Sd)^me)?#7X}~g5q(6ATC4gBNf3w6ehbL*_K?}@TRosCA{K(%!9M?Zm^_N3@=D5 z;w2F_1F`YMfbqv<WBFj=OJrJgDxBy?ElI{`>+T6O+2#k@XWSP0E^|&*=lAFpOXQ(5 zDv<NOCGB>5^i+!tz7?g9f@b6~{F``zSJ6&x=Utw*fo;>@il$?yYna5SlYX%oKA}Cw zdJ{}t!9v8`h0SBikR?4ZuBjROsprQBDE7PHs3egtSV!AeyA$sPz`LqI^7zL<?kDuH zs^lyg5&}x0tgRxVD$A``iSIvsY;yXcMWVhMsqeX?{%RS@p}6;q;1gGA8grM6kPw~B zu3kJGZFq{;q4TW7CB~FQXTVQU55TjQwfmVhFe3W&TK~!5*x-~F*I3JpoK>hfR_hh9 zP7c+W%=j|JuV2v>JK<{&WcUi9;i9^9IbuVMOtfSUoi!fuGAF1+7#Rf5!<Oo&ytT7^ zwwdoyu1A$X-wQQf)@AB+TzhD;>TRY0Ng?oE+-$06H3zM-`#l<0heL};Bi8t)bmrvf zO%gA~K5wgZeNK!BC&x0O4Zm~OvXE2+dUnZ>J*1`Gz*>mShI-r^W^4V=c$kJdZJf5x zz;NvtE6rz`HjvbO8-o1#*h-VBiZH;CLfYfoWL|=)<_}2og&-K&te?Y7Ed8AzckB|6 zidJi^hg|n_htL9j_cw~moHD(wRdTd0M_!fNKXAW!9EalFnrQR5*Cz>`>Q{i*ae<F} zjn{MiFPLnXQ~5y%o^0`LA7W-xJqKw=c3VXsOm_Tl*NXUdYDllUF+p2&tPRTg1SSs$ zO3u5JMb&Efll2XC_)2^+l|qS8*1}GX4)5$4LQHrCQyF4sUyin&d&(A$t^)-hf7aF; zz%iSKIM4kohp6bNbbcG23sFyQFC*?0Jyrla_ld@v)*lK;TwjW^2Pp$#9u+r(Irmqw z<j=)EF79hy^sZ@MxZASGLR_SKA5akmI8vuXd`)&z?lw9w9Dku!zj=ufmM+LL9FH4g z6Qj&lyZPgZs(bTtEFe}1d}a}Nr7E1zMt@)g2w6%MiREBs+J-XBWgao}c~*M2Fm`t( z(Qy=7VmgpJ*c*Z~%eiNSl60RBsIugoy^YI@pu<<sx!~@&$>4viChieE?*9Hg*MJf^ z^m)#6gLX{-PhG!S)D00Jyj5^ZKVT`T%t85AXlsqBf)@_kr|<RL8oUpL)qB-%8aVEe z(Xsii@K}VmeH?xAQ5vhhM$C1>wdvl!H0kZ*iRjtB!mg|A8SXCKflE#!T~GE|!Vn)z zOQO@$iD<E5dp3Mv+L|!UL+O{naj*8xo+)<xemYCaV*Sp=8J;Jq^ldO}K<nh1d$h5m z%RtG#cj8faGZOsp&dQ+vjmi$?g-OMIuS+q#!h3XUixeY;((am;KYDzi$vk$bCIsws zOC(MmxgMms873OF@-3dAVc272#=^5dARNQ;``VDGAZq80GnorZ5>6U@Ah3G6DNvV> z{BF9k8-2}^_~akdSRoSWQ-E?IdM3dV0DbXiij1ls>_&#}p}f&ef*v{fCr|HE=v+R@ z2xsjtNtfI|JIVT}mm7-^ssi7OZgv0Vgj-Z<B4v4xJhq_-`k47+-`dvci$+(tBgQdT zY4MsbF8n1Le(cWF;$&1@%=RTCxPQb*_=VtA=QwCo6CddMzH#M2E}Id|9mD6%PAM8_ zI?6{JCyC<VN8bamqZZm$5A@viAOIW`eGc>zTbfr9MR|gu;wTCeUyv3pmaU&tu6(rH z)oMD3jII0aA9b;)({3-LDcD%f9A*;Ef5FJ>W_eM0-35=o>Q>t&*1q5-A`pnh;9Zet zE*7E?yyz9YqdiPyma%PYtj();v1Uk_UgoYQ=k5(scGDXjb6B1H8Mmklo*-OE<wQ?+ zBr|~K`K5cDgPL~ZmF{Q;JP*H*9AF!DeLo}fye8NI`C@C`!+hl9=<8<FCD#h~M_Y~p zw;0Q;?Ju-mAG=`z6ZY`yxOt~)@-kkn2i>-OoHMF3Rmj+SpE)jM?Ni^#GgV_o${e)K zgBxwv+3PG^r_&E{Y|Cg%Tx!0FuRPn))7v{`qDtjI#uwoW#bg1;;kQBfHzwz74&+V4 zM#vyL@d!8LaN-|SRJz@LmMbnkp<qrI^?VN@^LwKf{eT2Rm|6WK<tC`7OIjUbA|S9C zFq!}rig5|Q5CylVHN);RQGxoydW>_*Q>nsu?0`dcOLF#j&QaksR()5Y0_(c4)uJEm z_55mqnsYl{Npq2}_6520_8UyXG)4u4j1d*=^vSn}8J(;q+roXWgCRF#b~9}^v$JIa zsagcTzMbJ`0QRMtH!pTwu6sALlVZK<cvV_gSUEY%<|oFV-mdHwA1!8PEvOvKrF<AV zrM*)0k~~Bj-I}HBKw4`FN49Gy+DCu>MnXQ59drX3`F+u-w+gKkWSr;9Ke4qx`d%#( zH#H-(R55y-!li}@vtMh-x$<ECfVm+Jb7`uu+*w##XT4C|QUW~kjxp;V&m|PnF1k%8 zC>a2dKnm}KJiSJ{8)kX11@BBnIF|BHq2Pi|NxMRQtR=JM>oc;uiHqhPOv<h4*9%FI zB77pF)(fjofP1yatILCFt_F*l$j`J21?Na~u2<V>HG3UHH|O2%LQ9I_Q=CfQl&{gT z0LZ^EwJ!(7G}Y%+*QP`4cGyjH38lyZ^i%!G-<RgbmzN(t^<xr#)V?ZfXsVFPKi^uu zz4IXpIAOiM0Nkt43hHeNyS_H*kF7KwZCl6=?AmSmUDjMIfgje0=v>1&Dkzv4Y&qQB zZAi%H^~Pkk!Ivb9Kv9cMA(mPAQPM0%P^eU2i`QcA#=Y6_>_M*hZVf&{F);8IH}}+R zF*Rb0VD<q3hCnBB!v?!Q+Z&F^?Y|v8M&(U-L#t3>{8&u6-A_7+Ll&0#{Gi)<0m$!I zYKM2!iuX&`Q|<MN-b$N^U~EPI-u`f$gsjOomlZZCz@y@$`js&)+-Yx3D&*na4TQyT zhb_2m;5|J?=yYlD27cb@eR4So;azy?Ry+D2V+E3k<ZYV(EM*CkWRbYE2rO)*oMu!$ z;pE=4-yi1|>FBjL&vh&gi{3X;zzm7XM}{|%_pW=JdT#c~!B(3lFwZrb%$D11n2XxI zUoRmMnUqe%w0rzxN0w|}d&l-1uVxyXiK~U?jRyoThZERmO8zKtg%tBOj+?8>!Oq~x zA@yU6Uf8Vh@b*%pKBnkB4eY`1g`j>8zY!{hD-#{i<*kVz_NUIWbvv&W2^%={v=3tZ zv5-IxIEN^1|H#{QxtcL5T;C?;J3zHl#VK=L<856uJ^XR8<WkP=)VLL(>7eRZ$he@{ zN_`-*<IeD;JCdReYx(0C5^6n!t$z`O^I6k;t~^dLQDQ42pxY+f<+$1ZDse0FR>_sq z0i}ST;(%_`@!{cmCH}K8$|+9$Q7#tvh|}^>;{F^K?tIw}d$HFl>NmSQZN2PHU0AWz zmZATY)tYgAAZk@n+o0_!|0A0_9>>6&VGgiu4g@~}I6Ni<szhcSllh;8;))*%T4%^` z99%JvUF2)VB)XL(o7y=rXYo4pH<ZiYv1Yi_Gc)Iwl)S%aeyI1?Jt*;U89)K|q@r=` zp7!who4RN=zg=uN|AomINq3(>|4swqx*x;NpPDdTJfY8So65Qq8yhHI<?fFhPVQq} zIdjX!J!JILzn`9X$fk%=!Q{AIq1@f-+t!P=c1LczhW>~?fe4R&2Kt|Q@K-ns6*qz= z5!G$;B`OpRr&9Zvv=4bt#exy=<M^il<t1ae*GtN0D6iUUzAnB3@98;@=Vp7WBU2w$ ze#oeQ^+WSpO?*yGbGFB@dADap9%88Y$az}r;70FO{CB2LUOF}(Y%&{|Hc|)$7Z%1p z=`ktV$h_PtlDFueW{6>C{#IX+S!8IC#ou5<2b8z?`1Vey07_aE-3ZT|#m0`*)z^!6 z@%2-3rR3pU8I>x6o>q4|HcyjObBYa-3%M(xQvPtl)Etg@%{SKu=e$su@51f7dHLN8 z+k7?Vz3jPopsU1d{-sjxA<)?S_$@`zOr$X7@U6(_4!?HGdc>RFaO8c`D0zfdm`QeN z7mnrh$FLXBukc1rwhp7T6mqOZicNHOBlGXiI~y&?1+>8jTW>d4>nVo`$5ZS4g{F2D z^K9iAB;y|(;h>V1=JmzrK74d+{=GbS+~`VJ2l_qY!kq1@9t!p?Ri!Vu&4xop>0{|) zf^P8|^vao^^q8H>iVL7QM}ZGW^u&<-vx4Ca!T1{7jF+Fp(JYHw<~mOtn-UM6nzFyj zt}8s!!=7#++5T0balDqBl4An=)vhQhQ?xg8ZWa03@qDMymYKGW3Sep>%Aqp_L5$hX zG=`--NdDvaZ@0re?^Ka!0gX6WyC?2mGSs3R7Ba?&T9;>_hxuLYaqXD2-@np_0(%2Q zh0+km#ET@s`3KoWgoU{_<$7Z!u`i~N=4JHs{C0?k=rk>%DhKN7Dm}$&frl~>g*;=X za0)+yBpUuio8s$4`=vqB=rpT+S(%yYY#}qO4CySEId!r@jS4l!BIQ@EwVN~+Za3p9 zgapskXslFs<pmAO{7S<X9hPkDt*K^Tj~T#baOdu(gIui_YwUkQVpV@bxrLz1g&k)# zbM@K9n7!KIKvH;>=TP(7Ltm!83tPhbi;*iA(;S!n<P>F*>ck!^rFY!c?ww{Q?K$w{ z^z3vSE3J+eucjOL;Npb;BD_it!g=tsS^d=~Uox%Z1FitF$cFN^>cZ5putE`7gwB-J z4SSxH{vI=Dji?6THhKnbMof!L{VW9^dTW7@h23275|PUeEl^;0LZHENY=c(C1-Iuh z`!G;jp5D#rbV<Dg^3dV}@q}~1ldbofL5*{pTltXu)KFyD+iBPO?)r|zYy)0;C<5p< zA^dW5e177;l{O4s_tZs8IF)B<*?xB1VlA+4Wam`oG^UTb=V_oBz~)-HEUfBM<@Flq zemjwj?J2^^zK~n*Xf}J5aL{^3dtQ6Ojq=D|X3z?R6GJzXB!VEt!nAvsy?`G!<HReA z=v=4WV*h&J)0+dr^$KsITFa6AA3uH@9JLmLODh}&J(dpAg>3K!xzLgAv3hzr6rL1N z-6-WNs$hf0)4Tm|pV6ats^qNO+Suea7a$Mq2iorQVdol0xNP+wH==jSi?cG4e3dml z+OSl+$RrLEh1D0i#x(t2`ANYwmn%a{jx}|hL?C^oGGR?d2eS%$6!r@o8ecpBR+{lj zvTe&swg90<L@Lc@X<K~h@H7Ombc#%c*^KVimCT3V)6G-GDdc{$3DmRb<uXvFCwHmu zR#)djWOG+Ufxjyip%p|}hP*W*bxXV2c{$I4HMN7Zc5WnziZxFHvlp4Fr^g}*O78|^ z^&>T&ZufMgI9xc~0#O;7R(?uBS%N=~0R#fAUA+>+G7#=B^1Pg7tL3aF2W7jhBt(iZ z$IzgpoRfD+ZrmC#97{&n)@@6ReOG1(A$@Q0E(Pl%%|r6Ho&wm6i}p2Q=$syzKzBE$ zht?uXOHs|6aYk-)5>sw*d<tpB4huS=IVmtov1S}@`WMM<CpJ|Ho=B;Tk7$sN?Zr~O zLbJFHR;qEMd*ahf^7V8Bg?Mc~X{P;$yN@Cud0Mr*9FpK^E3hB=67F&HUi{VlzPW2U zq{5H#vtmjvr}46)K)}|JvS^w|{CLaQgZ=L-8b9z9BO2^RUO<s?=Bb^|%3e#SF=Hk6 z^Z{5o{m@raCf~|6=fN>wFZ{dXXkhe2a$LHx_D&9gHfcb_Lk_2YgiV@^?6$$(^UjMH z)|z{mci`*2N(Esb_ei$Y^IZg?bpO6_Ly>O7ltGY1RK^S9|H;^CsxFHf`u+QxDBsbQ zsnUeTHQFcD*fn<!`jIj6AK8(i$6!vBLwR~}6K@K`crOc&lTrWunF$IbVd-!qlcmS0 zL*Sh$eM@8RJz;Qo;@biHdMk0;uW|cdp=ve&3*N@Nk0CZCCJtaFL@5S&&MW>gQAKeN z5O2?K6`s{~NMW*Q&HI&L4y=@gR2yRRql*2<<!`%&+X7MxFl7spc_f8S?nB=M#qQt7 zC#vmnCclZE4`P_w=G5bao#Q{-bHJGoI&o9j`&gL<%vm@VFgu)m%(C3STbUkg-SdiZ zGbF_Z&Ix;Me47g)5hMGpff{Q_sT>A)^qZRj&Q)_r1qO!&ZA`eGwGG1<kfyM(wT;wm zdkw}8kjpvmvN{a!${Tf))G@M9j_;0B?l;OmU(e1}?3`wpF%00m#LCCV%!DU3fwxof z&Bw<UZx6*H>Q()JGWcH(56T-1)&o5EJ?btmhRT}K7p0a~A7py#k5@hSr*ZIjxff?v zrr!Pf!8pjqRzJ$3^)t%uy_L{!mvGrWGGBW-;jyLDV@!V5qG`rf0YM&|Qy<?o5S9dB z#T5Xmdm5M6T|LRAwNEj*R(qXqM5o{YQ9hKM<b`=SE(K05&IBB2-%@ZT^GH?r%^ceg z#U}_bdO}%5r+)8lXxREDh`@NbPdi|7Q(?`1bLw6za{-$wCuUk<8>~^Y2LdjBYfpaJ zS=mPs`nwu0z!X?F7wwfZ&xi|OJWMl#<zuK*_JDmKXXr*>Tv4k7VD)8YT<~lO&e82} zomaw(R`f_chl-ZaxM(pnYV;4(x6NHqh6CR|l46VB$X9-f%0)Tqy?e1Fyk_K<zPm<d zDQ@F^*WB2!)+&D&7*8@<eRXU91ZX6M)RJ1XNnM%ZfLZ6D$%7T(9Yc}8DK6+Fw*!{< z9px(05;fTzZhSy|<<^E)iAc_zNzT;juJl!`)5DCO7Nb3~9mNfE<I^J{PqPY(|JCaq zGB=W<QP3xoz=*1i@tKy-T8|HCN?MJ^5*TQ2^=#bf&f8B6hZy?aUo37Zn^o|C@8ez8 z7Vfp9(h_EyIR*Q%&J>v#4cU&Jr0k#_l{TZERf5fa2e1skWSU!9nx(L}qJ-Fld2~o_ z3cL<nS#AZLSklL;(x@~-4}BMNc=n_l0&d$!UG3eJU>a!EfFyV-7)~C^;(#TEbJU}o z3sZ@xi=WX9R0I1&PXmco*=1uWZzR5meJnF)gl8)%ZXV;CH!dT`$3i5<(9Qx0BfsS1 ze!(@Rgr}5=XHYUXRR^p;P=6uT5TeV_3DBzNS1yCvs6jy3Q|3Dhyr;j~ro4Z#KH4UD zFuMqBxoo;TN$6PUei6rTNMV2Ya-0&0nt5-CM!l*fAmD=d3YhdQkA`KNx)&ipea37t z@+EmN6Vwk566A>lVZb{n|0p6{3;#M<)Rl!dj(_&a=kYl<3oMJzma;Kx3YMFQe$jk+ zd!v8Zr@N}%mQ6TQe;7p<>A`?;Ax;pJ)vE%b%+%RaNd$;RsNjBohDN~$D($#a@a#)M z@HaM;*@xk6eEB^fLo4$(QAb8}?&`FTF_cD<mSyODXAQ=w_3R8`Q7vcOKKnw7rva1T z2Sctm$neUsyr6>#;o^t8LeXNsvZTCQXnH8FDZy1eN9ia`*If&3!U68J$88zwtZdbh zK{h&F%+OK9YcQN!ir<zZobbGUMlb0k4&N$imba?hlQh^EVa@}NG1FzhEp3F&RAGDR zM|Cvn-c=Kl$M?yG@!JrGp+F}n8+Q{ht-jJG%!US20E1f6q$fN7z#JmrQ>qdnLK{N~ z@>t0ys*=aiP7ExaSNlUi;1(Zon3!EGR7iiW&%=Va9#<>|evCrQNwkk^vM4Bic#r1G zywjUH6Jt`mi!a2hp?SXdN;3D63DgO2*ZxKPDt-x^1Ain3{&R?9{vRp&=R&W@^x8QV z2cmKefega`JS3j@8{aSMEkfwOZ=q2`UzT%6ej<{A99*<I)4z2?jehw@PyaR>5%7tj zFSFhWs#7*8Lt700X8p$xwDS5GJOaN@aIF2GuK)bpeLZMtip$bL&}Ild@Kt3q?fuE8 z`aiAw<Wfk6m+{ClBvbE^u-D{EqW||M8hexsqVj)Rf=hz@|F$d^V_Jh2K|B)`EmtLv zIW$<Y-@vS4^xwztPzORHR2bTYd=0t847oUd@BSS+T%j0!khRgyDkgMcx53Ggf9G7? zIDqzny0=yG8N8C{aK3;(!yC;aH-R{KZ=6DI{VhKIR4<qOn~4aamA`LLtLDcueVM;g zrFr0KKXqdf+R7vI9hTzT8Up7PiX*kmefSVNEBtuXs_?`su-g4u^qOfGaQl9g|0K!( zJe96k>A?_%_+K`xvL>t2_k4IASklk+&VoiVZkm?5*RXH`<6AKJX`kZN5tcGM=hia? zJ6$T`LBbfj@?C}AlN#Nw;dYqx+$u2nUU{Ul8V$90=*e_<4v7CtMsFM!1EM((cx6tu zIo_O$ivf;Ot16%Ar+>`39Bq>OyTpJ%M?I7-V`&U)O6Np_w`S;77e859pnxA(_a-42 z<W9y5S$Z<=@5UGNj0d?aV;Cd~0zq;<RFM{_=-TJ<;{T!e*`u0^Gx9&WV?zRQiIDsr zm?rb8ioj1AFUVAVQa3Nz^e&Fvezh*cm_7n3lx(v8Hi-a!1{r*7lbh`MECN}ik{G#) z);Nj!#_GBUDiP;d4Si2j>Tm2=p-`?x<)(7h^VqTFpOdM$ic+MMx6q#Zy?s@CeXduo z4gc~rPr=7WXN-bbdQ2*Y?T>InMYicIAj9B@I|@-CxkD5Z4q1H0ZGqUU=db=FpAqt? zvJo$7;ZhCtBN;((JKFZW=2}N8UIwcV0wQ_8iUy<K_`!gdh~6?>U4d2tGr({jtPC`b ze`T!q2i>1niFET)LcEbGE9a#-_Qqc;DRVhcgex!|1LA}U^DJ*nS8W;}z9j$<E_M{( zP48}z;Dmleb?Rsig-1l_;fUHdsBC7p<`^MSJIr$4W&wg5%0XYqO-7e}l0&B>;ve0f zS)i~jv)~;G`UGsh+V?zsOMvz#2r5odqsM$*obn|_$Qb`$P2W1!JvK~`*Lf!y1=r+x zBYFU~FilmgpVKt~K)V2~xs{&(3gy+R7oi1p4eE)_3)zXA{&xRgAxk#SOn7H3h^Q3( zD^EUO<73pCfN$D4+M)N&_iZip_lI&sZfh;LiZ#(CZXNweUP{QOZ8z~C=TRKPBKohL z3?R^A+!NmEXaSD%#b-PEc&CD5OvJG0ml!pdPT*fH<z_Y57CXpB8|O5T^#nmLE5sb` zv2%deV**&H;p>qL5@Y>`h%N7A`Sc#EijGW17QVQeaVi?Bf7c>YC$G7;6Le4xI8Uo7 z4UPvdI@5<FcF6{MNK=h<3Z_{C;;hzgxQG;427O=iwSO3#OfxFzs)pCWDEAiBTab<k zH3H-Hxyb9JZprm<knrbKA4tY3kEmGj-s(8x7J)oS3J{*R!g?EAe2)z5FH{3BvcPze zU(iDlA9tCeXEW29y&SZ5+|V5^63}<uZW7F#{gBxqX9(5-+s`VR_YZ_x-hEODj8Kk8 z1~Fse32L5-8a)U_&pt$m-k<8rs^!sar!xLWMCXYzGf7>@V{JTOvieeL>gw>rmsLNQ z#t&R-i5*H!Dy3ixZ!wjWdEx<O^4*vLfU?3lI_^cb&Xry>*0Qm;v+7izIA(vA^f`^A z5o5GX@1{J%-HL@gNtCOEz@w^dx9i`p3B^~z>=M*bQQbPCnBn#q(dQgbQPFP*B;CR* zl<5)l3^xUhz$sFVUw&ee7K5_14T;XY5g{({8XgOkktuL{($ZrydUCg$a52@tIuc+y zRmeO&ZExPA_Xv(9T`O#9$<$`rfi=}JWzj=p{s<Z<|J7y$yoPf@Dm6*kTRXLjl(j>i z++1^O2H1}vkS5y2X{X1I7^pfrK`Rmbyj~8pJ0pN&L0`8EX0}H#T+sy@v}Jtg#9^*g z63)sKW7BpVL3%IZ%UL>GX*MGY?kWp;i$0d0C)|HOw$_)Z!Kht*NvO$c)SGF+>bhIB z`z&*Htjk_*LIoU$Oln5P=Yy@ac1{ZPJ@V0H@=0mbWM1!D5`jdbhRb;NsRZMiI5A>U z1g4X`DBPoF_^&<7OZYR9vFou|S$>#Vk@ENq#)l<6*0Vztz^LdL66=+-&E8Pu<ixV# zn+^5=s89(l0b-TKimzdS1Lil?%4c``TEYVtSzOP0B&7OX9{C}N>o4$Z>QDzc1~5tH zB^GRi8TF-2q*c->Y2k+wrh}B`N6Dlq<F=Fqj-ESq+);G+44e(qvr@B?bPZ>9+7JP9 zKr24v7qVQ{Uq1HE+OMb&?J&!99{SM#wXD5A{#auu=io)!D6!y)d|Wxg7}{oiTVGy0 zD^jOhl6T>=RSXKf$)AFTK`fQ&G$Jsh3c(Sh7@9+e?RwPpTFbw+07Qnl3DZCMkHEV3 z=bWtL>)PWpiW`S+eC?B<p)q1HQw2Xiia2<3HBDuB0MwC)x%+FY#c-$IO3g+er+@f~ ziU`P0#5xgau~gSqn{hkK*PfK|-!WSMXN<B8i66WN^%bAiRlFk=;bp$um7+tMovIYC z#?NL2Rt;-WdTJQR1jEeYvVWpmWy`CKzcIC2)o)8LkEM9bYz=A*Dbj2}8c#%X9?YO) zqyGMF%$3q_E<GwE`^v}-0itAXiJh$;QW=3nNA@9~5qP5^XH}$*_1BNcOMQ#b7x>YS zLf5X2j;2i+qvtA!BTm4QqE?(7E~`5lm1mnMvG6irvRM|LLB_03>YrbFM0?S<u)4!3 zdSnPOAXpRkvmB4Lb+44uQ4YO#R8k#nY0aC`QFDG4hbwjUQ!W&(7D(g6<keUCEaSMx zfeDHVP*W8Gb%ObdY2?4dxI>mfh*BwUYWl*UR>)>EX-=yIeQNz~inrAty98#vpWbiR zC?XTL*!Cua<ayjF8v2_cBSba`tZFyK(9(ROGIsu_@EMM=A5QIT@KF@(yaERJAU*O4 zgcBM0CFSH$IFMscVT*?3SxP>G7%5yE{0bdHqc6Vu%Z*R8I8+i;l6jYHPCgT8@Lmhr z+G5VnRpCd|5c4`RNk~ZOfR;`MA<EWsJwFA5r{Z$t4L{&R8_xT?-%TSrKKKIt>Pd#M zO$o@mrN+vJ?~mZD8lL|eZWg9pzy2~6^086t0uGDT(GleIKaUgM=A+F-sj#DJ=KD(l z)3wAuaY!B9A+mUSddTWleguH7j3Df^hm{enfoBJ8_51_SZKcym&(B{|%)8M+zkZq` z7js~006Q1LQ*piQ1sXd>qj*~*w7}9H9?S^%MM_(BNkz{{rhmRg;AB1Ur5G?zY!86C z@B6LBp5XnRIF#oP<rNraPQVWx_E^Xy-4~<3>RyNPS)$duy{zo0izou>$>^g-2=Wwx zZl8TG2D=C=`w(V(Y;s{0k!N93+%0VhfqyITG?4H;fBh7k#AlHm4CSJ^fmV9zCv#Le zkk<3ox{@Ss0OB2%TwnfmV7=G=gl~7up^~5X=q|}1H0JMawwzA3l`0$YRM9Wf^RCx( zQJ-DYY}BEC;{P?znUR(DHsN&scKM|FVI#%;x%iI{6jDHMCY4Sz@4Tnv4c2i}NjZk$ zcm&*P?jhhk9ckjXGO9=eJs)VjMcq3gW!saOQMK_p3-)*+XI^-ju(;IzZ;QA81d#9; z(8<Ms_pY2<r&BeCO)lyK+F5X|NYB0BtJ=DE((t4;yt`h(R=zVDD~?@bQfFoD^g=nj z&*yt?{I}ysIt^7xw_dA-qb^lUpF6+MG+p-)BDAvKjv3X?!HZ3j*?BN|8jN?hr|NEB zvhdsRPtm1KXzTS9YV)tPK2_=q%_zyn{nAz(<5KpBzB$tZ4_6wN6ir>@&)wg~!^?n> zy(t#I^1t{SdbB-B!^0EXqiSpcK>@b%<GR=bYs6eC_(@ZD0XOvbGeJFSJFcr|_&T@0 z6)`Y+5V)RWZ_MN4<PnSmgE<i7v2fH4-_d3JzJ-C$C=n-wI%%s*a|YGMEK^@tubkM; zCRh_QB8C=+YWp6?PLim<PBZcsif=nd5X3jZc%$67&D=1njx;`@(gR;ew>C>fzh2GV zs3cw5@c5A#v3T-5Phiue4<V;7q9;S);)zn2sjPNh5S)J({#6T{P(;MEz3=v(*vk9c zi?>Mh|FQbSHX0h7&ccmOPYeX-cRU=iDf8lgqP#@Kci%FzvgX@tI2#;tx#^Jy^2Kdz z&_gveGRBS?lh4=oxd*S;2i%&@#$akorW@`acojlvG)1vUTojV;iwoJ>SlB|c-PH+` zVgRRuVU`HP-LIFuN2>#Gk_44zS63y5;vDJ_H0SckTDQQnf_wKTZcEVTYd3ppWr0OB z7k6#n@&1%aC}!JR20;4Bj}Cua!SbxdI2BtcE^8?bUYt~QR3KY-F_je-)Z+i7LnmX) zjjHZLsdQNWFpPa+bU~{Y26`@W4)~9nMYL0~k|c=X`ZeBFTJTSo5t<15j0H|-s}&IF z+1VAZv=Ej;OtCArRJFA~q`XC_9eh90kV0pqEhCiBsUSe0MK<aprGYy`Qm!7~n<km3 z%vI&wC1$I4@1CW?mO7=xml$Ha<^_28lwD{uga`EXz%O(#A&A)?H;XrQ{W1;p_19&r zTk2aXB|7i#w<Phhr&CpzglBLdl<Xk(P@cV*3eT1wfk%{Oixj;I0_j`WTVTcPY%_3c ze7(((=_@9v7PBJ_2%bO+8w^3KI55eK%G_o>{f$31C9<LZct<0}UO3(@K9FDh?`$6m z<F&OKb6So(<bho17MWiVdBRLgGid2UZ8A@8JC6Du?|zKM${^y(AjIti)z>$qj%4xR zV<Arf!#S|B%@g4$stf{@nF|nM4!SNvVcG(MG(XD^76}8+unUr(0s^0pHM3R}u`AH* z@{rAq80KnyF74u)gmh5}Cf>$hdclOIS0QZ9?Eei#4wd8(o!t|(f<kdKtaqCi(4Bh@ z0TY<WP3<C1*bV35s@}lS-q}FWN`k`TabS2+7uzIY_bJwawB1n|2zu_0x^{B8E35zw z{Bevl1>CJPO(c<^r+NAtGq-{MgyPSxl~m=`UhLw8!ERQrvEh}~$igVMtw0dzvFF`g zz%8-GI_TffI07d4e*z2&Be6|!{dFzjR84V(KYp;mkA9){OoDq||Ba=gxe8eg@UU>j ziRPIihm3{>A>1Z$0NUrx;Og>sG5<0Tshj<(o38#^62w0jI*-rM*#6%Z;0RCp|F-yr zxDTG#_&WzUG(!&$_Sp9`3XMjll8WEIn}New|K7dB(RuzUMs{x|p+7lIMOk}(7glIu z8KC&z2Tbe!v0fovxPL<B{|*Pf!2e@i>{d=r%rF1W9uA+N{?YNww>SUoy&C*4ocGU_ zUXfodERUG>#f|eqN*EF`^#3Qd3T<|-GpLbiB;gKr-;exyNd^fyIm{7eW^GMR4IE_g z<g_#k5xT!^A2KG<DGc6RSaV_gywo%ugYzoJ7XGk(=}PL=uU-#f3=B+qR@NlMzc#UY zjF6B}hB~5M79O3uYdH^fbG=|%8oifiAX-W+Vg0w=&GwIWITyPe=SndIf54P64`C+K zy4_qXq;d-mjlYyTA^!(E8m4FXJDh(B{r3Sltt8q104{$om{OLMF2!vLWIQ=#yox(u zD{PA~X8SU$Yl#2q{{oMcj~aC0xJAJ|5qC<6`6M;T3w*4w{GeWnq(6fGmkChnDK2&_ zq#or*(W&R1%7p}R#4rC>WZ)Pdob>Z2`QhrAf5-3#7sLKgZ3NeaSrQ?fa$yGC|Nj;* zTxui%?;4rJHrV2}Dt{1QgbxgjrG>owx5w%+o3S2`6%kQh1s^|!7_vVS07sf`=aI0D z<$Yd<B?!Beq+}{<q^c18eS?*sKM}Ba!G?uoG5Chc)chYC*WiHEK=7Ap5io*sZdnG? zYVFZA(!xlaKTlx2R(k*UK3a7=S7Y6}fa5Hwt*%{27gfVM8&Y<TeA>u|xLI9{kAIf} zk%HuI4`I)v#n4%b!BaJ^LAFz&c<Z<FY{Y~9ni0Zqm%Q3Y2B#Xu+SV~&csAjt`7a&M z967KgTwK^w9kv8k+@8I+z>WMR1JH;e&OlN=<eeM<S5)wwOgmWl8IVu33B4~OPxL8y z^LKP@ddaHt#G=5>O}y0wO*y!*!c~}!;Cp^P{l#l)X!0K)yyt>T(Che{qaV4!8DF8z z<jaF^z7Kk2`YIny0t0Df(gV9EjlQkq(6QwO=pn5nOWNwu`1qg9n2{Yftd>IPuGBX_ z_o5aTsqSu*b!ZJ5Y<`|rV_;mE^?N6Rb=e5_X~X4nWZmpI>+4Uxf<Q{}`T9mHL<r~B z#k?D7krp0H(q+eZmn6euKmWnbj#T!hl)+{UWY*<oaQGp}#SFskdH4)Z|F2XX)^`-| zHV3SV9q^;Q%aBJjUV@4&K-?#*|6jROWsE6*m=^tN^uv`3h&1VCkSW-Bi6_@NeRj4% z{v78tDM&U!{_T9559ig3EBG1q_!wbT4$<8qA;X`_ggrd^BIy!)bQ6VHNd|5%pxUSv zyVy2*6}xyC^A8<0*}y4hdX&Y~*-UMz-Kqvc^ibE;Z~Ak2oD`G^4)E!;;0>7M+*$J_ zUyvP-HgxCW7V>jkQInv<ntg1_W!|=gwUuA;V?7VyZ{%Kf<I@fxwiQOMVy1yL2*qn# z`D<@eV9h_whR1os|6E<;hm%@=tbmGS<>1VOZ%Gye3N{_-h{Abrurq>$2k-YtJK8l} z)q$J1mv6_7{D}vAZw=#cdW6Gi2<`O8-m&75H{X8U3S^%=%PnP8oIDHjP&m2r8)G}@ z@#7bXF&7S~><>?{o@>)PGiibWyBcOzU;4ot&aIOO!>5$*IrIWcmND1FZ}l8cGt*^I zWw=|%*H0}kV|5<t)Yddi)eb{7HkIIt5uuW6y7_4{C#SBi&UnF-7CjxiLH47S6e@W! zY0?%SS>Uya4sXt7($~dB-Ti$}W1UyJIDz7I_E|l<V<%Jes<J9-wFwQg4cRY(fyo@s zWZ{#O@NHL1Zn2Q(bZafIN~mK^6`T&fouRT9e}BVC!oi&Idvk<$Zu4!D`08vIAu6ZI z{j~_B(N2r>U{(XCID3+JbZ}4>9!cHWm*(asC}gctobzi98qXds=)A~WSxL3YRM*t7 zXnzlcDz11o%s7&s^T&Lm8O~Oj@sbA5PEWTfn3+v|^C-0nNH^3$FLuapOp|u64h-NX zua2XhQJcHsxXM-f+~>lvL~=+xwM4>uj8G__u~<|FFN@Hu)aCwli=eE+9tqFZL;q+W z<IK#A_+pWJh62b?Mny$s_TW*L!4nRxdXBVEr)abs?vndjkG7;#;E2cKgqb+^zLdIb z20mP~)!lw&frWG<?hFHSE;JH045uD)dfWqklZfpWdzI}4_#ct8&z2hqmNm^7`CHrA zSoDN7hItsJv)jFbJLrCG%sp&B%7!cSY?izZjV}sE#5+81qj7ZYc$`+dM{}-vqHv}P zHB8}0@R^9OXci`Aq(R`Ey`5$po65MGS3cNFXWy33;we|sd6$SjTcHzs&?4Splz$=| zV5-2>zdvIaMn;JMXB2$%lFJ59I+4p&%@z@?`sHVFe49VZ+?ra?sPSS?gT--1UQ<pk zk?aSQeX9yu;Iy(l78X9}ao!Ran7tI~fXn^QE9&<0KY_U8^8Cw4oW0xeB7>>b{@eW* z;vxXq*Yc&=vNA4v6n)|Del;bwlA0^~0SY*~WSR;fAm;$vvZo^(f$4E}bAVawta>HD zPWy~{W%P(SK_2Tygh$(dzP>b;cg^2T`^sd0S{!b958M<Qy?V9lO}DEyd&+b;-TE`b z!X$Ydm-))B*#M9CWp3%Kv(Bb%2fok6y8`dtx2iQ-j;1dZiCB;26<X3%L!s10Q+sz3 zCjlgi0mNmMc+q`f8kG8TX8pr^$pmRThcI<5E!a|p%Aj;TDFLu(p~FmSR%H7<fEsSe zdf9BsRl>S{4J2vTLKW}~(B+4QWf7tB&)@eLfAh9We^qE>tV_#wn#6tNgM=O1z>GOm zqq?-n8D?_}F~(Z`>Q06_R5OXXTFPl>3iVd-Jv}G?Mq`^P{=Vq=#FM>zIn+r9-UPM- z2xS4b;W$LH&X8@PGv5%({)PHfcEaHJ;VnsPqXl+LdGNj_G%(|H>fMJs?rbwIETSH= zbz)}xqvG7O0MR=OUE7~`)3qW{BWQoseu=|tr0McpNO;#^uAm53gOSYP$NgF7ioM{` zTnimO@%F$=gxzsAc6m4LUFWJ#56aNuT^P>v1jXco1)7Dxw6AUED%DvRv8F%qb!&{t z%+#OG*|90?Ts_`QRSFjj1<>zKa0!<^+uw8E>iM?K-FwY8E<8aZd1pd@74Tze|Mixe z2Yu~{uy`bZhKTYun!CZ`9snH`6pFHa*aBrNjHF(QA=u>7lOsk&1i3TbBB`q@HzQ&g zw!#*x(@IU7spzRBlwT4ccZE$x2T@U>;ZaS0K-?QRwp<#%e@q{t#bh9jGz`7)p*ZPL zsIeMr+Z8?;z8Uo!)uRE>KO7Gp6BUw}PyNo+yn1+}Z-my1s-yb;Dm((sZ5}3Gkm;wb z0F)>p>B$t?&6KA#XUN`N-hbeF)2+`4W0xr2S*R<7VJ2OML&8ZKHTs5XGkd*tG^@3l z>NoXf`cT~zfMAbu*@^1HF>Z|&R$DwubDeT`#qe4RMsi-6kg_tS%`N=*!yN>hpbuz4 zh+QZ7mq(d>rUe15o@7GaU)$R5*L{MDRzG<t<h4w(YiRVCSKRLC1*)j+C9a%E&2hVz z?^Cf3xN18gc^HJ--Vz)mDU~-6?%ZT*WDK3a!e@#mJLKw}0}23I1}GsFT7cMo;#3hK zdaG$okB0XS;7g|x*wktNj{Mz~pZy8!ZmdaZ<Jz{#O(45jJLy`v9b_AXH|ud*Ql+7= zQ&(aOXuigcTj{wfU5wS)h%xa#vdN@?-j|fLpH~<1RB&f+eIMfzNoH|Z*C<!<{}C$^ zDz308u5qman0J^d1gG+9Sm?alSc5!fU$0--ncRunfJ@qpraM<RuG<PrW?07U?sW2b zb~c`9MZS1ZPI;8HKTR9@|7gFHXllUNebi05#ywVf+?Zc6I=T?QKC5g1N<0qN%Z_Y{ zGhfLij;p6^K{&)}$dE%s@pRHZI9Dj&ezoMu;(xlouo<s<R`Y!wb`ulMrz4O0ai-&< z6@>VRGHot*Y}5}$?9%Bs@}PKpZK61xkB`>-pzQ3K7s*B`P=sXaZ)hljjEuZ#NPn${ z`#LDZ4N6_2(i8S}PG-~G6I(||$9tKAKmr>$@-01CwziII#=F+S977Wnj5~V6J%e&j zVlf^%r^)AZ*KJd}*jR5e&#;W_to{En_m*vOY(d*-fB?bW-QC>@?u6hT+;z}k!QI^* zg1fs75ZpbuyAOV5KhNIhyzf6apZdD0XL_w(y`-w{yQ+K&s8?vWo79hygSMXZ@Y|U+ zZ7QzVX&@c`R2*f-FW?*Kwo@<sfs)i(!kxs0;jkT;a^s&94i*UQzge(erOVdb28Pz! z8V2%#Z8K^`&~-lNq`F&l6BbFo?-r6kN2MEa&Ooeo6OVg&<XCxmFi+_~6jyn9KJE6C z#yuX<!f;jjj`$H?+D9Pho9->EUT#e=pMD}6;)^dD(5I3+SF%46rRk3GJCv8^sjkuA z;eJo-GA6&8bBp*Zp9+O_mC5PDf!n#Ov*Lw>4I2P)h>%}@6w3CQ#&g52xVqiw_v6XZ z)$}<o&+4)bkfXV8`Kc5^`I5APEuw3}$&UtY<qjP9&wii9K4E6fNl0i}F6Tjvx+XZb zXYC#C@46%h<-}^vATc_I1W}F|t&iW={wdVNxuVhzsYUKbZeS`Gj;yA(Q}?2E)N-SL zQ+kSeQL}z@tmhxFt7tD}kxdw=PsRkEPJJg(Tg#ygUC`itK<TJrJySo&{llJ6ozr%1 zGhKS)>sQjPv!REW(|~2}{iWm5qE%g1C8@T#GI_PEo#T^_fkV|`sN<m#FB|JCNR(+P z<O*0z4JZZQ8c3hp2I5P`4?L&>njRxLB6at147tK@!GmvYLmYB`+r(OG!yeLvwF{ok zl%1e&@>AqoH_%-v7hr@Xaz3SJ>7hXeye`UG0l-`7aw5M^g}igQu03D8h(p@eXkS5j zANxDvuH9zb>DG2iOM7i4+`9vp_o{^?@YIRnAdp8vVL@0_6y}02v>$x}GZ+;n=I2tx zFmQ^Aek<$KUTXXi@zaba^2Sd!F*GpZ%i+2E2voG%6O@EqQ}O9fEen-5Bk&g*I>dNG z?)cbPEkDN9IMDsLWqa*-TKrg6{!pru8Vv2x)b*3xd>#W<iBJf?#xxH$jBNTLN_wMS zZ|g;%9Nsm^aM>lp@9)3l!zRML>#X<{pYDy1GqN|ZTP-%yB^3OKW~CT|r<R0}g=d&4 zUX-j9nbff8;->yA8uW?w3z9RWzbGl{m(Txm$*QnXCi|3=9aatt*+)Vm^S{!6Z`vsL zeISy3g8#pSUp`x~fhW(uKl$%6X$*e$e-Hgvm^JhT;@kh*(*Fv1Bheu9{=eq`N9c%6 z@mci$=+i&KEk-Humi&JU`?RA_KSBTB!hi<c|6g@bHcgb2w?jo8Nl_Id4vXVY8~w{E ze|ZV4os--0K<rfM?p&{N^^T4UQSK%Q{_BMKH0Nu%5z3J5J7Dum_AE`}N)%<uX&Wcm z%$tFn8eW5U$!^W=?b8e=Rw5mwB-$nSf3F{)3LeKTLLG;bqvDU0B5Rz?cH&nX%HvB0 zMcN2P>_PuJkp=9ZTOwsCK;b=r%<FbUihaK=44~~ap1##hJ(V?cqSVhIg>CGEVl$5Z zSQY79&uGps<ov^#`JJaBoS7`0aaqx<+lv~v+w>qydTGr2Yr^Dc+kap4_dlaPN%SY& z7YJE)5<Ii1eFsH^1cyfh+w5@gLgF_-oGNij{B}IcORT^2aj>MBcwZaCEIYDSYxD%; zD?64a!7<ZnCcy976J+jo%(=}t$c<HQjm6UW!I*iH5kfhJX<l6CIN4DNaNGI|dqK*j zf_&_7yg8af$X$uj^#GCTI+RtHplM#!uS=86=8l}7p8ad{wGT3wa+`twPcxF??XGYz zkZEnkOOywF=4*{X?U$v=_Ub|_{si*e`$PTLDqHlc8Sx70>xZTE#uKh20T{PI{41m~ zpkf)J4j0w(Vwyiu{6J2t-^-`a^5c<u)Ae1*kK~rP>SN21utAysotOatf`5hq!bOl6 zW!QIZq`FY4l3QSc<y?_NAi2m7Ph?D>KK;HY>vJABSky8z3)F%>>4Fp|5Aqy+5xifN zOWM<j`dNjbk3S6VScLNfON=};s}O)gS@4+=q1kNv&sb?MfxpnK)Lc#rJ7BTL%3_g? z(+F;z&sML;pD;CQDMPfQn#c;zq{jOUssK7?J#GqbhujEGhwI(~2@jg4$M+fi<EJa1 z(&9JNl_==g`>#t}ai)~|(g|jAv#GaRbC>nt!WW)=lAl@&1=y`#g=(LC{${sh)3`b< zS&ao5RmE{4>8E_K9!o5_#!=3nb&Y%8Gnw1F&b1DUq-``1glk}_^Qh$8zzCP7668kI zuAWIOSxGb`QBw|OAc>%OKUCgc{!;!K8FO=caK5m*7hsMQ9@`9K_g%HFDuq9qSr(-1 z-B-A4Uhg=jV!LTESN>-D%*j@06~v^LY|wL{HMNTpdpPDo1ZZoXbVI7;oU7riXq!i= zZ&3c0H-xTTYQ*YGms~7>@bCUKi3i?;csuCy_kPxUegqGDxQoMSB*r%LMC~TFgsSqS z(P>gw|Aug~y$#*<^xlarn#*EyP&VtYmEcsA)+p+k!T$sEOP_t04`<jQrLQjXLzpup zd@M_A0@bjE?ojgNY||^P^&s2Igu3<P+ni`!|7sgX+LaxD8<kU(hY9v&w47wQ1S{Qr zs{Urr6b4G?*nzQtT}@}A=UWGaFXyP*X}U%RBK(%42QB?I8rpups@}H?6i!ZUm|<(; zP7A`^cW=lQQ|h{}@b~0dwkz&oU3kHqfIU^U9q~H<j={H5<k%r%s9(0t!7Oev=s(}T z3jaJd^lluMOIpC?m1Q$ZP<w4RUSFofO3ji;z36KFs7AZ%;e`(Vh~K)0{Z7A!bEZFr zQAlEvnj#Zqn{{l-E&J8$wb+)ttWP?&-x%jp_l|A7It}V$M}}H<o9VvIub>)U0_h-U z=Fhz1^AF&>jHfUMlWC)=BH(z_SUkTiTgAlDAeI8;r47!`eng{x_v*g3VDKh=NXT80 zUS+6oknU!OWORr!>4E<0@XZxYGC*8cgWY6b_AFkOvaus3TsgK#l1QY3yN0}7SK0JS z1ZjOWgzUP9D}93|Aq>3M^*KKB#%#Q~8{GMPQ-i&2aS-7{rEVX1U>{@%HmZqbIN;PK z?qF>@5?PP=W#V1h&e3uv>gx@y`oaWYVSJhJ`cZ55#~id$Qvx4bjROAT0@&9`-{y#? zfksG;DZF2A#%kt|rxWcppI0&->8v9w+PuDnZXJFw1Nw?Qd40)0?s9c)m(Pit{T?A& zsthNXrn+rRd2$d=LWlcC1*My~@$Od@-Z^NYkCmrlILVIr589WmM+#rUKA58)G}rsE zCU$=HYAiZh1ehLaAGB+-UKD$!6I<Gd`lRQHx^bhAXgpvMnO%4}uzD_je>nW<<b|}& zQl~`TUhyj+;mb}z!_#Y5>WUL-t|tkY%AN2&>~M?o?-BdTwWQqtIRFr^<*dbdZN_ZN zlitxzU0A;Q(fm#7xbGb6OFVejJ5C^@gofu=n^zYiH4On^87Klvf;L0vo>lrH)Ry3~ znl$hKG`Un%sfoY*ZVzI_aNDHB>s3B@_c0xfAL&gV2z45wqC09=x;<c`ReVbf$Ypz9 zaJjO(%V|u5eyK9G)gP_T<^gCf?ad9M6UF%_+!=ywR}3o68A_zO+RS7aKAEoIrv91Q zoK;cp(%EDX7_L<Vu|CI5w<7HRO$U@Sqqcg`z@nIbQ#%^M&`c$x2yvDj2L3LWI$f-S z%54oV132(Ys>Sy|hSPgj|JhvVPr7~)l;AuW0kCXN4c))C%Io!Q^2OR)?C;cQHCBAe z6bQ81&B;?d^^7_;{R*}BYlA@qw#M3Tkqb$-d>K!^C0p}!N@su9AhC^*y`~HQ8t2a9 zZ)?0n>#dlt``Hm%GgA&m<ES5rZ&(ubzTNkba_i*P5_&&mU4vxGUWt$G*cm?$&s<t} zC7Wb!*2yM@+p&=!y8B~SS*s380wgSrU4MXgjl8l$7R)E@21YZ{s)r7eY@!<desIMm z-mxOL(!yys&>fNI64WJ*Z;AtL<rW0^!<pAF-bGdE!yvj%Q8h}hCEvavWf*oNEe02L zam_(_mj6y1q<>BvK5t*5QNnOKF9e5f*6_$fL22uPApC<BRdjx6=-{N!%?eV~lo%#_ zZzG-?mt-_OxILS(m_{^gY$bZpaw48j!5-_v3e*_!Y<0^_=7PjLl9I^af;O~$3LAqG zJLo30DY~c(``tZxq$Cv+QntoII|WrEpqbykV`Y_Xqm#&QIm>Cdw&o_+HCY9X#~C3d zfdw+WS<K)B0JO}^;6lyD#ybITOG>(08ot?{p1_oaqUU>7&E#M;r8~wZWfc_&WOXvW z)etKB$yPUg@r6G@a6)<3mXm_(!nM-BHte~6Vl9)?FdV1?1>?R`x|=TNRWo{+Ai!Om zGlC8@FOF7m8eGa*a7C88o!JPSnY5@_>|XSxH7n{AmLL(lwCBJ@7z>uSdsXxl)Lb~t zb)$>`s-jtO`#(Z5E*|5O?M$1~?PdmnlE#a!V7Q3RjW;Yxk(_Kb;$o7FV)#m2-bFvb zWFiSGkSTw}O3$LPjg^+j<CQ*QGjheam{bI(wBhrwW&T4nllXypFYtI3R8kj^pIa7N z#ee_(i;{soVN=|oE->p%Z=D$B`ubV|NR38fH*`+VzuU&RvUB97i1G{!EKd&KYj;5s zx9`f1G<@P=@ve`?-6Z~-`@}`Di5I{}3Z#uNI)s##b!3K+kd%f!k1WAk$={dU>=him zB<orJ>TBRTP5tnj)|e5<7p(mha?YgUB&A!dn-&O=m2y9fQ&n&z&cPvxrlR(@jEuru z2I{M#u~w_dKcgH;DNL9Cp`_TXf(qmg|BiC=K3;=&J&DTL$9Tlf7SX$mg^j(-Oh-n~ zkFTpHc+D11n?PLKl6ZEO@FS`Mg9M<1$R)_ni7YWhWyJ9^IzHZ4^UOv^y_0Za#F0y0 z0P`G|n;N@xO2N$BZ7UpP3Lny(tkz>7Bea!gN%!Q$+l7gPrSdH<R<rIq4_ka1ErDC) z3a+j!G9S9wqgNn6C89Pl3pX$-w|@s+57~khW|(rGN*HKPNP$`)^8A&Z%nBb`(u^(d zPKTU=qAuNrdPo-iH~z9N@?K7SWO{2C^HdjzH?>I?sIY<%Z@)1qJu$VD&L@(8iVo}c z5t6B)6?8-MuaN?_IJWe9t<~eO;8O7=Cl{XtU%$&^cMD}{jcQS9Cg+-(PVQelRXkoD z%{R5~bllukqIlG6GU|{<vTAvdd%-^H1EAz%wCdb(fhGG>vxr2B332Pt-j0v^f?eaX zYJtcKANIm;`eUBAJq_ZMP7z9#Q}^!c7{90KDZmq_jRSNxAjzoczH@sDdh<2Tyx+=~ zzSw{8Ckn45N21{uCT0R~>>7H~fP_9ZFY`CHpZz4p_o4v5n$*k~{tVO*rKvk|W(w1f zgEJDX79&_bUkdM|hi8}Lzma}Xt<hvcnRpiaXv-S9qpsao>zU*F4Y~YK#Ae5LGn8r> zWEiM6lr&z8EJl5u4r0&e3z+;aw#u9N?oI=)IJ4|P;_-t!V!g>m<)wPBd*1?Ec1vP6 z#+(Td)OD-A(q0nrx|fZzvGRu$B_+Q;U)<t{{*Z%29pK5>*SCNrRcp+F94Rd2gbdrS z0WDOs-%Q@@?p{BRG;KvQEgjf`fO9ppKJ|1Ql#AYiqS!p0XJo>B^60njeA{$qlW1!S zS7tz&7@Wue1Z=#KT-%gH+EaWC^tXgIcwU?;csU41K1$xMOOxDyegR)!pFChTd17~t zVDz49WXC&tI1(u1UvBmOYTpr9ojz<wH}1N2XupgydS{Z4(7D8|U(4mRH_<SB060*T zHszc7sFq8NMCb-D8cN5F`kEOd;N=5M{?_Z$4_x5(T|u0O*U9u5)3n>`x&MuyV0_=B zDDmr#4_uLQ%PC5;T&+WC5qjn=Bp9Cm<L%b&Dk`q(`X$G+6a#H8%*g%k5Xxq(=_ne* z5Nvbe0fCqRMjv2qkx_qSc=N5lJ4#S)U0B?)Ny}=rPPxqnp<K(qjWpixPt()e`<9@` zMcYgKVvNP$07;?}K&q47zpU^(RI<+31XE1DP@&UQHm^T~DR#oWXr(Tz?kGgd@q>9h zi-<U=g-_FWsCZ|XnKGCp%agvFsH^En*Lo?4@jb80L_+bgx~c)fUPIGp>&~Y?zGF~v z4r2p19(WPBiGWKUq;n$PiTOkYfq+^y#s!X+>$}=*GiXC$KY#foeL?qOEo@u<sC6qu z5$^}ivT)}u$*8E5wsbx~l<?UYBm62&nSJ3_=kZ_a6%W20ncZTe!1R|25}UD8kkP)M z70z!6F;d?$NonmiQ|3hBjoxme4%%K1ysgOJ7*U2$EOsG^+_nbzQw=SClT19qK(KmO z1uN8_a@<mTwkzxXuub0m!i3Xe4$`x2AdYIib-U=O^J;s_BZ$?G(Fa#$XBy1euh|Dy zyg01{(=Ctt(=RXNOwdBZ?=RyyZkj&-!A3W+J@Oy_{z>t+a6~q1={K`ed8}Ryx&8aU z&V+yb8Iwe>!YIxzuovxZG=@DKId+2$_mQK5tJO@Z(!~X3I?Hw|R2<dT@6>FI=o-4i z*h*&8^Kg|iV?(BJm>0Ecw38F2I~*u=-WJ00C9&o&dpNDG>yUaGY_4Vv(X^RSfK7Jd zb~}W%&9tF;l``N%tMiz2>V-H2GNWOy&r}z%5$UP#5~8-F%NBHHmg3hG1-tn(^8-;1 zZsp{FiT{ruNqgW@_cGDzMbKvk55hgObBm$F7wsNzy3==#M7RMRyai6B(WA&Z(f2=7 zZM)Haw`T2iGF7L{zx(NncchVXyFi~%db(l=)rawo`p=mfUKf#0pPcTk54>+sN;+RS zeKKTzDJ(uXcy8af@s`PVQE~|POag;dpM0yy?gsTw%m%NB2j%i<24sK1EbBh(rr7A* zUUd#E$5!u*T_QV;<|R3+%S9W*P_6Zttz3vX;><l{*t8beQEo}AC?plJ9L{(F*(?U? ze)wUa8$01-QJyae&iZalCb0DE4p{*;TymL1&6!8Tmlq(hyB|J%{JiJjOvHN4hjfk7 zF6JGy<)0kT^}LT>k&vK5C9xPT!X{WUFxK<>)7viSVWTWgTl+_5F-VosuYCieU<bW+ zcgJ+mx7qaE;x;0g(eD+k<tz@PPIHOd^0k>UKMI3j<lPQ_w5&O{$z6HLv1;39fu6;= zYhKa|-3>xE6Ta*%^pA5(yw#s^hzOfjx}MH(784WFiMpFQ&*qDF4vu2&w$YK+!W{nE zfVnUxq{5%%iuAA?lG6|o2}HTLj8dP4g7ZeNZhVR&y2l5%^x1pH!TVv4xI4Ea(dQUX zZ{{zu8$l_|7yX2|d2#QDKdNMI(c$5P^c7j-lT_|2klZy|qf=8chZC?b7`pVpB~j?4 z=&c`L9@T6yn1nDk;z#=kquuWNDgq`doh=tIfr6~zT%me>xEMHg@YgGnn;+<DHeI;0 z4QQKhDP!RjncCfa*#rVb-!rmGkEOWRt0%^^n${$Pg!~^;@3+xyek7=~9#UzGxu5Nn zd0p)HjB(USrLnG<ghfr$PV#-#abxcA{o8x8p~TJHDnhyoUA<<CY&DTq5t7IE-shFx zd_$WtiqFe1MH^`v?O5-$O`O7_H~7md$7oePu*|Seo>aYwq5~oA8YHv3uS|-pL!ls{ z#l-u_v^(_D>^R5~DO>oRP2S(u_8xVY#N(F*&e;&Ykr;<08j0jclXsVKE13@Z?*OJy zvS&Hq$KVhUrZ5$A#Fi^-0r7+^=CwI=SLgF0F2OnTNf6dIs9o~^ypUi&qoaoEp1(%R zx_oS!i@k?AoA1PMK{(4?&6q-nTNv>0HlNmSa-KDvNy78-dJ=SAgd^efRO@xT`6Rfv zV^aC?ldS?JHIC3?e~F6Z=1-TvO6!>y*k^;-W5v6XAr;ql58M5^O@o{~_<iZjbY?IW z&*R>^x~gXTesmeK!f(QKsN~>w;B1NZN(b-yr~<L0gu@AKOQ0=0-C@dnhB^K7<3n6S zAL21tsJ3#<jz}a5DjL?9B#z-wpov3~qIjY4VO>>Z`omvuUzsuEzc$KqCHK-`i>A+z zxi@Vb+p+le8N|cqF)ugf#w2_0jHdsBLR$a&vpEa(hb`M3tR$^NQMRR*Pc=doKz*qs zzRm>8aQrQ6Ayl6CX-+!ojmG<B<(9KS+%`2c?bTVZ$5v}<Tpbpo)$|JY*<Bc=r{%MQ zGtCYZx!H)jJbHV%e}Y8p*h}2aiYa?1b_$D@=tZ7i;;*{wZ<=P9l7|%zi%y**fgC&D zFo<W$CX!O(A>$LTUUwVbjjH7I%>LCM?ldSUJxR}O8s5Glx;^QWd)o4Rj;2D&Lf6DN ze*c^)`5Lua>g?R!{S7qA1;C=|7G)g%M%%AFDKp7qB?%H;^A#S4RR^}Zf}u5TrrVMB zaxH5>_S$5Hx;5!}=&k^_8ZF(c+w(mf574=5E29R!z9SxrkTXkHrZg_#XvEsQTPPF! z$Lj^%scVD713}?DwsyvR0gc;Nim5uz4LJn`O1As8Yf$#U(MB0sM)}QJd7DB`Q&Kob zHzl1Cwb;$VN!F|@ks6i)_1(@l=t+ByGlIEJf{F7>0A(@52d*cFrrvB6Wd~f(=2Y`j z&CTL#6)z`^;rpW`HcHmew7HWMOr8l2i|{qJ;iVHg28OI&D1qmGUxnoyYYcizCefx} zFWB^BwWx^({hmGnN<GvjI+S)|rRa-1PesnlTJ`zC6ero0y}xOEeblr~l&P30pFpH( z@%|%n;Srr}FEDej<2WpGY2<hrGbjZD+hGSUC^XljngqO!R>CarEmTB*iIt`Zs%f4E zh<GEEYIoMS_K+`S64cr2sm8EI_==>^)oZ8%YcBOAMbu3dY}0t6hfZUS!fg~{*NC@^ z*Hpv5ZD3+z#x<K0C*oY@eN-*Q<4&V7G(?gUm~j8I3$&K}`u$tW_@u>T#L;BjE(S4$ z<vEJQ4-`(J#3Q2M>;F=)3)-s_&U+G{v}^<}k8BF3T4?N<Sg&ViJ~x({L_YJ*Ertwk z@v(>~_Xs!Ot}<fd@z%XknAh+s1PR4l@WdFc|7Hky5UkyYrS_>!Yj%GPbUT<W_^O0# zyQyF=Ce3V3XlNIY-IZlZ(rBE=f0wUrcs;t*Lza0)*>pN}W%K=$NCG+W+rPfTf6$67 z2J$@BomBzi9e<<_kJ}fMwEC8-JB;17ACmx=s1E>u;*}X^Wl>6y(}tP_QLYbjncMxt zhv#PRoFcugEv)E>yc=Z97Jv9?F)QGJw|2()?V>fhqj`M4S%sxmNV!kdG0KeL(fPbq zqg2^Vw)hw2`}KjsU*bjhGERBr6N#mF&Dkga4v&Me!ex24+xI<`HrHoMa(|3XWuu)X z*my;A<MzK30;-o(Tq@i_*!rcer^83n^=K{8Km8Y^A2|FbA*I~#eRV>@r*;obt8;aM ziU$jIZ!+~siGP*oGV*NrBN(^kUb2o6e1T?l#&VX!0}h>5UlfaBpC6AVr~6WG!5Jyp z0RS{U-NV~e8u2uK`sC#h{nn@4Y|Fil!0^oyli0?Y?RGRl&JkKja`n33DOBQGmK(() zORk24Nlhz+f7`+@A5IY+$hIG!zKxr64qK;GiToO)nb`x^kvm%WJRPs{^bm=n{Td1D z<sz86{=i7m$(c4dTPa7$-<T`f5faO0ypB`kpgZ{5L?J_zggzS^_9gwyWH?N)N2I3b zo!#9)kH+y`b6<CXOP!*?N(A`cK*14Hxs#b2qiP$yKYQw6W?Q2*@2p*|<HBAmqV}q4 zs%MqU<^@dM8`Z$qbHr0U?3B-?HdjM3m6f*M$UtVAr12Z1c#U&Q!c)azYkcwHY>=<a zWy_Yd60W2UZbjySVIPW`qDOZ*Urnxf!4vLi>W$dYBcS@K#;Go?`ZWbBZamFj+$wXq z_MDd*Aow%;fwKwUyn*X-h=Ic*F>^YeIeItXCLG!2f-{lV4wXVg&_8>l60GxqHvpO5 zzTyV0P9~HJ?Go7<6@|<zM@MGMc8No!G8ZfT*nE`nqF#p~YbFdHJ9EckpP@56!|$fy z#TU@}fo=;>uskU(r#Jd9pzR8?b)Rz?e1?!C!s<`IAuNT})TN4zGbNUH!)@jhZg;7s z6-oDNuL4n)^=yX;(?_bNy2mO8bb@V<dq6uazezk%rWC<g1y-b1?Kuq4<z$$ttmgX0 zIy<V0LEGuoO`LUs%T!iuOc0kbZtnLO7NRYg`mM|kB?U()d2RqrJ@b;mT6PRh5|(v) zk&PxyG+jR-&To7|UcLrnD+S}-POI@1j|AFGu0fJ$wo{1~-zDeMa@i=)ALwgN4PeEc zvGar+eE7m!O+-a@uA?XLZ)z-tl#q?OJ1?cQt@|xuFiu4e8+<?D`1Il@52Xo5JXz?o z305Rc((}BohqBw8mxV@}(|-LZYw+#Y3h8PJe{KD%U<l$D&m2<6t5JIMEXxLC8yxRX z;b$&uD#rMZ!-0ik;ZZwy|ALNNdJ=*#@RRyUm=|6*a6h@~wz-BA8eD~y!6_9bZ*m2g z)-%MG2rdyK{EG1`zpLpI6M8YpQj4^o3|m!CjW{WDG>UV!S5p+`TgQ3Ne6T%-AcQ-% zJ9bR)Dw}6L5UG^Q)eVS8LQr^`YB3aQg&}8@>^?q;%5Fb|5*I2H;n<U4UTFP^P(ZqB zu)M~H7xdL@=I(qQCj#>6mxoZw%G3vyTT>d|`5|_dQ^aR&E&t`5^_FtH_LL9sp>=v` zy*e27xb1tVl=>_Y44-<@9{)8ocVTR?;l&cpmr>9AoRt_U%&*u-Qyr<z7YDfRM^L4R z{HmpOKZHX#4VM+K4%cpAMyDg2GR+lt>RtdS#m=Jfq8sNQ{Zo?yD=Ci$vKxx6lpo6< zB$0m^d!80B5L=*hk;b=4aUfT2M$erME(Ib{*WJBJmnn31Ts=#-R;xlLq>R<*Hmf+x zv1e6!jx?08JFm~JFL3dFOKv$3*3kI;nNzXqpybE0&l_2of^F|TijdhCkMa<5f`Gts zJo42-cN9`Nb-ubwO=Qnc=Q!OuT{x-AVl7J+BiR(kbAwS+hfrV-p`4E!?bL=l^x}^9 zYs7ujL2P_q2`Pj5xH(4zc|Lz^oz*es`|Zi_*(^H5k=KIR{Lu3IZyR>HvMw+HDNH*2 zeEsB|<l!w!DfIkUke?DdN(mq@<un18h+%O5eAs{VVo$@R@{c-b#h-C95Gt`|V{as} zN!_~fSGCyJSNnzH6a}x}zD!?!h)9;b{=jzP<$7A=r*V@uZ}Xw%EJsw;!B0>r1}X$; zCR;i~^QeQb_`0>5lOaB|3+NwTxbZm}IVA~G^$Sl8qK%o1jeqwj$e+^Q?}&PpvtGr+ zR7AJs9fpz(1ni!l%NhhdTn%Z$$|ci%LjK^*MQX#I50d~ZRSsEg+GQxGqLhb2BbFNJ zwD+VW-S70dRl=gx;z;9)>8-82<Q3TnW`_Vs%yixB8jB00=lYUkh}@v0zb1G-1HoEm z$^8^BPrgIcjjDSZ+P6RCE_w%8k|$s(;gDpyEpZ>CTM;L81JrMv&n(Ta0Eb+a2yO)N z&e*5IStDMCZ(?r#6r{YFVUdv({NE(t^=wybBMD1`9!JcZ&uMA95^BN5)$1HP&uu@2 za{Z5<01^bBOV2=QSWXyy95BD?e}LmYzNir}?PLHq@_fk<e>B>J#z`;c$2k~{YqU}= ziIIC#{kiq%Ic<W^di7kvW@7tGwW!{D5RPbVnpG;Fbj`nQ0ZDJA%_vMJxEvy$({3>i zw?VGCB@8n5`}VU=w9H<=J<bg3H+8<&F2#7L03|uVv)*b#vGk*=R@&HP*N~p>BWh?2 z!H$YTWB7)lUvH8twHzk~_X^4E`?kr@d}Q1;^b}U2a>wL*APl<h1wX^wCr&&}cwXPT z&&ZN}=!p_75I*rU(Npwh2nI-&>-7v9{Mo|?TtIDyj(X0Fg&N~x26gw6jG!o(v{v&Y zR|Uf>j^S7mvvU-iWnW#x?-<dyO^ZG~3A@P2%RnYv$EV_vqoewu7YS@w6f+}s0xBtP z1;5<$(&dWz5Km^jjtyXrkhD|zPZ`N?HEZH81{-+G9c)|Dsfr_NOa>Yfbv2dq;f$K8 z+dAg%9C2N)e5x^C;=s<kO}-v8bPNLj;jY|qz3Fv>h@0E%6Z4aKo5>ITbV!hRIn!x| z(Nc^MOR?7<@)W|Euood7mIml5)@)f6p^<*)QJo>;<N$Duu(i5K#1^EL%e;N8kG(ow z{*+7s_9toX+c(Y42H!{72qAiV_mxF0cNJpf3Zfp(0Yh|D<po=0tPICg56ks3p~Iy} zls0Zjwn4`v%vE=L@vfSOxQlAdgT)KTn9B{t99yc{4Ae#&$-UPU<*cDW|J~40W)~=P zQ`s5~_=vE$(anx<zYR~88SG;COb?k0SDxLA3k9nZJ(Xt|_6RldO6<K?D22?scPjv4 zuc`-RDHXOP9VrhD3D5N2Z06C1IUC8@{4%&iE-ct{$RP{q4D#JaCX_@T&kg~oP61I- z`}g5}v?K>4N*Q2h?GMbGvlzFRxFTBtV^XVzE^th1&HE9)KDhH0c;;}Nish^^ph!-c zr0acKs<$E*UUQrlnSw@ohiQ^G;y5P6&UV-uzgG?#1ZO@+&}W)o&-<$`FB6Tno5>Xd z+EL>@y(wq2W0o`RR4Qnhjvf@W&dK_Ei44`nk3~b?wHR(6ATDLwm63p$39F@gHX)dp zofCtJFiKK$xp+i8frMy04kuS)tXdp3k((rj)_T4)wDX6|Hrx4Ig{~eBXRWG#(ZDbN zqtzzM_@BiJcx-ofMfrNd#bZa^etPLt4x}B!^AoqvhyBezAX`uEY#;;>P5TXUSf?UJ zN8bsr!;_z^zs*t7mXsd+TwMw2)N4&eRtH}u8QzbHrJPj00}*k13o!y1ZN2|e0Pnk< zy|e_2(j$VkVmnZ7odyq2>nw+5VDW-bP|-R0jj8vmy&JQAO>WV$L<VPAndorh71Y5V z|KPB6;S>9eJpKDSzL&HpZd1#dbWh~p!zG6~zMD0r?zN1sC%=HL4-Urru~wEPTKKMQ z0R(cv5ZVR2AD^|K@X^rNbHpn=Z_0|3ePfMUjNxx?=w?aF)-OBT(|_~dmzlg{lm?&l zUb0GbYB7ZdUkXkP>+H9{+XRK9`w7Pwvk;fj9^HOd^GRU(Rh`BCm!C8}p`STH6|egh zF=c$s^ErCLc)-2|4UKHBaZ@Cnd)p{ug^EI4E`_hr8a*~9bM!`E8#5Uc7J)3Js=}RK zCn*)sa>FiitpcB{R!=(lz3ziZI3aS>wvV_(-<2;mAOW3}|J!o@&mK23+wEPV82EFe z$S87t^vRCB+|Gxa4XI+i3EIwWdgi>|-C^6<o#lv8!M36s1#rgOkfr$0($-HjKdLs9 z{`z#VI=sl;Jl5=no)ZII>bC^yLiX1Hjtnz;u0v*=ik$3T41Ra4`4#vNDLic3`q?dp zSwGYS+|BE+Pf=Fd`Tf-+Ma&<}mTqSo+!Hgjv>OpX(*FNI{>&2+E^k18kf+>h{DkE% z;$+bP=(GA<u>VX>kAHb=^`RAu(}obPuS0rkci*LnR(n{bTckaPa3PYXq$l(v$EnZe z$;lOlz_0Q8sow$DZ`9Gi>j?r(;dqXp^<q>_S%)l<K`+?<kyR1#{aRTA<@&jmCataQ zOON4he<q1Ze_~+R4Cn4p_{clP|IT3E(tlV@>rzY8VSD9uD7U?f8=VgmDxAYpo!8?o z)sY|B<lleP9XMgd*R0kq{=u`bh*>(PW@*_e@5n%u69v&tyhg;t!v1NFNzo#htx)#D zm%zi5#M*Z22(w<zz8&}78dtAa7R7o~re6Jz3y|2~uSYm!0GUZJw!&X4R6i)|>&sTZ zLfeUop-r&Dj2=-0B^%XR#selK0M%a+7#7bDXCR`-ngLQ{h`7tS5`W5Vq=uJ@4LZl0 z6{45hk=l-LxEEk|n>WJaKXm+8YZw}jy*SG57vzRJlWtGa`>=GLR`+4Y>D$fW`5eU{ zUHp`^AU)N8AIPj4EJt{FrK8fU?Lb)0pLw@Ge29b~oyjn^$9vL_S;i~~^4n8`or%-6 zX6`VCo>U)8#f+*`)(wEOL&>Pz8zicIfhq|!lI<bp^wIGV<4ZQ0vTzk#FTfaz-U^=E z;?cCwM!c-7sK&C}gvRMK7{seq3uS7f6IxvrKO@5-F*B4RenL)0aPW<q0=o*x-+R+z zq&gmscoob!>|-;RZ(lgJ0#1fjZgr`krC7q5g*s+@5AeBj#t&~LPx0o;Saee=&6m0p zE!p&2JKc3DUNn=-=;73nzg#kPY>p?@z$7+Xks%!T44fFo);{(+-6#{9?5~3>pK5FI z`*4P<-%Sx(P;;-w=rb48_DZURBR@=&C7SMj$RHQuH_3CLVb~3rmIdRI<LzWMd5V;H zF9Zhm*#B4z*gsouOY{+Ni{E#t1B^-#Lml{l95Q5m)g~mwyvd7UDb?1X^h1Avc<#Zr z_IYMutIzbqAA$7u8`g{!br=1zXPM9cQCIl<|DmpMCXf>hu|gg~*l%zrkg!(~>b;=N zQE-OI{wknfG?)}bz7+Y=6~#1A9J(*x`;Z*@#I+VUYAX4HpjWXov44o9J3^Q&_a>?W zfmdi<4lZQFmo)i@WbW!@u|7(m4LVy_;&vg1@y5GO&+}1r9h?qK^j!|82)9k;;LF;j z4(Awt9%qr$sRkvT6=uhVtwC1`TlRBcHFV57&*0|<NSepj{zVt@%B0iA5<4M0YiX#@ zq))SbcS`94okHer%!cEW+ltz+6H+&(3=ao^PzzkqJ7oMn>W1TRZTkEM0}0o%>Mj*_ z&?{m>)UNv~ATp23acW;<iHeb<bz8{4$`>xD${e0v8u!;~EX1@aC$RFJpka_G2PG+f z1v)Uk*TuPY8IRF11D|5x9a+ym3B;CZ`IRc2J$lyiv_|0^Dw_T9CYBUNh^WL}@xs2P z6KC;1kW64A)M*dWAC8!*QalzopaW}qNZ4l6oF*@CWOK~G9(71()3)<0S(nRixuat- zTSE2emzuW5j-l^qMZK~q8N{^RweeFp`05qnKYujMT)eiAyuW#Pv)#3x`@UmHea+Z9 z8~_p2Xj0^FER5&8vBKH&l$Vf8N}wk{a=33giGYb!0s0Ksb>73Si07zwQSx~kN7RRN zYRua>sp)CA9XEeF3hUAb(j@%BXj~<Y=A-^#3A7hqrx})&WNNM305fu{*(%DB(nn+> zgkO{HG?za8m>P$+<-(ge(6uMMbe)g!!y9JTFn36KxQlS3GwJdn*4P7DQc?keYD2G- zZz6G`Qsf7j$*J4}aYx|%;1Q}HXN>qSbpk(%LK(?a46DT==6f4DeI<G!)kV{M?O}t? zv{eGfdaL8m&ZiyDMUt!f+u{3hT>y=8$T$`q<F#@sCFMOTN6ycv;ls<}icBl7{p|6q zdxwm4hz-nYH^zTG;JjmK1Y(~L1rrzxZSb29-aMY$>gF4)B}V9lKaSJAsJ%rA+2W}= zD->)8Wi@=Rq1OOhn37_u(KlFN<U+y29nAo6X1Ie-6d~r46#OPKZn{$-{tHfaF6yMP z9&wNL@y)7oycxqRG2cn~xjF8a4D;n2MB<7<fR_N6l|tuO1>ujh!5e}qLXg5@v^1(0 zN2#XI4|T2x&lsSnw|tKdHh%Iw0NM?X!nqf;+{kU3(cNPaV3)qIhXb{)(uu^1DZf5j zn0Z2cv?jt|e;64RCOq!n75TAdRR>R+?_>2FAzRB1(@l+>1kG`jaEefEz63uX&&2`` zs6VF7bG&y<oa5tMg(MIcH~4I|x`UvoeiiL3eZZ6PB_MPdh}~)-4P}nCsBW6>8<9ki zr>dhON4@!<S1g0Ze8nYhp5h8towa+arOY-v4YlvyUkDwKX(Lp&#Fmi!t0;Z=F1v*y z5&0l0_JnR#>Z#GO@D$aGh&qN4+f_)VYVzbHsyh^Z)vt;*pdeLIhZZAXCsIipvj@iv z5AmRssAnk@Ee!2E8f@RkF770l{SP7YCI)v1CxuwOHoL@D%Gvj^;s|$t;B*1>dY-E7 zxs1bD{yhh3O|#DXQTErIFAg%cB=xL06*Yf`CCA8p$5sEp(lj|6<mGj)=Si@3pVN#> zVMKM6tVs2#4(tTx&^w9w%~sa=FSW@Ki1^jI$SJ?&Uzxp&s<L7lTyX-k4Z6A++Fa}$ z^&pp>&&~F0q0BV1Wy*dgO6AU6#z`tgJG~F;w!#U97hbN7VU*7(Btz2`{NyhiQhE&4 zK=-{E#4}e2-=T;uQ=S^-tSK~ghTGv^mZx%=Q<ch#@%t&^cIyGmT|bSbYLY=J3EhIc zDWBm#m6b<VYeww@8FVm8@wE$zrI~}Gt6_I+!ARu|=G6ET+=^+K-yF4|t?lKatJB%P z7Nmb(Rt_2Jmw>~rrmhRLzpHK0@rgVXE4!bX`mF%kON&{L*Hfm?RlII2rblrKFeq&a zO0HZ=gzG~V2t8CxJUO@myo7$yHg~7+@y=`<#00Vri`!A%-8il$il)Vvrq{5S*P}qh zLU?M~D145vXIyP>Mc9oosNAZp{RO3>Myhr9)WDa^o>XESTs$Qznul8RV=?L}9XXZT z{PEmd!m@C5{2s&4YM5nu!Min2_gy4TL~H%3h0^tx?=N^Ro&@M>B*Cy6{{Z;HE0&D4 z`_!6OTl(4lvtr~;TLkUM2`Xt@1?ib9I(ZFN_wWiCA+vcr;y-g8Fdb*2#;LS<;2RJL zxf7;vs(05EqPyh({s_|P^%<zn7ss%fwg*^@n?Ad*S@|XAq8Q*S1nfQKzQ~57B(St+ zt=T^(9G2J(y4oU`*niOcgNs0^V$|tWf-}?AdLDb5E55}M&1kYe?q1(n8H+(ZZ%$`k z<W`zkwdd{<h?o!B4F|sOXuc6{-eYlW=1c?#p<k<fI}0N{iSnunU@o){`9U*={-?}~ z*i1amW{o~LgbkkWJ<(g>UhyZVM}RMpvC13&(6Fx=xC(G*&mO8q1yxZ(P4#KoDf0Hd zG|xXyU{fq2lm5u5`kgr#&T@jtq4d$ks*YvN1kuuY?yU7(sT6_k%FuG`##0s!?p$-t zMC1N_XSE-i9OY8clMY}zog~A)q*3GB#@H}>`v-o`(+w?jrp3)FO)8tK8a+FH26drU zA}+fdWh74*kXh0ENdSf8`O5L4qlsm7ra7)o*JBz8rgi?qd7kD%(q`|zEwJ&Lc?fJW zEpjlO>}2wYWE$kQ@9V7)z!l4(RCR?WfZM2xeB1<=bFu=PXucc+)hFYg*E8U}3x3a! zuZ?eCG%|xnT3feP%G77<<}K~D8pA!kDC;#8%|X)}U;SLX){AO#ry3s*8s5`TM6j8= z+;Dl^>+@cOWJ)%3qiyz-4p<M*mvDO~l`l`D($-!DcL_CGY%p{m4^;Eg!o#`aX9sEd z5<2XNm3!{_hBG(*1ku3Gj5DjpP1s_7SD~cYRPy!rQ{F^Op-l?ocd^8t${`UxJVfU) zm;c>+e%pFH?Ldmd6@xO!m5=;icn3IEgBPI;V|&1~S*`s_jgklnBUR*z@nhAKV5;UJ z5fi8VB*hFmx_;;`k>n$SFfr<*m%pT^9SEXuXPXSWZF3#h*IMibN_$n#H>i70YVN<$ zQGoTi1&uCNwPEJ?ivZrS<4vsMa;<`$<CzYg3oZ_jNB=FOcaN=C^(f`8tJk!G$~tHn z;nhaeWZKnaqO9mDcBwSMEwwJ#@${qy?`3ysnf!dY65X>+Nv|5+v>`fVf^0KitN^Y_ z?-$%5zcK-ewlqxwL9TatCx-j=>^f%*&e>L#v=qlRoQdA6FVe*2!1?_g?LEA~&qGP( zI(%>?183IZ6>FHtr$;6?s$SS-T^BQ%DWL7EU}UQV2OmwA9%m7bkbne~FXc+>>J46T zP51qmClm$a2{If4;mnbcDQe@$Mw0|Jcm%@ME?<+e{5i>dd72pmYHjMz3fP{1G-fx& z6<mh$g{2<QEZE{TFD%gNLzK`dhK0oKAD}uPhU{+;7FjPQxdbtcD42DC$*IaYb5{*g zWs{=CtCp0C1A6XXYI<C<`eCW-F4B}nV?%n<6xcPihg9}@@tlNtHrWZ6QY5{zKVBrJ zzU6)wO(@44E$V%@T?^)6zbjX_O>a+G@3H|Mo@ZLc5lSZQ?Y8(xJ6TcdG|LzBUVicI zA>4t*cbvJh0CDoiz-}7+$uXSO2DDawk@Ze|5WKm$bxHQ!^ABwajd0G0C{lCKOjU*l zHE?J_fbIY=6;jAwa_VhulT%%H8OPQx2!?QMa?Nb~RnC3`4r6iWMj`S00%ROIU6Rmt zySG4f<k;OG{0N(VM7l*pLx)8p`@`q=CgC<=x27;kI%ssVKyEetVZBFw`}R8_4U);c z!K$q}OniMe1kJ_N=m1<Sy?_Ptd~f1hu)j<a?`2d5z;Rxjn|@=B>3TvPkINMAx<@O? zEJF3pTaE9Hv6S`w_+>syQ5}k^9A~$*Q|96Kl2$hZ18$GpM>A)LhbxCq$i@_S&7eib z(5DBopfa+>Ypq**_~Kb=LN<;E67n02Yzx7Hz_F6vH`US4NCc=PWdQbFTyPTxLIK?n zGiX`fcR&K~#_{m-?%o$1*Bz0-@4V^|^RBzCU;=dXc+NFdFemBEN&nfD(P$-)*3lCE znQH#PpD><P!1iy@4;4Hzi2rltoyv%8_a^7YQk7IrT935rB!FWt=*pQ)a{Z!m?LCuN z=Ax5RItGczKZ~NfcRh2bNX?}Q+R(iKqNys)BMR(8$2^YXz1qqGQ~iAR`%axz)wHg^ z22{T)bT%KTKfLVK*(x2h$<nb<%Sg3wDN3rCdQ;ig>+^d=(q1J^c`@XV9Mg>Li;b$4 zZN9kWbazmp2z}6<a-VIr4rt9=qp>x1oY9ADum$+(&9K$JDT=`p8s~!P+ci_qzw7~j z_jfOSjoep_oEzj3o!FTD<vaAolb4XUpSPue5!I)(=%7w2vL)??lTQDkvaEi6hw)<1 z7Ci5Vdu8tyUm8hfan73)^GS!5n8@ch5)&zueED6=T?H;}WV&gcq}<Rk^_v&MQkTfW z1TioLVfw0Jl#rLcP&ae7Nz?sA{ED!Sy>1j$@cYlrF|UR-Hg}*x_gWILI&fvr{16gV zzXsZ;y~&~%iK4B}4>qB4>-IPeN>&k18@Ur1MajY}*;4(Vq3FaH=HijCOn{P0+l+UJ z@>v{(*LB1^NL1gFh#e`M#-qoVQL*!MS#{xm%$_Pz=Bc%Nv5(M`G{ppk*ACCnHZcT- z>Wv}=zJx66!~WBgP!9Ao?iYc7_#t3M|MhcUekR}L>xH2A$D82##8{8CU(iy#;qmM5 zsC6-v>Q`@g1bA!eeVB;$D8ffXIq&0jCUQFm;`$XSwcU$#ksEUu%JW0;N^~xo24vKh zoVu+VJbp%KM>M)WX(F7uRXKb3>O#TacsYobT2yQF955%zr~Oqb^mnr$=z$U3WrD`j z(Eve0XjG%vLi@~b9oFBTRw9d?D8KdgpVH^C_Rt<Z7uUyQjzBiHbmmw{`3|{GF_mr& zvH{;t)!Tjlp=Y3%Q~MK-N)F_1-zF(BradY;o;f!F;wQLIcog!bFaPRsfHYw4twY+f z!ir#t>3-f_O3t3q5z;yrjD-t2ii?b^c~e?!kM3rT1LF6X)-G&p{>I{1_$j0+3-A0h zeJ=fX2?bhnO_EkD2D4i@9u{*#gvOdOQnLe@`hvx|TvSc)PnLE64kootXc1Zhz_U%y zeiuOPg=ojz6~X|EVm^)}BvT)vq2<nZbA`!w-L8j;oh6JTZ&Fv$`l~>U#j~0{H|f-U zdw(?XsP)S0fN5jA`Mg8CnySr8J_NBR9UMf~&&${^w)VhO%d8*D(2b;cx+V^+V;6+R z+iRou%esAr;t&Nyz(V}T#K)DbIf^R+MBPwNb1Hfat?=}cw#g_@71jR6tszv5Oqr0a zm&0PIbP>G)Tz!LidV2EMxBQMzt;)hyvhM!|q;c&DEjSZD6Hby2x1}1jCx7aso>z>5 za7Xq+HdozoE0h4v+ys<p1?Ju*x|<S&IxCXB@fBkn`EwI0(V($~>rFS(aRYu|$|VG~ z9MSfa9OBB4z(iYRX5oUe<&4bvy<)KnGj=UgW`p*$IQ|wC7LfqHefuT~Zi`Jg=Gm1X zfzYP9me!v*>Dw!&c?p1bSYE{l&7dKB5X5^zO`QOyVJleXBY?vPK0q;Z)eTbje2^CU zboDVUw1Iaf$Pp0{S5L2L1*fx=d=dZ9`wL+cbc$}Ui&z0H$J)Stp=z`8y5bA>r#LoZ zfk(5Q#~1P8s(J+aH@#lv*#^DVEM`Ux1n^trbF(C?K<>63IzkY~!g}qN=*4B>Vw#OH zPu5Bww@Pz6$d2K9Y3nAiX&h@acRIT`o{jmU1gBe-zI8WF9Raz;@kIU>jDwTuNPK=1 z<YR+rYeem{0(=3-G~nUknVRS14W3iAD^X-nN~_fPc5S`V-k)RRa8jWYb<I}ongQ&m zx}o}}xa?+wa3l4ga@o6~dP1Q>W1VkIxsgjVTU#y9qBCdd>Cjd(2bwoyLdHu~nXCHU zd}Pv~7PLrmdq@Cc@F+^UBZ*zcfs$%+mplm))4B48+g5JHCp#p?fTm7E`go_twmiDh zh0EW)p%C~jN=&y#f4WuO4;{C(AUvO-!4d3d@oqc2yJfmP5N?rtj@^2aCi|wtlTdwp zv+X7b#tek=I6ZG}dyUH_sX|%bKp$t>?jCCD&%+{zf73@zXA$7?L#D$~Ga$*o>uY=- ztp06-qfgNO5Mr#oRvl@#&=eTfI~7n65I{>#PTKVuE+ivP^k<3b!QYpc-AM)W1X&D( zohLyQ6uQS8uSu`JfP|Ncmz)+ySlB;zc|Pnr=aj`wNEcjv>bsBOy#_YV-&?a0dsw7b zdsa(|;}dXAN`{`7q$s_t=+Y67;!LH~7SmH@yd0|<<}dX3_px|`+d}5=xbI{Xzutdz ziCwoe992Xw>zHwPJ5oOY1)29O6aZFp`5eb|*X+<*<nc0;=(36U;iv%t0b=0TjFFRh zxcu^EI}J?9p@L@)N40yN%S_O{Zz$hE6C2$pIfyG|);`xoXAbTtoxaE)#gZr8A<)nX zUmj2RL35XohMW?hw+zp4yd=sD?A(m?yi;!UYOM4oF2sS#db*Pcr~}D^^lNfsKkHxw zm9?7Q;C#C!HkpRum7q^JQD+q<7!<5HQoD3{P0Wr#EZt1rPTVd;;wt@blxkxYrwmAM zU(lH{AKL+&Ns8p*iXld6Wn1rI!0G!!C^4Q2S?PMOL8s7h&9q!Rq*%84H#Qthk-1W_ zCHr1svgR+kORldaCB`h5J~u?!%7g>gL<uLj9T{8>%7?3=!lueiqQ|@`k3Ariz;mgq zsFB{=CYaYIx(@En_so`-;2fIexRn70Vc4QO9o6Ia^3j6)C%AL@!c(eRw&2Uy5PJ<8 z<XdUKh7i_AO|qn)hdb#@5)Y9-?eNJkSUyV)a*Nv%oKPY~mtHuizJED^Ih+mKa&SGH zE%FPE0GEnvD}jA5dCK&c_~&~hl=$`}L2j{yDnO(VzJ&G4+u3o+=hH{${H9`MkbrRr zcj-<;rNt#XUo_Sj<(j@*y`*y`V0Ce+dhkN(QpmK!RW!u$zOKHl$D2iwWE(a*;=gaS zpK0A9eN{0EsV*eAf0U6_|3(q4iZA7urMS`+ADXEmizKKk;q7*g!m{C)`1DGF@ga67 zZU@Y4ywVIux)1)A$q+x-^QD^tAJgS7<WPAjP`HwoJfK(8Mp+Uq{!ozASRw;ZY}Aoy zwfwWodOU(OE)%cW4WGcIi_L~9Gf?JzetK1Xp8poBwu0;vNrhog<|(n3m|X5$>q&vr zou%CX@p<pLbG^}ZN9XOe9P$%mlIBYK&7%#jEsfqQ!Wm8fx(Rukq=}o|H1)&^%_qsA zSb>B$$oPnM`*}l~2undK?Vu^;0Ux##eVhY<`-cqv7aNIO*0t!n@e#X4_@5C4oMX*M z(L&<}WHu_a@bvMA{I%FgVdtE0fbt99c|uG{QswtV@Ja}mAb$doLyL~)27OWgn%QbV zTY#r-N?@hQ`L58!xBdT+_LgCB1kKto5+u00gh24%?(XjH?!ld4OK^g_ySuwP0fM`` z1zU9A%{fn=^Zoz+z%{eeHq%{Qb>CH8{P|vQ9EL1}Hu?U9(fV6z0U>B#TU(0UK~H;y zFngdUVqltm(_Q!Bv=8PIyLrvwN<*7%Ug!l#qxn^Q(c#n7is;U}$oZ@?mZN_ETML6o zokRkj<$%6BUWr5B&JT%(FW+VxPxyG+;P8;uuiu{B`7uawd*U34pVA$7+i@=0r#2LI zn*-idz$xbST1GE-Q#K60{OvP%(u}myepdZ%j!^seD*dJbs`rS@W8npikbKOk8ZVlp zyY{sGQNLQtHD|Tv2f=CJ_pt!h(!`p+OZR_70Jsuvoq($(n%)r#6$mke?|-YcUU7sC z+{FwXDpJ$XK)Y~?OW$PBDjbR1&H0}uF~av_pI@r6AY!G>{<mF<uTMqf*F9e%qM{bf z%o?jTYlNvI*b@KqG`I<yIH=tJxe~-3FcfY}OVaw+e{f}wLjT+B&sV*W$}-x&lIefO z7UORg6aU{j{`a;s5;=^}|Bn1WF92Ktp2UAD_*aqwV~jZp3*!IU_@7$hP4U2j>_3(N z`!~X*0+INC<^H!}WBR!d|LKD`k`M$*Y(@@>{f>~=Y|S&Dq#WCu4k{(>I72k!f4a(D z{%?5krkDc|WS#-HFO>qVA^WL|J*RuLk8NXuYQ0a;3~|jV|7nRxT?$g^50xJkTfYGc zOg|DPcfH0(wzd2RBxsO*kCI^eBOloZfUyxg`VBpV=+Z2*5*DOLYBNGZN?<YKZ^1!f zC<{Yu7_m_xNQ@-582=NN8YBP$>b8Owxn0jGi>-gwToOcp1=aWS*-}b3fGOu=R*RI6 zjLYFd<4#S(qY>UQHFdvLvi!h<tq^>X_KTU(G@CpeaA8RBdn+}sm%1(!(w<`T$iLST z<GzpoJzfwSP@TaTEb=Kth&sX$e*UJ1oCNZnBlM}?o~=d_@AGT7Au%YjYv-1Y`rQ~0 zUR+pR{skTs>Dp@mPYS4ky$M?peiezE37(*OcV#>TK$e%Ma$I+4JNXm3VbAUh4lw;< zBYvY!vn2Zf<g-fu7P9MVuN%OYgD!tgGnJ+Z<x_Ms!IfKlA}p*xUCf98nO+PB(+;>K zcLgb9$q9En`Ki8gl-{)xc2a7~ThAT^)`&m1Z~5$_>iuW7j46kLXG8!Bq}bApcNd=j zEVTZ}-ZxeCi@}5YNV15U9o$(QzJas*{1b~p?Rn0$S@FIX|1#XmQPkTO{i)6{#@*KH zk#GG;HMJAg5E4qg%&*G+2QY1uUOVW;asrV*OQMb@WgT~WNF9Y3wWjnfQNHlMs5xYJ z@#D?j`pnq>@<;DRjq5q*e&_iVR{2vkt)mWO8yC$F1kvq?2cNeyuG=3KAkbSlPsQxL zJEX_s#shlugkFdSMiwuuHedEA8B3^Rhg6f!K69%;&7e%W%qXk+KkzNxr)4s0E;Qf6 zIi*W1g$UmsF7#*;00OS~g1W8R(O*r2c5amnw8Q83VC1%x)s3frqPyxeFaow(KJ>k< zp4^zg@AMpvh8!u~REzNvJ#-ZdC~BzUWw{erdi12K?#&>)7?_F_{9A;7e8^P4e+htv z`9KU)p<ZG(W7GZQ4qd@{WpUM~vhG0jkSJH*;KOQi4iD=pW%KP+W83>t(a`y29udOn z%i~TU9AgP_Q`j#~*R5oj*qhy55n6tNV1=Ftx{)KJ`$(srTCpGodMh~GoAK8staj{j z!Spd)P5J#(VQakfn7q_k!RpR0>;4;Ellner5FXK}IhNQN<vjB(OtCH9bo~gE{s;OF z?M4LJB5YjKhJ<<4T1kNSWaH_sak9hd*YE7&u$ON+ERXZ^Y0H)r%Ex%rBMy}@#t5!Y z69)Tp6C{?RN$gxXF$c0*jm05kqVMusSYOtak%hRlUw8F=>%Z2!B_3<-7GTBedgO{e z?%}!j3(a9v_9&hf80S_Xlqb*RKOq7wdIF2Auvw4%``Y}bg{)`!mYyfU_g@8W+5g_O z_M7e{18(?smHB7T%m_GZP9HsaXsB3A8~;k3Z*%vJ!7nPK)w=gR?7HK~siOPDAQR11 zQ}(fLdESR9SCP`s`8nRE#pIX=FxTH?f`=Cov@0-JEuZmpJa2x!ZYcB3>x+9w@MPs> z<JDq<zzAxtV;F@Rh?Is+)Tl|PtZaGWv0~}=?a}sZgVSvPg91UObQB0LIER(gO}s0a zseXRU)nNlh9UVLs&X=?04Hj^oZZ-b1PdNYnyFb=N8%oX7KC;~QDBe6+5(16iP%_(3 zp4~H^KppG?t1|=>2alU0StYLUn@dDcn&RBMH17}40+Xyv=V#pSvZRqj|9k<WB2(uW z%OUG}L38DfMvH``OfM5%YHRItd+QXH+p(!np<iG{VIUWOzu#SD_Rg*A7ozYbRaYg5 zz><F#?YzI+o77PiG0{WPep56So571%^zDniP?b7OlUOQ!)KdREI(;c0!8CHKTha*= zLfK`+KA&wUq^%881(!1=$Up$-%3i?4U!{T`c@b2xpDMI{R9J?bg1BFH^GAa!ut8K5 z03w~OOAmf2-OuC;f4BGbZS!P?e)o?yd_}x}{C=Tlr~8gv<Lgb`s<6)9{X;QA#!m7o zFu3hz_>9}q69-WJqRJjX{(+h&x4A%ZE1P0wx=71WUZW-(;`nQpr6`=r@q7za%u1V@ zF6-FoLIR%u5X6RIT+U*^#Cgk+syvT6{y?ic-*G!^dC*R|#Q-j%r-w8oiX@vt31Y_- z#y5vO9giJg-T;2UAw_Z2jP;84kHA}zistLpf%&J$4#C=rLCl*u_YF8^hf`5L{x&#- zT-t?79kzs}&DYG>ls6&iCY)x&4qF_w`(55lzgt(54hyz2cWC09j3PE9YxYEivXx@_ z*d5}3OW)a!?C<A~1i}1HY6&S@+L(A%@Ay{njiRV<UZ9Jgzh32=W@7CZM^uIu;rm#_ z>$@s*vw#N%OcpHH^fYqDNi0$J0$ff#XBI<&CfLZL5YUSejOueVOH&9BGJZD!mMqqj zA>&bG)qzoL!OZc;Ox{NRZD`}0Gc=1lSf-ge1poEk75ls;M0MdltZ~;3dWbxDp{f1p zqpjURc3$f&m(S2VT767PSgQTEB(Ld@$ya2v8lrYJx1J9NaK{<>su~ZdU~gk@75bX4 zt#r2`<vT*2)DWd9YVg5%M~f%CBG%V-&9y#Q4cAiJ0_x$u*F8tQ1e-5gXXn(9aeJ3j zzas%KYZ&lqLlE?tTnE;NBrWlN$#(B7e3(p=92v*KBy3jXZzx$*0a)f6H86+UKO$6) z{e9qJV7in8m|UUr;3K;Ia?GD#arj&_oCIeCSkmaj5_U5jK2r+x2{r>@viA2sgxK_v zWQbKZQJ(t<<e<j303!aVa0I+TE?uq5o=nWR+~=~f$#c$MoK;F!L9PK597`_<TGCME zRf8TN5rY}qW81QZYiHu8miy9#U)Z>Ngn1Fv7QpQ98p|XUmi%Nu?o=;9lo<GkUZ*Mv ztt-d?n~&kjL5m!rZx2@Vvmf96%lceb3JbaHP;kd+aN_6IBr-Kq*5tKU{JY<d<u&NF z2UoM^y?jscRFDereN2A<edpz0UHTYYW$EpCn@SY7HX9wWWxceyUpyQrds>6KIwD7{ z4w%-k!aVP%&ssrMS2SgdKjh_#?Muvf+^u9YOZSz8A)mgmmu`wqdS7#x%x&(RjPauh zQi<GH{^I7yc((^Y6qlBt5p=j8{M2j;m5I%0rS5oLq5G$H(f)+W-CrI8QCcZFMi059 z+RWkef5S*IaAw{ESfcOY!bdJn9zK^T-W+UxxXX_QCqLJeYc(|!+o|q@!{<R0UCJw& zdu&?p)ub3Td_a+vm1Lm}=UI?KcKw2oWCP9yBW?T>@oV+hH;EXs39?^oFyhQ~aR}lc zBN>%N#iFEsa=F!@W*%vBrZbTh@M2QBqK;Eq7^9II^|f4m`a<H=!Dog_BwT_8^GjMv zj$$?-Kw}Ht><K1I>J2`^k!(i&44%?BiSMmHZdVYs(p@NjI`vHQ39oLf(Uw>?%_j7C zKTcOXl^ouOR#ZZfNs{P?C+0m2N8+`>2SE;-9z#vDQcDkg&b5zOyaBv{S50E2Os*Sp zvg%?|8DtlP051cb4*?rZC8@OfN*C@-RzRhCA}G<=V)csD!>o<tvfbJ)MpgswF*$5h z>6<F>#!xL!=XpESlG;`ev6PL?_q0zm-023bje<^z1*0NGzPf1mjWcdsdnTJL(b@JU z(v8doooB}F5?L()8Jkk{Mb$$;wB<|xLy}SsI`Who`7H)R3`h4SdlnAj2(|&XNMotc zhfhM*)?e7CS!m~AncwcU<xVVFBa2g$oT(W{O<#r?y)LF^p6rGw*S%?ONqS&_oUFw$ zWU!=o$*`0~9N1p(^RX;@^L+F%A9#>EevFW|h5sb3>hqI^5Vy6s?YX!}<15b!(5J*8 zHSN3j^Q-&HTF-f5tJS98XbyuO5B@qbf;IVBDx6_2;StAWzVOnliHVa}t<v^#gqYYK zf760ucGkU9fVe{3c&pp5k{a~cvx*O-_|HZH+Z_8IN)X6GgBC7pjfCMFaee$tnZmwm z7m@kJqN~00ZBKLRm7Q<U>))jJujqylwRD^uQp@2xg>-r_@%d|sw-}ejmEUm$UfEKV z6MWFhDGA!~?T^M^V$5YVRr8mvGt#Dj-~8akKp!ELr>gHOv|lecXg3VX`GZ2Zc)MV; z`{VqH`-hEzk{y0S9lnj_@R48B6DYH%Ziq2xRvOaVNNe)uR?~a*-C$3MO!_iWNBOry zS|2jqb|_S_{#Yk!B&%lUgv}S^>7D~=5ti#p64knhB8Nn5ym`;Fzjod&E~&M54Z0IL z6vG0#y<TAQ(<8d*pKZur9xwA+3z0g=0e6e|jTgL`2|h)}L-5i>90k?mh|W)^6$eDr zH!6B6fZ}1;5#PCOIg_A|sZfmsGPD(?)YKd>vIDTy7=I#B5-PoJtOfE-6QtySKtir* zP8zQORP@?I1qu`_U2B|}5k)^?MaT2oJ{_(h?~^#~x@(wv492b3;Rc7@lk<N4B4-Bg z+v+z&B%p7J6V7yzjm784^7uW$CiW9$6Y*OZin&@%BaS4^M{(gBujTGPej4Z3&PL!v zrPz~Gf4iHxPZ*zX%gvLD@T#kdq^<RL2Z{E%N8Ea-cyi&_R6yCf@>Rv}a>vWL*y{0m zBk|`*x_GNPKP35XOB-#W8vYq7zHReXO4o)TF{II=M%aw#s?_hwMs9lv68H)3qF)SY zFBnw%1sNE7L3arE#>J%h^W31(g2ORDGrDG2e1tjWn?nwldzInvu47B+R6}tv?Q4F` z3mTnfCDNIw_ZiY$Lkwzlh0vWzVY7(eaBla^hehkK%aK{fW21VadpDYaqn(#8HMjT4 z1V3zN25*Pw_&0~E@3*cG+Pe}HlVSZV2A9#1&f^9hJ^ti|hAeJyfdvv3l3>P@;^tsg zP35q|yyr{W5x21vX%AW@CmOQ#rQ`HEXfNr>mZqX^wt7p<Ap0AlpK6HVWF@iW>i4mA z)?Psl<9BqExdqF*A(qsggc@TrNn0joWjt8$3V6HFtTUTp<G>YF-(mQ}pX#H9DT(gs zXO6bOLp_(IhHKJ9v4{zCCh-SmuxHk~<Yy)rW(Gw>pw_i+le_aiPK*lvv*5uNS^SnJ z6r15ZtEAqHDfzWzdbmV^b$kNmlnYQPJ)k`SjXE90hO$5cd3&m;W2}a6GNNd!*3lVt zwanr}3cjpmbBFE3BmLUxpox6(OYOI)8KqxrO6t_$HG!M$o6Nm+{>ekv;36nGg0lLa zmq^f+t3{zB11veLEQIiL>kbAq+g{S{OJ^@Ub6>QG&J4}Q2S{se_89Uza{9_rvW45* zbHo|>`zGjQ!!P||iQ%HjDinz%ZX~ihFTDkxrIqZ%hb<oKA8!M`Ej(VC6vg{}4qI^) z9Q*WWk?nVl?w;r~N`$HzGs9doWz?9E@D(xJ_;fyUx$X=C4ka1(#W7NzvOr(gJJS~j zoI)|V`w%iH@mzl@$iw2Va=o11k&z!??rkbyY`0B9OpKVlvE{Vn_E^80E1YC8;J~@u z;LD+z$qxt7G9jPRK)SoJCXtV@+;z_H;CU?j``BGhnq>Ic!1}n|xHuaD(p$ih@7{G# zfGeKmI5BCAduel+9T%CrNa4fpWK_e02YC0bhdl#YJp+2>S%}7q-=XL!n^Qet8Jved zga~DMf?bt1HP32sGjytd&Z8w9IzecX!Qd)b&B!U|6X)_Wn0Hd_sov?uyrk$CQMJI~ zD}zN7E|A=HLyb%Cy8V@Lc;krnP{0L78^!<O$yx+BRKINZ?rwv7=m;dqV2sT{$n3i> zfsXjKT)!=S>E(ufw&+-OglS*@%;ftA3*_ZMtNwK6d7hW1*4nwRM*%!cq6=qnMav87 zjD6hl3|=$T4om+PX$i<i9sJp`%kKaj;RS!y)IwCIBkkLKovOr3?Wu%EIn#$F-hpSM z@CdLL!r*!(n5pZ~wTML&NQ&Eyc9$lbA6s+9s;=t^tR8u?Q+IHxh8`^RFc(s=obG<s zU?9v9O(fAPg_r$8XAqFqA-Eg~Zc?D@rOx)Erwz0+)c4dRCSIUbV13&o5S8(a21;8e zr!IZRIZj7uR-0~fgq1mfd40?B10Okc`v-*MWHF6hxJoX*4uen%1fE7>pVL+L6U+zp z7;vR^(?l3*Ri#uqWP6pvgK8*X7w=e8-BYe5HzWiUS)4L+XOhJ%)Qox@v+Z~D&s}4t zC|TK|Et?{fhUf^Qwh?{(a{cg5@bO!1C%N6#xwOAIad%|B1TRVdgT4NOUjCN&Ois<o zO4uUxDCh`y>QD5*ecnuEcQqdtOL+pD%>@y0vHM8hH$~DBY1W=%J5w@VjewaJ!kN8w zfp2)}C=o)`Py>EH9B~4qyKzM2OlbFJ2*P^#f+xWSf-OT^^o+|yE!XZC2~$XAbylr) z647Q$Byq>X&4r|+^OSJ3$CmeZ@Gu3P$0?Y*zV>H}_3fs#-W7mM&&Y!B+%K%=I|xw_ zbE(j_suAtyJXA1`a@9rb_hrPbY0Q(DwLWOk<LEgAQ`@31Y!Z~KtNyN|)R{`umBjdn ze_;ayO{OHyPG{JbK}Y%&BGM9M;u6Q73nz`j3Mc{oB73-+upG;X1)uh}+m!~&%|hE} z$Q}|T$q3VpCNI#ZQXpAQ*7&Hgj{W6)T~*3jn^|_#m#8FtbUi?Ua$)OWjuzEC2^I&m zZLdQUCOfIvNkWRPK+Y9gSEuYcA!U{_I=E9x+(7n0Wa22iqQ-2v#H$sV(8ialo_8pI z|JOIKbu1jLIuA_-#dUY$E&G5tP7;A&EM-DRtc*A@9SPgcW{Tz+zo0Zj`p-QoWCf<E z^(II%GBP)wFq?CJlg~$@gN03|!}}!1>6_bLF@e;LujVt%2gOHV<U!c3QAA~g<j(ql zX++ClG8P8L?wu!xkYRJ8y5!v)r|w48;H0p!onvZAUwvG_5Wo3U#%4TItrf|MC@mL@ z%dkei!<8Nf#+M{hK@|y{{6xGrz2#~r-e+r1C<(yMosa-x`SEb_F%kP>53ISbJvf+c z?zJc#ruAibL=}Qc8``}0Sq!vJ@^?qneGQzrF<Hcz;uYZo4Vr?!oT2_qCXyX)jl`et zz}_ZjmihISEMj+%Vop__*II*41BLl2+y^)lbWzwSv$NlWl&=|PW+U@ZXKcuw)V8MG z-Hf<IQ3N}JbDhR#$@gG2Z|SNps$O*rQ_=QNPng#6@F`-5fP+z?C9<F2N4w{l$(B=Z z;;*^laEf>Sj@JZXjbC*$RC2S)3fkT?7gRDIoUPLI=wvq-AE&*>r=9k*^?cgw7`=Q| z8L*^#-_<Qn>vlZmfi07J9ck+9Ja$-2Szf7kC8LvNv=jlT2<}cp=tHWnjTDnM*H2Xa zsy5Xfjyi``Yw(%3Sv*W~1{#qq9&7R3^TcFk^Gk)dyv#SiK(U(qKDx~>U5v95?olf3 z|MLWr{3%;fIXqlus#qK?3Ly|BbmvO`A^!<bj7m;JgKsE;EMCpB=(7k2_sk<j1)Jp6 z_U%SiI@h)t5t<F}*Q-p*$`Stq*Z(z#{sP<JV<bx9)yU~TqUytA`O>G~d}>%qh6>sn z*6(|I%g<dI>)DwY`{nw3c_)**l0V0uS8ghMfnGan1mEx3<OXh%`n$^`#-?^Fa>s(O z$d$C*xh0?${%ejU=^K^opK@lRD(<&<y4IKJiMJE`?W*O8bCAGL0;9jk4(ipPYdZ3@ zfRWK!gJX7v{Hh{fCJzz@A6^FFOK2ufC9XbCGbKM$;pxC}5=l8-R^LnKSXZ0Np$fyx zsrIywC;EXowyVIKLw1MphmRbL?B!Vu#8sXyU7ob%-#UnQM9{W%UT{44|B#qd<PW!) z?0Vrk_dQ|a&2fK>EQ!<4&|nIfrs}NoCABngX1I8rl?$HfNzdR+jL%`qq|wZl-a?Ts z{Vu|;3x;>UK6Z_{Z%mJ)9yQ$6hi9%)q4=y3k@(xA_-ORZ=%aQ`SJMVh7clOmtx@hM z=>dHO@>kvAEeti)y?Rgja|;(W+5zed+IPzrlR&mu0$ZrD6a6-@Yf|u0OcL1tZT|7- z_F0xy+i>^bOtXZ!OH<K8?h@Uuq`VWWr31h<K_+0>ie^|5s3&;uJB{}<SoE86;|-?4 z`&CEfGO2h(d)Ulo_SB(Eu}h}9<op?K8xztk9|st@`in(vVXsKbs9CcDMM&D;?G#Aj z!u36Y*0(YiJ<kL+zRe_#Hv|@ZKu1_NpLno#L*Y(1jCkcYSr6J6xbs;2R{I$cS<F9% zyvI|Zo{~3AG56Kr<Fx(+^GwyeTSE<R^A+<Dhpvp05q3n7?L|P_Q8+4%D_x=c>BQH^ ztqJozm)e(tm4{1%QAAF~qpGV2E#Mq0J)hgBqlXhokiY&9!v|#XCtcv~1hL$8$sFAD z@mkk0dGmSAe(hplgJhOi2^v{Le}&4P`<{DRP!zJ$f&KP`qe~q(hBf~#k42C3my>t2 z=08Dt0)7DkUN=-O&HxM&w?o&^=+!V9%J-|EKB?dp9<z*R!h>{pxK@2sY1}0xi<Wq< zJ@QvodOeF=R@EO50tpbvWnq&kyEu3tyEn6fCJ0p8qm56+!APx$qn-B`UJd{LGsY>i z2As%&rX+3`ful-c+;|KO`PZ|n3<OvsdBL<geq!Ipq*$#3Dvpa%GZ6_9zgQ+DdXZdQ z>;|7D5-eLbnTl-Jg{7OhdykuA$tN|gDVu?ap@^aUUl$>&|AYP6dg91z+X+ExM6%Pj zGdW2Z&!(@u`dmts+kCj;S2$?DRb-*_K1;^QO0ZJ?3hcDFNib;M8;x95QS7~a9>-gJ z;PR%tXMIEz6-B4zbw4*MvK8kyW_F5Qh+j5}X#9u9fuY#&{UyI7WUn-~SH^@OuwuEN zthu;z`&{cLkmYlgBL~&Q{#i%nlaBfFish{7rG)P$%cjqZ=w<7t5ksuLs1)tTl@U8< z-fQ%s6<m3WfdEk7mxk096H*68BpwhCNxDB7KJb?-A_7k`@IlY}Y|8V&!Sr<Uq7ry4 z%CW@~zgL+DC5{C+958nr`8w0p2S$9ab961Ty_V4;^5?qsc~yMO;_X^#Zrh|CGQ?*x z87P1+xlq$TbmGAFt!_=v6=}+LqV45gk4MxX!6;^9Q^Cux+cuADBg%bz*HbM*eknP| zORwhuqww+sWjxV`!H!n*d7k%&T}nH4ugW#IRItJs_%+R8L&e(C3}dfM;!%4xq5e2) zekedA_j<-{U_no<0$Xzv!vNHyp180aZoiPUmR(h4f*1t0kGMfskH0#y`rA0WB=Qt3 zALy=}7r5v9&rytix85`njEV-zwDK4o-<@n^FxZ=>I?ub<F#v-6LhUv*#=iN1^Ag(+ z%OP_BjltgBjt|ByKHz2PIGN@}r`>N@+F$!~#pA={I~C^Ig65x^A%pVffbmR526G^` zUmeff@j7=zKay_khDMtH=t=U5k&e0SQerQbd1l+ypVJcFIy!>t!M)=pDyQo76R;0* zyOOTk;dw{S{_0Jd6_^Bp|K+yo!597Vu04c$q_CIqrknP1LNI;78h^8=unV^6o-BIO zWDJ?w;Hr=r+kc20pxp{+D;jIFORv18vNbk<h{j=k37LGusOcB#bSJSC_*)56#lKDW zJdl7$jC1kXQr}7KL-W}qy)1V)TxBtsiD7T%bQwR)-$2H%k<Ju(AQk$It4#+StNJDh z-u%^KH*@KvOB-smTv3~+_dHLksDfcwTsLw9di-6bOPR>2{0Lq=_Uj*O6=V>;QY*Rc zr_#~<Jm1v6_N#;J5Z~E;hx(M4mxa^P5HxT=LcjRoZr7gAZ|JDA*^Ww@*k@jFr1G#s z(1X{f-1uycTd&83ad>iRQtG4^Khk(N2mk&UOq|`T=9tL;3?$e}mUYasS=}I&Uel9l z9N@}Q7n59@MUE~kq==tTrM|KMnEmniK56!gK*na>-c&xR0cp8-t>u-0fXCNT4}T*e zAmXZUM8JQD<@f@mC&Kc5MF4sf#hBp(QOo)xWvBxTSbp;XYdY|g%(AU1{V%z7`xD8C zHY8b_OQ2hf3!EoZx|h|E;IW{8ab7QiKW8KXQI_OQiobpE+{RKx^A3HLNbJ>+;V?2e z^tCs#+ECQ+Y^Q+|D?U>pskS?Dm$M+D`x35zuK+3WyE8wCs|Xq}6FhSyIv<6DN+m-# z0*5CsRl~zp3X`W<WjyvQx-5<?v1(M!3!<n5UVHoXot6vK;6|hDyPk<fE%dwr4S}IU zumY$<Lt)Exrf`1+%G!hd`EnikxpLs0N}kwd?BOi4t18g8e6%Xa3&+&BEM|y6{AF(h zoDhr+DF<$Yks1#WgF7m40acBM6}E=>@rz-dNkd8ZMwfvzrT)Z1@Z7a`m(ejb05=7f zB`mrm;3&jG#uh?hv05+8A$+KSg88JpViaTh{y7NuV-DPJIS1g2w(AdOsm6s`_X7f% zb=ZCt!+vL;jbgcCpIKL{a7n8nn8ZYq;@ay^;PZ9QH(Fx#3A;_E5o4WBuw!rEgh|EC z9on;AH361sB0mh80Hp33&Qh#Wr_LC-*~#JB#}dp(dZ|M$MEbDI-nlgJN1#+mZnTX@ zH3?L^F#QTM(8HA7)`hs1nk!6Zo2*uXt_b_d9pAg>vqvMx>6Sq+NshR?1)D=oQos3( z%cXY9^=PHzvhvQIX8(gGq{AHb!hV&ZxItUcRPis%bu$U~#@&1G;FCkZp|B*=abqN2 z4ve}4(O)}hb?$ojD^6%V0WT(F2ir2Bnh^YsIOA9?&{pjCAWErgavNoW4|C+6J4_pB zJY`+d8uHS6HlJB?0`6#C4E)lUHa(NXBQ06p?jDvgRco<ocET+;i`Lgg23}d%2;86T zJsK!#2uPJPeV_c+dB?CC2xSUTi+-!)y|&KnS+pEUb{deT&-9X*Q_-}$RrLVJrDCk7 zgkG4yd3b_%4ZXa+(2e)NM+6ucrfF;acUyUa{zMKY$!SG~dT2QLN76q-Te>n9^WWDP z{Z4TXIkHVdXDy4$@<n0Q=#JUw2urc_8!!)^9;DsgJ|evl^)K`CUkI7!?j!BXFE>vl zqCfoZKrTLJISsvZyWxUxpg{T&#ia~Zpt_nGT9OU$!qoAoDU=ctCw?KUna}OBD^&SC zZ?zU7fGu;gzRpvvLEl(;YM_gtud65Sj|`PVN|?h)j?jn(j*w`RPB7z<Mn#g4TDDhA znl}7^Ze7ZwMb}Wpt$?NNyD@nA2;`7ZCTbO&1AUur!T{A`d?m`!DwCsZ0UwN1O%%kH z$-E8_J~Jdkio(W2SoO<%YE`6$5{LV(aYy8iF%~IU*bnp6ftYJ(vCLW?#U+vTduYot z(om||cpmagGMFU6@*vwBHyPJs_{5M8_wj?(kllKGEKDHhH>SN9)|w`rAbwVH)!xlF zGlfylbnXKV_p8;JZku2=AG16u2!M&bdwbzp?N7V&{hwtie-hc(v(ptz>c_D}+;UP- zsPxAZS`<DJlk(uqQ$?T{xlrU^fKSw&ZpYhDC%8LO$`Mdgk_MZ4=6xiz-#@S?xD4MP z`~}C>{$P_<j_wu4@YkBuT0FJbJ=MYgbmcRpjHZHgIzgDVF@t;b>Pw%E?b-6h-`aYo z<V9V&9?(QwxgR)seS}2Ja+Y9us+VoOPTU-nq>%?kNBY5pQ7fMhE+?D_whBT-*dV`) z%a?NaerK=3_N!;Tv0s&s@}UwuTw<c7p{;C6Kc0>vNz)#&R8#9+EoaS|ucTl3^OE(| z5{Kj_&QJ+3L=aj{ZER^J@p&9wQAPxd2ry2Is;}4)jSIGbAN+fikf7sLTA%Am#sr<X z8EYzyuTI4)zjg&FOMgzKv<D)V{5AKE+Rwba%+qMz^>02gZZOY9-PsEl>NmASi1j$7 z=+<XtOTX1>$r+xT^TymKH}y$%lT`uYS7;j^Hf?Y#P-@I9hmv!FmenJJ+x&qw(#lHz zUxfd0uvA{N^ER1ETh&~&fe0JJ}?%JX5UhrFr|zx4OYEs!~C#yd-UZLf40NHZZj zW26?J5S!wVUppF_y`0k%HA+eO$v{cGO_p<J7=xh0!;aFUp{DPM3yW08*UY##GI-zf z#gPt6ElG(u2|_J3Lsm`nbA+}L#6SQ_LGsL*hvC#fgG-r;dgWM}nMWDFp;EX)ziMl6 zPDEDEGaghZNqYY91&YLH!0v2<hy*_V#wK51zmqzgU`)6RTYzc}&6~QNs=mSWPP$V- zBR7V0M09^yq4O}<UfRJ9K$NK0u2NDjQ!W>OA@6&r^M7>D^xh}sb<cnSyHacv?cO5_ z5sxV3K9b*3)AL#tL*^_+qnsN*jek9NrgOzx&IqTXgn;EJGM=3Vvo-|{RGY(-i3)t6 zX_-Yo5b>J-dZcdjz{^|7`qKrjuk%oFr~eg&ie2=YNEtnXf9BjWkE*G(8{0Z#<RPpr zbPJU9vtIB&Ux4<8D2$Rn9hYeqeM#)TPxcJ%k--Q}l2Q>KA3!MjRO~$c$^E~Ssb)!7 z(^vA-kGM_&LeW!ZgWqF1TRZUv{J5y&PN7sO)UZO5XA&MahiogR{EE)3In!Ol=CL;j z3&eQk%*|n>rN<5lT*NSO%}WO1{8V9ov6g|Q1S2)tyH;KJ0$fV!i!JdD<DKn4zp}B} zh`$a)2vC;U+%90)hmOQjI*{f)%L9Z6Ce*{yB#Kk>)wbRE<6wz&gj>0<(gPbFen%O| z5zVK-5Nar=_oSl=PMI$sSJ6KoO3GmIb}15#r((`Q<g{TeXn<jkzMUs@OJCjUZV!S4 z1uIc?x4l_G;%DvHn5ja29(y~3X2>KMA8MLl6yu{Le7yER2O!;u4Lfx*H3~!85HDhj zGX7F_f<jN6PYs^zNFx{yi_{(+a4=ufRpq`dWB+;_4alRDC)u~cL)o3z!E{_G{m^_s z0^yx|rgPy7N1L(R-{wQ8ULG;!K-Fb0(e-fd?r6W}BxX|oL%zhto8GRb_`KJ_JyG)) z=NEMOnkp#UV^|S%V7beRwuwabQ1kR>0Ud}{#`+;$dV~dUq67xMuuKMgpp8wW$+_Mu z$}MN&c9g<4kd*-;JJ_-b!SxdZO;!jO-1OT5g*occ^jdXEWLM$r(Mera(2z~ya$Y8D zF=5Wk`ap6K;);?hcNumC(9D{FLlWa{SYel|!pour|Kp<5j|#BUOX(fgjc+zFPoVwU z!}T5jyHXEG($KRRKIE`-dsK2;6Zi%^Dx8$?#*;s5u99B#*mh5;bz4*XRU^6F=L-PE zLa<{qxL<MGO_%V8E_3N3@&Q{EAJ~zCg-{wVTgqsCeFgTsl2e9FXUnZPttbjsQ}ZiI z_jW{n)Q(D;-zrqzl=b}(Ce^5Xcfo-sw70WUd-J#AX)ph@9_D$nSmE`W&;{X2;)m^$ z-4>+Q0Vt-SmZ|M%dT9b7iHAJBwSNd{k3SW8c={vt89!%6(%1KMmT7}D*yk#dg`yP% zMjZa!2AF(1h=*N^|L1=94i9z~be_aS1L=9mwmubuYQY=-RC50cr=sOBwjcUC8!P%# zG#(aA(yD8tg%qbh^Cy76Db=j)r9}5C`RI$oN06q*a58CR?XauSXzPvHM=+P2VPcRo z&zk@YAzjw|_JhxZ#Sef4W?NyC0Yemf$F&XYZ)Q9t+D|qfP#sIYLzaT)1y?l0O22Nr z*?Z~R^LD{$FQRQ+(2!rRP0@!GpcUnKsIuMAgIzEtZ*Q3p6G{a+2PKs!ttN*pWZ-q0 zPNX^(>#%T$EgsX&>Aw<>l~N#*#1bN7SC|wtbo}99x{4$|PX2(Q>tW%P16+N27iS(~ z9WwL`tl>br+L&JVI^#Nu`AH4M_a0Gz6N!us^q+pQtFFy|DL+Z{BRYvOtX9OCk`HCi z!end(RKOLb1#wv%?7qGuw59M*Q!Z(|`(2SEy&3V0X!}{E2UUx>T3EumD<0mivy4xS zE9sg$jpt^@VO;}=b>@ZD>5+IJS-fXDg59e51m4Za@gGP>=`?FwuBOxW8q)burqHO5 zbH6Xy7Rb(I-<_`ne@vkK_NQXL?J#^sD!kg{qFvvU%6zW2l0?*`#K2WSYnZ2HdR$S! z;%c9yQPYhtJ6$J78S75~Fb<|7B0M_gOP#)=!sX|f)2=!CZsX$V3IK$0?cs$_tH+^4 zB@SWeG|D=YIYycL&X%TlSC!)I-8OfT{h__N;Sd=|jke@{p&U_p%u-1nHEo1Vaa)Z} zTPVRm#8kFO#$xe;{LLF$jerwztbZaZJWp(QM2h9QNb-Q;ji$X(4~|7h9gW4@HYsFz zmwF$Y5z~zPMe$v4yc5v_wGY#C4LHeZ5j&zT{ev}ZDbzo{ZogC*2l6M;JRTrW$p$qp zrzh{j5YAL>q~qRAnd!AUZ<%{rS+%<g_Me%9D!;rc>d}J^WZtqnzzJq_J}s1dSff7` zi?<PP{?~(j2EU{c15hH%f{g16CfD2V%kP0o*lGbfdZ77{pBo$~h$P*fJ0$O{w%lRs z<=Q*HLF-^ny7LAo&&OiReejO*_D+xsS?Ii|O<rr|fMF-j=Y2LX`C@}hBHm}yWK^eh z?Y&;9bBBN{pFK$!$pI0EXWsoq(i(21>y}E@RYhHuUd=6HanfSA^J|}4CoCsxWYW0) z+0#ueK1{RYmVit-pM{wvbZciE$2B7uE`^5pl7V}DWzAUoUMrmVHNq+breZ;6EPFvN zVB64F`@A<OY!V%p>9h2!&29yao(`V-gEo>JW~-k@xBms%<@+bnmSQw)>`?ac7!%Kx z`t2OK0DE@Na;K34rvvQ~%-}SKC)-@Y+}whbIPP6v27xQF^L#-36r$($mSMVOXDGZd zm;%j}uZ*a%B3In-M|I)U$S;?vWkSNk0@HGSV4u77=%nv7o7C?%BURq}Oy88~d<{?y zyYKlx8Bgr$<uWe`j7F{+`E7u7G#xDUJl`#w%boxN*=C#q>T)lEV#xmN@gIHs;p#}4 zo5k3K@?i!Alq`jYg!G=vb+7#I{#P$V&J|+fE8mtYwW@;j&r)t?Mm8-n7;#!=#tj)W z<z6f<Nqb=2b&tKBRSqgqE(2g-;8vQ9@oP4{y0t@>O^aH85721JAC#-|Ky<^FuOna? z4;w!S`Vo<Pr=6KEbXq>mR34~#Pr0C|FYrCy&f|inqLS1pR&9P<@kD{0$UuygVX2S5 z<kvxqkF9P=zu%8;faIJ%6Sj*w>k(4ue0$uzJKseZEII@$bw?I=F;suq^=>jRYJury zRSgY-bzK%6%U`rj>euPutjrpT0ezeGSyRonO)cZE_@9RU@zG<-fGCJWqJh*S&Afx# z-(4OzlS}3l!z<UT@ic4AnP&{|)VuoZHbf<ve%wnjGkr-di5)ea$($S?6}m3OEjE}j zI;<p|OVDyNprmr+gq4e88rq3kj7@uw!=q#n;ECUhtnjGo2GZPLxb50by%21-!`Hy) z3lv#07Y7jTnx3m+AJ*Mhh))_eW!S8Fi@m_C^YiWen3oU0w;kxctvM(zvQ6U%fE!yq z((|}iz{%zbnl96@SyzZ~w?AmW&fs#YO)PqvVYNG-*hk|1>0X8Vvj@aP%6ALDdfCHL ztjV{)!1?6GtM&dsSXu2Fmv{_ebBc)nep-FjEU8@Y1<9$WFTRBoeZ^^K@mtWqo-J!W z2v_RBk#nmrWy@e%(r0^OWya|ea4+|6ONz034nEeC%wt6)d0#!aBmOsL&3-tcWbSt_ zjg=as2_b^Ef){N*r-7DCpBFeTI=<J(;xRitreySyG)rV}f1Lqd(wf3wRZ15M`}u1% zrY1RD0WvQ&2}0%67WW3?;MgGZKkAwd#~Gwgd@WH24TjrE=qq~s)W~f7$CxSf`V)e< z=lPyz7!IvKXPlgO&H8!Qd~DJeRHE&d*uy%uN2c&C9X#O8n;CbAU=rr<<x3=d)~Nj< zQl+jVUIAD=86O4wjT|hS`CP&#Dglid-}sU2=lGPvDx>u>^3jucVF{bhiRarBFr=!7 zH#;gkOs9nmY{_ahwg$hK?TXhundz4Jr%z>o&kNR>b@to^aPA1tla{wfbrtKqC$2yJ zrr%!oIvu`))+Y*#JSv$h2i303E*t5dSjc<_FC#D(tG34TYyvmRw;vXnPSZzHzqNQh z7zpi0TiJ?3>Prry9KCnE57$Q;?h8o^{N)LAx}{H74pI=3*Sj%;+dB#V=y{jMN| z`aelwtp_KLrQxh^omtPAjsm`{jBVsO&;)DN)Uk>^L0Blvx3jul+Xq*pcplJ<Gp(WB zG*J8^7M@^}32*y)2Ll5$;nZ)d<Vj1VF%CIQ6Wuhrs%wN`Z6EZ1dhidh9z4R}uP*0t zahOol_8r<%on2|l1Cf)R!TBz8uxT&vv*Q;;4$oRbgKnKWc6H9^UI)j`Cx>#IVi|WL z-oW#clzQ8FvW8#6dMGJ+d@Mo7rV<rqik;DIy?+Ur^v|e~mVzU@D`b%zwCSyj{H@2G zh}?AjPXS<O*MW=OINtKU?j$a3ge--8LZCmGHS0epDx`2;)vcTFJ#k;CYYEJ=a9)eT zrx4qkEFeADt6rX2V-z4<^avwQR|uxO8NK5@ae%2X+;9K$Q<2Nb=&PeZT~td!{*Bk< zLqbRFc0L)8i=bgx$8gx%0m`Z@Tw;{Jp6gB-ed`-^=JJ!nj$HSxprY;{=tqTdieZqK zaWo1?5DXtUP>u;HpEvgK-m8ZBzTGFSCog1x5ckh$Icm^b^AM$Joy6>0W5sKJ5Plz} zh{z0-yCXu&1ho7j0eWdamJUGgiTX-%t?eNXbw%BO`7SJuZZ9ETd2h{mme}JK_?vl| z`4=|K7qR=&^3tGOY#qSbLEkT#{zH5+w1}YM6EP2xsi_nc)1fy+>T&&Hevh{l%)<@I zEi4#$xS|+EH6YmN)U{*Df|cJr)TM-(PYFe%2E+u0c9T=Fu-!rntf~g<S5VOSupJ?v z86ntEmy#J9n3F)4><sBE^WyU0w4?H;vBF;N->&;^`rl}8KD-pn?Db<{M^F94i*iCF zB7{)dQSU2-f6mG;eLo&K^ZKSi`?z)U0n8Mxw7a5geZ2!jkD+5u9lJQ}r;SwS1`B>= zXVa-G)UgFH3WZL{x|-icZilS)9?`~nMqj$^lmi@lo@rYbPpjvbtwKX86I!2|&(in= z!ajhy%h~Q9QHL^L?t0e8)<I=`UFRL4tWOTcK-S;DX1TNnD9|;oiOK>-a?QF(-n_JL zBJsvi^zw)jhT{1s+ov)c#K`WapQ7n~d5)UbZ__=qoL`Xj9~Uq|P$0)$pH=VG#YiRt zu!jUMU2}*&DcaL%MBvZW<bT?CAq4f$SB;R)LU&SUsQl&m$~BoRgtygnS@MfP*4CXU z^Uh9<qei+J@)d^HB<75k&Jg2ICSfisFjUG!U5F_o(WbpCQT9gx2{`vNzvf&KS1_-3 zv${>SUT;he>2>7W=6wUz^AnDLdwjsn6b$^?HTN2d3?-^=z0u6h%?<k{AG7QMFtXNd ztNE<S%f#c3=>L_?q|$K9ppclBs>H?DDM3l(GpXX~QZ|<*(#=@Yf>0>voQa<U99_^g zbB!oq@}8-vRo|t-Cu6gg25CBdSpG3sTDCUbI=8<+jt(>gx+m(NpP4b0tb<D#k(V=p z&3cY88c(vEGk&?XTed{NAERlSQA2{(PyM`dHf!(ca49pM)t#GFtj8UX7tpdd&w9Mo zLfCO%ZPw@<a?kq-sv9Vbk`ln4qfKgW>f&JV>+qtXoyBVMM309f%&Ni|Ay(vrdCB*U z4ITUY11X01Ioi;7zmB?**^I&CW6IYhQW^^`JkK3ddIEP2#LcuJxUI|TBUIIDz640( zcqYW1bnDc>Zt<e#ynro-ea#jGLJt?I(Q}!l&9THE3KY%tFfZ6b>hgq0ZRZvaU}aeG zahb-g`e5V0=a`oUQ$4lpOoG*SH;7g7^8{J{Z?_%AqS(vK0mGRLvG@M3t?Y2nGbD;j zSVhgAitxm%OVcjBnn?0gE`#@z&-<<dFJ|aD0S)0(ZC=8HwmAz)^V6+AJ`Ob0g57QX zGq&9Moq5o!Jc=B>M_aL>2fmYt&R8x|i9S6StW4?x`FUS`<a#X`xIm6k1exL3!9rs7 z=q78KnPxJ3-t#h5jML@ccclvbma6Zn8p(OwY#%yd?3DB{6=iHxoczwd|A@(xZINpy zm7^L{7GzThSIAcnN?KMB#pm^=Acu2fnE{7OvQMqOzH+FHWqabf#0n-TZsm}EW6W?q zNF&-J8{^ZR%hAYO{F(ttCFH7hTkbq^CpQGpW;?7$R4}o<e>6iO97x@)f*`kZte`u* zs9Y8?KfsHRj}JO}CtmK!SqMvEqrQZ>M1JeWdjID|B-tfqf(N*<<P<6W=&GM$@NH7w z$xpbJy9IudO-}q#X{VfwfdS><h+>TZJ)~PAgZb4uTE>&mZ4g&<i8*m~e6YPo`WwZY zO)(82tL29OPD_DKiA!KUZ9lwXB%3dZFCb{a#{OYFRAMhw!cn~0rBFgXBMdv3Icgg} zK96G_DKP){<{RsJB+deS40R`Pl5LWQgNZ<%(Y}*fB;l-BIDq+dDY(kT{;eDTyM`qa zY&wa<nv&tij4-L0yO#2^T-tkkB0KWd<WnE#ZA)Q_pB2r+j;)NPGFfdA+pPD8j8?kj zW;$ZfE=ItP<xa18W?M9NHPa!h%46lMH%g@`yn)h|;*7HnH+!>V9s&6QlO{lGasY?; z1a9IEr)g<Ua#D(^qTJx+Bc$k(*UcKf@BN+$MgnI4Wo+HBv+uJNpanl%@m5(!XZ$>f zlg8x&v7@*MYAX`+2pp5Z@*nv_6e#gIBsVuVE~p=>p2tn3l-4~1TU@!Ww7dtH{+#hB z|HJSirP9=ZFaiC0yeX-1uJu>FiT+CGas+7k@Xut^8ZRvCe~8DU96p|i>?PTUdKITZ z0(N>7si}{T-zBirg@1d6YrZlr1?HtEv5^;8dppIdp3yP@0&$Kjw@{2#!Xb5psB3Qh zZe=ZcCRx{C-_*srID$V*GtEtb^u8cOG6ngmz2!&a%xP@M8-^@vDT`ejh*vc!FBAPf zYk|)u*R0tJY<>lMyTjQ7R`^vwLHS7zA6{~4^Sz(~;o<ek9uXt8e~@3xsSCrS*R}on zMi*h#O{r|T!FH|)B@AqG%fUR>O|=gVGCsBnd_v0?o|U1N!MxSv#g&oj!7h5h4f)=K zFL6Oc4dq&3+*AHC$pjq&6alu{ETt%6CraIZ7Fo*m%Cd4s`CPdGPyHR;+i-)u@&{9Z zePh*k`4FI&j>a#EyzUC4I{3S|dtwWZofaQN5RPTFo9cIYIVq;2Lj0qz8a@?TeooTY zx1Hr*jdu;V3I1yh$Hx3c2%$cl&U_uCo@`i_ySO?66$w)#*i3XpqrJZ%vBrzrmoE#m z=FFEu(4^O<SjqGvv0=`|2+zBqwQiC!W4}igA2D&c5Byl}Ib5ae+>*E*Uaf4F|EbIm zC0O0H)tj5P_r%@3wCgtCX)9`PYZRfri)$d7{}F`jI3gteT0g@UMY&|1V0#V!SUqg- zROk;x1Xj-ifw6;@p`UHY5x|ifKe84!X_GHrl-^7K1-cT=Q-cFsrCAMVhpsXw4r2SC zpfhU4P5D3jfa2YGZ0s4{uUA5Y3dlrNUU_WQ!N6>Z#cz{~qw;*EeByU`2~7=^_lmaU zf2@%+#VGuLVsb}_0vlb(J`}Ky)LJjC>I7bD?$32E0R^A&Er<UbdE0~WFXYx)4x{uB zf9oFnyPpQ7kIb!f<Dl|k#jE;z?4RPem2T1P6KAOZ${OVVmYVz=qCH7PE|9=+lh*g_ zkZ!C&1^V(1*PwtT6iJu*Z{w!uf&6a?xq@;8fU(9$*w=*-WVV6IS_iZp7szynT<U&$ z9daR7vE@f-!x5%WT15IJHT3`DOP>EPtd~T&B{d#ijZ))tfWq79!C{F^;c!vlzW`%N z_CGVf|LM#B;!Xd5L?FKk`aBYoswaU0UfnLUq%A1B(1c_}3Z>zc#l(foX0frw^gm!@ z`v`0H8PqXW`_@GU<^O;Y7sC>!Fa04DN8tVOBbtm9BWqgQ<Li5CLR_kn+WH2me|GE$ zLmY40{p9}7mK+y>T|7$2Tr?4QvXKA%Gs5%{BJ}^Rxd74-)c^Sj{Lmot<d+s9_-|s3 z!}aVC#m3*u0|>ucj|b@fx5T@q6a@7k=}pCUg#ZA`91pZ*NTmkjL-5P$cOa4yjhyP3 z=l?wm2d;dO^qW{;%5c5iHfVmFt4f%LHqu3_*%hYa-0b=8N*aTwQ#$X>i{3Cr)I1l% z(FEZ_r=_=wU5ADO2kT$2-#aKEutxao*Om#8MDu>nMi>08qo=EO)7~KkF?LDT&O{W$ zv}@;+oT)Z}IRPk#zPGHdv0u&H_idVs!DpL%{Ikx@%u@07?_4&KyiX1-8Gg2hH#KLM z<_Zo(_Rso#C90D1Qcyzw-qCJA(1-84sl@{ew#9kBbPDWWO65kH?3j?3?<Y#uU6*(h zZ8$ICJ*t+#0GSGcV_{eb<;eVPqW}`Vzz^4)olM+_f|M9*nF(5W7`i%n)NjfpF*0>| zuxk+WtCA1x_lau^a<-hdEXf18jXaE~KzV%Ee<K|P;eCV{VlJaSp3rKJDkJsn|6z<f zTV<=+xcDJhVPSPvrPhzCBbxd;MM)36@{t{VHbV<|&qvuU5Y0>C{hbcheb{m>H)_D* zyUtm#CWB3M6&9c?f{LLhrflni^0x!i{3fyFmKtty6$<8u)AED2Q$YaKKz*N_X|MQ^ z%Vq?hGvUL|AKB?=Xw)OCu$+J03gN=~+pV!hCG|)SpNAt~W=j;#4JUF<eRpPXM%FNt z1%EilL{!5w*4C~7@2VQj=ZTdLx34{~@nfregw9J&S5utzcDGsvop1Dfl1%asEt!^W zC>S>x(|X^IH%PVin5t&J%4PeoH&2M#6(-QOPi`sSlu$fj{_DVd!rvLtnR;yH?0#-~ zUZBW)Hm}%r0{E%NXU2q<{kig<G#iHq2^fCiih?TOv=ivW%=e}h24$z)@FUj1GxMWM z^R{!+^(-*#hm7@jh_QX$SHb}{C94t>Mdb>fYK5VEl*eskIP2ASa?9$EAE2~SfuA>; zx(zD8nXX+EuQ)ICt)pQ}QMj}A@Bv<G6-@tKLEoG(AR<f+sImGFSboIBnlGfwuM0er z31mOvdu)8GVEu|mW#-bR7tl&ui{zvZTMn|vqXg_wR>_iHrvDBs^l`8__W|dV>kVV< z8PA<BFFp+l99Bah9yJ{cicRG^pyRmYt*!Yxy+HXD_?tcCb?69$N*Z6*mgr5Uo~P_q z2nY9~Db(r{qP!Yt?6CrS>M_Wh(Yt)IMC##sPnKV9`^A0vU3l<UhRzwNhX_v~KQ+CL z>G9klJm<s%^4O{S=YNP!20U)@u^7YpbY<cFnR&^g{FEH}g0@pul|?fu-bM)Azeq`Y zntwRm!{7XnUevO?-j~9>oycZFo~Q<g@NdZkK!GQSAz;gKC;Crb6`J9c;b_a&*WGq> z+;8{n<kmlv57|CG1*-;keMd*vrW>8p5v3OTl{C44$~Slzt;y<T%`BdV=o#Qo`Tr>U z#`sE`=FMOx=EUa2w(W^Iv29xu+qP}n$;6u2$;7r#_RRY{^Zs}D%l`J`$;s)yyY8y$ zs;jQ9_7->Ps|BY}BSq8fHaSauP3>$<l{ZJ;Z-$i%jF^l6LY&WDr+1Me&E*Pb%j3wZ z9goVT+&@urxeefSCnXyeG-CN(vvb^GQ@rki45Pel&73M{>Re)5o{@Q;bNh53!_3?e zySvLI<PW12w|T<9RK3+dA=hm*sFaY#P)WPmTt+1hhkjwSQH(oA%#)b%3R-Io%OUYK z2X7EgcfN^a_-Y|o=q-r|t_34zzcK|AxhwFo#H;_FzH0=iRTULv|DzdqKt~BsY(xX= z-LqF6^SoF<e73r1S+`rTqr+kRaYV7Dpi3Z6`MFv`t2rv%X8PHeKS+JNhj0)-nRblu zbxfAURn*{+&iIa%oyl4TY7I@MggL}vzqeY%ofq}su+D37Z9=Ch!<l*HTCae#n2#^@ z`*xrXFtF}O#KU1)Nz{ydU@dm-=|MhizIq)GvzZO}1u><`>!6E_!*-Ti%97?I9PFT2 zA(GA-4yiY)#+>%PK`#J$$$v{op7TaDph-m)unmv#{G5n0j>1!a%0}YPvx)x!ms3Me zLPZ%x^np3$Hx>5156QFHxc=%^-K&{8X`YM4J{xfkN96Br!?6l9TVHeNYd)aa?rnyQ zFusrHw7#$AWx8&*`Hs~k>VrdMd1gt?FSnsW5U+GQlRpQ|@RUW?ki{4-j)7FCev)l_ z)8F*cLmI_b*_ds;srSeIn65}=FonG>>6%>sHnkfsJ9^i4;Xc)7|MgMF3Gb8*4LOd> zPm=)X=6*>@jibgP+i2MY84F82!n&PAVY;l0?wI$Dm3b+L$En@zHmy|~o<+(eqFwxM zpigG@Qf}e5>&yN2SWCqWD^J?Ull6*^C)r*O^FntpMon+Lp_72ZH3XvgPX2exe8Ylk z`@CBttw~f8VC#fRolLj0$bGRtW@)RxaI!GvQWdk?ml@rbO%@dzVV`c^N(Bp2>$t>Z z34pnQM-0Q8IxGu;OgMvvG!6#UKtWyuHivLW!NV5Ghpm6|I7YW3+|7-0^LFdvTeo3{ zVStY^7N0HHa)&$KN-&B+X{Ica&jU#{&jhq|H-^LQ&{yYLUAnyaMQjtapDhP|(z=j< zVf*;GKCKq7yGxF`iN4edU*cpVS?Ngjzpntg5KR7UUquG?LF}1=ie@*2z_)OzjQ8kQ zT|vV;g&cJA*n^U?B7y(~vH$m){+yPiiAtFKuGzt_gNm(gM7qz^*TE%JYK-7Ey9Qnq z+%eWG&&nVQFyxe#kGobg!OS(P0s0^S9&}nQ_~Am?zg&R9)ia?RSQrE^Oc6KAwc6<V zpQQzky4E;oSz<XTN@-8$F|EAmAvXAZjTfd4Cs-vwkK@GEcrGB7S+N;C@ON7X<ly>` zf{i%=eU6XsS30#&>gvu!oa*jK6j_d)Qb=Ew*Kysp<TsE+NVL%~Xpv{suWRgeHClVo z*R_s2sKGR;PFL(z<3ZC<aXGq2%5!*BAj+~&YR+dr&Wa*CKJ-oATf?H-f}9`mj=z=( zeknfwl!&ee*o18kSQbO|wtZ*+pu(CYLGc}qzN<ZWO*5MK2wmFEn5%oGjKp?^74|4m zlXFJ@`?Q0zUqN%9#ubYr!kNgAP8{Y&d3-KqfYn8mD%NCU!*p@R$T@5r@B}6k--h%q zG&Zz64z8SEaj1Hpf%BmxNWTWZvJi4U%#66OUd@)8_s4bl4`ewv@yE1Wv}b>0B#0{p zkjipC^1L|P3Tj1$$Qz5cf?YvwW^{$}P`||JHtdM4AtBF4RuH&{bqg;sSkD=CYjygs z$Ac6VeXe}=AycE-66^D<vDc1CEWmI7uV)tm6S&4Gl*Z`u%Nd(v(rB^nn`GbY-4_nQ zE#;ekaSicB&-H1t$+hPGV3QfjcHeV%K9G8AmejgUzWZ1!qv*xRk^s*!2-y;A!W}#$ zh$5z3&n!^IRox(Cf5WJ%OX4~*$ZkgaG%(15=D9RsxVY;Ltd6%Mc!xd`5J)S#@pGXH zv=Of`+alhY`i`UL$4qsx0dL>TCY|GcJOE(4*!fcQ1`p*h>@T#qn<~%^1BRr%ywL|d zwf3Y<|3~l&UvJL`b!F8RkY{J(*6r7tfXzff)!;fXLB{K|U>f-u;1}R?6X(B^yzvjP zFigTQneq;y85YND7efVE$@1A^3U`Qs&E#5}PF>FW$ukJdo}_gGRM;qjtd}->n!&8b z$A~czK6=#;YJ6Y@oD4B#%T;yKr}=n53R}4SDFoKAfuZXdeBhJuyv_r#jVA;A-lGgy zwFO;#gCV)QPrp(UYbtUhuQi2SrvrP*$Uy*kaDKnTgC<+<43o&;4JEWdiV9??j{m3j z6a!+AP@oVS2HXobup7VQJ(sVF<#d|w6^B@#YO;xuUJwnOu>Kmhc5})(j_UP!OwZL` zzRKAH&T^iV27GH+2|m6wF826b>g+id!<hk@_v;tW_vc6gZ}P=dg>{c>^Fc9eKQeyq z0686>WDK8Dy(1EO2f2>}vo+|+8T+Xwu@Qy1hCo+-b%8@<?Uk!>xih;aQ;AC_MQrw5 zP@fyES+C~{7F9U6KsreXHobW9;f_7GqagRQdr}nh@4j!t)Iq+lF+4uE;Ad9eSRb7` z22*A!Ke%zV4yv{!{r86uRK8$bl1w>OqnJYy|Mj!D8&)DV{v63^#ggixoJjx>?e@mK z?vBesxyyO`j*aihcs`Q^G=cZ-VNo}VwFcNrn;Z>`#qty)=H{HDK}DE!?3)w>+5jK; zX?|~%W1A>rYH1W2oYfp(+L%hMfg|>0#dcS;8Xl(b;~Ey=xtwTBmHvaX4b-z0VSVFI zuoyIk!1c4RoY|E`vp_u9Os?^NgmTyaxZL!JcjQw|y!c7>>q1eM!<hz8<6(QwQEof> zvBj_^Z7AumhOkQombmhZi`7q~wdgJiT^@K8lF=1yoy(%(c3Loex%(bpZ9L55GCW)p z08b2k@)<Gzp8KNj2V>b}#!RI?Zk%zOk<DgbdsjM40T#ylp6wtg$2i)5&2yI`9z-5@ zo(epP#o7yZN!$DDlC~$BJtL!d*XYPaKhxMPcpw;>^OjzmPW~Q>r1ggXoht2-@9csW zV=c2n-~d0kfIc?16B7nMM_k|?hWkMjr`39U#DsA~`Q!dKGwF!CXf2mfs9`PsP$L#L zx<gNYCGpJxG%Ul^7k9EX*E2nCq>R{~*U)u=;nosTd#kTGxuv^0I_Wtw2lb*0uQ8#r zh3_luj!GlA!@Q4-`=X!@u9uL#&9u@=K<-pdlql%L7}y&c;KX_-Z2F9@mXiKwQE4tF ztbk=ZVpp8KXk912D`keN@y&bZ!om^?a@J4#<E&Q0UlcayTezjBlfr)kP@y+{Da-d1 zU5APT+FEN(u_4AA=_JM92N%NxSM$WQ=M)4W^07HxiE`aKzB4IpB)lT5W>Vw7#2U>v zz^0MU)szxD;+ibk>)ASDcbWL>6!3R5nhUKD7aQdy%efWU-h#$<aS!Oe4^3rSQCVS3 zt~uo{jc!PWIdabj!GpiKzjfLnQ?sAt4iXHa?G(9ZAUN@!qt1mhrFQ9k)x2Sm;eIfb zzjOjddQ4W$)lYHm{8a^m8=*EOSz<jdlna6u3KtOQG*AAt?&$~CTy`!W*&^oWnaPUE z=!dmd$Ke`F!d8Y{Sx&^{ta7Cn$~6C4#jfw+<MH}NTVactKa&g(vJKq8pmBOGYOy(B zWLoCky@wtDb|v+bp9IL0nw~maa2_BNF=8N4ZJ{q?ak;(x<Z?TQb9GS<bH}7-$NMxr zqyf?DW5NBcoy4wngkHs7f8l%0BcIvK5%!wTmWNkU&#Bsy($+l}Wu7ts`X9Luet<xO z#K-_!P2%1XX!R;&Txf0qtThP$4gC;Gcyw>z@)W|H^NH4`Il*&*A18sSkf(~3sA5mA zaH98*6!WDBpOYMRd&}<;E7FrdQg>pjEpWz4ox35cliKwyqHe3adrmv>Ep%i4J7FM_ zFV&w^^n4m2B~dZ8_+|dl691W9)px6}TU>z~smdDw*^@1-bE<zaaM_LjziCJCI@o_d zK@ml3e*yWg4GBTn!zF;o|BYIaghCC0Qv17Y1BHz{01Pw!=kxzBrXu}6&;oFfX#M}k z)Zc9Uk%Znj8y9m~n<3^I1V(w0|DF3fhx`wi^G3-c1v=K7nDKW(yFLFwFE~~kA&O>- z(k1|G5nV}fnVTQVtAj5<0OOZ$GphU=TeAzmCN&t97|;?dy5J}eQB2eO?+8zbKraG( zG^X*z)Z*R4M{<W9+Ic%XS1#L$Q}K-NQFxmVIfZa#LT|c+(}MrV>3WM8_$=aK&DM?j z5~f)na@lB7c=cc8*4U)pqn%$HA&mW!h7co|!hjxN<TD0iZIQ!+ddc0l0&8!P!+`6x z@<*0js5-X`9O;alfD&`|VJ%-GV3gl<9a=LwcQT`5iA^&}q*G956;y`ctu<cnE1r}; zT+eclC(Gake@{15%BoT35o5jr*;CB5kQvfivYImjnV@Sp+w7pol{1O=aTK)lu8IHS zUo`5?2Pky~xzt<*iksAXfOPY3^G>nSsfzVYGXui{^Tm1+S|ywWRDz&-Yb$8bj}U^Y z;rcAUDP?2S{R_SG)u_t#+JLMM7k#m!nL1C`RTmqXSBS79yZqY>A@(Xp;K8`yA+M}D z@Np}Vn9UMoaSp<YL$5@0J^A70O7BYbtkD-4O^T^4af5;b7TbA$1YWLrvSBqmF#O{t zsv?T5D@MePdta{{m8mQ7SA(<3?S&OAXC0kgo59$f0Ex$UDqOgn0)47KuvfPYhUKCS zX-_VQT3`zB+QXyGYd4L;;x9OPnG6lG^2eW?#+1!`@z)k>^nnP$*%+dteusoqWQp@@ zb)&4Ulu#t(D|?XN&eb%7#kuD|_07qx<rY&^vUN21%3feq`|$Jem6P?GJB>zbXcCT# zynct-W-)k|?1ijDX2&Md4D<)hgNfJA$giTx%XBX~T=8_0Vp)VU5O8ulWyqdw&r!#z zlo9fid^_En_C2(rX#Z$#=$0hV1`vifM}J}H9^Bp=yRC0KED&@)3EN;dU-X4q)@-Mb zd(75y37~#hvgoCUznv9Lc-T_edc859I=~=$5w^ooy@SSUX8uen5VL<Z?h54+asKWt zUdzY;U3U|bvs~Aacwp^0+v8g9=w$rMr%Ex^gi}+E#(1@G)azy8OEda0*WrAwHa~## z0Nn<6xea)VW*{r12(5T*FAIY#E>2t8Yvfz&{tYuUooBo!LAG=t`4>O=pAf##eFxyj zfENG4l6K2TJ@PE3$#<IUSLB2dIsJ$74PagY7()tP`xXe3?;XYQ{$q!S#{(1Srk_;w z(5v5=X&+2Fr=Ose(jMMT!pDW5sI&AoP<HzFBZ{manXy<;(CIF+d<avy&uCpAx_ov* zB7M!dbm_FTEw}h`Fi85xN8ceFM~-lg*XTZ@RWDY-NS?130q^u3kk0G^>%kKC68Y+R z`^|jT5D6IM;ifo+mua7406d41Kl5-MAd`LUmb?!kGX54TrJr?-KFl9!OJTg*;OuPj zAZOO~%{ujrA(P~z|93a}00mlzJrwk8oQNkikXM(O2yx;aHG)=XHSdMr!5WaW#6O4= zgIG*NWTi!MUiqv#!~*XWRg>m?K*EJ4#oE2!`-mNq5$zFs3D1sOx&qZ-#=+fNe+EvE zXv=Lh@S|Lc>jeLFyX0B3X0q(8{1P)HLrmkcPJzNWj?)s?m4_qfvSIA{xwBOZf>AQc z992PVDjUp7mnO+m^=3H>v3AKV3VL7_-(6ILV{g6)*pp6yOkEX~+=(kh2O6faTA}kW zPz1t#!rhz(v5O&wwGEO#r(Wi^%}^QtGo!7&?q#d6?6=P|%}PPv>#Vq#eSQ{42H){s zg0+)kSy59C9xf^`G<p<xr6Q+;owyHc=wloI8LD7pO0NYu2pL)2BI2O1#ll~^HY*Ef zF+p3kxBn3^`P^e=&_5o->7Qm@00)i}WNud9?U_Vf;}N{zLqL}zshCjgbTStQRT20P zBr}nIY3eX^WBqos?v{<6=#pway`wh^^+y2gTMrKR-3gjb2ZL;kgX*GxV!q;a1D_Ww z7_9NdtL4Fz)@pI7D2p*39p7D_?3{+I?v$-*yaBl(%h#2w_t!|z3qzX@%J9V;KJgUN zedQZ-@>bSL8XdPA%Hk?$<gII=VP1|O2gM4P4GO^y-J7k{;PhM>>eT#SEsrt08sAi_ zFR{bCQx7Ts)dt^0;0}m;A!G17`gm_Jhx2GRc8#o@m|~a?k!;++ZwjtEojK*%fU)C{ za=mc+F_O_G_d6RfIlD7cYBB&>HPEN)-E*#1qfmTei<(;j7879YxG2DUx^h7C&Gic6 zQx9KGx!qvpqkKp!#EEQOrMvY3vQEY#wq`{D+xUzIxBi;#QSoUY4X8_{&J;V&LqhCo zTmmHA&Z7R|9OVMIz)<#mC*On3rjAXVk;(0T$NYE3ZRB>+mG2Kb+$|QpAY-o8JExI& ztp)L|M{gIcWtteO_m^kRr|JosvI*$4$BqEIYOJ}8Ux{W~bQrJfQ>Jf*D5-S_1_7sO z*Hcbn58c72R#pgX3vU8wyRQ5-h9eh>yXmflYm^%xW^*5GK5xh9rdAcw7q|dI*cOP> zvm%Shp32Kjqq}7+V4kxVZaY-USkUUD$G%>Sg01=a)O~N()BX9i>r;!**t_BUG2o%9 z@KxCvQ?+g%=c3IJcl;f?G}KJC%L`5}hAW_W6Y5Z}sN>0e_*<lp3qlY8t@G|G!Aa(W z9cbcx^=BR<=?w=t%tOz0;yT7{{Qf_ejix%T`S5$*jPiM>V%RG<Lfma5jVIPBpfAR^ zcery37drNiGERV3yR&5-medrP#{enpJ2=PjMoP#|vkj)yl|MGt8TWB?(%Qn8#9Rb5 z*^-$UR6;px_(ouJtojMIqB;n=1G>vDPVQk(6)~6nBKS%&1v*S_zsG9#p2hTRuT}>z z*3L?}n*0+`4CbU-|D;9Q{YhHFTA)6ke(G;tnOt?eVoONg+!ZxDJ(agSwNrq2V85bH zVveoDY(1IG14B(zY>!ROCMOUCX0?(%@X+}sJ#!|Qt*#q9FC8>#h|_9CeGKsato%gH zXt*mW6<XpPf$p|(&+>JKi>GO!ly4L8KGnFGcwo+Axt=<Ri3kL*ms=Y?`TbJO0tV_K zN~K88E8{EmYWi(^l5*d^ex1_ps*xfIM&WK5#N$Jk5~L8A?WSS7pvkMP{ZvB^rY0>s zmtH(WL5a>{rh?|isbnToL^-zcGkIhGY)e<7?qQ}}fyHEC&nzQT*>a3RO8+}(_=8a$ zQAue2F4IJ+8}^8YgoODn?jCy?j9xy6;nBTTmig>%`StpIkNZ8V`I;E3&0v7sMjw3& zkM!^+l$6Vv$=(!GJL!;L^A1A=H<waS)^U%eBh^(icUnUSYt^GyrT|k~pPJ5Si|B2e z-NYxlV^k$?zGUP1?Z&)yPdR*?YM|pu;*)Y{7^RtEk*=+?-XknA)W@NVoP)0f7}ILL zLri95_ongg`XQM(F>4G4?}>MW1|I$Npc65~gsG%4>Eueo6C+0M%~g1G{4mzG=z?^b zkc>=Y@c%(wZE`b5$f?^idU^{)Ed|YYJZ*q(r{-Fv8WIDPOV^EE2?*F|Ie#jz%U`vd znv|=fHbpet(u{6$1ikd)$N|lQKrvm-Jyjj!npD0?Wj==I8-Li2U^=qDuIhAnRc|e) zhGgX`hX>}N{%^bkZb$QkNjN6gt0ihPrpoN7SK~4Kb>q>wTUg#erA30%XoUhBh2v=; zLG0=Zl(A%jp8ISC+p<P@+M(utup+lyl7Qv*PH}Ovg=<aFE~SjcCJ5K5EmyR5ZF}tv zZ1IyqZyM&yP~sL%qxUaL6uR{d7@_#En_3izG3pH>ZF*gbyO>^>ye?+_-nUFA!$N)I z2^y#OO#-H@T)GdaST$Kgg^(8q3u)Bq+B31@#oYtE?-_=cK?-RjZ!zSI?^$Vo;Q2SE ziWdpSD2<y(#}~V2XZD#IZJ1wBasqkESP_Ta1HZ48o(x9mZfImE<o)UM7)x@P1G&Yv zBz81g81A0YQa6ivZgxt53ez^9DD>IwwEDEo(*(gpi+dAb!RAd>a=Q&qe>J;%j;UQ^ zI?0YW&wx8|yk6A#{-C^>!IlzvW)M!DdBUhGw0F{kRMT_h6wkXuL+#~ryX74hR^!#X zl-5zvLr%;Uw>QUazgmV@Q6p0zuZnK_?#V;n#hHSp{+fkYAwiGa?e-^1+lHM!m>Y+f z|2kT_7IvQt8rg7=@%Xga$*~V7-NM}|xBz3ee*FgpUhaSi3%}m6MiSk)e?8gzWoPb7 z)X@Eu#`A5yV(Yn4im4Qa)v_GM6Wa-^-_sUBu#MO<D<&^MfE3<Pn%J=5DusinZrbz6 za-rFO%`cp{<JtI`tT9eR+5<!Ofn&{QLwFEv**A6;em?_)+47o?r`qgnFT~*#O*_+( z8KG0koUom@Wy=nKKDjGuT=S<|!=dAJu4O1Q+}Ygci6<h+m~zss`5>HXt}XLWMeXZj z>AfHdx~>x;zRZSr);<udEn2-b0PIoxZ<v^Q?4{B^dA&m$!<V<H)^&T#>#Ej^16VuZ zC@~%?9;mF``>yFrlcw>JC1!q-+hH3gJ7IHk5MZrF(Lv~GRXXyj&LAN^G{#9mOHq(- zX6Af&N_(tTJjc|&JAYt^{npp@-oAK(pjo&fOn*hsrC4(*nbfx>V;!$!bn|;ZW!C?p zo<3_xyNHU|aJEz<C9T(PB=#!k^71Evu4u^DELW8I*v<KQT?r$$zM(jPOPpqOb7f_N zd%ns!T(W5V;ZVk!o1J>zKxxFVFneH`3>gO}NTo9Yanmb6KV@@bUe_30HYnAYTHct( zV~?-8d)L0$<hK&mJ_!)?KId-ED=YcoKCff6T*S_7D^4Sm&Key0{fi-QQ#BD4XIkQ* z88LPf5wJa)<MYqD&Mq@@H-k_)X{e7BFko7Q*m_+KyoKyH`CF@!;b8I1{vbl*<#O;7 z6#wg@&!k~X^lr9VPjMxemw%+|h{GBl{nhgeQ>P?6=k@QYyQ4(e#w9}AHKt-Y@04ep z@d0s4!?|}?$HV#g6^%kk>$SLf&-?ACyS=N{A7{GvoYQitQYQW=eycC+(wWLIQLriF z>N$1Adh&Y^Y;>Ew&7BTZO&Mg?+%sKupx?#gKRBnoUYBSzx?#`F`_f8UNMTH6x&u^$ z+lb{&M4Zvg7N)F7zVy$#EgdLtJBZJ<TdH~BlK!kvY#QFp&U6OCRo8<a<||b2;I+Pc zEc3jU$@O%oQR6rBO=|S39LBjl>0@WO3=dD)chWH1OUP$hJ;BaCrk;8O8a|^`y}HP` z<}KY$wpiz91&hxaxqVCZkQ>o4Bt{+->rGi-Gj1~pl%<wDeO7SL8`=rMVyGpoDs(be zmpP6Qn<1>Z=lLch_@RaYtd;8*XUtq&Uob$!$1*7=o2~t|U8Ndfd&hQHATRdc(TZB< zr%cuZNX*I;QG}K{N!m}Ue|gL;^ch6l6%P)J%C~ufkGEWW+#`MYH&-i=r2+|hs%ng? zhRLdw0!ly$El$^Fy9P>6gftdO+qI}8>KmW2sCsOptoM`W<)RZ;5k0w!B~0McLlAe{ zVZfxw&`?6=ay)DZqVY24hQwXlN}WDu!=^_NA~W!WQ%YY#0Rj1Yman5^i5UnmnH=kq z<FIUGm6a%*eja!}qzy3pqMuLoP<xk=w*I=DG4cI~h-!B`Wq%2IFqzhPcTmw~75>O) zajUKN5}M_Fc^bM-irM{a^Ds4CK|;D9Ig>{Z3NZ#>tm6Bj&e_yk{B?}X_PFz_`{Q#8 zN1G{m$%>FU8G-K`9x!{5S<UG?^5yOOYE4|*B)apk;Kl!l!neATZuyZ6BVaeJ1#}5t zco=cFE;V#K97wAS(3+c<J07U{JU(DmS-Qf%X;97RVH?xDyx=UNd$et@`;dAndq;h@ z9AwzBD;5*YZnmDVb6&copEj_JBcm#V#?bL$i~=2JVwfC&i?I8;dqZ#9Q1p|qcs%XS zY$Fxi@&@k=XP`uL&Pmfd)+BvIVss<2W2C@DbR&$;xSvSgRR))YZA91a+)HJW8V zbp*c*->)nf7Kq-89H#cPx2X8uvsj5JYLVuxOK5%NUa1#$l=?PwQAwK!Nn@1~Vlo+j z^@57@vJjJVr87|sRKD@wMMEOWR{EMY?p21kZq9BF&j6YmAv&$(9Q1SUSb+@`Wj}Zd zHDRtMxqyYWS-`v1mO32mo|(H4PCf~GgZl#g@42X9V1>1f(Y_cG141Zs=EN=DPt-R0 zu;_UumC_pP_6+<^#yKIQBO^1@Dm;8V)O;p#@mNMOGK|LvW6uQM;7T-I{`*9C<>Ydq zN=U$8sLM1KL_Ty&3TtQUly%k45WDt#&-Ll+_;Epc`exv=uFSlXk}LoK6W{S3pr-2+ z`zJP~E8E8@zFiNg2)z>d5@|6iOdr^h7+eva&SEV!?ZYeCVT>u~qpIWS&2sa!Gr+E{ zu{(hA*}J+khTVq$RNx5-XIy>Yk}TUxjE5nhKlU&-rML=-`yAqJFE1sHp&mB7{D4?s zxWty(az|F{LWJwhn^b8Sk-SW-W$$S|n91iyzTR(UuO|JkIo{2&zIT|?aPFuWs2p`N zPKL7Q$wHlL&)tK8e1)#Z14-D8&7h)YBlsY1f@Y~MJXIOwNa9e95rgx=H@)V<S&s0! zd%#j!+rf?6Xnp?on+eEHu6o!Ld1%5DwYJFl#=+WpxAU;qXES3yB4W<_T}`Zc?kRP| zX&$fV95%Sbq@lCVIHL_Lrdg|DHVf0wNXOBN&e+AN#R_<>K1ruUBBU5m?KwNNSr*K< zxvv%NHW7M3N<T_?!U~Jns<GR}3#n>pXdQ-~LM6T=>>_F~Rr}}SjbFnTKv&TTzdkBy zC_;<Wcl4GOSNyWc&-YR`o*Ayek7G{TRM`tr@_W0|NQP{n=27(%&d&MV${Ty;XmLhd z2_^*t<Hv!Wxf<brY|H$dF`dTK1m6PBhuku*_i=+IotiD#T>={ra+hbYLcRVv2={<W z&U{r2+14Ouc+m3-_sI8PQe}QJDc2L9GP1ENZHm}4g6QSMG4ExV5HAt=X`ZHpK~E7> z1na)a`7fbO9C*hL`YzOp@n^r`<{zH|1i}14G+V6q-&1n7gX<brH1(CxXTt&D)5IHU zuPtr^2-{M}gNAZZWf$lg#?L7Y>bho1$A~kQ%Q9NCB%h%;L9-Pp*2EHktd&iH7?WAI z$}ddan!WX4@T!zsG#eLzh?6gNual-h2@vGU<uKWQDj2sNWM5!{5Inr;Qb7F`HM03v zp+EYQ9GcC6;Ap+*_{s^pg!y7{96KTjbd+%iL*{@!csCn3mb>gXAj!lBV2<`W&KgXg zz5J<!t-@-+blv;C!0T;6@h03tw&B;p$EC$8lAl>kU;7HZ-Jx(o>gz2+IJI>-S*EHp zG{kaxSImYODt<*EuqOX$J5(4I?}E=NcBJt2(ga9)0BJmS{fu&f^V{k2-C00w%f~7T zRJk&BAb-Du@K{9l)SK9zL&+iLE<hEC94j8pNe^$h;GkfjeIbr#7ULW15p&7wZu)c@ zsRT|aaGk9sC4;grNz6sI>l*ol<i6j-AGNA`R^ywA_xoPOm6K}<i`s?ayP?q=g!mPF zkzl$050}4O0Q&v?sb{R&F09)t3XdZ={0?VS3@r~{lIpgwZVdj3O6f_oNB)T-1*}MX z-t3|0aFh3HgSQQD_2(UME$7p5BXO7CqZnjNhA*0(4qJL!SP58O$KYNayrE2yx-#bo zTLD*?Edgksq+qVcM=Jh-gLmb~(17qpu&%fsYW2?bTJ?dXt<e3_c{msqn2$q?sgg$7 z6(kxSg!WX_A**-@7-TvZ2p~3t4bO9?K}q_aZ4Clt@*=AP`g4FX=H&6_xf{=~Y=?5V zAmf0J9V{o?grEIY!1gwY2`Nf2c;U;ssDwgkEaq$e=nIyODxcYRG&q=>JS_I}&RWtP zPoFogw*xgmiWQeVALE)TLZNhd+8y|HyPhz=t^2=RE}h^40cr*+*q<;0?KRB8!FT$L z{jQ@_fjN8`{c}OEN6W>~wC#60b9smMVjZX@?%>-t9DbH`FR7>5x`Ti$_0Gqeo+q2d zjzTtDp+}#9@(f?h9g7yFV4V?uHT2rjGdD5ajd9M$fkPuC1Z0_lNKX1FV<0Jw5|K(# z763WTV~=y(?ZHL2)I(wgPj<C2eY&h@gtSGMl+eLG0PPTSW(d>|qJds(W5(m_x;M{F z*)#cAHt=fWe(!)#VS*KBydeTa6*NbX{e3{dqKc}wwQdnk${N<A<c>4h#^$O@NnXIF zsOh?@3f^k98IR61(SRBWRh<0K;UYq11?5*Gi_&yDZ8S5n4(hAt%-edJj7C0ohUWwX z=?s=MdJJ1a67Fy|Z~DDtSV;T5-el?aLkp8CIHZil0P*bZq~fA99^lP@zlU56`$b9& zmg@U>Y9OP8+u%H1*lN5zz`MkqD|nmKG8A|IrSv@2{MmO%ki_x%=~o0P<P}UcMVyGE zGT8Ef!AaX?c7?f(Vps6@B)=`vc0ogIP|S-HK$pA@o>Xb+AlD>kIfo2V=b(EQ3)T1f z7_bT(l@#Pp>-Xn7S7ia?HwF1$ByBMfIFsfF2h8yW-LPvy^!gAsz3+npF3IO2rlAzN zEj{m-+7W$!jE>T}o$S+(uE)y&rtaSwJ(>SdiwY<cj+~z{$$(_9VKWv5t+(w@`6wed z>*5v5Nlgh=YitdUYbJ{{)7z6Ny1UJg1pC$F9y^QJ`D>0Jw@Upbl@{;rcGwkMZyhOr zAehFv-uZ*K6Ux>9kWb<lzf;Ty(M|q-t-)xJBcJP$vwa~g6=pjv_2&AI(+d5QYR5+B zF8F1na_mIgVU|S`M)D8>zudKu9pP1km{ML4lfee%W)Lbm8>J@y)Vfe}S;*Y3W!zCQ z5_&^wuSH@?s9NQENJ&HH`sfor#wy8It1>zEvwWsK@_c2=Y1J=FU=O1E>b$IH-m%~l z`z&(0JW{<2s@=>EqB6RgeDWa+S{VyUsAMVjA%t1L9i6w^cF^X!?t-W&Wul@{rziV# zS6gg+>Oo}dD`Rkr^4a8fNfXu2GID3*{QYPh%|(n+MjqNMfzh@!1}l&J^|s3F*o&F5 z)ik}LwG0#l<^P7i9~3}_GzS=3c5x<iD@mPA#p2T5?w*8%l}HUNKyb^25_7d|jtjG5 zDub@PeM~B4KY<{d?fLZUrd1V#bqNe&FW$W0r-m<1xRUm9$|lq<)w%=dxx!UwSN*;X z^*@)jyhN5XzAJzZ;&QO%8h8zoks`sM@7gRUB9mMc%XqB_KJL)d56sunn(s`E)@x_- zY(wxJdn5DHYYoPK9e;W_M5EDe{}TD7JLir;4oEKng5p1{4dW&_+4<#q#vPw-BHC!Q z8?tgR0KMgtp7Q%`Jb)QT(iZ--(+)8MO*RT}@D5q#sDL@y)a2`n?_&JiAsapcdQ!GJ z?$34DJ6mx@)+!6>o=Y`Gvp3pq1{t#rA88z20f@7ed%dH%N&PY#QiCPBtqF9{J+yC* z$!QUTp;Dx)^-%Jxc<f)!e|v~m?n7H&VMf@uv1YIvD@e8kKv)5GtBg!kwuSV`opT+- zZ|?`E&LtuPwKpZ2Z8s$CgCKG$rrOLtk8Mr__e*H0`lE;u5a8ekG+i31H0cc>kk9r% z`8k`gtTC%46ws4uFX(_Oh9K@ytxd*9z1p|!$!C*tHM<PA&NGV|s;^>+2ZODNQ4VcJ zny-J<$N|GAj@uhX9+pa4ko}_PGwP*5RvRf?5Hh;?wCsy8nG)~xl!-U6htGNXyzJ6R z2MGiq1Lt3v$nfPRJ%OkB|5XWo|36@Ou(*oiuK8$H4Bs~(g}P4<D#d(JW1S$AGIN!| z;*+iO0vuy`d1d?kQRHdBxmy4yjaF@BK43D8*{afR(d>w@m^wb(*zw8u8}h!O=w5M@ z*#;?$bO4`e_FyAxMCniUepuU@?WQ>G^21&W%>p>lgTqTkOLsoH6i6yW@2+c|OaELU z%90c6b|PBM66EUvMJcB*$M19o(!kn=TwIluetCwfnUe@H?`xL$w9lcvp*@0b5A#%6 z_rN#?^MU<VZF3<=@Q$)~n_;>GV8)VTx|wphE;41LtM|0Qr?`|bqUPXz@Lv1X;D~TF z(uwNl9kMb&T{a<VLS4>&&oD<d#CKZOEAt!I(0{lD<x4h7xKv5AJD<uTjU#+bob!TO z-bXWi%TZwQnqTCWbi+~|Zj5EW8vKCCL4^FVFI+8ITF$>}sDuq<q%NOMn@&$@L5ZvM zhz3N1AEn)KZC%{P-M)KHtn;Mq(5h6i(kMU_{~+LdNp;RM>n*md(P3eQpPBk~4@&;@ zJ+6jg^eq_C2U9Qwcxe<a=3cY)j!VbNL)g4@2~Vk+hlOrCdw2!D1Z42M|6_8CB&3H6 zZ}ffyRp@$~-(wH`F0eK!OQCh^ZA#VraR(alAiit=+1zCgWXkN!>6=S-O?mZ0r3Zmh z`sfomd99J!R~b*OVZ)D3ze28!2>Wt`dw(JV3VIV?1(4lS_w{Cfrd+oVpD}RsWOrQ2 zQE1r|>$O-F_kVd?zSz&s!l7HE^;SOwONc^^IXC!xzun8K6lt9J-5#Z(_S&_n^Spo7 zd8Wd#)5jhw6LS#F|HkaTvmcXXLbNI~!u&GFHwuz}<UQ5q6pfHi{q6ZBh}+HJ1n~?} zfN(ox%<B(V4G&RPKV&On?H=be0u?hEp44%yOq*k>l(f+mO$l&s+r5E5$WjiLW`|b5 zAESQR)3;>#_+w7i5!{nI$NPcvTLWy?j50UTHxVo5mrQR^JQOPECz;4_9xBi-Q>+C3 z>}i0XV+@NQ9%<dPq?V_Sr3U5{%b9>Aks!!`48wK_4-%I&z?JZA{N+OQ!p#n5#TZ6S ziaa~(sde6c#f9oa+3lr7F@$n-PWGpodgk<_E<KQ)JzEEa0xNVPt{Dys(29}Et3@VY z+axT!hyBfevN=y3*2>9q@2CarDVlF9DXXrYO^jAGokKyCpvbY?jHn2E$R8u>Vb~bF z%_saskc(0+R-!e<u4OmGp7w5qN!c%1UyHU3&it(`usXGj<#nAVl9+^oQI~>MBUfz` ztB(y443@GMmDQ10qN^+6l9o@5I+AvnDcBAK6X3y7iNHYln_b#DG}%gz*fKvJl|tcB z^Tr(0ZfblR3_kpCnc;)Xv6Zc!(}BMZ-D0Dpx}WjgR+q&sFPryY8Sc%Ej2Y%1{dMVr zV!s}?{yanLB*_E?k!61oAzSD#SI6tf>e+vpP;Ns1^|R-)wjN4OssOX={Th^=4tTBm z1_VWofauq`e0PI;wlcuKM<CwRfh^t7EfIZ8GK!$QUWSdHj}(`pOc2U;_JT{?u@ml1 z;~M^)Lz}jE0$`P_{I-2|#xkMD5HF{PH7qSHNclyW<=h?%QEMKDJv}^^xajpOkMoB? zb=!wwy~`&zz~-sj?aDBV<u=Lp#+ads=J@4eL}BjBKe&nS?R|PMGkoiNTME<3uI(Ru z2emqV>R#=)!@05V;h?O!NCja>OSQr5A@d(jSe}bz>ca)cOL6<?+Z*pi+r!rz?EBwi z6(LMO3U9nOolqW9#lfV3v*0I%YzM`T$2=?s*BcJ}=SPF=<ENIBck)*)5zSZk_pF>{ z6Hg-IWQ2{5T?ndX@9}eX{$BQH8LZnM^Rao|Hdx8$%I?PAkHkw`55zsF9=(3ev>A1$ z8HjFY6?0r_y2tb*^AEOKzO%=qo~S(+KNRk#`=j`4&7SER$+IE=oBmgobHZ$AwF8fA zj*A?BQvNO%RLmI$&fv%x-JOw}Ri#Q=X6y<p`jIRL<N*j5vS=hTwX9!1p<In*ZRWxs z%yp8h5n{VMuwIY98Mv**y`>Nsujz@*ew;AEW$<UVsH)YzS72cIjA~TlKDe&3hY_K| z)Vc43bh2C1QQx2yB_YH0oSICXqk;!Az@fkwW_cna!fC2pE?*x@0aIO*lL-0-J<rcT zsv}<T`shZA3xv>eE5oSa)Hg${`>~itygNc$UcOXP5)q`7`A;SQL>`VFI8~X$cv#0a z&tLpzTci+G)?>{+(}QY!rJIjsYJ9y}rX@nWv@$f>_tM#iaTpl#U*<D?Bipy2Lz;%q z9rVE|ffW+drM;);wY12L2gGcwMf8|sCtJYps+RAWHLbgu%>6`$3j(F(=#z$%#k^<L zjbXM)QVr;n7FPeNX()fle|E~AU9}CHBzsiuItwe*jSwJl0L`b`eHXU*V(Rdea+<+4 zU+MTD{BAeQZl?xr_U(?^{eB<vIR3XZ;X^yC83u2Sd;I96tlrHNrB|I1#@b_*$*V_+ z;3(yx&Quj5ztp-Z2@w16=`vMVzy&?21`Soj)Cfo$ZhGVwR2b^wVK$`wgDrcvOjX*v zC}<%Mq8*FkNM?G>N#dq#HyVY8N96&{kkyiLdgC2$THHg@A~ukYp0sBo4ICR-D8J}x z$B+-kyOh@6Xg8pHq|KHDW&rSCh$%<M3)Wru>bbPMIF|slXnwjTJwv}Dy?7Q~_+AX) z)$TY@V#*Ksa9|RclD)4fw@i}~Qjf@hZ~Z^a@R}ZWYYKV6w=%jZ-b0pn-g1xgw)95` zz326`O1j3-V-GU&7HPg8BNr@9GXS0g*$i3LFhQ?K=byLNBCQm(ltk8g;1HQBVXa(I zEakG2oOs1b*fV9`*x6{76ca1Ga&2sftj%?&X%-szmE5^W`nlFP1=o`6w~KB<OZ-!7 z5iaqJA0$42H$33Em(>&_QpT(7L${Y;K9RgSd;L;7a6~z#C0^d_{O~n5lVJ^q{^{m+ zed(t*Y#aLX>F%(wX)T#{V1r?ZvB2%@%QU8AC70i3;rtoHDQXA?Zr=zoMMPT;AFgZa zE~`V*I6OadQXe=BT)jMQxGrb$d<+7w=djRz^~TLE*XiB?$M^iL()<GNfzXjgF7C3^ ztE@kh3~z$H6w{t5I-axBltFKN`zGkbO*gn1`78~vVKxURfP+kBHR%s20rt^Jd#i5? zbXXg@HkUbe?*tQ~5ca`^{ip5>;JLvGLHdwU*}+!0>pYO;JLO9?PawP9--WkYQ@iLK zbeb*JhMemB%|*xcA+kEyo;4;|QbmzFyDA<7$_`|Q=!zYn)|pQ8f#fSj7YMH*6b`nz zTN@D3rT9CLFKQfKN=&0vF=FQop6_iHT7R^8@mV6=rr7pfy8fv6^=r8Ccrk-oTx-ft zX)ZKM`8!+TeVacPtOvtsSJ}jyIrq3)Wl>`#E(vio8(#W+*Vbn^0{73}N*iYDnU1$g zjhyE~#WLv=KUi1(FmU7NKsF15SuB?$K~o~PUo7cKH_VZ~wam-y7p7i5wRNJAyU4g= zQ~jd7DA)02<e~!|@ZNqQ;fZ_7FF4VuKNd>Cz&98jw4*RGzTT)m2c9{c!n1>@iiaco zbaF*dGp6*&iF@J|8JpAUMo|4z*eP9Mo7B%dbGd;!s<_5@{3YtGkt5?4q9~{YltBGQ zReuB`+c(}6->#MTh@Q032m(5T`Euz$I58c@W-CPIW(ndULO0FZI%rin&I$#ZjvQk< zuc3}d&Sr|&;BQLZ>v8(DGZ+pctAxT~7QSxSfokkNKW6T@3&(O=nSr$MGuaEVmg=e} zr*Sbw?gyw46TSA0qpMc0yP~Bd*9Vqj-|oVx?lq^=$zEWZf32P+@xZZHpxS^5JV79o zWOB3IHGO@IE^|9y^Sf`2o(NjI0y@GR+pJ3R)DgT!R>owk!j{?jz~~?;<qwer*_C&a zwnckiTDN+(Yk6@BbNzN6(Q3IC{9Ka!{Wr6unk)&{Kw`|l+~UC;Onx)(((EE%cvf3r zH$o;Vk?)~%^-?rz{rxgpiHD)wb*eE{@_xH8<U$VOZdao1h-^@nPPOpJP=OTG^d#Ge zyAjd-csqSK$I|T8^KQc2+6t%E2*}w!W+`-fM=KvjJBwgvcd+Fphg`37pTI!hk_18W zy%iwO{VMML_ms6Y-OaJ6`o$YZf|mBm5G2YoOn;?<VL^Q=Exl4w*cmyG>N|`goI7`^ z76+FK`QUl;=0LhJ4|iaXSNS5?u}EvTlmb|2RcEcam%x2n;f5!oO77~%8X&JNzWGGf z`G~!AFTr_3*RO$6`euD-h)vc_v87*p&81{Ysofieu`vL29dm%)kf*aKOEcU}6WnV| zS1wKNX{7?;q{PoORAb``HuU%{{ipW}-x2EpvJ<Q$fe4?=A3?Y8pUX!OuxYdnBSS{y zjO`IlTQKHI-8B_=E%^6e9<<ff1&hwfR`*_f&$8Uzloy^y_#Zb{64EAw!1QI7k>l`0 zL`38j1njHA$7>c;E1b<23^vM}7TT48?b0ucoH0a^<k3ko&R(-)18GRpMx{-1+8!TA zveHOn1GiO+4sUsQm?zdbAJ-i>9Zjd$FMk-+>$Bo_PHE`W+{5dWijGz;6%*?;Fy`6g zeJYTQxA;;p8ee}H;3djDq+{WB-F(`*Kcw;-pE<5)@`Zf<rii5ch6V}h6PUjMA<`QX zb{MIova+(Gg1X>zzYwWtp8*r`I1GfSB--5T&PO<{<d){aS%D4?3ceqhAkH`m_qg4Y zk&X36CY*`G*}=p5P%MiKMzj&QNdsuZ%G{exVY!*#Tw!Bn@yU=lg4a8}j<({!=%McL z&x>jkA@K>_vGJCVp!^$-yw<^)I1<k45M+s52?&9HD<%Sm?nRsC^zwKSF-dLB=#9;@ zR3k-E#dK7WxVxoTqX`pOlLoAk`IWQrA_b7y0jq_=@WMtu1j*l#dimzD30pCJ&n(D@ znq5C!bWeA>apEPhL}#Derc%zzZsy+u1<S6s9^5~Qo^4(nOV6ds!xMS4$ES}bM{uYp zwOM0|aD0Y?Mpl&cD;>s$lLjI)0!huy%EQZ#Z?mh+jMge;_zEz-#~GIat3-|Dx#_>| z*x+KbjJb_$;tG`)j)t53A;`qpqj7%8T%HPkW3o;uhjA#k)-dm=B7lqUi<~!~!c;vq z(6{I+*Vud3XgnNVLRBa3^yIze*OZlRkhi-TlAcUax(w^60=|@g-px}t8iK#T3|stN zK$f_|DiZnc11kSwATcj8k>;T8^`no(@j;%!lF~H#@|$1`7_K@xHkE6G@pY#%XdK1p zR6^^)3#FT1p@kVLe)Kl>SM}nmo?G0LXO}ByNl5MHK!?~=$5wlJgcmPr8Q+-Ov|qx3 zIBX3jAsAn4`1fRa!}fTX(#zE#0Jdw%iC<=ATW{EkeeDpYX*CChV?HuavU}pIrRIN- zDRK|X2*no-+w&K0Sx>LTO;}Tx@SoulOwoN+=i9xf@D8~5sO2@45>*<ojN$#+p(*5q zX^+sd!9ujqUHVS_R}Z0lKt=@vK_Za!`s9{vzJ|5-BraX{1ikXFN7vMIDMgZKv-ImV z@7fu~&EJaHxF6ArqvunZS>MgZ5+WDf_@#(2398CMuDifmixGZcyg<wA)&;!tC8ZkV z+3M%vBTzr-n-U`%%Slq!eaBr$5dT2H-+3ngE9lt^R#B*{*$^ZUWU$<Aa@$_QuPY4~ z-%NblL+O)i3it}u;*zT99M)}u<+ySprg;_UrTwlrUoLvc3x{i9k4MZ142FZM{<SEm zPv;v#P@q?4B2a!%pz>D<E!&C13EjwKGsJurV0tdC_NmMZs1oI0>S>%pE}hO);8hAH z-&{ZLb;_wMPT0uVC#NZ%Y9<4&deQ#csF`mI4Cqy<$Zrr-D4!b%kE~BJ!YZsrl4A8v zgiAkkyjfKIgp);!W-pD;G7g4c>mF_xp07U{;QwRdz)|{UqmV#8|0oD_^8XyAJf!q4 zx?@iIU(o}<|KJb;jvdWJ%JGA#@js5??`oo50;T?H<lkT54gnYTfBlgo9GR&1N5L0( zUesp%E0Xd}nE%f1zg-dlM(U^4J7*L_jpU^i2$}m|CI2&IUrcBrCRm?qB=8ykaY}bH zjRXg{{Dba3r9J@EYSDk^y6Pen^85E+3gtma!v-JUNhIgMt$lv^`Y*90I`Ol@t5~c5 zPB4ZRjlZ*;Wr-C*iu-4(zK<_|R`}<ct`Y=6-vCJa#t~%*uicNg@Fy<V7d(ig51}TM zpf>NBa$$o8wD|Fn<VUMb%%91l-xq~4gXt7s-ibOrA5l2uS6^CJvfQ*}wYog?lz%^H z$NamP?NUJ~zkg)s!$j)e#LaJ{vLLjso&^FWLb5!We0k^o^08_6Rf&h4nEFOP!InB+ z#M>J0l>gN=V@ZCYjeKJyQc(4`EghHzHiTq;b$c=|buvoWP;IL8_ewV6of)E-Kw;&} zjUZE9#treP;howz0a6r<e_qs+t{_l5-fUy1Vw|peF3Y=YUsf((>y=`}oNCe*r%K6G z8h<e!8_tigd!Lsi@{gsyJo2a9O3lkBl+%gfvH-I>brKnXIsbt>K({GvU{a3z;2yHA zrMZOQ{46G2`8t@Id6!^Dy75&1^d_rw^X_9u@6+el)f3&5uE6Q7>O9zA9tyb&u^R(X z9r0g2nrXDb1bjw#XjE|oB4W@hqN=sIQJ_PXTO2;`#1=>R64U>y0ev5z`oZO|_yx%> zXI({=Y@_aqoAC1VW%w(u-Vc)I6k)Y)F&bQL!M-hJJKg;Z$yAal$3(+YhgVWU8SAu} zbTMo?#+evPC)MsS`7q)Ui?m4X!Wmc4!oTV00Jy^OqWPGq8hHVb!X#4VMTU1+_Uw*? z1S)Qq5MCGJsjf={XUX0vta?j>%hpvSCw2>!T$k8Sl`PJE$gSVm&6sSrjC7pqzW1<8 zhI{>9+R&M9y5#)ztIDnP+aj0|e$1V7%Wj|Xc_6#i%Gq-9^cwCrm4Q+T<xA?RPLs>^ zh80HEKGK7iFJP~aNVHoal+(g*I8&ZHW%a%T5Hw^cbSWq`YKS4S5k4|ufjF1vbSVkp z<rd|x7sYmVw)y43l~DWwe>P~SPd^Iqh(KVXJ%lKUe(P1PT-cHt72W~~fIRUo$|@xC znkDpn5oj3$5ARU$lnTPP7`MZ=HM=pFXL>V@IBsu2niP!!G_>eu*kYn&oi@nyJq@w@ zqTe`YVnGrzkTKSKX)#*e-p01BR_lTHV|*auKkae4MZP_X^agxcAD40@H-Tp;(_iFa zPSD-BC#th4c$%lSwFAgA6Ga2$*=6GGDDG*}?h$gl?kFv#PC^YwHp|!(ra40zeA%k^ zpXXVA_}fLCl3G`Y1tigAM2<lCJk`MTVe5hY8Br5(htHZdd{v^hsrMq!d`$vZ@{9DC z+>)7gBSN})7{5X?$&O*}p>x&xx5P_~KN6B$c}Qi2>Y)Jqp5=^2S5NWlTw@MI#69qo zTm#MdiLjCe%JJ%JyXLi>27ra@w{u~6{*R!AoJP&3g3+#Dhlq8aBWx2vB(<86m{luA z>a<42D^L)^Mj<4F16h<?Jvle^??(40Ap`o{_52V;ogXKbUB4E8Z6DA0+lfrGFT1{d zs>f{}z672qeJFQ5Gaeas_Cqm^PU!Vl%pc9(qJvZa>!%Wco&e|zq2XD=aGO%eFIqF` zrP4z<%Jk{I>0g+ceHlNYV5k3*1*I>`r(o(fuDR}=cPvBv8XMh}`bv;GtM#4Rtf5%) zi%VHHBK|W;4c&5-l{4cB#-siC9oUcabvpuRbGgKqsPVMhXBTNUjG>ByTA$N<I7|z& zQh&jPX-!?02+!)A(U1;S8Zz+uzR<0XtXfAX66t5Jwk`<Q<o=}y^aj93F>_Okh&M38 z0>EN@B86@s))&CY-Gz)|ju)xV3;znMw#|O1SGG2Y@r~W_ct-!zho(2cUjmkifagv8 z!s813#0Zv5k{~a5VZ1aECe;nV;Sd$FYNG0eQnP-|0Nb)aq^bFkI$_^o&%q0a%MrSB zC}*1cjW`{9{v+5*Z+Ij=h?*i{1M>mxdT4G^8jI@;3i4b&gHhRbdjm1N)$EAUj2~FE znQ?SGbAM;Uf6+s%Ul=M|`Uv_acb?rwCu~Phqvc9Veac(aoRGc5M?%K1A6e&g`!lVH z7|&!q(m2EIuDPeaB5!tYg6?xE>z&aUEBp1WQU?m0d8_q3jn5usc2386Z1I_*pP$Jz zkK7$cQpLxWrR>i`&o=gE5skOgg$8y>l_Aydq0}>B|BI@3j*e{k-iPB%W@6js#7-s? z+qP|cVoz*NY}>YN+Z{V^&%O8aUGMLoUaNc6Iekvmu3c4oKl^!FgI7sv^WyH?)Kpmr zetmd*%=`(!i5?Qv&P<-rbhYaRkbo3dRJ5Tvp8pRE&^K3ua!~ME?DMEC63H9e-Wha( zt~>WryZ1<x5xZJL3P^>}`p7MUfs!8Te!>|^p?vd#uFz4HBE}Ioc936g#qXz4rL!&c zX7%5y%W?X5b8?I-SU*1~T3Tc<=a58uYw-OnivnI0-N!fPe8$s{sJJwEe)5_^JxL5C z^VO9^t33+t^)1i^XT@%&<PIw{8A&KDx3ITt-kUr1^$J0)Q?pP0d)hb8eP7#e-#283 za`v#8>zT`vo{rgXq@WPKqX=Mpg46;4i;@iAyL$a8mPB^8fl~MSAUzk7>h#X}SJ!)- zHM-E7Pp!XaNJN>ML-IX^-@9|gxTIP-&Cr{8St53^6aPAy3w9X`RJ*x93oCdh>@RM( z5qyM6?BOtbP{_{=ch4dC1nRK>`qvoW4%X<<4dKqQi4oI@oNVUdb>XrUw|6wy>L2d{ z#DY8pQOTF<BR7c$srRv=r#jkDbqy=GRz)~VIF3&PnXZ3_m!M{7!&MlSf<hX1!g9<s z{+KUGQN(rNizvEGD)L9-`R@!Cdlp;TSzZuXKI7)gohOn;EGpK^SIIK9CYx`J6T>wa zL1}n~H4w{f?#yG4>UL=c^N{hRxjW+-Y~FWXZ+umJ{QfjP?wlA?n4;(vZvrIFvhk=e zl5PlV$rbs<#Qr^2!fYD$z^lkRV7VFQ&p#S{)R83lG#AFRX4%MaDvUIZk>T$9+m7r3 za0+dgQP3FYPld1-YzdW_t;n*+izrb8(Z^#Vv80WaYGbFl1<l&@Q1Hi+(fGVEQf#$! zP{cEo&N>X0?estbeN`QdR;P-*_VNsA9JXq!9<9OesWRT*!WtDJti-FCIq+W2D#}H% zI*`Bb#5~3R&pYvl0ykQsWO0F)#CZqPkM)uqBc18%xFik6p3CYgqTT^VIPB$Q%C#O+ z!0`K)!JH(H9Qc{L=_EOM6c=O}F#$3*6%~_;-o)$_6*W{7cgR~j{o(i@6R@--B&_*- z31Vvf@9d8%Rud=`-tC=Xi!o>|>NvHqrFp;3bf4LaZ0>h2c~gE<F$_4h`Na`;Zt94V z!sES2?`>jS8aGQ4=V%Xn{yCCqzYS{QY@!uN-hr$L{w$1;VY%>qao2q3e`2=Qc0@L# z)ES#R(5<5&-osZ;L?ZbSFmJkBo5*bQPV-KoE4#cBz{eXIsENX~dhBYMe%%-4>A7l# zaMD@8x$dUn7j@Q|TVCteJTMUxakb09OpybI@u`9l0XA)sz0QUfKM_VU)LkPeihI+k z{Z+2LD;WIX0C%|-C|yx0;QfqNiJv`}TcqM?om&9lS#LH>j3LE*ID=00?wtapwM}28 z@MynrQ}P#;T39~{%!Q7r1i!xsZ1Mqu8?6h)Jx@N^tY7WCr!pRM<Q{AdnSaxQlSg2& z+M7`&i1q)b7>cAD3pc8_?+rCXxX@f4^Gm}X9V>-_PQIS5pi%3*(79~B#r06r(7CED z4@nX!=fz?<&`R)j-ao{oTI)=mrM8VYo!@3O<Sc=d6>3A(yS?=8&x7%Iz{mJ_`#E?Q zm$re^CF@~~VD!t=P2`Cg+ejse*2J~XWcxdDUZH*h=|kn#0MP85&N8O9dxqlDxA1^q z582cAXpy|9Gk8S!`JD&1?>PqdZq=(B91ghUFCKVf=;Ov2w?8*<s_=4KX9v&3ktYA| zU<dSBzL0R*gvF{~o39ZbuWyUP4U$$~4y7uaZ+Qt{ahmAHkQsA6A@`2o4lN!;Sr_TG zC2DNJz_k@<(wPV>`Lbn)t%yoiIUnD`mUB{vV+w|iRtUp{AciF(bZ}3@@_^jI3(noq zm#L;IMmGx9ZgWGNUpd^JK*e(k#c{}gaLLJf6ACez_hoHmf)xd#Dl?`TE8R_WwOOjl zT$Dcctc|7sH<Zvh%Y>nUWcNI2r>ZwG&oi%S8~e;GEhfHmQ~BXVYM^BsVH1f_D#m0q zW5LQ`hFZktGyDXy4N+Fc^V^%LjT&PIE_MX8(pe#z^<|4g8;0Psj>)YL-A&ayw8E2- zq7c>jtF}4D4D6yjGRgsg{FQnR8pm^0F<N@Q68WK)AqdXNC~!}SJ6dj6-?Vs@{-6sU zN)qP=ue4hu-4eL@Hzl3_gty%ZILbasm}!zTi$$oB&m%SjA1|o^sa_$R?<a@HpOT|7 zEM!$Dkg(u;FLB3baiWwMWkbj^6^^T>K|Y+%z)riPFibw-F|SSB3Gi%MMK3X|L#1kv zA@Wa9udA4dfZC^IYMg(2_LFPHBTUmURkvQ&)_e*G>%-3*?0w4IYuQ`yb?}!YUfu7I z@C|KM{-*xav&Qo|<A7W{7>DsGrZloM;3+F$F=C^zt5Cf5<<i}OR6{5)fNUh9X<|F; zh&nydm@S1Bj3d?V0x!e<Lf{NRjsHsh^5cE$dA7`cl-2j3@Qgf`OdyhEY$^@?^!L7f zs3`|ZTXy(>5owkjBev1Q`N~)=xNyiLy_EaM^V?rF2_VJvZi?Ug$ix-=4<;mV@lP*f zVYIP`B!`#%5vTDh|1P3PP^<tj_e@W_^&HAF)k=f0S+dA1p9l7b|IUIymly~_`IJqb zr3Apb<2?b@eOhBrDWzPm_!O4nIyBDGK^Ix&jed@((%ZiCmon4wh&PKN1tSw~*H#J^ z4%f$VM=FY(BoZ)mtCojTyvt@+Zzu_zrDphOo~7Md)k_xQAPY2)3&bOE%=QUyv7{-k zf#2T6sXWNAfkF3qz{;L@jkLQmUw7IdUEeX#aX&>vw|(5b^ubl#@F5FA{}Haxk{4G& z^QeFUDGY;Dygc+)QFekd&7R%ZBY2|O5#Gi3h?G9|)*NzdZPE^+*!v4+S+h12&6dvK zA}gUkB{8IDCTJ&5#O@`b$4ESCHv=?g;k#$2TDQM(dU0iWemfDFL4iXoD~$?~IHo^P zJvv=)ZBgQ<y!Tnz^J86UeaiWJE3NqyLyn>=2082apfB&_-0kC@od>4l!1y5~p2D8l zJn{Ln0jOiAT8SrJ!OKRC9bsRQw2_x=5&mWxy1Wux$gVBhWwNd_r{eFrI{lq<DejXN z9NrTvnQW$~P)DiJ@W^w9LbFN#NM4qUwfz%Qdnp9Nx;IaS0Us3#S9z5}0-OjT4!QP- z#50sYVo(-OjIYr9`dnaBIU2C@A@$^&sU}dkj!=R+=Mo$0UAz2cWt1z;{!^;+jvG(7 z9sIQkH88f%7JP4ZWSWmj@>ga2{p96wHqf`(-U-0b;D{MNI4|>^NX@%VLnD=or#2BT zG+X@E-eiYobYR~*uykEF<6iD@E3m1i^i|zG!@UnK^6X^3BU@ot*ZbMx<95}`CD9W` zC_W}pR6rC14?45Ic@8?>az5xH$;#wK&auvbQw(|KNsZ|&lkJF%q`nXz&G(ko?V-wd zve}DY(xjuWcfs?%1{C&L5R27V<M3t8l3DcU_uL)fD*SY$G(5Hplp;pGU5-|lcM=4C zZfIKc#fcZ@s%)l=v%#bKlw0PFCOrkRKN6T`X75SB=dfVjnJFH&N`Iv7Y5`nXmCRsz zuWYQ_A91E~aw-6-I`Rj)@EhqPA0m5ph9^UP7oaWFl(?I;{|ub)l)b7{=1iU$j~DOk zJ73N`bs7mQ5+D1vn*Gil{83{-2p=Bnj}Q6e1-fXxEVi{lwtr8@Q;v}h)=xWm$bY;_ zSxr1Pt6wFm1cv@!<OnPW7-<nvFsjcVb;Xh@{BuN@?zY*|UUO`25X^DQuhY#i)%kU< z2ZurL+0s@XPsM!tT#9#(v{mg6&b}4w${T^V$G@Qspscco!2W{7$?Y<-ui3Uce_0aM z1{I#Acs9|bs(<W7Od*p#=)3uj^Vm_F;tj-lrmRMkRi+A=Zh<Csyff7`1y(<Na~!et z1x4>T?kQiR-wj%jm#Rf7!t-A<y`6R^h?Oc1+=pMkTYrVU(j8rQ-89j*r-Ov^NN<tA zlx7Yf&U=b@e)>q|VXF%Kp^f)ihV2a@y<&szJs*^8nmIz}+ZxWun~C{rH>l42U_g~} zRYOJ?&}p({IqI_a^5o5z!5z?s|ACixqnH)CIq?R#NngRO&(-hQld86v{I>q~908)V zMBc1-n78h;M|$p%5Eo^c!h7auRq6GT<wycGZYHkGkdZTNMwWg3$eq2L*^n4`+OD*8 zvMbCrw9&@EKk%z$$+Q%o9Zf3j_iMtO%>IR}?(UB1k=)5QWCgg?pVZ&@e6l&mu54Tn z_5*HlZPw-2$MIoJXtJ~rt~xj)m~C65aTqS6sSbjanhu>!#^2aS0>jhx2qQoov)dB~ z7{mho?OP)|{F8M$A<N_~T<>+jp@a4<uy<mDN7zCcQA8L`51{8EkRjT22q{QpiU#UE zKLGdz$~q6K?#%96QY$uxoyL0y>da4PDD2G3#swiIX+c+$g-oc#o7Nfl5)9&4vFZv& zku_0XH=_~lEoK;(J`|3pwhoNoZOL@|6H80EYHe}8HwUd|WfrOS?Vg8%s24LwP3oO( z>&cY3Jbsq=Z#eOul9bX`g9#VppZjBsuyllJwW&^?UFOC*wV5`Xo{s26THerqkKHtg zs;tPhLP=!ZNdvbj9e@Aq6^qXTVyeTJS(a{Dv_Tf5(u$1+s_!S?%VT=^$9tZKeeM-i zq~c)?qNg+oP!!piV$O6^Qav@<bW>Y`33;z$Y3r~YrLxyBL9-D@{HF>jtjYcLk#*c@ zclj`C5zi-^av&zl1=MBxEAm&x#{o9pZI%l}z?4nnG>s==-+3RE<hhCG1{+ucfrFF= zWqmqb<RlkX(~ux3x@aug>8Tg0GF<_w(&qW{;!8~Blcv13;E>F-)5$7inK*HlR8=+y zOo{h13|U@cr8ZYhRedBL&Qk1BlN`prkw!fzYl%TZE@i_&%3cGdJh(>nSGsC6IN7r; z=M}sfwuBkP@}D&&%f%Gx4FoL#aN;%L1mFIP{r(dx4LSdeqqY|=JR6DUu)L0FubB`# zDRrk^^CpY;Ec$Ak-|hw+HCoD5L1O%&#WN`xY<@L_Ph}%yvTVCG+e?EF7XqmC07IFU zP@Rp8eat*1WtD2cSi$*LZOo7jV8`PCZj!*FkT2g4t~LYj*r*Pv4oB^AmDlR+oO#r+ z<ql^$qTL3+R#80H;fBkw?2AF&TAHp<QV6}fj~5?5AW%fgex@fgN*G3-0&Um+I9;`l zB*e-y64&&0Y7GFmTJs&q-dqzGVkSzr%5YjWb8w6ldUKvvQmS^hWh7g}-zSQQSIue( zw-LFvPM_k=rYAX})O%_U+i%`*8k;EGRGnJV^_}ob^I)6u&hk{u7FVrM-pI5YMZ(68 z>qo&(vcgbT_wZ#62sgNzF875`#u@n2l>{HhQaJc_h~-*i=ZeURG&ENbV_pO|JGDcn ze-u2Sq!RReI<VGEgt-d{F^REE2rCrozH3g$yMH?(aFy%O$2&;6gvFbY#UOFDF4Abo z?GK=J2SoGuj)T~A<@-8LO{+izdEaIkAF}%D8wwFvx@Olz@)t4}8vR<W<+WPT`KfIO zUbXH;q|91%Jq+iuutpn_xxNn10)c(~;t!%$tL=u%q`vsY{qjoBk)a?6{~a55(5Nov zMo5Wx4B2FYnYraa_DY`0^bbcX(?u@xaZ-8|wvFD};XUx)y@xGRx38L+JkR^ecWrOf zgYC5m17vJ$^lzaPOBv(EZ-YGUBEq>I3nq=W41I^ArrT6=SaXuO_}`7%?2cS=_zt@- z9sU&d(>Yp^L~lGI9NIqWJ7GAi?gMbQ=7gM$$qEX{%5_?kw3Vr!@i*4S!?Pr(b{q^R zYV}=NRes7u__FJGBIv4GhKx%p8?$=4oaa<Jf!AHOXRN0AUQb_9=vnOAA2gP<R;S<{ z@P9T3!0FlwjGRpY@~kGT2GObZ7S?R@MX#cp9lRzH6!pmHcFB~%!sB(d8B+@+Rc@Rc zM4lU^%Nb@m>qfWC0aKbR5pBMou1Tutn70va&7Xc)ur)uN6?n^wGz|ThMApMY0GSke zt{lh3hv0I^)VAcitloU&uC%<|7`bHeV&OkIPz?Yd3~H)vtt&MybwRCqWGURNUB45w zMX1Y)OUw0!?E{7<N6E7ioU8Z<{c3~}ey}Q=k;Y2-=Ms=eeg*2tgpj1KmP!Eg6fz+d zsn8B0ZwaLNwX$It+Cum-&~lI)An1ac3gzKGT1|!7D_;gr1xQ6ZgH9>U?mFMI+U5RD zl6-;qJCA)7hQlMFfb1O+`gtKYGcN}aUI*h@bx9-auw!oNSZHD4Ed+Ii%MlDFqe`=I zme`F?<oKPpRKNlHv%<yrvD#%fbww_ha)Um14Y*JL+(&rq7|-$+=J}kZi1fbG$|!ly zr>f76S@Gws&vbXh8Rk8Ny?i-1h&<ki`t98sACEi<JEMUNI9zKMQgQWp1{St<-er4y zR5(QW#ZT>5$*xNcx#58<YB2-wUQCo_SRR8JX_$1oo@McUJ-;DweiPiZU$;Ahlj1a_ zea6R{|E`?w3Yc+3xLt)}?rOhea)|QSY@C^+-&+mGrG1w*+<o4|)H82KvX%fMQncX; z$`0l0PnhWOEDFb2{V4b|ew>_BJoR}q)YS}*!T?bgAJ8Ux8%@b617UsUd`5ZJ(rg~2 z<VIM~d|9t^hF-OFVvWj!oaYKQov-Xt_%nXE!sNNZ>VRx^_v4wP74@B?GF4zIF}APe zBJRUu2U>HlnWhJOF_Arn{S<@e`s^0dUdz=AJrS77xqS(6WwdRAj3AoKc;wql#<&}r zOMBF|=(GN9z2DHqH#!&^1z|F%ZO59t#S&o8o5}IZ!<R9e_crCy8Z+!>XX|ROxu?nw zxUqff^Xc&<kUf}tHFcPB91A;qFgU%BcId0OA@%Zsm4Q|X$YMXou{~Ba2n@j<9let? zB_v5owL;#^MR324eWZ%t*mph~s*vRwSjoGs&hNB3eIICd8rtBwy;NYE@X16dlG&X+ z325HF1EuwPvD}{(_G&O7ppar9EG=~8e@S^fU~*X+OL64>ZvLXg6PJ~TKo~nshQO(U zuulm3QH2h)CP^t~hh4~}+x6_JKY~0m<7WAry5n)2Wt0z*Ccq$Yv7fR9{iIPnxv&T@ zVX^G}spsAR6G0@?G-rGG*pxj5!<)J6m(!I(X4^iph3}jB{sEHxc55Gu#~)cXbc85* z!tP9j6)-dI_wKoZ70PHgdewZNeB?0x3m2IW$OD6ZGY=kJJ!smOcfQx*ite!T<mf90 z5KbbS&kx^e7JxlV>?;Icn7?57<77(}wz<*u4#TpMKCjuC)@I7rpL~ElSZ-w{PLK{H zhBOb!!sYLzP%(4G?|17BnVH6fN)H{1K@IXM*^cq@J=qg=$r#RAj};5|Pm%)8{qxm^ zcxS(bka~hpk+g;_tMXqORR|zOb23RJA#SukdCbQ{e=#nE4os&Y&LkNF(G<Z}--$;= z;%X3Mn<3GL?M-*a?G-eYM?@Lge|++FV0s;5(S;l=j{kAgdE!ogeOJbrap8+(c`K0$ zG7TUlatu^%`2SD#-y-$-5^DBLE~}hQFM7PrtPSOvkD%PXtdTzz6LO3O{GuO^Yzu0+ zB2RG#^G_5{Oy(o-&fjuFjdg8=Ser3@E}ePU9Kqlf2H@_j$@Wag_a8mk?B<wtYYa!U z8WXa5o3kd^^EGJw3%1nP-yWe`oQhMww5rbS#Pw@hBXh1ytc{K(9qZlY^F(WWWKe4| z4zbl<Z#*tnrG4jWvzr-zeVQP9XFd{XoVA}OtnB#YoP>cM8DTc%QT(|fVt1b{It$tX z@>4@2l3ZCN+XoB72LP#=r70s#C}1xR2}{>)Rvl*;FSeY%Pd`>WGXS=D3E8hG{9~0m zL@zGKX^r;Kt25KelFcD{&V4_~lY>lmu*`g(Lb-eVDWWnr`2qxE^9dQMESmGmdvL|{ z&ahhmQfIdZ#66FGFBao+XWolbk+9&bp6bpXy14UBrIEZg7T(IpHcG;$bKT%mNx83F z%*yuyl5aDwYteKR4v2?V21cg66$;Q}E_j=t3ZX~B7wpEqm5Bwq)@=tww;bnVsnyZC zA!o{IMP*6YM8|i!<Ci*YP?oeOiu%KSp>iP4=LMd;QNz$~H+TA;X<$<6IJh76<aD`V z2yqB*O}eIDph!$yp(nfE^?mrbqPegKxa#tLS$?|E6mYxVtk!mvt7!=>tU$tY8Dj_N zX!H(#8P{zN*3HuXMMTye^v0($@t(l7@^fjE!eR6n_vdtFj86noX}GH*GU$qd5G1N7 zXpxQ*$PW%>!h#Bh;a1^KgUdyY+5(QonXZEoiYkK`NQ-#t`x1A~y;bhvnbPLNKP_rt zXX@8ILmAG!uo=*3hfzWXuo-WX_`W;nQ0fYnyi<Z#ovQkhiw=8NSviA7MMk$Gqa;VO zeX}1i7q-%)buw(ueFwGR3uZlBrvcPqS2@r1nM2@Z%k6d8nkvvzfUk$Vt_a_B8)gft z+24bsj?%i;2VkBZA`%PI6_U%XA9xV24I4DX$PJv1V<OrX1+@*BK{K!bRZWJ3dAx?- zvEllO<s(JFUnL};c^<??q^wQ=dI;T4_{&D!$?hd)C&_o0+Mye%lB86om)(EtBAw6J zw@+5%Rku7s633EILXT@#Pl{x6Os8~kIpii*s~$~OSDQ@P)0-}Hj*j<m%D{@Q9=Gh? zyl0CCZPBfb>mIpA^{K^`(Ub1Ak`oWwU`Rb@Ya}O|N=@kh2bTEf94wkd){DI#g*%)d z%Ukkh#QfT5vww?ruf@v;O@c^CWuQ1?0L-RsK*L&~GR%K>ZfmS=(;2)}!DMmZ_&C*| zCShWWpmzu&W^zVPyv!Ti@iHfCNL*V{re>@(Me!31mp^cIIC)m&v@A|tC2u)}$EaLN zBSe)A(vhej4P*!Hq-!{*t0XN{9|o4fVq}*^_zFm4tj_xD@T^Hew*|SKdMQwwW|jx9 zbe6>dy;YTNGKlvFp^PYc+bDQ3ddJltIZ_h7evNY)GZ8qLk_*JO`NKx59dzLQ5GPfV z>9}?f*&mxP{ANq(v8?H>K<0a+By;|VL||K-Z#98&zG{yIE^>78UhO<cd{M}@l38+; zHCF7EdaC4>pQHq!VS45bVKOl@RiOjye0jZwUQ4nYe^P6;Vh(f5$XU%)ERxBUm3Wgp zvQ&(xUNHGKr0WBdcVul0JYF1dH`cW%7%O#3sd2KHs?(CSPfO6(EUML+(0ChYnAm{q zHW;5%r%iP6=>#KugUKJq3<epvGMor+=w~5GTHnL;$cV>VXb6O_HBT>K?r1gAk4H&J zT2#OTs?I^143_x}bg4DI;*viu(tKO8)tbzuBcdIo4bI}r{25`B=kRTbBrl@-cUB(N z`86{4DayI-2YGU4y+0tH!ttda2A91a<+sv`eg&T4&4H;dqCDDZpSqUMi8^Xwe^(*r z#anp)iE75sv9GuI3_b(S(v^X26dyxsCmHsa6=-I_+buI#F0CXmqo*2s;<{S{dzyP~ z9)zShp5Bs`2Pr;t>+ZoNd+6#rkxL&NMWi99eZZH5L1)}o`8BEQQ`SY9?5_)4B?B{o z=++}M4%^s|6=nJ(Y4pDSP6d-_+RyK*LNRzKMNBay!&AAXY+-4cqWx%l>YqsG@ls$; zMWClhM6cc5mu1~&;hHz_GwO`|p2On~6MgD4uyph*2=NEk%j1dgRp&dvqk~qrGvfpN z#jySq?exN=;NsO4juH=^|MH-+j0#5Af5fO?k0nluT)ck|aTfgPHW8V{kP%M3gYo&^ z$CCRh$LJFD!+Be+^7)zU4s-prT3Gyl(4oKE*WWs%ytXRqETMISk2`q`t_nw6y|vHT zj*Boy(-U8Gy?LUe4#XqX@qxpljp58<Hzxm(tRhdLIh+{hbu-;S>qEP^YmOWSArOF8 zcTTo_A18&T1rkF-9ar`%OHkARe1k+hRz5yNc64j?K_QlOp6yKvw%f1NTFFBhR)qN> zOK_N(9i4ULPCE7;4E#jeOX97JL3e`N_Z|B4#ZA4?PK4QS=CI$KDHrk#xNH8FXaz}F z>|!ts;{CWzdz3;-M1?GGjM(R~=5FeZr&0Zz%Qrt&k6KiTv?v|F<J*YHqfx?-D*tb! zyfqKblm{z$gA#y2sbM5E#U>xryWy$zjJXcU5Hph_*P%pf5gDQDrB?tn8SD=w)+Y0^ z3jtOmLpbZB08jeE%)sy-LiQTLjY3)lFkRZg<FU)bLS4AAyBUJwf=0e@y0IXImXudt zwuXgUh(01(73NMZ2IzL`fE#E=w^?;mR9-=MWll--DpQLqqW)h|*;6K67Q`#&JV!DM z3s;SS+;k<#7kqKL?=Pn39aqM{utqhc;JA-FN}aAxU}xT>-VNu`cfgxHs)o}{D=P*! z5Tiq&!bnOYR{4Q?xCYNlo(SKa&6}d*E)xFmqrNf2ZaF&bhR<>BuI6m90(=O6Edatp ztd&0Lj17^+sW;w`yoTXrt0kMYW?<vM17DnKOj;%>lFWE->(oX3G#dT^KjZn<KeE{z zB=^H0tNBtx=e0JW7VYzJqN#}a`b9rQ;jDyrv8}@f#~U}GI=}SMMa*Sl|C$*)BXR^! z(#OU}gfLQw#7l*d`__l&kLN9`w@)*HY`Au|u4iMEBts|SFE_Qvorm;t4g-DIaKDjw zS>wLJ3ZCmF=;6jSaZ+SV*q5(WymG=eHuS36&yH-?n-bQ_WHLqIA>2(9rJW&t6pbqo zasR^tL>X}V{$PS7<R>s1_?0G=Z?*U<ZJaDsDQqU%XoysUN5JmUC2oYY<=)b~cq-Rv zO6F(mucylYpj{jih=11*x)|dy%;~FoNvx+)1uxHbuMRUt&noWp$*c)l^=AKFBXsSr zP)vLNL=}xFmHc+g?W%Djn}@H5^~KjDxD>2pV2jCBhhdTohXt%iz^E9{Q091j=R{E1 zjduESjj3<mb)ZgE5`j6F$3a^)iDDDMK|_Hse@C>6Rp57L+@1#Z_3jmZ9MMYo$3aDS z<o$Xhe{k0O3og+l;apHmZsRZDTcdeynsjB!-qI%rg2&}2kWTwTfjSh@hbcCb5BE5j z9ERkw_o>~rL5@#Pb;5t66+dgLO;=vmyPi<cD?8JHz!!mNwyzCo2Zy!ECZpy64!RQj zMMUD7L%(_`<sbq{GvmVTaH;#7iE^q3<Zww2&j-Ej8f{>K^>Fxld8rHPcdoC^FQd%r z)u-abogi&&<$t)iB7a8o@8sXrtEnPW7ZD+L8#Km<k=nIrHJ|a$%a0&V*+Df27g}j# zhvb$PoZr~mEQ-9iYd}~jf01(UTcLg7<(x(&j=MpIT{#EZfz=-n7$>4?;DY2tb1unq zK9#{AD~4FRQWFH0DyrMz(@BM)<yThCtPY<}pH{e(?D7P%{l1`bT4y_S#s?$%8$6Fl z=DU*_V$+NsVb*EHjNb5@BC7DGWZeG&2nB%vLIIT7EXP{fhAB&lSwY#o4N-@eFmE-j zTECY}%V&!LzF^pmq1uMm8cb`B-`oL2&rJH#eK{66KaOnh?8}h+8EH^#eZt!4PX%&% zBNkS*#6#6HQi%C_cStLHc{-x$Lg7XT#FWH9I9Fu2T8xT+b!Ry%iB1(v6SIE<RZ-k2 zGZ7}PG{^J{7XIAHyO$rItju^{<F`L!kP)-~QPGd0pRt0R&F6)Kz~35iO6&UC5R@NI zO5oFJ#R~;uY&4QszNXQKR^%cZhOAH*)qzGZ@OoAw#`sg+#^b@ki{huQ<U{-eh-0cj zF?y=oHppfgH8KlBdrpY)7{u7aj&*1*HZ3rx%u&mNEEW=~yk%yyC;!s{W3u(xMdk{f z5LX(Jz0D2?5xzwL0D?W*<uO{kUuGtXLny~;vk)fqAGb#sQOe|EZ(kg@9Az0-(X0SG z=IOuHGu$$eXY#}IhSYxJc+ieD(wYpFCYCd_#GTg;01;8aIVHdoFRlpCwppxc+O=go z^)0YBM51zsLItE+Z#>$$8*7fYKKB<G*z_aGpH3@|p6uS#Y*KZmEj0Br_SKA$!y)O^ zl1IeduXzO(j5ZuAH4vUyJX`e|xP0n~+NGBw(x@AWX_)YRsiOH`v0wd>YkP)&#gbqx zi<9S=Z<T^oLt&D_lo2CYAund>IKup(qV2a1)`t3a-zituS!i6<*z30kLvSW|mNHxd zqBf4MwJ383CE_`F{E&ImzUHQfR#uAMxT4}&ebffTwgDk)(=~?B=PukZ+1Xs(`f=Ao zETJc#6iS}MM|cpxFSrob9vx5baLXBZl(_5Z&4u=)z7NZ~)&&Y}Np3|bFs7~pm84-J zc|v(F-U9NdapD`%D^_fEmP`05m1^+a#WTRTrsdK2E3_y&y9vv`pju!hK>`q;^kdp6 zKCR$*#|G~Bd2Y4sS;0^Klilx<pxjh8H}08$A?NYt*(!4ROKBztFrlAfHV%z85Z3m{ zcsJ^v-GBs)lJJYZ-qXQO-O9}=RZH+LQaDn|-Dz0@Tmm0`viqlR@zK$pe$w;)a$QRH z;%G|YF2cx>@c4AvktL_W%q7JfOgrm=Jl{|h3CKlM=5kn7Cpq4)MiO&xz*PE%chD*o zwDJ%Pl3qYL>`|<xxsxHDbJlNo{LycE{%w@@O^;2J0cX@MIfEJ`H$G3yDxEz7Qqze& zrLvEFx+n3r<F`2~#oi$7ehK7jbx_mwWEa2T>4@sg#B#f>jo!%6?XnjB4_2eO0$YA4 zm$)!;<?$`QpXPD9V(17YL(zsnd?RbgL>DOL36<#tt8A_1Cm6oZlbQ#=FE6;ZgGg~T zX9g?|Z$cAW1@S43>Fp&KeOEreJa)vd;U8?%Il=M=KdpWcHu&^%a30NrdU5!YK|fR& zjO^YExzHEPV)V1xQBp)+ZeGeM#bc9W*2EYFq*#$rOoemX(t^w2j$IeoY$u8G1*P;( zUU-%)eYI<<nU>|T21{CDFqC@$OyUsOKkVZG<7Rve@Y`ia*`~tg;C~A=dOE1i2~nUU z`Fk0>m1A)P?a+7wd5#$l?_W)C7UQ(lj6(O}4o#D@qecBSq+e9B2B300LUbzHY+W&6 z2;HXB)}9ZLN8iMOD}l`hj}c9)_Hek=>f`ga-n?GBAFZLwVGFyKI4O2d4kl0q5w;Od zpoS*3TJP6vtpXo+_4OKDE@|vM%ep&04<5I?rn0!QGF%!bw__;3i<@o79pguei2I7q zX}eBvG+r`Q%KSL3Cg4MIu^XD(S0we!sN4a}a2y&}r<-=O13X(6L3OjyksXiw5IJH% zJ}tD|VwuJV^S@*zu5jqA4bb(@=neI*jC;6(dXjk5L_DZyN##&9Wjjg1!;CA@dxUrS zw4+3z=B+i~av0as6Pm{*z~Edm>(d$ryNJlJRJ)$wth?MQ(%xI7Ob7Af$jNu6QB-zi zSo*%gYLf8Br3Yh^+hF(i-%b|P;R=3LzMgz<x;a7!FNr!ME`_^JsyfW1`0S3PGQHiF zJi7*8u|WV?8R?*X%S{2%OC~*!3lsz}pPl&L?7SrwbN)u3$~>4Z_(dxjif6f0+oC|W zA~$e|W?53KT+>Lj-_LTq_(@EUxt17Q9d3Tbz3%e9mC`g60>s%-GMP|~Ho8yUG`(i! zag{6JxHybrQ80FsA;Ft(O}ULC+vjW@s4}*u(-WSjeIoldKYFWpvO1uq@(2(9c}ji1 z(`|kYn<|bR?l131VezKMhe4jX;^X0h2o&^yAJS78@R&{1V)p)C+au;Y^Nr_yJvTC^ zf=s#h7_A1{bZEu^?(J;TGWB_pO=2(VArjl9uXknL`=sFQzQTImqP3cc$|Gq1ZA1}E zWxLm+*mNnxcdsQEn>aiZi6YumkAhPXwSZOW4mW9sjKN{7fgO+?y`+c(&8-({W&|qZ zxTl6y&WRPhu(;T8wjYto(=8ZaGSqZRX7kyXUQQKedN@EUtbTtO@OH3(M!IWH{Lqu( za>#KL)jIL6R=rzbpbM9{(2#I(Tgz~7`ySpvn{^NNsN=}o<?D<Gq8#f*pXN?r3df2v zUC%ajT>U7bK8U+E49qGU3>tSGjj$)xnr36<5y#INP4M20dtobu0hg8l5%?j)dEr+# zdq#rJd$wD)`pgLWu@q_X;tX(Tcq1K0F74%umyUkD?}%TXp65U5JMGllUI`-E>z{qL z1UxK4!cVa+I-+_tIm%zh#b*Ym*uArS2ngjmvQN{v&e2J<q3$H{yry%Sc4GMomqeTW z)4vqml$fZ~VJhaDCN&(0#uvErjj7Sfa3JRqEk6nG!G&dq{+H(yMFGO^34c7+UjxyX zo<6P!5s&Jr9&33#cdsxh)6=9S*0SC6gX8Cvdb{pNH-ouFGqvkLG?_)8OktKiGA}I) zdS47_hn$}|qU!pa=Hhv0NaE|e7hrMEO1CpqV92RZ(}wN7)5E1gcVIEI0AfX~YLCKU zjqDwV-Kuf2TL$-`G1<QNyhjhV(VOIZ+M1UxD~oIb`n+C$WLeAZ?K98y48Fxf<zXrg zgZ_bJ$FO}HBN=#t_0~A>W>0<g{@L_9N6f)?=ks$|Z=sj>PalF^dF5t2B(KeYMP-Fr zL*_D-iXwr!xgM&$?^Ge7j3?iFcz@WvT7CH3>i}`TRgKRrPtmfDp7DTKI1z*JG61%6 zV)gF+ZkzAe(%RME3?}yx?*tyV%J<`xNsdTy;#fqSF0IjzU{WAZ6z0?Q+mbGy(5K{x z!0GPJU?wfX1)yJGHo{X#I-vQvQdi!4LU$R{Zz{VZ>O%6!&gu_b2xC}PYh=S&<2C}B z9NbEV_nfvCAD`%BPQ8ySSWaFT73R1`;V((8T8Gst2GbAIvFF`i<Fid!hYfon_Q1gZ z=}ahvvKCMjy;XPou+X%VcsKgyl)$Ga%{976m7RifkWx7j&Fam8iksTYY59>ho}6b@ z?Ls*zG#!f3dsU2YnJ3#CXGvc!&&U;PJVjBqhvcMW1UsOxC)RlSTVg))0GXeaSNq2c z^mtZ7)>N0;z;#c@@nRhUB%bzs(v`u*=z-FU|GpDJZ=gN6xrT`V8_VO;TpV>=-mk4q zXOe-X&Az1tY|E|Y2wgPqn3~kXTLaV41$Mig{L8?G!^>iH#n(<7geG)^)GFEz?f8<Y zYO{DWLpu!F&r9kLW6Mhcubjf*@Lg{qRBjo?$m)WaG6J_WO$E!7>c_5tD>QVhk=@C1 z^)d+VF3R1!Tn7mfG#;n3ubY?ZKc@JCUI3fOE;h?j#zG>}q#O_DW6e)m@9Qg1Za22B zj#szY3LG9>zFq)M^2ekvjfAttSapD)vE@HDB-vi?ZzF^2u3<)hiv{FP*MyURr^3|2 zXmg^PliS8cYo3zX5?i8<hkMhF;3%~Ts2sw0obOn7NbwgjNU!CHG6o9ZglpnZ-cJT{ zjk1p)IP3r^TzJhfG*``Q5UIlT0q&!qR3d(1LRVBz>Y<t?H=buskIr$c5<e(ugwy+c zz9Y~ZuI3e!v0fX--IHaQs-=(t3ld~_*4C_V{{=#T7&YMj3a~U3Ge77hWkMAmo*2B_ zkf6*)SV9!;dP$y;@@s)I)=V^ALxHS(_>LQ(Hi+JR?oC8H0#fOR;V}EuGtukoCq?YF zv>fp?G<W?s;j(#2=*%6F((wl%mQIu1&S%JZ6j%0q0Qr6&rSCC!R`!PpwHI;Pb6Eqz z%=_Nw=O&^C;r#Bayl+fQ6S{5x{OIdF3k2B2jRTfa;;-HP*&!W5leTo#u4SR(N`JEK zi*a1TQJ46wJbptNuIRtO`c{qZ<qOoyw_DqPvTs{m$y1xF!$&4GVP=>CE2E*}M~;y# zfv$YoBHxwmh!o*e=e|Fr^h$T74beq=jefj%bZWG#5y<8x-pqc5?|+?RE!cVLa9;k- zZb_1*#0YGf{jmYFRPk7+cX25=xV}>JEsNd;N~$9Z`oj%AOKFo+&>{u_|4{{I5!tf1 zZ|ir;LOrh&|2uY;ci+ecGl79~g~Ua$Y)S`l7V=)X5%-1@B@mpUy45qT3kxcZQ4Cko z9wTl`miPxzq9IxCcvws1>?aePA4qJPP#LkYN;H+0{lN+<utbLS1C7Uihyd&EAun=t zsV~N`HZlIv&9BQH|6oLwFSoul_#nG|@+LCJY#{z@=ZR{r`TViT_{N}6SOks3<@5yB zZQol3(yAEnWg{A|n<~%oOApbeud_0AF}GZRL4zEDlKiw_*pRjZiK2y$(cW)^MLO-_ zxT!+}v6a-mgTZNUT8xSIXez-8h<Ivv$hRH{A6vXw4j?>7OnL1$g|b6h`5YwKjtSeG zlg^;718dV32WS}tARnrP$Md9y^%)y-C+X|M{Gw=B5OGE20=hMYT+|i;guhVl#L>C| zjGQJxK@SFzK9ij1_B4+Zdb}U4tf<xs{R<q<6dL>cZ~LK@FbZX4X~+A9fK~7Yr6ty! z{dwa>?e8VC*5gJt?;9#QZmyhYev}13QPkU0<B2OreDHUfmbk4APcmLw#Kmr01~Roy zynvPPDhGD510UFqdv}=pa2s6OZTG&!z@Km_;}f4|@=6T}_YE{@cx!QA-0VC<w3~i( z!R!GRUMcCR$gpIAB|D%4m!uHOw1^yX;Z>U<MP>BxF9sl>V4wtO3#>pS%6G4Gj#l`~ zjoPPVjR3l^UlJiAMAJTcWC4kZPT?BQ4nx-c8QzMy`Bg#g>@!`mRpXx|HJGt#kw!d3 z5dYO>fdQ+sAo#77x;I`i$+L=fqiJBTsyu~-SecQhZ~Y}(+}t5=A6&O<b+ZzwI0&0a zo;%8i`&sNBF~{!8e1xrxSwZ?JGKW%hkay7Ij>p2KV280hk$lq}*%Uu+$-k*y6>O?T z^H*-$c^s>8#Ei^M?WW+jmZI72ezLfYt4-#iz*X+txr|IW<Q04)63S?aY}r2QZ}hZx z<%icqk*y*9AwU2n&57X(-W-CP*HvjAmEH8PA839wQ&#JLzB3e40aA-bMK)aWfdBRq zwv?h&8~R+uVCX8|vgvAwEchWOlg;6`Lvc?kISUCC!Z4YROy$|UB|Y?F3dtlp=tt#- zFA4z`-Pk=$4I;h0sh=j|f(_!so*&qt>XGp}c`R2E?1N6(kAFIl9KadzaRX~}IHC}h zC+;v=BF!<Jdw1@(?bXEc`$?#ry*agmZ;RMBw?Bc%)C>j{1&sr1w!?p6q!bqM05J?n zGs|`6^pns`pS;iPj@RGOrK6wxA6$<z+4bUL$1(lCoDh{D@~I=jA+65BjW0s+&PuB* zod+5oYaje|aa`o(<PaeRPz4gu!H9@r*hY+AI=c8TNlA%d{yb?8Ox*&8Nr;%6GC5tv zHlH&b;rE&o`ozS?iZzS#Sc&vbtLNNy-)m@7-X~?=|F~Xt!g9HTy?d)<mzGV=vi1hY zkAoU=o}gY$S}%dM)lN1o4cliVte~ihu!)cS&TL#@5r&)o952z@lQsQdIQTU(n$6~D z_Db(eWUbVK$$LN!m0^c^)zul}e}6_PWkf|~js?qi0}&j3W(yY!Y0$8gQ(nC>;|}Ya z?L~aTuepZHv7^=6QchU%(P0Jx4a@1jSL%tpILk@No>%#4LST<8`<o9~rR3(F7xr4~ zlMOn2x$1Mo$9&Fm`LR#gnej|6>9g8A$7gw^2wrw0JvT37ou0s4Udgb$@Y@B_5-E|d zPXzhoh@?ZZtJTu#AsSvnAEe|xdjB|Vu_Jws%)7`(t!)a`6J?CUtxl{V<YfL`4+<Vf zq)JEKOm2z30`8MV8i_5#35z8yo><%E)K^4;O;q=j(6@yn`-(4ZE=Ly}NE$rUOd`T; zWJLea54e!f=Xzn<$#s0<{D853As7M(Dw<PcR}d^#+*cV@yP~G1a)Wg*lr2@0GBx!$ zo<aLWJ<dFNwrQaDS6bfTaKrPZOMeVXL--RZC{T+@HvH_Ky;xJPbD`@{DE~mKD$U8Q z^`EU6PzuV0Jzh%A3P1p2fdkNwK&;9u(D$$Fee3MkAlOzs5yj6s=N$caFlU59vEft< zT`6MY;sR~90ERmc73ra>%EJf<{}AZC!WgF&KAYMGzDVm~2H%Ch@30PFd#S=atuO)= zVp;XOemA82P|maF`GIIh!FM%c&-;rVaJ34FxZ8Fa*qoUApt^{-Edc>Tgsp<W=A7|k zm!mZ7ot!3!*&d#o&c-0^DdDFq&!w$XrAcl_#yx&Ct39sgu9tP#ZNtJV*K&W$+OoV6 za<2v^@!;<PVhi28!^*L&<w76sg~qxtR$s%@%GJWK+e+)tQ}R`>rd8gVkoJiNPnwt5 zJe{_Fml=ZPiL=6>+l_<9`xhn2sRfjyz0xI$jEWWt<j0@yp2J)HAL*@|df%#SBk_Cz z7H=<&try5WN_%{BvuCr-)-;;O-$tS?8{BAK#VtA-OD#;Y=ht*E-gRExRgb3l&IKDD zZ7$BXR|h<UC}wo9RS2<%G=Nl$ElaH2$y>!T6yG@vzp$l8?d}?EQm40Q-hQwiHc;5_ z>>#jm^E5s1(qXf!y>1}9wa%BiH?+l{9`1tMnIVcPnI{3cPA+d}Jhu^BAEqofsN2G( zvkQ`^Z6@L?xE?El)1%hNx0{}qH7d-~6V&coa#Qk2DYThQLFKGudYn%;mIGM#q4@Oy z<F0NVg6x%P4&>?^jvDY3e`)Oi=^r}jsZXgR>rvSkkHR9k3Ax3^DY?7E4vr3Tt-r_g zMdzHXTHz)BoV|QLvdMRCOp(5NvjG`*cV+V$<BH~&?RA%`C>09TAHSJRdzh}|8A9xe z1aOvWC<=rsa9gXsIx8k}L`BajG|0R!NThq{n0E}}WS22XQ=c`cIu3=Uk?R{CJ&qkt z@@6ep&9W+WED6oAMm7ta(ErBxjpLl?>L+qki5#6=pKE=Z-Bd^g7FLzMX5zZq0SpgU z5-fBLYTt*fTIUvukI+~8dE0fiohmlyEAH`0TRv>{cTCUo&ObRXvNX)`t~JA@bNiIN zMk=(uw^k!uEoe6gD6T0rIxJjoTrjk?%1A46f7&HAZ}r~mEZOb8rFp!gk{&8Z1-@2f zMB8m1x>6ya?>ROZy06T3eErn$>{?Xue!%xaEJ(k7Hs0hWbsdHz++CMXJ^7;9mp7(D zXEH3zK2zt5pIA}CvennM(751VZ~dBf9}P=`XjKO3D)mKd*ORxjW`)Scv5wW9*m{yP z{Dh4iKDxG79Om;M<))8opj4qRy~LlB(v=~-tIyim(r#M<tEE-Fnw7H+jOeS&+cXcK zJZnwveUI$=1DPR}*K_C9IiG6PwX4gsYJ}BuUw4M{I-hHtuFB6b?<;Hm^`fN}p)K<X zHqz25mm<?C-CHX2lM<x_<+!A*m$lEOxF;*U3fOk5#W@J-M)p@PTMeAJIxfW3D9?27 z?|OL^=vFtL1Ei%iaF(Osw&6vUKb8Iw5IiSfF$W_``w*7-Lezh?Bi$lzmXg9=1FSIX zIeO7u3ii40>nhAzdO91_@F?eOtVeA(w@!Np5xb0uDAU%A^jMlBp6mZERkr$lt3x*3 zwQOgzr9--|Cs*+wm$Mr!3luT<YpWr8U~C0Xnh#{{m~8>Q6+zuukRBB)<aE4=iXPcB z=Wo7nl$Ooq6Afp-CR10@Z7=vV1*z)$v#t6<-lIwvbQSBI2l&kAif@TCHt4M}MMh(E z|58nbzW=5L^QQ%??fQsYc0)o0{`NZc>e;O;NQ?R=9c}E`QgLm|-Z<k|8#k+cxs<-U z5>KE8@<j<!yfXdW{_0rVI?Tf6L=E_?{a1HK`05b(MCuSm3_gvCni7Az#}~DsthFfL zZCZinEy=erVhKKIBZ`1!??-w$Y*}t)>d}0qSvxd8z~6jV+QqQ=-1|n+0@t#KqU7Zt zCbs1+age_(=%M_mL1<d<hY?EW`jqI9miQf8dRzBRYvu@Hgi}VM#Y?+Oo}Tpo_85ZT zzcQ7f-WR?|rDVTLG+rD2VatA+i&6gdAD!jjrpwX)-uz!3NTPlpsedp0@B4${|D$hN zL-7AfYrg-#(wgT(Kzse?0si?g;3o&FO6Dp@Hv1v5ht8*@0AG5dbttmA=63J@T0Ldg zh@*U|NghwyqgSMw_pwV&D-=`tnhss+_vO5qzTo<F(J-eNba$5dKQXhPp<9qZQr~4s zn+1n<4DiVQCEtFz@lYJIRuQ*%uFaRO<dxl%vHl1d;vvYLe#12W>?!_NeEyOA`Vr&l zP%Ye)SLvt!38Vddiv_;^gJ-x<XaSYnEBS9G6!z$osiU)Jny}{CbgwLifuPj&*o-Xo zX0&F%oR+HqMijgGwm&3lJ$pI?eJo+-*e6QgUr*AT5B;WQHZqrs9o(*O{6LO>9E97t z-KANoD;)fJl*hO}pSHAHLt{Mg`QLl@e`Y}ZGU!5Q@`osuUd?y=(ht`yH1{|$pNt*T zb&O)e@##Vx&kSnUrldWfMOU=pHxWP3Bbw2z`{9Eu=%^t7`W=D=Gz2N%&6=^`04-$% z&wPz80``^fD=3OYQ=)-m>&zYYs059R$9n2+P$^#DpS{ACDKOQ4nbm+jdCmz`UiBFX z#W`*r93?Ar-v=CF`K|-k+S%Cd-}+^q<*9mO<t2o^j?R5J<0nwvdsL=t!E5eU_o^Hp zyErX3aU>)4>}jI543h)+nq!8^y2Ew1i@SVw#L->%q(g^P)O%1Cww20MxP{^|EHa(v zCX0{+h1C<7^l3a_aS(0p?%dWD9~&xxM410sTHq5ekgWUs(dWs9@7s~jsA@KD&%R_; zzUC(n@edZ8iSed2eLa*NT@H&lpXt<fkIOITI}W)r+4sM?Lf@RbZYFxG)EZmAs2br^ zZTP^PvCAC&!HQ2SpJhJHOx`@^um}2=v?>FuBLJdg<Im>R>xuQK_jogm0!ujbr%=#M z(7fi`1^IqtTU=IYtFkjzxXFgbipYLGoUWaIoXqHdndX6m_rUwN-xxTl!cI@WU-@2R zeZ%mc$QM7lZjzkLlMXMU|FXVzEzaCadIZ0{AOE`_%9%(V_6z9I;Suxa{cFonSTy0v zz-+3kqo<7QhvV~)@n+Dl?uk&GWoI~O#84ciq$EX@Sut@(gQgaHPgEOiB&))&HG`46 zVqO<u{%Jppc6Lc7g%B}9aUj5mehz2?trXaJ_o3D96dMXIKpaPIXA9|a#o7iJKd2?b zMLrBIF0)l+o&}%^85ZO}AIQSAny>Ge=6r;bP)Ys23H3$}oVKqWYU8Crj-I?vGyyzs z(<ENN>PD$74-`X+$euFG`Is+d4-S*93Mf{=GuxhNg?7fK%zzhY^K>I7_d$w$&h5NU zz8?D_o{<`N?8Gp{=@Lt&D$TLa_pLFn>l2<uE7Q!{)Bj-s=t;1d<y+xgJ@6@HxT5mN zab>G2U5J16!2&MMs;c*kqRMHR?OHPXOTRwv4w$aQp%WsiEOR61z0LHQW$Opo9cU&o zUTq9`F?q7l_)Jis*6s=vtPP*=r_D`qrtj>%EWydM?Lm#S4xSHv_SCnT$|tVJ)?Ild zwaH!yh<~&GLnF*$vpvtMQu&gyWa}F|<-7i?iz#%%q%Si~{1qI^ZoWSZ7R#4o!<$JL zDA4<_eF8Lr*7;_h0>ETThf9b1`Zc`eZru^<rB|#_i!DgrFa%K?)_EfxbF}gYYt5?N zItzeiVEY^W_MPqG&1te_7%J^fX44_#?#s-thH%^G-c&8d1N6@ErqT<Rwsg`ak@DPx zS?dBGmUm4P?-%eUUY^9*7V~8q%ar$h*enet84nYj^DGuEH2&+}NO$KU7Xpr0A5qvm zoa&RarBtuM1~1LR(4dO6w)}mgdbLpOK9TJ)buH#k!QY(^FeX~;*w7{s%04yKy_e=M zHD<YKHC{VXHqy8#gj95Ry@^&@+EP2g4PNX=(vx4ihUkvqVuA$!XC0wizaW0?POSi} z*_fD^)f&x+RLft&NTM@`$rKs#Br&#R`g9**3cl|_>5J;haFsG#(WwctYL4jE{qCJM zYi(hnPM+FJ8mlxF_!F`3;*QI8Njk}CL)eLm0Vw_2>HWy5^QwoWiQY9H$=x=65PN&F zGl%6m<D8GMHjI(&Gnz)sk0eV$F3lHk-pIG>hfJIbK741c1itzImG+fUaWv7kkRS;J z3+@_RgL{IzySuwPB*8tw87#QFySu|+Gk9=!hc|q7-_N_&oj>%dZfa^ySJ&BRpWSuj zhD=;XDHebBpZTZv#y;x~?Zr<Synu}H^aZ@}SyAu@KanfbAiW(6^x-I2w2@wPMdE~1 zUOZ%_FFKF?wHz~2(UwNK{0oYDu`-cq1u*0do6dcm?8g;r*!kZYZU5_s1bV0-9V-zz zJ42WSeg8v6NB4P9rqlJJx$~%IoJHKm;*Mc_KF!7#P>=W|&6X~0w;V?~Q!b^&uXS3} zxzT}?HpzkGF@xTwnPkUhi&g|Hc#Io-XPl!pfAjl@2+g~@5TEBG8W;Q&vCNK)iFK;- ztUoQ>kFEJ1#pfL(+g!AkX*=sK@Wr6y=g)MU^(l97HC^!2qSTL)OHO0SQL@`^$nrZH zlfO{+R@*0{;c<IalsEP3clBSvHXb67=b(tE@uhubq<-s#A`pr;K+t`MS!7Z>6B?lM z@=wk0K-3OsO*iGoB2nWxDD{SUVMRxphSf7-%1js93juADvRLcXj=eM6pH6Q`<Ep<S z`CRXD;?z@oM&XXaosY^FCQG|8Kthq5e%<sEBY5k6^0DOhEW~vd3R%lN8o_#NWjusv zc(4beE_{dm*73)eD2O*e#^(vJ8^<B_k9AOmg+TT@8UbRKw8HK?zKdRhb{$or&RQ&* zDdp<D*}f2AcAY|ze?0{11G9fDB`TRC>w=Al5cKzTRLtj2`;QX9ZA)l#S_Preb@G`4 z#pI57%pgYsMkI#Dbfygd_x>azql<9b9=uR2=J>yI`k=T};;W|-vMIT=G}+Z#x*ez? zdo4pG{h6FL`PJFgUCy*p95qPu0!?!k;Lem^W1-}57w4_+EM%1S%Z{WM`h>lezkT;0 zFCN0bY-xD8)}eFC%H+k~3;yd`jaDHT>9L4rS&WT<3@d!HJw3*{ygjWW&5P`)`g191 z=YxYpv0?IptLXZ7CYn_>F=`yhZn5N&Jcarr&<;zOz}1f4JjBx5sT@ezQJY4B`sN@W zJ|a#ndJ#=cSaueN1#QQ}UaQtEMDx#2_qe0FnvsGyecLXa9vNoto6^!k^VZk*Ug@+l zFr31SO$nf4%oqVq!1v_1YIa1=tpQIDpQ9nKd)4TsbB=QEHh3waFaHjFgOe0G>sDE* z8F=+JAtARx((raY#CfO|G<dW@9?Y)drVpnm1}4e3%vI>p&MY<X9u*6y|8s>ekxzJ@ zE&$c77*{I?&-&Q;2kQp=JZZ}93uDF{xGO&_-@5ndj?d@9Wkny2tVtJzl8`@qrS0KY zM*F4)u!C`J3)`%k|9J7idal%Aidfzde1-D)yyDL1VTx{4t2P=^i`7K-XXX)p;`tv{ z?DezO&Mow6Q%r;Z88*r5uo2*_n2i+Ska7FtNAj7i4pG17OOn_zG%2<?^tWeQhJS$7 z7vxF5!7A;-ido<NoHo_t9S37lfAlq9yo%f8OVT>{@o?+U0_kk8>^@Al2BJHREP4&5 zVjdy&;`#fC2sS09)(?X2c<#D_c;ZHaIA3j20mYsro;yWQYb)mS$FuAoIup~!c4;^r zFEOZTb%p^iezE2Pn$c7Wo#w=&hSRqfLzQ$Xi2uQzg#i;Z)UyIb?JH~q(ZR8!&M5bl z5o0F7p~5QR(lvP+HeFE3=>*(DLN~H2vE7%Fr9obI{jSRpK~sp`>rzHpb|AX4A8GN> z<zSm=TxXIhi)34Av-8u4kuzghAHOVw5?YqEiJhJatSTBS{<&oF#rG<}LoRGxVR@BV zpiN+^Lz>1YNluiiBMzG^Bz#tBnk+InrqZwKa@cg~dk=H%hf~?}uKFBwvWW8?g9Je( zg|a>RM>1reaDqe~$w3zdO+{f>vOCti5`=&6#6!FaRQQwL;3ZT73@zPRe!f#b?tt@p zow8+I!dEUk2)yyuJu|nEE1qN8$!So+6If#+^Ixv;sX3*avti6BUZTKY$MxC10{fhO zvC)Vy-KANK<hwGd7Hmu(L!&wwO_pli7h~jcM5VEmgBng8-MV`bm<WlOXMHA~aJ=w* z3vodP+1xyF$1H`8&6Bi#M%x!P679Pr^{p=~c{ILU2a)S8yHhDLLN@&a-V^*2Spu9+ zvt73D;Doq_rIN4ipTIZwpN&!@G}v0_kIJF9B38DJX&Myb+&>g#I&(mZ^?d3pd)I5V za0%QgEpZecl(%}2Gto?<afbRI6F>qYqYmt1Mk*{;F2imXnf6O5r~4g4sP)Eg`9;f_ z&gEgA`)O{XxAU4Z9oy+}t1*2>y+&|i^ax+X25iKhp2X~0HzdHrczz{&c#!vWt`}-j zt|yf2T6R3^<F_uxmy=G<ejtO3QVKO-pNC1R_N6vx7US)h3O*y?x<y%lNo2H^ty)OM zkw)}V#^X~szUOH>UJ4{Ypn|c-ykXki{O?kabGpc=nkLt2A0lfIF0ZQ1VywJq@7D*p z^s`>tLS**Vc8#_QLPqO^wfx}yrNePJdq%(oXLVC!>eZcn_5K0MlrqosZ`qHMQ)Q(z z=jbKZ%A5G3LFNR}>R(m1|0n#r{wu&Znd}i~es0{vao<2&NFe*JYFa;_>K_(Re7#K* zjWcUQXM0{m6ob#7NB$Q1P+~kl@o@`Ms&bJD_br`DNmMhNF8Oyrm9ib#PQZr@-*r|j z`um?(rU?pa@4q;;@Ocq>vAy1z&HkH#5|UpF90-?!&a~KN<!f~)SXJ%xX$$%A{3zTo z71C&wQ91Ul_{;8suZ!W8cEh>!Mr#~si)A~0Bze{lv*GE$(TcX`w&Xi+n<B>iY*tb{ zIzsT|Hw_I#`BLnU*YJfjOnKE{6pfv^8~daS8-U8|Xc8H;hwjTt?(!Cv0IX%`z5@hf zw?pbqqigip)d-dUAxD5hzUA{?0l0V-CfHD-VnJR{IS->R&yV(qV=2$0u-G^KMl?v1 ztaSS6j{d&BaIxS{Nk>GMc#lx&)dRv?Be!mUXGA}RDsGK`e0;-UgQB>O5}Ua3iKdC) zw#Ai{O4!<om?sPOs~V%GY?C0&7bPd}=BtD7`5N-uTKuo|<vJt%k8h;N<ffHcb6xoY zUW3`<bIm7b?yYB3OG1<^?+W^O%WOK)p$dGBmMWZp%VYSNl9J`(>{)g;e}MykdJ}7f z5>OI33m{XQW;7hiniES=qq^+a$GW1xIarL@@#y38KX9TqdKHBgdj4f+HOb09laZD- zzpybBoJJ5|zUj0u#YPAy|Dm+o{QS};J8RErWYaOxPXQ(JrW2BIRf2}jf|S>EX*^+! zHtaz-Ohqrb;kHV}32qu07A8k4ZnD(K#+UX91ORH7(GWNUGT&VlBcb~)mt!#EAs<CS zLE^hIjQU>VF0*p>;5ur_r@2!8)q4<7FJ_vZAnc{lD#o%$Yl}<i!Hi;A?H@pa_c%@i zZ6N#+>X;k%4gIw>3yINp;nf>NJ-X7)(rJt3hrnreHs5)Bwbb%&mLDyQI#TmfQBV_v z*sIc~>j+;Ise{5W$$|k~g0OSpgI5!IVb->l@(2E*a06xj(RK6a9HVA2|1k}rtI@AZ zgZT>sI%OVSpjVxLg5{&9{Y?u~gR({!$j-i_Am(W7>OZVwRAD&{BXr1HoHFq*9t}i& zq5D76G5^!q0}F&k`FEE7-<crU)Gv_m82XjRgJRQtt|$8^fY`YCi;G&2rZi9vH_?Sw zc-xz&`EPLXC@1mCZF%>wIa2opM_t^W?lp;ghG#x5Mc+G87J>T2K=E%k{xbbV@2fav z(8=u#dXZ!-qXf;d6%eQ}OMM<4pPw?RJkFvjw3h9y9wIYtbwEki`GWfa{8jQ7oVy26 zH%;>Q{%sEy4L8fTt*P7-`SqZ5=eYyl!8XRfyT8r(iSUIqRoPyyVcViPn3Ls@HTE5$ z$#a9?wso<K?M=y*3_9eY4LZ=cKDvQGC|u8d&C6?=Y&ONGB(8R;O8^dP^lL~C*28ww z?fJPY-Qp^cA6A6n1r&QencDHRpW<=qPa8`}B9IIw%x*!W<!}Wr8H@vVLEjp`(wBCY zo$lk+x9z@M-ROddAYs}zo8z(7YS{JVJ|0@>L8&dsAX`=i@yK)z5dqL_hwcD%SChH+ zoP@1xdNRBR;W`HSijMzb-X5zUCKX|=Eskov+Px@cir{!4(D&lyaX*oCoA7fvNeFsN zfpbgv8QtD3LBC^svqtUk(xWqd<c>2#TphdDZS#sXp&MG|xi-+V#46Ooo7K#rp!Wx5 zp_jK*pq!pA+V#%G)nfwv%euH!cmz#paD43tubbnMPQ#vEARVH`Q<Da1^2WoB{!S5m zh9M!m!)}vjZG-S68%^p3MvT9XP%%Gv!|%<pj$Fq+IJhTC7QLn1@cu%x-sA0vzfRY7 zcA1J;I@IOya?;`P6D}KBl8Wh=|H9HW>xS5Jdk19CWuWyO@Q4>kl&^gAV{iV3#EUSo z?V>HgLSI}IQ{VpyGos@uSQhAJLqmw`vfK56cs^6+Vf@DU$R{cxNZNDjOw*>ge#ZE5 zmD|`RDP511)eaTNuJl0gy=t9iyG(CTt&IGMSTK`K8xcC^pNHdd{MDkyVOjlK#YR*3 z6KBUf=t(_d)E`T{r8fNwOi;EbH|2JUOQ<GS3*6{n&^q`{Q!S(vpD)OWyl+*1{fc`p zYSc);0g1~kl8m|6H=GA8D}Lj_yO*8LVCyRou<Ww=usz*tuj_6)461~i(B3+21Na`6 z;OU?Cz3T_Ynx7$RWePE=YXiBKXAZ~?7%1RkOwue%RgB_6gl&kP?#_`ZT|B+_y|^hl z^r2Lh=dpI{dGC4ifn906AfTK;EYp<{lCE`7!=HqOgyMVN=BFFrOd7<))>cV~7ma>7 z$ZbAlCg60_e6P`RG91L(^fJYHYp_yHdHwWp=;$2BXV?_%27F&TF<I(sjSw$%v2!uX zFw^w1#XXC|!Q&!Pklh%VWI3`Ro$ov^NcGFGVm>%*e(rMTqT5vYc0&BX5kgiBFdan_ zhO&8$vFY}N;@6&Vg*rdGaYf{}Nq4DNoUhCmI1CM{(4u38{L8m^Q$e_628pr#FJ7MP zQVl=t?7em^s4=M2uF*3E9p8TYg5<u!9!8*^eO@>ft1LT@_d(d!veDGI4EN*GY<(RF z=wEu)p6XTle3Odr)zq@n)H1L3;FD*a%#h}9y|~QS{KuvD$O#(tLr^GiA(X=Vy3n6` zrkCg`Y!Pt|bvka(UqZh+4YiDzY)<W2RPA&ScyoHIt*?j`8W*1^C$7(v&dR@F1T1AL zCm~SXh0rpyV=q~@13TRICi{$Uhn8r2+4brFv;_ruwA$i0Uxqdd>_SEUp`T_2#m4`! zaUxDFM?)H@e5iIi<V2h7<M10qN|M{`0Yd)*GxBWL7OV!eyNt^iSv#T~B>KpH%?fQG z>iDsxEn^0DCVKMKiXioPIz0)eX{gMaq!>ENp84jx3#r=RiHjx_RC4z?fE1sARlPP; z!rjprFHXdrS<Yx(Sov1tdfFHKa!#=Hfj<*e@xZ&tEl^zCv3^z5aNeEMFilDo!aISl zz{$3tf`D>*_k;87yw%8t5P2s!<aoW1Pc$oNavJ55+l`<t<39clc55`{3c4UFIZ#+R zSz>|dpLO&J68wf@#jA&q>O=`T(@(Ur{(ul!fd{aP?0u`O4}CYDo9Qu&wRLF~nJ*|4 zS9@a+vZ+%h5V@$iJ6JVHMbo~W6(99GoG=4Y4<rxx3;iJm*dkf7&)*)0RgYviR<b?I z{_A6m>f5@v0NI7TswIT-C0|t_uZk`8&Mdo5*ye0|N^j-1b&lhgBrd_0@^woifWfA< z^kYjG%ST%^@5tp;dpS+#^E!YFr+%7S61%*P32fXz+F1ASF40xg5^BkA9EygfM$pgc zkdDZG+2HTPjbZtmkwI+Y=5K;J6wn+eJv-lxx3AI5-5xkh+faHLN$fxE=njJf0l6WG z7uNu1Zrk3l#ssqVk+}EOk53JYMqHr<gu_(>m!LhGs^qRj2V|yE&*=3g%dv69LKo3k zk=^}?ovISMEy&&H)8h<DbAVQUVGmjn2>MnRu41wo0`{9a@;Q}e7o2Dg8E7W#j64wA z%t|4x4ht7GH-TjWdkZ2W$og0kH50qb>U!w4oRnaVo7`WqCU>w5PShN)fAf3W^m6`< zx|2w=3*O#OD9WB$*}fxe6WK}062{R|JkGm^2kY@_b=3R8c1{NGOSE)J3;f);-*?;! zdQ(8kcpzPY<M^P;_b_Lx@O&CbYF29AkigM_s+~@wZ$dh;(qeg!08o&N@K0!a76OUK zQOhvcm8zf(-C*Q1+~Ch{{683JB$1e}K63bJf0D-b9q5;QySqKTpw<|_m|31ppD5yX z^GqP{8Qa{GMmp(v@Ei$~;4#T~4+zv#XG#1`hv4^|B3hzW(`4}%jZ@unQ?UB=$RcUO z615-rIe|=79Rrhb>*DT!hM|OH+eX;S>od1;v_Y)AF%W#CS-BFvg8V#Eb-8QR5G<BT zc_8=_pbCqL0jk0M{OkaCSKI6htJKVD=i^U+z>NM|M-`LK@AjwuT<HMuJ0Kxli@D%E z#dd`?^NrTVqn~DLGSHfngR3K+qv?_$Roc9zJClo8m*$ssvF78EJBH0t>kLct&2aZy zZ?;)2X%*WeMC3I<MUt`(TGq&9`ybbd+ND}Ql3a{ow)e$sa*&Dy^=(!=mnGw-vGR(h zTIL_4@NapLH_mAWYSzNd7t31;>6c_AahjVgs)k1+@fS9&?;K49pln;NNDIcszr~}0 z&|Iv-+$`#=Cm|q8)L{|6^~M+1wl!R0M^WZ!KE9dsxDGSrx_q<g@|!F@;1nv5+~<DZ zI?Z=ZBDjA39fx9@2Cx2lHK#yviN+<72f^#IYR6c})@7#gaE-(pRZ^f@xgHKr{lyr9 z+XpAiiA3x($rMyNhaX9Fy{_`K>wid*ODwp2WG1!Ul@Pn~3gzT{8Eqb;<iEf`(<QGy z6FzP`qM1t++jX91*YRBc!bUPTt>Y&JP5E_tm$wr8NMLpFo&o=EuONybA&J30@^1$a zDhTtM<U>p~3sP$;Nc(y+Aedw1%Z)#eU0nvwGWU)e&P;SzMQXUPHcfsu2aB$@Ivsah z%e@AOuIz-3v==0BZex_$7|nv2=0v_3oGW+9QPvSO<waF?N(F#d9(utXYLiOel0oeY z8Ah@06EJgvH)eH$)!w&f!kS|pMawXToF+ZGP2AylZ05A>ftgd_g1@;1y}<+}TYa7} z+3|<T@<evQ%g|K~$M1scjo)_m2Bp5y+C)Bp%y}Cj-d!??f+>bvu}Cc=xyE*}I)Q$I zsmvNtT#1L!>0xS<sla(=41LH^Ga*oFet#T-5zT7+N;-}oZR9u!ozE@&JE6u~kKyES z(nQ%5k!~iDW<2b>@cbBxEgT}R(|M+idnI))V<K>u^lE64588-Y(mI&X29FX%`ZUJ+ zQBv9rkf4`7yMbZolC6r#=oR~Rcu&df?vmJ<^iA7H3sTKg+f;ddT>-iIo)XjOfCdL5 zH{BeEF(E8$%?CWT4F|q@v7T6f$0p}KKbF19H%m$)z|*$3P0V6w-v>E?ofDTE&5{G! zy!~<(I1^VvfO2r#P+KNewp6>}ICh8A=^lToEoVBy97C$KA2?#7oXcu@@6tsRvl?0V zN3X)&yGhSM#k9|dvd>q?l&v7YKQ(vwxO}95&U&f(buwVm_kpr6&e{pzG=PZ^ZaDs{ zt165`_QQqe-P}V;OEr%AiE`6^@Wt+ScKJ&(n_#WZOzC{Z3|iYM-y_Y^wQA{|>DvUe z`VVih{+>#Yq!9SlyCMPe>9@jXc#}oVMk1S^PLJOR9lzv@EAH-#Y3IaZ+j#)61s}sM zFIAL4ra$-VwpkG|7`K8(@=s^U=nkC<3Rttu8KJsTNmNY%npdu*9gnqXNb}1BwY{jD zh50|_VC|PZ`5XAIkkBgN-Nm$d8jfVd#AvmElxk0(Lmn7)#ZMTCAdn+>_|%X~>0q46 zhAYf-W^b}SRY41jZq+BYVAVfD6(s9}YipSVLaP)iIqyxgjc5?5^i<mAw|Iw(TSQSp zJBNi)Q)V%s6N)mHERrg_4!7d}=$F6DAE8hkb7|*`>uvCv)F1awyIxtZI^|PllJn)( zOD`N((b^P#{#h?o3HrdUWDJ<YhJn!#bbW-eRbe*t==pebPUAWc$%k1Pcj_W1vCEQa zICmY<SbJ0(^?lFOXvz<qWfaEYZ{=hp$+G0qT0ka|>G=%~HZ)Qvg}i3Z0W#(gV&VM} zOdu1yjIiT|X%(DgmqlTLI?EF`^NFzGyGKr>a?K*N#>ExFl1&Yq4`7IJZ<gkL!+enX zJYHbZ^&moGSy?w0%DOv>fkGzo!Xk@H>-zZe2jXdfw;%(Br0UrPlXmFTTVSszT^1y_ z5kq%TwWur7=6SiFGGnuqn=zYMdfX<-Ij4Y$P<8om6-a4<J}&bq4pnr^&+0oRmr!y( z`@nCs)xeI{G?FJtDYrG4cE3FVqIBhe4B(FredkZ&TSd+7$`6@_m3fBOUk1R2e`-C$ zue2jxGgzq$7Oig9eJ1}<oVWb1@P<F(9imZc@VshY^DpY(1~_Bu<b9w@%0W3Kx(=@h zSfIn{PbyZIUS?z>2h`<z7omdhckWL=3b0fSYAkcNiN+VP)B0|6LVjkzVV0<!uPEP~ zF2P3>7A|#`h8$;EudwQ{eNK3HI&zo-z5xpf4cSUu<vEYDzib3{AXD`qr=n53)L<w3 zEx)DLFLP))ynT`tHvysr@m3~s>fc3MI3X9Lv4pSpg#22rAtnN_&x0-x%po|j7w~iJ z410AD5`$V2!c#Np3?p*NYyz3)&#y}4&xQvLbv~2gV`_F~Ghr#`H|-|-zPlOs`StsV zoh$&Nh!{!IUr%6Y<MJzX<-d0)t~wmJ5|QDBk8FFzmmPL`jl<n}t>?G&QciM4CK>GN z=?n^;yiES1!4_DX<2*kz1b|K!`54h{MNn*I^L#-F9OWAQ_pxFHc0IUr1CmGv_M{~< zF17_$EaY};K=$xe?*Q{{4Al3c7Vf(=k5|3VEd&`>V<m+Pm42*M78qNyR0VDD@Tkl( zDmk9-K>G(CHcJ>p(vQ4Y5kJ$WGKk3KHcBrhj66C_Ho}UPBu2lzUx;Is9C6VQUW-cK z;e?swxyg+>A`dr4<|us(E9CA+Aj9XEhd0`yqbd7fEd2YEdoIMUX|T?l&n&y_&wj)3 zCh*Tqt?s^3Ni~+RUJY7Vv}=Fzgthix?w{<^jHg(degXPyZvkpgfYEPxXu@~+yZ>V9 zzc^mTTSDv#unm&dJd=e6MAXMk3xq(B!v`J;_zH1rE+76WbBRk_eIwF@;cz@Dh!*7G zKMl>}Gen%yYv%xsrYl^61nVM-b=o&0UsFAqnqFc5!uQ!%>&KTKOLZ01kUfrPtz*wW zKKIR~eH>66Wf?=P&Ik@g?^O4Un@&39os=@N3F!ES4naxM#D1aID-n%XbtgrO)$!al z0&BOw<91Cd4DKH6<A`rIp!@Z2aFQ}se$dWP1b4Hg|A_*O`mQ_4wQXq98jY=<a{z*g zkQ6rXIuqPiC)m-es|?3#cA&8QnE?sbQkC8<%o|`!u;Z4+Wvt|&9jqNBXV7>Z?O%0# z8Ij!Lgp@g^+n-yirjH2)g}*N;@>S(*(IZ^gbwEM#=&Tt-uk?2gL@#Sx0PfW&-7nz^ zcW}iuRXY}uss>OH{;FIWnRi5;2MZM1t)sRm*?7G;+BNTedhDV;5ZVL#KkZ_L7^enU z9(qDq;7}s#8e){L*T{Et&3?v#IJ6~@rQ@f?W{$#+ir#Jv5CkFb*J5jE<B`ULGixeZ zQlACtMxHEF>l&)dKmj5OJ8mbJlohH8YmoBYp`Xyh4|h`-L!yeO$*|g7;3LdC`aInQ zM<98qvf|n7H?$?ChPx{!D0c2rGxKrpwE1=2FUbQ^aT<@tCiFFQ>>!VQFM)vdJ9}26 zFHQiJ&-~$Iq?1CJv%Mt1sU%~00f>&yFUs5A7bahSxRM~f4upMi-=R<1A+;HaE}z>{ z|9yy4a712|-38AZX<mmVwR=&X`KcNH_A!Z2c)``3s$cJOI>0VNLOsb9d~a?_8??PE z(>zejUPetvg<4%MSC=iN{131AoCKL&*$Hp*KnrOJBJ>zAS(LeoX9rHNdH9tl8x~+N z+1hUZ+Rq+{bN#BS0LftHJiIG!Ugx`S&Z=FJYA#v54gZz(RkXLuaYxq7BqN)G1w+}8 z0Tpd#=60mdoW;8fZ@Zj+d*_q%Lgkaa%iuyUWW9D=#3W$;*^$1`qm@Of$e!;Kg_pH? zhVA@#QRCqj*3oBO8ciLn?}4jKX)=!#5^0GyzKhWQXvP5HH3*m7Og1EQ9H9M@>bf0| zXj{e^m$^)J<X7~o(xd3q6_ogY3J|hNPF$`lXup3v7l@<6U^(l};j-#J`{P=dW2kzA z8y3#aPZi=q)p&S%@bI#JKV0{LkTv*B93{s#Sgdg6LQ*CBQyzukLa70r)%3=26GAEX z_J;Qgq+~;CW>R%FbM(2XGnfTl^I;_lXke|5R$f;6Sl-)vS-V*Zcy1a=umofWl?q^9 zQLuX$$3Ue=bA<tX1~zSH!s=IW6bn$i8`IcJ{Qksou9E1FbnDf9Gk@`9@V$Q|7T?lD z^gWE)=Q3H)e(^Epydj3Z&*V<vO)T3uZpd8UuEC0p%PU;b>AbII79MYlC@OH-i7G-* zh5#V%>nia1$;jZ-o~m5B5BzHJ5AK^Of2Z*-NgKM`AQYmubZp}GH}-1t%?ZKyi1>0o z?It>QRARY0D;WO}zWz86BDo5Ybmps+!FyIlo~RI&9t{eDDAc0jetq<w%1<oU-|3px z0&U)eITY9tv+$<3Am#h3i&~O_SvTQ0O83h&*usB)4uIwdt--xHEEFgv<VXd(;=uo@ zHD14W8m_l7k#@xRoK^cd5^ZK^Z#jv+Ai<g)nW;PX=Q1g#g#c7-pRfv^E{?MY5pwD8 zj98p$ErRY2PX>+_L{_EY8s&)%BvsLb6tDsDP;q!b$9D)WE0#ihA1EW`yC}o8>5=%< zn9-+A`(9;yE1~<u<Dg005`viJ1b1v8s9QdGxj5Cug>WJPdwe_f#b-2eSgQT*R@Lv; z32WkMVBp(Zai?xkZ0A3}H5*;63(Z0{8O^M|0WiD9)BM&8dmr7$)J;+jHM-myfZDxA zkabbJ$3G+{-+z7?AI^$`_JI~L$>~M3fz@3XYHZ!?GM=~b84Nx5TT3gYzH9vZm_TkN z?IKSkU{rLo^!L)$>aB5FH#Ze=7lh&2ijXbB`6PJWEv?VIt#1q^A$#3f&-|@874AZ- zzP}uc*)iWEECGj$Y-<)qmQDQvF;T^~!bCgjJswUuoAuAQ#&1$X+lK|K1p^D}9^S`J z9JXb-vJGfDUK=pc_^UCpFKxd<Ry0KUJ^`G|Ga+TejazR=TOfiLhwe*Du;&WYXsqPK zv*(9h_yqKV(<%SVwQknTTz4ajirK4wGC0@puM?vLK*7RR@3X096`5|28$uP8cDzX7 zGrXnaIrOtJp-w?)bEz!egp&v#Nh;k)EOvM;+J06)El0pKHBgpHKpc@px$;BhwgzZs zg9GBK`TJlsdZdwhz%)={iS}l9{XhtB$fwnl0{WnB1kwmCtPalW4`AG+bdD$^uV`lt zIl<PZ!%R}2RZ!LHWxo*2eN|ANgjAFx>cZ*yaJrjbZuZ;=m_cHy($!}6v&R(r+gpZy zy*rWy8A91$LL-{RwCfmcuD2z$^vDdz17Hxs7kmYs#%QMYXV|f0v(YJX32A!B{bKo0 z%kg*tQD#liF>Q?z(}u2_^rpO+^t<LbmZXPd)=Sg`KjM`W@-xoeddbFdp_XX}Qk?P0 zk{fqYkKcjT=~J&6(JDg1T}P;+qJIlR-e|d47A>hqqh5yd)O78Mwg!%4<LEVivl2Fp z2$8T|4O8)+ktKkCQ}6aC58p?5qgzc?LXqb3n%zHaDqQGMkx;x^%xeJL>@AZ*i8eO2 zHZyL%V2RYQSnojDz{dx8Y)oP?*BgN?xXc>X>Dt(W#i422FXpg5q-0V42`b`zi?ZKe zisH8pAbz@(AFXPdIUuHv;}rcHx%Lt>fgsYEY}2abugrPq1F{67Zra3Nt*MQ6W!d|X z#p?3X#0iB+vI8Q-oBU%0Cp*OkJ1i?^2FKwIZI%^TeC}kVL29rJwha5-czvrihY1H| zUEYvu0-u`0%Ds3LilL&=cu#dsC*$>iG3AA62Z?FbT$a;0gDo})WCPq7m3#z@rVtKo zd0DQa{il}O2nC16j>$JhDGH**Fz7D#eR>_ieD@Ns$;#q{63v!V-&a*wy$SZgw!oM& zQ`GwN2)t20Qa2Z_&(hro0oRWQ9lGNvt4uo&u+Fz8>j*m0T+T!-Vc$Z0M<KGWqDcI} zDxtC^!x@If5`-_M2Au7e%4!(>Q@qh8Yn>TtKr_||<5_cxVnKF)fgAAUM6+rpe7YOI z`;&7vrcGZ|FsU};Z=)mT-OKuv&Q!Rsx=#mnMZMkBb++-hOJ+EME=b;5;!1~(90R2+ zEkMUmo^zb!q|wp@Os?+-8cpSqn{eiz)P|NF<;=iPx|<=GcYz<$lZ$ZJNE*sd=F-jE zp5uR|eVqq0_Nv*C=_n4$3)=o!Xtn9SQX?(bwGl1&{ykG20>MugG5Jvr1K<l~YNOs{ z=WD80;mxp3XVW#l)Wd7GeiAC^GIsz1(M#6{VM%S)l@5n|Ei(<5OH%VIap5q%@NiRb zJ?ge(>+9ZZ0JRsfs^%H4H)T~A>YKIx0|Vj^FkpnOLo1X(7gGh{pBMN<6D+f-gmA?- zC=m=9pcL`H)R~37?_p+f5q)W2JYBkJjFR=a?joR!63o1Ii~0gC1j!!_=Z~C^yoc?n zJ(-QZ#*Gb5{|3LcerttRC41p<Smep)@MO_?6-*2YsL1q7mG@)pGjpzPkxmqoog_#f zI>?ARh^RP)|IJgxS|EcX_lft7y!J*;{Tr6xx&R4+N-8Y5Fk0+A--plj_WEL(Ui2Y^ z*QhUzN8El$+?w}WZ={%rB=U7j=zc|7*j0yo`27$|O5oo=Mc}n_^{VEmSA)^KT--_H zb|Ry=J_%@ss?TFKv!{iU&Fg$uy*9%{9gX86_($RX#zkuY4D|8M4@-RaqSwCflaX5U z9w3`@(OA-SQ7#EdU@<!~T-CXx)_pZp@`B@NA!Jn$OA(wU33S8xiog+KG2a)WuFhLb zfezv=%JO-N!LZiTsizKRN}{LA0)N1BLM^|!s47AwZhNA^PMgjtx1Xy%z`OqbX;iNg zPMa@ql|SIyTW_NQJh5^YBzrRE4@R)T<MB54$cLi$yw<1U#dn84xOE)5?{fE%ZjOMM zs`%LF*Xj_JAL`Y%<L+<xWAKX9Z_7FUgmPLB>-!_0S`WnN@err0OX<B6WtG%57^CqI zbkwr+Yl^%Rre!$e+pCBlOMKtDj2(pzlxY#({!?<h_vII*EQ!cLU!_nm*Iewx7jPx* z<i{Q!_W}fo8TO4Y$28^+HjEGf;GEwzJqjOBNH%ruKAvWCu=;%A;w`EB(*q{LoABfk zq#QXuNX*w~)=J<uw@0wl^_9ZtbZkbs>2}*)qmd?ati#S=48_`W=a{Z>d#<6V>&J3E zz*TCvI2z%XSmspD9v~kbA|l&PpLg1Mlqz08dxW-uXsY7em%Dp1F%{mz$exO*ou2!m zoE<lO5>aqv|G_vmR@sBR4J99|!4`=HM*adJ&iPK)v`6*rRR=twSWSLGq<n_L@N16y zNODs}-SLmj-?mDmLMgXZZD<0PHxW8T*tJb&c1CsE)1ho}+5Q+bH<N(FpKyaEKVtg$ zKxWg^6eU{-pqzZdxSxM#YRFPa)7YpNDLYEQtw}%2{N$LzlG3X+841=@q_UfzkoxWl zww&jVIv@OqJffa}T3V$h??xB2{NZeClr!aQSV@Nw-f(PSfgJAF?^5QvdV4j%5KNNb z0K<*1;yfqoN8)@4aru0O(!Q)BE2}c){h0FMV6(RqVUIv8_SJg6UD2YfRsmfD=|i!4 zxC`%;Pk|-ir$Z;&vEYYj2vv5tEv~6&b_IGyXEYPZsK%18%=T?-?su=?8}glCFahub z-Y2d0zW-6PFVuJ0`<>0qQ-IE|EZeQKP57H)WpLjJVrU~umi0h<aF^ajU4<@gQ-9^p zl_>-%Bv0*s6V1>Pu#lPnWN7a!?pI8ADN)@nw@UHzKii+T*&uhd-01f(=|>svh8ot+ zj8M}tu0_ZTnnHwp64ayLHpe&9B;S^XH#dH3IPkDbuL_f{@CbnLUs!ye?5nNuLLe7x zRZ~-&MJ>5wG;C+1eJKIWMx%xa#hJ1`Ze#*?Jcwx!%kNG;K8gySbq1kpzRXJ!EO4ho zAUFPe#nwnujb{C$dbV!;<Xst6N^F6~WxqI|%Y$(stNGb+<<CgG=@^K^Yn^gx_pqmo zkV<bnoV;37{Ig)Vy~%Vw8mE8uSkuFG9GJsZ>CCgYH?+pI@uaz0-A4>3u6<A7gG%#d zD%-uuZkWM`c)xR2JYy%aO1G4>eC$K|@(jY49%je=a9PB5ldaT`1iI0N5Rc>9qX=Zw zGcQ26ShP)Ie(LLMY_kl^p&Vbs(u3^Z{iv9Z;oW-78X#C4$NflPCtwdX%%)9XhPTfV z*xv5Fpj1}la_2>x^LDV34y<x|#&2JJnM9_8U%n0EtmgKS(C0CyoT6k88!Ktwj0>U* zwUiUW%rhZ!gr*`$uq~q?<P4>}-yR-vuOwSDd^T2hd}2Z`o1avZ)%4^>-0>gJHVs<X zP}G6X=u}mg$!%LM4t3qfqto*a1=;%rn$n0nPh6llpMRBm<M_iONx0E#DX28fhpF#b zXr=w?#71wyVO4s?FXImXM{hBmCF`Y+U87U2>fT}_gABSi8Fhzwzw@7gwh#OlLX5oD zP*c6#4E2p&YW#q>=>3rq;_^R1xHrG%J!yNKXPBSvT5py{UKg)6dA^uu-2_a7Iq##R z=4^+qB%A927G3U3zRI_HqPn;Lq#IE?%>RmGej9k~*cUIC<VJ`>L|krqWp!=|bB9&t z7l-J7Mat#9CcqumyX~H&{fwjyX{z8jJ1U*AjuY+}JI0c5sTp>wfL6!2riY{QR=)>U zdW}o+zTYIGeP1u*<sw^75g6|W`r`R+IaeODQxeqPn$Ed4rwaJPs{HJq;#@(}nJBC9 zm9OiF#Wn*Qq-TPnA$r`O@zI<m@aPlV2@pD{_?z6KF77nlkDvq2(>rbJyGtMmO}ooG zRYl_k2W}e^LN7Q@9qv?|$-0v-PN3(`B?f6v!+t(UCV(iW<@gR+9?zJm@t5RgO&E0E zs_)<i16u8Zm4JR_qH@gPckQC>3;r33)KItDR3)J<>Z#(?ME%ZQ9~T;x)4LsMP2%ZY zPy=tzJ*4y|c8|X-Ix9=aW?IleQ5Y@3I;z;H!K+=yE$(f(u#l%$=aP1t-d5sL78l*Y zCa|v>w?xA`SloOtvoFp%ePE&~%8&?_KYLkfd03;~=Z)UXTwPISBt@YRLywJx!9Yt; zL!gb%R>7msLQ7W@6)j_(ww$8zbvUdggiooLGq)jpsoIzgiAJ^pMn`Lie6=Q2!I%nQ zP<Hg7ehU;LBB5|kT0SCf!9I>2c`L%a*s9OUiT>H!-Fx+EndoNdq+vA>eP;CFcruDG zX5ZePeNO>I)b{vDwJ+si%t8=RlA9}`JCxf$rk%ekP^sbyyTX1&Kcda31F96caf=y4 zZhLwpz8a3B2{Lwc{ltSos963zRK@KXsd?v{X{xGyvpKkLHe2>!uDGaAt=cqauA@mc zN}pf<7iUkU+qltkN4Bc_@<phCE&us~<=y}hr+tcF^`qL!eWGV-Sz|wSqRsSjL)m1r z?Sm@EQ^@_)M7gS~2oF6IJ=^mEZr$30R`ap%@&mZ%{;u2K!e-2Zn{e!Yw@p?GI6BYd z=kSA;Tn}mb#Cha%bsDnoLanfEnWX4|%;X~afl3xRk}4GBW57%f1>?n1oi7JGQp^)m zEy^uyVG!@&`XwbEzc)LTP%NO5zh4~Q3c{6q&zYYZ{HggRtw`(QHbU#=+U&?$fI@P= z7Lnbn8w0W@PhkpDoa)|0xzq&D=kgM_0bp+p(@ZtI`QG(7G9egLdMy!FEcc#9AX`Ti zHr?y+;t3&yAw{BzR;oI#eR_$N&CKUFGIj<TjXyd1W^=W)75mG4%>E&F#Xh9YJuuN0 z<l0yx{JuZ}6Em;)VYu&pPFCI0%r}MJlT>~$()uz4h`rwitk`dw=dhlj(w_arCRL=- zr@G00Gfc;RQjN=Fo2v-Ob;e#UQpMKGi?Ys`*5|aDk4|qf0o5zfsy*SlraE6SSS536 zI&SJJm*=11jd_}ttZ;G3)j&2ncHCr`IA+OZ7gO|yGv6!9Q8{XsiYnfJ(zs{sL_YSB z1_<0XfWPwq<pE_ZXhn6zteug9o0Y9jx&3p&7-3#x9P}gmRn86tx(l1hL%ufJruY5d zx$(}1X$iqk<#X*-%5iws3AGzM7XZZC$6wN}GrWMh`#hkPmDP0nwy=|~`ul?2!m5P$ z=9{70F?K7w#NDp<&UI#2BVN8eVn+*2bO+Bf<`dV^hCx7n^6{#+yv>?+=Q=$LFOkf? ziJ4EVR5bJ*h7qmSd>Jjfa!+>~(l!0Q?Y<?0@3)$p%Cq}-(-Y{f#-C&N87*cR+?Pu& zfogLP6wA!LG)2Ix4u1`H<&4Q<cKkZm2Q|!ujB>i9l^oI47De-@C=)@*=8K=Jy(3nZ zTczPk-^lXZ$jD~kC>Pv29*MusFdUf3gXUugCLy!;1R-=hup7zu(849T9D9wtE@Gek z<Ol}@B=mA(1&Di4aJz>anG0rq2jVN!lN&hvaSt22O{c4v67G&FqBbD}Zub0g*KN~g zda0`S$%s|<4<ho~7LcvDHbcSljN&bg+^Kw6m>8XpKL%?Rl6M)>Iu8}Evh@u&#b8!9 z9~@BUc#5Nd3h=}J*b)Dlo!cH;qobiY<bOQaTDZJ!CIl%e4o<_%gG+c5`LkYBb#osw ze6^eh0LOSl2Oj$s?fvPS^XHQpH?B9|gS;Hozfp2LtH@Whswy`5&Fj&5)3=oWB2;Rf z{8MI`X*}Z}DIu0lNJ!Y)eEvM_vR3mX6(nXQ6O^FK)Y0QgPbDI~75R<m=E!5k8h3!~ zg2_OaAIx;Ka6(f!wXymrIa0w}qQA}rF&=a5NnOG@mK7n$CH|W^ML*8ba*Mq8&5^3F zZn_M0?sp53L`)?vj9-z8)EGQ_>@59hgHG^xt2zOCxu5L@e2mWRpS(T@($}yyG;D+i zmX<z%hTD&`jCsSQma48<o~(wBw3^(KY&@e_v!Ba+FAlUEK?t^%5rv;{fswH47D}pa z3Klzj;`$FMP4bCbPvztnu4Z~UWBSnmSK=3T69IF55QyK#egyGZN(!OP_hbNGsNHx* zd)HDZQRvxePM((`DrG4vqJPU?Y-;svc2zr*%F(}GcWaj>^<h~ofj51r%`s}uPOgwE z2dgM;6P<~Tf39|-YVYN_@P2Dnz_;UEna)KkC@&hk!z`vYjw8Q?`?mi6_|PW0%8tf= z)a_67GT*=o1>kb2W@2wfPC7xkVyX^t!swb9V!Qy-piiBhBy-j{J0a*lP2z}Nj(ok0 zgloi}pNz}WnYE1fClo9xe!m=pN?vS0#s0^3KW7rA_po&;`Z&jxiiY&W_(=MF?p&oN zHu%3j7*QO7YIMhj3iBsY^DHlzRDb?d`mt*-67osc@91i&@>#d+-T{!|^~jX!I8LT2 zQrcRxa~S92<7I91StHN9#m>vDPVaUtAiSjiU^_3OrJ~D{OBDL`0U^_PL!Sr*f1bP_ zq4|by5WZZ;SY@_VpNX$l2c^AMwMB5Td;-~H9$ALd^4-7&Z8=`WQqk%hlYfKEjB`a) zu-`n$vDI0$H}fagLcfp3%Ez<vK*5boF-4_f=m;)Cs}p(!u5ILDV-$!**8D0=-#c(5 zLZM{2!34kreC1b!6M!1!62_FW0#ykg%yksS2s|fgX=?!!&*l2J*mo?4Yb%NjS4=Q* zJBHp0|7pw>T)B5n?_%0B**+@hu!m9A2S3pBEyVCce#x7=7lk*SHZTDLF%ZL}nmyL2 zv>Z`?b}PlRF9!n86RGk6K^PApA{X6Hrte<hIt9*)SS8?Lx>m!yGLi0I2M7h#Mgj#B z%tc;-`^}iwDygJAP?2kUxH^&mq-gEc5-WNO|9Vj;vk25Xm_W>Gig{Hw#-@Ir=`Iy2 z_hzowb5J-s@1VYsoF!4=z3jN`ivRN;r=n1yozhK8vmbuYdA)hP?oHS2s%gsDHzovV zk~d7_@6lfynFBR`3E{4q-f2aABZCql$&-)Hdq#Ra17*-yP5pYmARkm6n1I*6P*7h2 z(4hY64GIcc4C>wAjW9USB!3^F8o&hnee@+Di012y29_p`*A5r5=--V$kc+VXKKlPJ z{9pI@zrGN6-gS9hFL3lDS9F{^{s<Wz>|ft{Ta9BZH!BP;fKLwm=SRGWghKs$MDHq@ zKMihgYrZ*bq=$z4tF3cV1S+}b&-;6!_`f@V62^cwh>l53odp7cPxhetPm<U&05QkE zdtm-kS<Ws_;X{F5XRBSl`9~M)!`~-9z>Y$VDynfP!G_66D$%ColKkC{GyR{dpda~s zSMNwLVA_~f@mu8mU*~%Qx%cEP<QA0So*y1xpdTGva8zSjY+uhwipq(U3mJU>e}Pm` A(EtDd diff --git a/static/img/docusaurus.png b/static/img/docusaurus.png deleted file mode 100644 index f458149e3c8f53335f28fbc162ae67f55575c881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5142 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 F{0H{b<4^zq diff --git a/static/img/favicon.ico b/static/img/favicon.ico deleted file mode 100644 index 487fce482c6b78e0e1793aedbc2f82641874c152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1627 zcmV-h2Bi6kP)<h;3K|Lk000e1NJLTq001BW001Be1ONa4*>kdg00004XF*Lt006O% z3;baP0000WV@Og>004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00002 zVoOIv0RM-N%)bBt010qNS#tmY4#NNd4#NS*Z>VGd000McNliru<^cu~BQfStnoj@# z1u02HK~zY`eU*Pq)MXsUU*9hrKab-$f{Vid1yc(|FgFFQtkuf0EHg99+S<%YS6O5~ zmbF^5R&!cwEuE#78QK~yt<7pWm(nJ2XbK*pfEvfIQx3R8?&RM6!NqX6K7T!Xp7-<q ze4h9Fc|MQ9wZcwGa=Ej_k&|SDfd67^hdcNO$MBDZ8e?X%tq)IsWcJj_skufj3BUl& zoKt<z;kw#g!7AGSk03FA(XFc&7iF8LX<;@G0U&nZW<2?{Mk?KhKM7ZH`Pu}ooOhQ$ zxg?>AHp-a{T%-@Mk%p+}2ospc*TJv8ZhMc;u>=#Qe*Vrq4>H6V466AXa9~CBaS4NB zW@3;}gdcc+Ps1wCUwsr;@h`tgl6tj8&*>{Q>9QgkR74RC$fHeqR@>AsN!qI^Rb*au z_S{XC>XFo{)mpDk4Tnc7^<8w6<kg3&&_9y8wM|(Yi3f;*aRirEyp<aJHyNzsPL^Q> z-~yj=H(vJQBohNGv+%Qn5_V%}T;U;){p7Hk+4r~)>UnweimLQqbgM%9Bn|0^UeXrz zM(20xbv0;(4(j%5G9hL>p{FaJK53M53JXs~Rqba3MLfW9tmHG3Jq&OY08=<hkcph6 zBx`?Tn%itno3XIK=wUoHJb@V%Wjoii2!lg>K@dBcIHM~uEaMNR&_Q8L=^~%iWLjBq z5i6-?#)z;1npr>$R|rze76#}TCHgpu_=^`QW@agcW@34%-A*R;%o&0Bh{eVLaV*46 z2n$6V7-iaR9LI@`>FKev%<D_?0WSvQMgVQ3F~|naGLh9d5cku>r_>V$AdfJeK!NF; zW~S$)176Zd03gg!b}|v+V?AfNk!8eUXALg4vX*l|GB!GZ3>>*;vJHInkrK_mpRFul z9*Jb&qZ)|805W)l53te*fR$dnKvJq{(!yqh0Eke-a^@0GA}c8&>8kr~!7(z9u!%NI z#RmM)Ln3}o(MJzW^x=+z%IFyx4_kPiA#6AZkU&2o=#TAg9hwm)nM>5*CCDN6U}6wU zDkcVg21ij0v4j9q=qC;c)7>2Fb$2ba8A0NhffXMoI7Sa$WU-V)B793jG<y<|$V1G< zLp**Qc!%2E2DiQb<2*+Sb%bzHgPj1sa{z+`3?hVxM6G)U3q$mgO^{p)2(hbU!+c0B z`~94xR;^H*q>I|2$K?=0s7$N0N{eKXp(HtVm;O?tR>&)<Nw@4JDaJK;CVA4mrA8`U z{E5L%dPrd^chZgz3xjmfMkhD3l-F2E4qsBrOyIjKTi2!50A$^9^qi!C)@X}P%cCZ3 zP=Q>^l0(R*TotNHXLUg#eWSNEAnA<C50MTrkkQ}JZ@qW6<ru~6Cyp}GX=5|Dvlth3 zl(3ir+Ns0Kaq4-DHZu6Q_xsmU+@YvD@!6kMYL8x4t=`l+wX0THGG)q)YEdDnMepfd z)#^q4tnCr!M_5L8W#>&_e*9pFUwMpXs+mM0-FP@l9CqR<B#jfy!9^wa5oXQzjW2L9 z+7pLcK-b~A39~27F@9nJcj3iDkn0#v9_hq$g*=`ijomEaLS$`a<7&Fb{ApymHm>b& z(4Zt~P#*2qKJC+QI<1f->9S7hjb7(Rqn^Y_1ptA*1BXu?&k1K;XQp7m!%wu*!fEok zfgxI`yt3{{<*R+0>A&{Z7Of*;e$k_4rMEcp%mfTT4A2~@={|Dw#IC`8_^yVJB^ZA0 zg>kborlsd4+oYi1*V5?@S5r@5Ec9RT1BSIx?0Fdg001R)MObuXVRU6WV{&C-bY%cC zFfuYNFflDKHB>P+Ix#jnGc+qOFgh?W1kFI;0000bbVXQnWMOn=I&E)cX=Zr<GB7eS zEif@HFf~*$HaamjIx{pYFfckWFm;glTmS$78FWQhbW?9;ba!ELWdL_~cP?peYja~^ ZaAhuUa%Y?FJQ@H1002ovPDHLkV1oW3%#;8C diff --git a/static/img/favicon_old.ico b/static/img/favicon_old.ico deleted file mode 100644 index c01d54bcd39a5f853428f3cd5aa0f383d963c484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3626 zcmb`Je@s(X6vrR`EK3%b%orErlDW({vn<nO&P<?CeyCWSKt+DHylTv5mbk<?W^{kJ zUx~(TV9eY|)QxBm1d%ah3d#==S!qG})lv$AiqX|pq*%24=y&J5@@gUMk4IMW>ABqA zcfaS{d+xbU5JKp0*;0YOg+;Fl!eT)XRuapIwFLL`=imZCSon$`se`_<%@MB=M~KG+ z=EW^FL`w|Bo>*ktlaS^(fut!95`iG5u=SZ8nfDHO#GaTlH1-XG^;vsjUb^gWTVz0+ z^=WR1wv9-2oeR=_;fL0H7rNWqAzGtO(D;`~cX(RcN0w2v24Y8)6t`cS^_ghs`_ho? z{0ka~1Dgo8TfAP$r*ua?>$_<z$398a6IF!bbr3t}(kCBmu}JCJkBG(ws2YgIM#K*f zOZus<BFRV6zeAe)i6z8N!b2#EKb!Ynidl}Gt$z>V+kZ!-(TvEJ7O2f;Y#tezt$&R4 zLI}=-y@Z!grf*h3>}DUL{km4R>ya_I5Ag#{h_&?+HpKS!;$x3LC#CqUQ8&nM?X))Q zXAy2?`YL4FbC5CgJu(M&Q|>1st8XXLZ|5MgwgjP<YY<jbgV5?~gk8M~jmss)pE6u| z&tM4)Cw<nHnMeF8q&Ui@Ik&j~fu_3*akge`=(kGoa?BDG|9ZPU5P#By>$m_2Vt0(J z&Gu7bOlkbGzGm2sh?X`){7w69Y$1#@P@7DF{ZE=4%T0NDS)iH`tiPSKpDNW)zmtn( zw;4$f>k)4$LBc>eBAaTZeCM2(iD+sH<bSfK{i4AV9!KlX=U?{WOKOiR)2Cc*jiMS9 zgY1r2=%^OxI%APw`IXk)?$0~Uy;<u|`R5a@(T_+!HAr7a?NP=0d|q1V3|P1h#K2&S z!q$#`SXWtzk18qxtgEVm#_61W{tgG}e@^Y^iuGHgDeh$Gds3yEr|-|iHg}_>lj!qd z2GjRJ>f_Qes(+mnzdA^NH?^NB(^o-%Gmg$c8MNMq&`vm@9Ut;*&$xSD)PKH{wBCEC z4P9%NQ;n2s59ffMn8*5)5AAg4-93gBXBD<NFG-f$|B2&5UYhfiAa+H|xyN>X`A7S& zH-|%S3Wd%T79fk-e&l`{!?lve8_epXhE{d3Hn$Cg!t=-4D(t$cK~7f&4s?t7wr3ZP z*!SRQ-+tr|e1|hbc__J`k3S!rMy<0PHy&R`v#aJv?`Y?2{avK5sQz%=Us()jcNuZV z*$>auD4cEw>;t`+m>h?f?%VFJZj8D|Y1e_SjxG%J4{-AkF<W18{neSm@yCM#Jok8U zzVtjyRO3oZN^!REEb8m(QB8HfxVRW)Wo2k<YeP{{5ef?nVYONh6%-UmuV56j?8l7z zN2K=}`b|P?<1_AW%YAHF|M=~%;q^Vk$P+iNR9}I;w-3Hap!RAVuGL=ye1OSlLUGYK zxJTUR@9W3OlP3@5{*){0%JvJIQ@VfkMiml@KY*?|93tsz%RfYF&AK^#*wGq;AA0wq zXy|8DJS;%9qXZ3)Dq$L~Lx<Z4+h{um$85MiHV7x3(I*owxW*nGp2WDUE89;<U)ul7 z>tT2+ZZS5UScS~%;dp!V>)7zi`w(xwSd*FS;Lml=f6hn#jq)2is4nkp+aTrV?)F6N z>DY#SU0IZ;*?Hu%tSj4edd~kYNHMFvS&5}#3-M;mBCOCZL3&;2obd<y5!}vb2t~%V zFv%BviwarIe&2Y{h&(!*vaW11>G?qZ>rD|zC|Lu|sny76pn2xl|6sk~Hs{X9{8iBW zwi<?8k=R<X7V5+A2J(r<<`9xDC*gE^1=$NkU>wgQt+@hi`FYMEhX2<!tNiQdpSzFx z-Xmt~^Z%a_tpw*GzYFvG_|!B!7w^yAdC?j%NY7m&qKSZZQ2gBYGO?T}BYq@|L<Mni iy3Oy%{5!9e65g49ZUI?Io9+Mn37KoYgVafcF#iI%Brz=j diff --git a/static/img/logo.svg b/static/img/logo.svg deleted file mode 100644 index 9db6d0d0..00000000 --- a/static/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ -<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path fill="#FFF" d="M99 52h84v34H99z"/><path d="M23 163c-7.398 0-13.843-4.027-17.303-10A19.886 19.886 0 0 0 3 163c0 11.046 8.954 20 20 20h20v-20H23z" fill="#3ECC5F"/><path d="M112.98 57.376L183 53V43c0-11.046-8.954-20-20-20H73l-2.5-4.33c-1.112-1.925-3.889-1.925-5 0L63 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L53 23l-2.5-4.33c-1.111-1.925-3.889-1.925-5 0L43 23c-.022 0-.042.003-.065.003l-4.142-4.141c-1.57-1.571-4.252-.853-4.828 1.294l-1.369 5.104-5.192-1.392c-2.148-.575-4.111 1.389-3.535 3.536l1.39 5.193-5.102 1.367c-2.148.576-2.867 3.259-1.296 4.83l4.142 4.142c0 .021-.003.042-.003.064l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 53l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 63l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 73l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 83l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 93l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 103l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 113l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 123l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 133l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 143l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 153l-4.33 2.5c-1.925 1.111-1.925 3.889 0 5L23 163c0 11.046 8.954 20 20 20h120c11.046 0 20-8.954 20-20V83l-70.02-4.376A10.645 10.645 0 0 1 103 68c0-5.621 4.37-10.273 9.98-10.624" fill="#3ECC5F"/><path fill="#3ECC5F" d="M143 183h30v-40h-30z"/><path d="M193 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 190.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5" fill="#44D860"/><path fill="#3ECC5F" d="M153 123h30v-20h-30z"/><path d="M193 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 183 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032" fill="#44D860"/><path d="M63 55.5a2.5 2.5 0 0 1-2.5-2.5c0-4.136-3.364-7.5-7.5-7.5s-7.5 3.364-7.5 7.5a2.5 2.5 0 1 1-5 0c0-6.893 5.607-12.5 12.5-12.5S65.5 46.107 65.5 53a2.5 2.5 0 0 1-2.5 2.5" fill="#000"/><path d="M103 183h60c11.046 0 20-8.954 20-20V93h-60c-11.046 0-20 8.954-20 20v70z" fill="#FFFF50"/><path d="M168.02 124h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0-49.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 19.814h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2m0 20h-50.04a1 1 0 1 1 0-2h50.04a1 1 0 1 1 0 2M183 61.611c-.012 0-.022-.006-.034-.005-3.09.105-4.552 3.196-5.842 5.923-1.346 2.85-2.387 4.703-4.093 4.647-1.889-.068-2.969-2.202-4.113-4.46-1.314-2.594-2.814-5.536-5.963-5.426-3.046.104-4.513 2.794-5.807 5.167-1.377 2.528-2.314 4.065-4.121 3.994-1.927-.07-2.951-1.805-4.136-3.813-1.321-2.236-2.848-4.75-5.936-4.664-2.994.103-4.465 2.385-5.763 4.4-1.373 2.13-2.335 3.428-4.165 3.351-1.973-.07-2.992-1.51-4.171-3.177-1.324-1.873-2.816-3.993-5.895-3.89-2.928.1-4.399 1.97-5.696 3.618-1.232 1.564-2.194 2.802-4.229 2.724a1 1 0 0 0-.072 2c3.017.101 4.545-1.8 5.872-3.487 1.177-1.496 2.193-2.787 4.193-2.855 1.926-.082 2.829 1.115 4.195 3.045 1.297 1.834 2.769 3.914 5.731 4.021 3.103.104 4.596-2.215 5.918-4.267 1.182-1.834 2.202-3.417 4.15-3.484 1.793-.067 2.769 1.35 4.145 3.681 1.297 2.197 2.766 4.686 5.787 4.796 3.125.108 4.634-2.62 5.949-5.035 1.139-2.088 2.214-4.06 4.119-4.126 1.793-.042 2.728 1.595 4.111 4.33 1.292 2.553 2.757 5.445 5.825 5.556l.169.003c3.064 0 4.518-3.075 5.805-5.794 1.139-2.41 2.217-4.68 4.067-4.773v-2z" fill="#000"/><path fill="#3ECC5F" d="M83 183h40v-40H83z"/><path d="M143 158c-.219 0-.428.037-.639.064-.038-.15-.074-.301-.116-.451A5 5 0 0 0 140.32 148a4.96 4.96 0 0 0-3.016 1.036 26.531 26.531 0 0 0-.335-.336 4.955 4.955 0 0 0 1.011-2.987 5 5 0 0 0-9.599-1.959c-.148-.042-.297-.077-.445-.115.027-.211.064-.42.064-.639a5 5 0 0 0-5-5 5 5 0 0 0-5 5c0 .219.037.428.064.639-.148.038-.297.073-.445.115a4.998 4.998 0 0 0-9.599 1.959c0 1.125.384 2.151 1.011 2.987-3.717 3.632-6.031 8.693-6.031 14.3 0 11.046 8.954 20 20 20 9.339 0 17.16-6.41 19.361-15.064.211.027.42.064.639.064a5 5 0 0 0 5-5 5 5 0 0 0-5-5" fill="#44D860"/><path fill="#3ECC5F" d="M83 123h40v-20H83z"/><path d="M133 115.5a2.5 2.5 0 1 0 0-5c-.109 0-.214.019-.319.032-.02-.075-.037-.15-.058-.225a2.501 2.501 0 0 0-.963-4.807c-.569 0-1.088.197-1.508.518a6.653 6.653 0 0 0-.168-.168c.314-.417.506-.931.506-1.494a2.5 2.5 0 0 0-4.8-.979A9.987 9.987 0 0 0 123 103c-5.522 0-10 4.478-10 10s4.478 10 10 10c.934 0 1.833-.138 2.69-.377a2.5 2.5 0 0 0 4.8-.979c0-.563-.192-1.077-.506-1.494.057-.055.113-.111.168-.168.42.321.939.518 1.508.518a2.5 2.5 0 0 0 .963-4.807c.021-.074.038-.15.058-.225.105.013.21.032.319.032" fill="#44D860"/><path d="M143 41.75c-.16 0-.33-.02-.49-.05a2.52 2.52 0 0 1-.47-.14c-.15-.06-.29-.14-.431-.23-.13-.09-.259-.2-.38-.31-.109-.12-.219-.24-.309-.38s-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.16.02-.33.05-.49.03-.16.08-.31.139-.47.061-.15.141-.29.231-.43.09-.13.2-.26.309-.38.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.65-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.11.12.22.25.31.38.09.14.17.28.23.43.06.16.11.31.14.47.029.16.05.33.05.49 0 .66-.271 1.31-.73 1.77-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19m20-1.25c-.66 0-1.3-.27-1.771-.73a3.802 3.802 0 0 1-.309-.38c-.09-.14-.17-.28-.231-.43a2.619 2.619 0 0 1-.189-.96c0-.66.27-1.3.729-1.77.121-.11.25-.22.38-.31.141-.09.281-.17.431-.23.149-.06.31-.11.47-.14.32-.07.66-.07.98 0 .159.03.32.08.47.14.149.06.29.14.43.23.13.09.259.2.38.31.459.47.73 1.11.73 1.77 0 .16-.021.33-.05.49-.03.16-.08.32-.14.47-.07.15-.14.29-.23.43-.09.13-.2.26-.31.38-.121.11-.25.22-.38.31-.14.09-.281.17-.43.23a2.565 2.565 0 0 1-.96.19" fill="#000"/></g></svg> \ No newline at end of file diff --git a/static/img/undraw_docusaurus_mountain.svg b/static/img/undraw_docusaurus_mountain.svg deleted file mode 100644 index af961c49..00000000 --- a/static/img/undraw_docusaurus_mountain.svg +++ /dev/null @@ -1,171 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" width="1088" height="687.962" viewBox="0 0 1088 687.962"> - <title>Easy to Use - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/img/undraw_docusaurus_react.svg b/static/img/undraw_docusaurus_react.svg deleted file mode 100644 index 94b5cf08..00000000 --- a/static/img/undraw_docusaurus_react.svg +++ /dev/null @@ -1,170 +0,0 @@ - - Powered by React - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/static/img/undraw_docusaurus_tree.svg b/static/img/undraw_docusaurus_tree.svg deleted file mode 100644 index d9161d33..00000000 --- a/static/img/undraw_docusaurus_tree.svg +++ /dev/null @@ -1,40 +0,0 @@ - - Focus on What Matters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 920d7a65..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - // This file is not used in compilation. It is here just for a nice editor experience. - "extends": "@docusaurus/tsconfig", - "compilerOptions": { - "baseUrl": "." - }, - "exclude": [".docusaurus", "build"] -} diff --git a/versioned_docs/version-1.1.0/Implementations/__category__.json b/versioned_docs/version-1.1.0/Implementations/__category__.json deleted file mode 100644 index f90f052a..00000000 --- a/versioned_docs/version-1.1.0/Implementations/__category__.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Implementation", - "linkTitle": "Implementation", - "position": 1, - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/versioned_docs/version-1.1.0/Implementations/_index.md b/versioned_docs/version-1.1.0/Implementations/_index.md deleted file mode 100644 index 3bbf41fd..00000000 --- a/versioned_docs/version-1.1.0/Implementations/_index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: "Implementations" -linkTitle: "Implementations" -weight: 3 -description: > - Details various software that is implementing the Aqua Protocol ---- - diff --git a/versioned_docs/version-1.1.0/Implementations/reference-architecture.md b/versioned_docs/version-1.1.0/Implementations/reference-architecture.md deleted file mode 100644 index aa22dd20..00000000 --- a/versioned_docs/version-1.1.0/Implementations/reference-architecture.md +++ /dev/null @@ -1,336 +0,0 @@ ---- -title: "Reference Implementation" -linkTitle: "Reference Implementation" -weight: 1 -description: > - Explains the technologies selected for the reference implementation and why we selected them. ---- - -Implementation specific architecture documentation for the Aqua Data -Vault 'Personal Knowledge Container (PKC)'. In this document you will -find reasoning as to why certain components were chosen to build this -prototype. We have not duplicated any vendor documentation. Please find -the linked-list for the documentation of the components we use here: - -- [MetaMask](https://docs.metamask.io/guide/) -- [Ethereum](https://ethereum.org/en/developers/docs/) -- [Docker](https://docs.docker.com/) -- [MediaWiki](https://www.mediawiki.org/wiki/Documentation) -- [MediaWiki Extension: Aqua](https://github.com/inblockio/aqua-docs) -- [MediaWiki Skin Tweeki](https://tweeki.kollabor.at/) -- [Pelith Eauth Server](https://github.com/pelith/node-eauth-server) -- [Nodejs](https://nodejs.org/en/docs/) -- [GitHub](https://docs.github.com/en) -- [Apache](https://httpd.apache.org/docs/) -- [Nginx](https://nginx.org/en/docs/) -- [Let's Encrypt](https://letsencrypt.org/docs/) - -All software components selected are open source licenses. They each -have active developer communities behind them to secure future support -and further development. - -## Wallets / Accounts - -Why do we use Ethereum Wallets / Accounts? - -An identity anchor needs to be a public, private key. This allows a -public component which we can share (public key) and a private component -which proves ownership over that public-key. Public keys are used in -Ethereum as accounts to receive and send transactions. Therefore the -Ethereum ecosystem has developed standards. These have evolved to a -larger eco-system involving wallet-providers which have built software -and hardware wallets to securely manage those keys. We leverage one of -the most vibrant developer communities and utilize these wallets. In our -case they are used mainly for offline-activities (Login, Signing) which -do not require connectivity to the Ethereum blockchain. - -## Web-Application (Chrome-Extension MetaMask) - -Was selected as it is one of the most advanced, widely used, -feature-rich web-wallets. Most importantly it's a browser-plugin which -allows us to interact with browser applications. MetaMask also has the -ability to connect to a hardware wallet allowing for increased security -and levels of assurance. - -- Large User-Base 10 Million + - - - -- Hardware Wallet Support (E.g. Ledger) - - Large User-base 5 Million + - - - -- All related source code is open source, lot's of money behind it - (future proof) -- SSI (Self-sovereign identity): Compatible with the DID schema - did:ethr:`` -- Fulfills SSI principles: - - Controlled by user, allows for creation of new accounts / wallet - addresses - - User can create new identity anchor independent of third party - - Can be moved between devices by users recovery key or even to a - hardware wallet (not recommended but possible: - https://kryptonitelex.medium.com/how-to-transfer-your-metamask-to-a-ledger-hardware-wallet-bcece7d5567b) - -## Witness Network - -We are using the Ethereum Network as an optional Witness Network for -cryptographic time-stamping. - -### Why public Blockchain? - -The witness event serves the purpose of being able to prove the -existence of a document without the ability to deny it. This requires -censorship resistance and global coverage. The security of the network, -it's distribution, and the high economical price to attack the network, -are all good reasons why we want to use a public blockchain to publish -highly obfuscated hashes (fingerprints). This proves the state of the -data in a Data Vault (PKC). - -The MetaMask wallet is able to publish the witness event verification -hash to the public Ethereum blockchain. This completes our third -important layer of integrity verification, which is to prove -cryptographic time and existence of a document by writing it's -fingerprint onto the ledger. This is not done directly, but through a -process which highly obfuscates the hash. This ensures that that there -is no plausible attack (even if the attacker owns a powerful quantum -computer) to match the fingerprint with any personal data. - -## Data Vault - -The Data Vault named 'Personal Knowledge Container' is creatd by using a -tool for containerization called 'Docker'. This allows us to package our -application so it can be deployed to different operating system -environments. Docker provides the abstraction / virtualization layer. - -Inside Docker we containerized multiple services: - -## MediaWiki for data governance - -MediaWiki is a data governance tool which has a legacy as a -collaboration tool. It powers Wikipedia, the largest encyclopedia in the -world. We step into this experience, and the benefits of a feature rich, -battle-proven application. It's a powerful tool to both manage and -present data. - -As MediaWiki has an active and established developer community, it is -possible to tap into existing professional service companies. Supporting -development and any required changes within the application. - -MediaWiki has been modified to use workflows for data processing. This -will allow for implementing and testing workflows and business logic -between Personal-Knowledge-Containers. - -We use all the benefits of MediaWiki to manage and present data in the -browser, while we work around one of its main limitations: Security. -MediaWiki was never developed to have advanced security and permission -structures, as it was built for Wikipedia - a fully public website. This -has several implications for us. - -Security Practices: - -- We assume that we can't defend against insider attacks on the same - MediaWiki instance, therefore every user has their own instance -- If there is a need for a collaboration space, it is possible to - spawn containers for multiple accounts which trust each other to - work together on shared data - - - -- If you use a hosted PKC instance, assume the provider has access to - your data as we don't use homomorphic encryption nor do we have - encryption implemented -- We are using typed and tested PHP (for MediaWiki Extension Data - Accounting) to improve test coverage to increase stability and - security of our application - - - -- To securely exchange data between PKC's, we implement a separate - security software called Guardian. The Guardian protects the PKC and - manages all access according to the accounts owners set permissions. - The Guardian is under active development. It will receive the - highest scrutiny and attention to ensure a minimal attack surface - while allowing trust between Guardians so data can be exchanged. - - - -- The Apache WebServer present in the MediaWiki container has a - technological dependency and needs regular updates as Apache was - effected by critical security issues like - [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) -- Therefore we do not expose the Apache web-server to the internet by - default and do not recommend this to ensure that there is no - unnecessary attack surface. If an organization decides to expose the - web-surface of a PKC to the internet, they should expect this - instance to be compromised and leak all it's stored data. Therefore - we re-emphasize: If PKC / MediaWiki is exposed to the web, there - can't be any guarantee that data can be kept private. Therefore - assume your data can be leaked on a web-facing MediaWiki instance. - Organizations hosting PKC's for collaboration should do so with - restricted firewall permissions, ensuring that the web-interface is - only reachable for the employees authorized to see the content. - -## MediaWiki Extension: Aqua - -The existing ecosystem and reference implementations around MediaWiki -allowed us to quickly prototype our reference implementation for Aqua. -The implementation itself allowed us to further develop the protocol. -The downsides are currently old PHP code and MediaWiki's legacy. In -return we benefit from a well documented project. - -Looking forward we want to see other client-implementations in different -languages independent of MediaWiki to show the potential of the Aqua -Protocol. We hope to re-use part of the PHP code base to apply it to -other applications, like Word-Press. - -## MediaWiki Skin Choice - -Using Tweeki as a Bootstrap 4 compatible Skin for MediaWiki, we were -able to establish contact with the chief maintainer of the extension, -and were able to collaborate to solve various issues to improve the -skin. We are coordinating with other parties to see how we can improve -support for the Skin. In the future we are hoping to increase the -maintainer base. Prospectively we want to use Tweeki as an abstraction -layer from MediaWiki classic to Bootstrap 4, and respectively Bootstrap -5+. - -## Authentication - -- For Authentication with Web-Wallets, we use - [https://github.com/pelith/node-eauth-server](https://github.com/pelith/node-eauth-server) which provides us with - an open source solution for a signature-response challenge. We then - integrate with OAUTH2 and OIDC using existing authentication - standards to achieve the login. -- The Pelith server provides us with the Signature-Challenge and is - forwarding the access token via OAUTH2 to MediaWiki. Here we check - if the user exists. If this is the case, access is granted. - -## WebServer-Proxy / HTTPs - -- We are using NGINX Web-Server as the proxy server. NGINX is a modern - and the most popular (#1 since 2021 by share[^1]) web-server on the - web. -- We are using Let's Encrypt to provide secure connections via HTTPS - if a PKC is deployed to the web. Let's encrypt serves over 260 - million websites according to the vendor website.[^2] provides free - TLS Certificates for secure HTTPS connections. -- The NGINX Web-Proxy allows us to ensure that we can add additional - services to the PKC and redirect the services according to our - needs. - -## Software-Development - -- We use [https://github.com](https://github.com) for software development. As we started - with very little budget, we gratefully utilised free resources to - develop our open source software. This allowed us to focus on being - productive. - - Github is owned by Microsoft and is therefore subject to US - policies and Microsofts interests. - - This itself requires us to move away to be independent or at - least host a mirror instance outside of Github. The deletion of - a repository or losing access could harm our development process - significantly. -- We use GPL-V3 license on the majority of our repositories. - - We maintain the rights on branding - - We maintain more restrictive rights on deployment scripts - (service provider technologies) - -## Browser Choice - -We are using the Chrome-Engine as our Web-Browser of choice. It's the -most dominant web-browser on the Web, and has become the quasi standard -with many different forks creating an ecosystem around it. -Microsoft-Edge is actually Chrome. There are non-google chrome forks -which deserve attention, funding and support (like -[https://github.com/Eloston/ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium)). This will provide us -with a modern and state of the art browser architecture to work with. - -As Chrome is the most secure and modern base to build on, we support --only- chrome. Therefore we use a chrome extension to verify the content -of an Aqua file. This extension is available for download in the Google -Chrome App Store, or can be built from scratch following the -instructions in our repository.[^3] - -This allows us to provide ease of setup, as users can easily deploy the -chrome extension without further effort by adding it from the google app -store. - -We are using NPM / node.js for fast prototyping. This comes with severe -security implications as the npm ecosystem has been prone to various -supply-chain attacks over recent months [^4] . - -## Technology choices on cryptography - -All cryptography used in our development is based on international NIST -standards and follows the international understanding for internet -security. This is consistent with the perspective of the BSI in Germany, -but for some specific details there are no insights provided by the -ministry. - -### Hashing Algorithms (SHA3-512) - -PKC uses standard Crypto (SHA3-512) winner of the National Institute of -Standards and Technology see -[https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf) . We do not -use custom encryption as this comes at the cost of unnecessary risks. - -This is an accepted secure and recommended standard according to [BSI - -Technische Richtlinie – Kryptographische Algorithmen und Schlussellängen -Seite -42](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.pdf?__blob=publicationFile). - -### Merkle Tree[^5] - -- We use merkle trees to be able to witness the state of all pages / - files in a single hash. Used to generate a unique fingerprint of a - domain (a collection of verified data hash chain's within one - domain). -- There is a lot of future potential in ongoing research to improve - privacy and utility of merkle trees in the [Aqua - Protocol](https://pkc.inblock.io/index.php/Aqua_Protocol) - - See related technologies and research like TAPROOT: - [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) - -### Public-Private-Key Signatures (secp256k1) - -Used in combination with Ethereum Accounts. It is used for signing and -authentication challenges. - -- in ether.js - [cryptography/secp256k1](https://github.com/ethereumjs/ethereumjs-monorepo/blob/ade4233ddffffdd146b386de701762196a8c941c/packages/util/src/signature.ts#L23-L45) - see - [implementation](https://github.com/ethereum/js-ethereum-cryptography/blob/b1f35053df3f0cfa132fc45d59b688ca0d62994a/src/secp256k1-compat.ts#L99-L123) -- related documents of the 'Standards for Efficient Cryptography - Group' [https://secg.org](https://secg.org) specific doc secp256k1 [Both variants - of the same standardization process of the Standards for Efficient - Cryptography Group 2015, See differences - P9](https://www.secg.org/sec2-v2.pdf) - - - -- Supported by BSI secp256r1 but secp256k1 is not - mentioned.https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03116/BSI-TR-03116-4.pdf?__blob=publicationFile&v=7 - Request for clarification was send via E-Mail on the 3rd of November - 2021 by Tim Bansemer. Answer of the BSI: Currently the BSI has no - assessment or recommendation for secp256k1. - - - -- For authentication with Metamask Ethereum wallets we currently use - [https://github.com/pelith/node-eauth-server](https://github.com/pelith/node-eauth-server). We are signing a - unique input value with ethereum.js using the personal sign method. - Once the challenge is completed successfully we receive an OAUTH - token from the Eauth identity provider of the pelith Eauth server. - -1. [NGINX: Most Popular Web Server](https://linuxiac.com/nginx-most-popular-web-server/) - -2. [Let's Encrypt](https://letsencrypt.org/) - -3. [Aqua Verify Page Chrome Extension - GitHub](https://github.com/inblockio/aqua-verifypage-chrome-extension) - -4. [NPM Supply Chain Attack](https://duckduckgo.com/?q=npm+supply+chain+attack&ia=software) - -5. [Merkle Tree - Wikipedia](https://en.wikipedia.org/wiki/Merkle_tree) - diff --git a/versioned_docs/version-1.1.0/Protocol/__category__.json b/versioned_docs/version-1.1.0/Protocol/__category__.json deleted file mode 100644 index 0435bf70..00000000 --- a/versioned_docs/version-1.1.0/Protocol/__category__.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Protocol", - "linkTitle": "Protocol", - "position": 2, - "sidebar_position": 2, - "link": { - "type": "generated-index" - } -} \ No newline at end of file diff --git a/versioned_docs/version-1.1.0/Protocol/_index.md b/versioned_docs/version-1.1.0/Protocol/_index.md deleted file mode 100644 index e65a65e5..00000000 --- a/versioned_docs/version-1.1.0/Protocol/_index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: "Protocol" -linkTitle: "Protocol" -weight: 2 -description: > - Low level reference documentation of the AQUA Protocol ---- - -This section of documentation gets into specific details about the AQUA Protocol -and is meant for those doing an implementation or contributing to the Protocol -itself. diff --git a/versioned_docs/version-1.1.0/Protocol/aqua-identity-protocol.md b/versioned_docs/version-1.1.0/Protocol/aqua-identity-protocol.md deleted file mode 100644 index 59165a22..00000000 --- a/versioned_docs/version-1.1.0/Protocol/aqua-identity-protocol.md +++ /dev/null @@ -1,446 +0,0 @@ ---- -title: "Identity Protocol" -linkTitle: "Identity Protocol" -weight: 2 -sidebar_position: 2 -description: > - The following text has the goal to highlight the possibility to build identity protocol functionality on top of the core verifiction protocol. - This part of the project is in early stages and not mature. ---- - -The Aqua Identity Protocol (AIP) is an experimental application protocol -under development for Self Sovereign Identity's (SSIs) on top of the -Aqua Protocol. This is an active field of research which is related to -the work of the Decentralized-Identity-Foundation (DIF)[^1] and the -World-Wide-Web-Consortium[^2]. As this is under active development, -anything you see is experimental and subject to change. The goal is to -provide a Self-Sovereign-Digital Identity Protocol to protect individual -rights, freedom and the opportunity for the individual to participate in -the digital economy. - -We are building on the advancements and insights for rebooting the -web-of-trust initiative[^3] and the definition of a -Self-Sovereign-Identity provided by Christopher Allen in shortened form here.[^4] - -### Self-Sovereign-Identity-Principles - -1. **Existence:** users must have an independent existence. -2. **Control:** users must control their identities. -3. **Access:** users must have access to their own data. -4. **Transparency:** Systems and algorithms must be transparent. -5. **Persistence:** Identities must be long-lived. -6. **Portability:** Information and services about identity must be transportable. -7. **Interoperability:** Identities should be as widely usable as possible. -8. **Consent:** users must agree to the use of their identity. -9. **Minimization:** Disclosure of claims must be minimized. -10. **Protection:** The rights of users must be protected. - - -Those 10 stated principles are implemented within the Aqua Protocol and -it's existing reference implementation in various degrees. They are also -represented in the [Design Principles](design-principles.md). - - -# Architecture - -For the Aqua Identity Protocol to be implemented in accordance with the -above statements, SSI-Principles and critical component choices from -outside the protocol need to be made, and required tools need to be -provided. **Data Vault**'s will provide a space which is fully account -controlled. Other architectural decisions enabling SSI can be found in -the reference implementation PKC Architecture Documentation. - -### Usage of **Data Vaults** to protect identity claims - -Pages with the namespace ``: must be 'read and write able' by -`` only by default. This is to protect the personal-identifiable -data of the user. This data should be stored in a place where only the -account owner has access to. This can be achieved by having the data -stored locally on a machine the account owner has, or by using -cryptography which requires the account's owner explicit interaction to -decrypt it. The content should not be decrypted on the server, but -within the web-browser or client-application to ensure that a -potentially compromised service-provider can't leak the sensitive -information. - -- Identity claims are **encrypted by default** and can only be - decrypted by the account owner or other accounts explicitly given - permission to do so. -- Identity claims **must** be given access by the account owner to - e.g. let somebody else sign them. - -Note: There should be an extra effort by any **Data Vault** -implementation to protect identity claims. It is recommended to strongly -regulate and audit the emerging solutions to ensure a high level of -protection for citizens. - -### Self Issued Identity Claims - -These are used to make statements about an account to form an identity. Those -claims can be partially revealed on demand to other parties. Those -claims can also be protected by advancements in privacy technologies -like Zero-Knowledge-Proofs and ongoing advancements in key management. - -Identity claims are sets of [Verified -Data](https://pkc.inblock.io/index.php/Verified_Data) which follow a -structured data convention to claim or attest attributes to an account. -For example, an attribute could be the year of birth of an account -owner, or the legal name of an account owner. Claims should always be -atomic to allow the account owner to disclose them selectivity. -Different claims can be combined to represent a citizen ID or a -drivers-license. Other claims can be educational certificates, like -school certificates. - -Identity claims in the [Aqua Identity -Protocol](https://pkc.inblock.io/index.php/Aqua_Identity_Protocol) are -**always self issues**. This means that the first signature on the claim -needs to be from the private key which belongs to the account, i.e. the claim -is issued for. This proves account ownership. This means: - -- All claims can only be issued from the account which they make a - claim about. A claim belongs to it's origin account and can only be - managed from it's address. -- A claim can 'accumulate trust' by being signed by other accounts who - support this claim. -- Self-issuance protects accounts against spam, and the issuance of - fraudulent claims to an account without the knowledge of the account - owner. - -##### **Claim Attestation** - -Can be completed by a Trust Authority referring to the Identity Claim in -collaboration with the account owner, or a referencing statement. - -It is possible **to attest to a claim** by referencing the claim's -unique revision_verification hash within the attestation. This means you -can make statements about an account or about a claim without involving -the account owner in that process. An attestation contains a statement -about the referenced data set, and is expected to be signed by the -account who makes the attestation. This ensures there is clear account -attribution. Attestations without signature should be disregarded, as -they have no account attribution. - ---- - -## **Specification for the Aqua Identity Protocol** - -Policies for Self-Issued-Identity-Claims: - -- Syntax of Title: ``:`` -- Example: - [0xa2026582b94feb9124231fbf7b052c39218954c2:Birthdate](https://pkc.inblock.io/index.php/0xa2026582b94feb9124231fbf7b052c39218954c2:Birthdate) - -The title is not protected against changes, but the content of the page -is protected.**IMPORTANT:** Therefore, we **must** compare the page -stored **``,``**. Then reassemble the title to check if -they are consistent before proceeding with further validation of the -identity claim. - -Content of the page - -- **Account:** `` - - Is repeated to reassemble the title to check it. -- **Attribute:** `` - - Is repeated to reassemble the title to check it. -- **Value:** Is the value of the claim. E.g. '1889' for a year of - birth. - - The first revision **must** be signed by the account owner to - create a self-issued identity claim - - Values **must** not change within a hash-chain. If a value - changes, the claim will be marked as invalid with the revision - of the change. If a new attribute value needs to be defined for - an account, this is done through a new claim. - ------ - -**Claim issuance Process** - -1. Claim is created (based on template) -2. Claim is signed by issuer (first revision) -3. Claim is registered by issuer (optional, done via Claim Registry) -4. Claim is verified by authority to accumulate trust (this might - include the requirement to hold a revocation authority on a claim - registered via a Claim Registry) - -Trust-Chains with Identity Claims - -Will build a web of trust, which can be applicable not only for public -institutions, but also for commercial organizations and private -entities. - -### A trust chain of identity claims for educational certificates (example) - -1. The certificate is issued as integrity verified data via the Aqua - Protocol. -2. The recipient of the certificate registers the certificate as an - identity claim -3. The certificate is signed after it was issued as an identity claim - by a Trust Authority (e.g. the university professor) and the - university director's office (director) -4. The university professor holds trust claims from the university - director -5. The university director holds trust claims by the ministry of - education -6. The educational ministry of education holds trust claims by the - minister-president -7. The minister-president holds trust claims of a verified election - -The chain of trust is supplied by the party signing the statement. - -*IMPORTANT: **The authority who is given authority needs to prove -where their authority originated** **when they act in the function of -that authority.*** - -1. E.g. the professor needs to supply the claim of the university - entitling him -2. E.g. the university director needs to supply the claim of the - educational ministry -3. E.g. the educational ministry needs to supply the claim of the - minister-president. -4. ... and so on. - -# Verification Process - -1. Claim is presented -2. Claim integrity is validated - 1. How can you trust the content of a claim: Claim content needs to - be static. E.g. a given-name claim 'Jarred Maxim' cannot change, - even if there are many revisions to the page. If the static - content HAS changed, the claim is INVALID or at least only valid - until the point where it changed. In the case of such an - information change, a new claim needs to be issued. -3. Claim registry is validated (root trust) -4. Claim signatures are validated - 1. Comparison between signature time and validity of the signing - authority. Is the account authority still valid? - 2. lookup of authority claims from expected root trust? - -### Trust in Signatures - -If somebody signs an identity claim, we believe they do that to - -1. Vouch with their account for the integrity of the presented data. - This can be supported via an Authoritative Claim and a comment which - gets attached to the claim itself or is issued via an Attestation. -2. To verify the signature, we use an automated verification process. - This is done through implementations of an Aqua-Verifier like - [https://github.com/inblockio/aqua-verifier-js](https://github.com/inblockio/aqua-verifier-js) or - [https://github.com/inblockio/aqua-VerifyPage-chrome-extension](https://github.com/inblockio/aqua-verifypage-chrome-extension) - which also checks against the restrictions given by the Aqua - Identity Protocol or/and additional defined policies. -3. Add access rights to a claim by adding a Data Usage Agreement which - is enforced by the Guardian. Access rights can be restricted: - 1. to specific accounts - 2. to specific domain id's representing an instance of a Data Vault -4. Verification: The verification process considers which account it - signed, and what was stated with the signature, or with the - additional data added to the claim. To consider a claim valid, the - relationship between the verifying party and the Trust Authority who - signed it, is essential. Can the party be trusted? Why do I trust - this party? - 1. Claims can be either chained (cascaded into each other) and - offline verified, and/or online verified against an existing - Claim-Registry. In both cases a known trusted party account - reference point is required for the verifying party to trust. - -#### **Trust Authorities** - -are accounts which have an elevated trusted position. They issue -[Authoritative Trust -Claims](https://pkc.inblock.io/index.php/Authoritative_Claim) to give -legitimacy to a self-issued identity claim. - -Why do you trust a professor to issue an [Educational -Certificate](https://pkc.inblock.io/index.php/Educational_Certificate)? - -Because the professor is able to provide a trust chain, represented by a -chained [Authoritative Trust -Claim](https://pkc.inblock.io/index.php/Authoritative_Claim), proving -that he has authority to attest an [Educational -Certificate](https://pkc.inblock.io/index.php/Educational_Certificate) -with his signature. With his signature, he is increasing the trust of -the self-issued [Identity -Claim](https://pkc.inblock.io/index.php/Identity_Claim) to allow it to -have practical utility. - -### **Claim Registries** - -A claim registry in the context of the Aqua Identity Protocol is a -global registry to allow for real-time global claim revocation and -re-instantiation of Identity Claim's. This solves the problems related -and known to certificate revocation. The Claim Registry acts like a -global Claim Revocation List (CRL)[^5]. - -E.g. a driver's license can be revoked by a Trust Authority and later be -re-instantiated after the 'Punishment for driving too fast' is over. -Identity claims are either valid or invalid. The Claim Registry is -managing who can revoke / re-instantiate a registered claim. - -There is ongoing research and optimizations on privacy concerns to -reduce costs for on-chain Identity Claim. - -Implementation in Ethereum with Smart-Contracts (Solidity). All claims -are account bound. - -**Claim Registration Specification - Smart Contract Structure** - -- **``** as root trust of the self-issued - identity claim. A claim has to be a verified page, which is signed - and timestamped. If all are present, the next page-verification hash - entangles all of those properties and becomes the 'address' of the - claim. In the receipt of the publish process for the claim, there is - an attached receipt, and by writing the receipt into the claim, - there is also a new revision generated. This creates the second - revision of the claim, which entangles the signature and the witness - event with the hash-chain to make them immutable. -- **``** \[type:boolean\] of claim - - 0 - valid - - 1 - revoked - - - -- **``** \[type: date DDMMYYYY\]: if current date past - expiration date, the claim is considered expired and is not accepted - anymore -- **``** \[type:address\] an account which - updates the status of the claim, e.g. revocation or suspension of an - account -- **``** \[type:address\] list of - accounts which are authorized to update status of the claim other - than the owner. The owner has a special right to update the list of - revocation authorities to hold new addresses. ---- - - EXAMPLE: Claim Registration Data \[Receipt\] - -The presence of Claim Registration Data \[Receipt\] means that the claim -address (verification hash) has been written to a Claim Registry on a -Witness Network. - -Protocol: Aqua Identity Protocol Version 1.0 - -Registration Event: 1 - -- Domain ID: e9ece84189 -- Claim address (verification hash of self-signed claim): - 1db331add502cf1b1712468d1c3e5d66a0016a6f04885c5533619ffbb43fffb6dfa452e119d4bee7628e9792af69089d38d860a5f8d0708184bbb74b8cabdaf7 -- `` - - Merkle Root: - 7e9782fb8a6e749ef2ba48f8cd410b05335ba48b20ba42508efeb76add38b0f39e717e91381c8de34641af4c477c39fc169eaa0908dba25e0a54e8de615fcd00 - - Claim Snapshot Verification Hash: - 278f930a35d06d7b9d28aab37d402c147d1beffdbe53d212481c17ec686698e9469f9cf7d7d53b9a4435c4b99ca2e578b5dc5fec6c63cb802b540493fe927575 -- Witness Network: goerli -- Claim Registry Smart Contract Address: - 0x45f59310ADD88E6d23ca58A0Fa7A55BEE6d2a611 -- Transaction Hash: - 0xa572e8d6ef8d4a1bb3b5087680817e70bb79a0376c3a9be9e2c6b4d92df228a1 - Sender Account Address: 0xa2026582b94feb9124231fbf7b052c39218954c2 - ___ - -#### **Claim Revocation** - -**Traditional** **revocation:** - -- Traditional strategies for certificate revocation can be - applied.[^6] -- Most effective are short expiration dates where possible, due to the - lack of effective revocation processes for certificates without - global registries. - -**Using Distributed Ledgers** - -- Done via [Claim - Registry](https://pkc.inblock.io/index.php/Claim_Registry) - (indicates the global status of an identity claim to be either valid - or invalid) - -**Process:** - -- Locally completed (within the Self-Issued Identity Claim) by - changing the status to 'revoked' and signing by the issuer. This - adds a receipt to the identity claim, which is displayed when - verifying the claim. This includes the revocation transaction for - the revocation on the - [Identity-Registry](https://pkc.inblock.io/index.php/Identity-Registry) -- If there is a new claim which is succeeding the previous identity - claim[Claim - Registry](https://pkc.inblock.io/index.php/Claim_Registry), then - this is also noticed within the revocation receipt under - 'Successor-Claim: ``. - -Bulk Claim Registration (Should be part of Claim Registry) - -- To reduce costs during registration of the identity claims via a - [Claim Registry](https://pkc.inblock.io/index.php/Claim_Registry) - they can be clustered and registered together -- We use the - [SmartContract:Identity-Registry](https://pkc.inblock.io/index.php/SmartContract:Identity-Registry) - for this. To scale our efforts we utilize a variant of the - 'Domain-Manifest-Generator / Publisher' which is very similar. The - differences are in the selection of what can be published, and the - data structure which is published to the Claim Registry instead of - the witness smart contract. -- The Claim Snapshot Generator can only include ID claims of your own - `` namespace. -- The Claim Snapshot Publisher is registering all selected claims - (select them by page name (filter required) and will populate the - target - [SmartContract:Identity-Registry](https://pkc.inblock.io/index.php/SmartContract:Identity-Registry). - Every claim will hold the relative merkle-proof to show the path for - it's registration. - -Examples for **Identity Claims with Aqua:** - -- [Example Identity Documents with PKC and Data - Accounting](https://pkc.inblock.io/index.php/User:0xa2026582b94feb9124231fbf7b052c39218954c2) -- Reference:Example Identity Documents (Research) - -# FAQ - -1. How to find [Claim - Registry](https://pkc.inblock.io/index.php/Claim_Registry)'s? By - following the chain of trust of authoritative claims and validating - them one by one. -2. How to check if authority is still valid and how to find an - authority registry? As before, by reading the chain of trust and - looking up the status of the related identity claims. -3. How to visually check authority dependencies? It is possible to - visualize the links of links of links to represent the chain of - trust. - -Important References: - -- [Basic intro into - DID](https://www.youtube.com/watch?v=gWfAIYXcyH4&ab_channel=Okta) -- [Basic intro into - DIDComm](https://www.youtube.com/watch?v=8c7yRTENqSc&ab_channel=DecentralizedIdentityFoundation) -- [W3C Verified Data - Model](https://www.w3.org/TR/vc-data-model/#claims) -- [Revocation List 2020](https://w3c-ccg.github.io/vc-status-rl-2020/) - A privacy-preserving mechanism for revoking Verifiable Credentials -- [DIDCOMM implementations and - use-cases](https://github.com/decentralized-identity/didcomm-messaging) -- [DIDkit](https://github.com/spruceid/didkit) - -Thought leader Christopher Allen: - -- [Self-Sovereign-Identity-Principles](https://github.com/WebOfTrustInfo/self-sovereign-identity/blob/master/self-sovereign-identity-principles.md) -- [A bitcoin based SSI infrastructure - prototype](https://github.com/BlockchainCommons/Gordian) - -### References - -See Implementation Specific Aqua Identity Protocol Implementation in MWe - -1. [Identity Foundation](https://identity.foundation/) - -2. [W3C (World Wide Web Consortium)](https://www.w3.org/) - -3. [Web of Trust](https://www.weboftrust.info/) - -4. [Self-Sovereign Identity Principles - GitHub](https://github.com/WebOfTrustInfo/self-sovereign-identity/blob/master/self-sovereign-identity-principles.md) - -5. [Certificate Revocation (CRL) Explained - SecureW2](https://www.securew2.com/blog/certificate-revocation-crl-explained) - -6. [PKI Certificate Revocation Process Explained - TechNet](https://social.technet.microsoft.com/wiki/contents/articles/34071.pki-certificate-revocation-process-explained.aspx) - diff --git a/versioned_docs/version-1.1.0/Protocol/aqua-name-resolution.md b/versioned_docs/version-1.1.0/Protocol/aqua-name-resolution.md deleted file mode 100644 index ed161077..00000000 --- a/versioned_docs/version-1.1.0/Protocol/aqua-name-resolution.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Name Resolution" -linkTitle: "Name Resolution" -weight: 3 -sidebar_position: 3 -description: > - ANS is used to hashes of various types to human readable names ---- - -Aqua Name Resolution (ANS) is used to resolve hashes of various types to human readable names. - -The following hashes are resolved by the ANS: -* wallet-addresses to names, organisations an aliases. -* genesis_hashes to titles. -* domain_ids to registered endpoints of that domain. - -See the [reference implementation](https://github.com/inblockio/aqua-verifier-webextension/blob/main/src/name_resolver.ts). diff --git a/versioned_docs/version-1.1.0/Protocol/assurance-levels-aal.md b/versioned_docs/version-1.1.0/Protocol/assurance-levels-aal.md deleted file mode 100644 index d7873531..00000000 --- a/versioned_docs/version-1.1.0/Protocol/assurance-levels-aal.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Assurance Levels (AAL)" -linkTitle: "Assurance Levels" -weight: 4 -sidebar_position: 4 -description: > - Highlights the levels of assurances you can receive by using technology provided in the Aqua reference implementation. ---- - -How safe are the wallets to used? - Current PKC Pilot - relating to the -'Authentication assurance level's (AAL)' according to the World Bank -standards: - -See short presentation [Aqua_PKC_-_Wallet-Security.pdf](https://github.com/inblockio/aqua-docs/files/7885411/Aqua_PKC_-_Wallet-Security.pdf) - -### Level 1 - -The Metamask wallet alone has a low (level 1 ) level of assurance. -MetaMask is the most common browser blockchain wallet applications on -the web and their developer teams strive for increased security to keep -crypto-assets of their 10 Million+ Users safe. - -### Level 2 - -Metamask offers integration with Hardware-Wallets which raises the level -of assurance by having at least 2 authentication factors (e.g., a token -with a password or PIN) to min. level 2. The Hardware-Tokens are build -to be temper proof. - -### Level 3 - -- It is possible to integrate the different layers of security at once - -with Metamask (Password Protection) a hardware-token (temper proof) with -PIN a one-time-password generator based on your mobile-phone -(recommended is a hardened mobile phone which also uses biometrics for -highest security) requires implementation of one-time-password -authentication for logins after wallet-authentication see -[https://github.com/inblockio/micro-PKC/issues/37](https://github.com/inblockio/micro-PKC/issues/37) - -- Other high security options allow multi-signature logins with - smart-contracts requiring multiple parties to confirm the operation - to be executed. This can be defined based on the smart contract to - extreme security as each of the layers mentioned above can be added - to each party being involved in the multi-signature event to open a - PKC or to SIGN a verified page within the PKC or to witness a data - set via a witness network. - -- The mentioned security model is not dependent on the security of - Metamask. If Metamask is hacked it will not allow to compromise the - model above as the security of the private key of the hardware token - is preserved. diff --git a/versioned_docs/version-1.1.0/Protocol/data-accounting.md b/versioned_docs/version-1.1.0/Protocol/data-accounting.md deleted file mode 100644 index 68f43840..00000000 --- a/versioned_docs/version-1.1.0/Protocol/data-accounting.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Data Accounting" -linkTitle: "Data Accounting" -weight: 5 -sidebar_position: 5 -description: > - Introduces the concept of Data Accounting ---- - -We first exchanged goods, then we used means to exchange goods, such as -shells and coins. Today we use money. We have transitioned to a world where -we present and exchange data to receive goods and services. - -The system for accounting provided by Luca Pacioli, the double-entry -accounting is the foundation of our work. We present a modern -way to do double-entry bookkeeping for data. - -Data accounting is the process of metering data in a standardized unit -of exchange, and converting it into a form which can be exchanged to -provide data symmetry between accounts. - -The unit of exchange is not measured in a numeric value as found in cash -systems. Data have multi-dimensional value, which means they depends on your -perspective and your relationship to data. This determines how much this -data-set is worth to the individual. - -The standard measure of exchange is a hash, representing the state of the -data. A SHA3-512 hash always has 128 characters, regardless of the size -of the data it is representing. - -## Metering data / anchoring data in space - -To meter data, we can refer to them using a digital fingerprint, i.e. their -hash. This allows us to refer to the data in a consistent form. The hash has -captured sufficient entropy to be unique, so it becomes a unique resource -locator. This ensures that it is always deterministic to what data we relate -to. - -## Accounting data / anchoring data to account - -The second step is that the data is attributed to a specific account. This is -achieved by using cryptographic signatures known as [public/private key -encryption](https://en.wikipedia.org/wiki/Public-key_cryptography). The public -key acts as a unique account address. It is necessary that the accounts in use -are globally unique, so there is no realistic probability of a name collision -between accounts. This ensures that no data is attributed by mistake to two -accounts or more. - -## Proof of existence / anchoring data to time - -The last step to account data is the usage of a cryptographically secure clock, -so we know which data were witnessed first. Data can be replicated, so the -value lies within the social implications of the message within the published -data. This cryptographic timestamping allows us to determine the first account -to witness the data. The most secure witness-networks which provide a service -for cryptographic witnessing of datasets are Bitcoin and Ethereum. The first -known examples of partial data accounting were done by [Surety in -1995](https://www.vice.com/en/article/j5nzx4/what-was-the-first-blockchain) and -[OpenTimestamps in -2012](https://petertodd.org/2016/opentimestamps-announcement). - -## Practical accounting - -The accounting book in the data accounting age is a 'data vault' which is -controlled by one or multiple accounts. This allows both personal data vaults -or organizational data vaults. - -A data vault is controlled by a cryptographic wallet. The vault has the -objective to govern the data for the account owner who is associated with the -vault. - -The vault provides a capability to export and import data, so it can be -exchanged between data vaults. This allows for collaboration at scale, and the -usage of data as a means of exchange. - -*Please contribute to this article (fixing errors) by exporting it and -sending it back with your improvement to community\[at\]inblock\[dot\]io.* diff --git a/versioned_docs/version-1.1.0/Protocol/data-governance.md b/versioned_docs/version-1.1.0/Protocol/data-governance.md deleted file mode 100644 index 96d59991..00000000 --- a/versioned_docs/version-1.1.0/Protocol/data-governance.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: "Data Governance" -linkTitle: "Data Governance" -weight: 6 -sidebar_position: 6 -description: > - Introduces the concept of Data Governance ---- - -Author: Ben Koo -E-Mail: koo0905\[at\]gmail\[dot\]com -Year: 2021 - -Data Governance identifies how to manage the value of data. A well-known -turning point in history was the publication of [Luca -Pacioli](wikipedia:Luca_Pacioli "wikilink")'s [Summa de -arithmetica](wikipedia:Summa_de_arithmetica "wikilink"). This -encyclopedia of mathematics, had 26 pages worth of text on what we call -[Double-entry -bookkeeping](wikipedia:Double-entry_bookkeeping "wikilink"). This became -the foundational literature for -[accounting](wikipedia:accounting "wikilink"), the progenitor of using -data to assign value to accounts, and henceforth gave birth to the -practice of data governance. - -# Accounting as the foundation of Data Governance - -According to historian Jane-Gleeson White[^1][^2], Pacioli's double -entry book keeping idea influenced the development of arts, sciences, -and capitalism. [Double-entry -bookkeeping](wikipedia:Double-entry_bookkeeping "wikilink") as a -rigorous approach to ensure data integrity, not only influenced the -practice of the accounting profession, and it had a significant impact -on the the formulation of [Hamiltonian -Mechanics](wikipedia:Hamiltonian_Mechanics "wikilink"), which is a -foundational theory of both classical mechanics and quantum mechanics. - -Sir [William Rowan -Hamilton](wikipedia:William_Rowan_Hamilton "wikilink") wrote a paper[^3] -cited many many scholars to demonstrate that many ideas about complex -algebraic manipulation that laid the foundation of scientific -revolutions are based on the formulation of creating accountable -mathematical formulation strategies through double entry book keeping. -[David Ellerman](https://www.ellerman.org) had a paper that explains the -powers of double entry bookkeeping in sciences[^4]. The notion that -creating public addresses for transactions amongst different accounts -has been documented as a scientific theory on Double Entry Book-keeping. -This book can be found online[^5]: - -## Digital Governance - -Given the intellectual roots of data governance have strong linkages to -mathematics and accounting, it is only after the introduction of -[personal computing devices](wikipedia:personal_computer "wikilink"), -and later the ubiquity of [Internet](wikipedia:Internet "wikilink") -access that made data governance an idea relevant to public affairs. The -argument is that many people's basic privacy and property rights may be -challenged by people who have access to data collection and deployment -technologies. Imminent threats such as fake news, big brother monitoring -practices, identity thefts, and crypto currency issuance are already -challenging the stability of the existing social fabric. These type of -social debates are often related to the ideas of [Digital -governance](wikipedia:Digital_governance "wikilink"). At this time, -digital governance has not yet become a mature field of study, and it -needs to be grounded in simple principles, so that it can be -transparently practiced with local adaptations. - -## Conceptualization of Data Governance - -Beside the notion of digital governance, data as an asset class must be -kept accountable, so that it can be evaluated, and transferred with an -objective operational framework. Knowing how to organize data in formats -that satisfy consistent abstraction strategies, such as [Universal -Resource Identifier](wikipedia:URI "wikilink") and [Universal Resource -Locator](wikipedia:URL "wikilink") are important starting points in this -field. Earlier work in data governance in a web of [hyperlinked -media](wikipedia:Hyperlink "wikilink") can be traced back to [Project -Xanadu](wikipedia:Project_Xanadu "wikilink") by [Ted -Nelson](wikipedia:Ted_Nelson "wikilink"). - -More recent more publications in this fields are -[Lessig](wikipedia:Lawrence_Lessig "wikilink")'s [Code -v2](https://lessig.org/product/codev2)[^6] and soon to be published work -of [Alex Pentland](wikipedia:Alex_Pentland "wikilink")'s [Building the -New Economy](https://wip.mitpress.mit.edu/new-economy)[^7]. - -## References - -[^1]: J. Gleeson-White, Double Entry: How the merchants of Venice shaped - the modern world--and how their invention could make or break the - planet, publisher Allen & Unwin, ``, November - 2011 - -[^2]: J. Gleeson-White, SIX CAPITALS, or CAN ACCOUNTANTS SAVE THE - PLANET?, publisher Allen & Unwin, ISBN-10:9780393246674, February - 2015 - -[^3]: Hamilton, S.W.R. (1837) Theory of Conjugate Functions, or - Algebraic Couples: with a Preliminary and Elementary Essay on - Algebra as the Science of Pure Time, Transactions of the Royal Irish - Academy, 17pp. 293–422. - -[^4]: David Ellerman, On Double-Entry Bookkeeping: The Mathematical - Treatment, [https://arxiv.org/pdf/1407.1898.pdf](https://arxiv.org/pdf/1407.1898.pdf) - -[^5]: J.C. Colt, The Science of Double Entry Book-keeping, online - media:[https://core.ac.uk/download/pdf/56693696.pdf](https://core.ac.uk/download/pdf/56693696.pdf), last accessed: - May 4th, 2021 - -[^6]: L. Lessig, Code: And Other Laws of Cyberspace, Version 2.0, - Publisher: Basic Books, 2nd Revised edition, December 2006 - -[^7]: Alex Pentland, Alexander Lipton, and Thomas Hardjono, Building the - New Economy, MIT Press, Work in Progress, - [https://wip.mitpress.mit.edu/new-economy](https://wip.mitpress.mit.edu/new-economy) diff --git a/versioned_docs/version-1.1.0/Protocol/delegated-witnessing.md b/versioned_docs/version-1.1.0/Protocol/delegated-witnessing.md deleted file mode 100644 index be7135f6..00000000 --- a/versioned_docs/version-1.1.0/Protocol/delegated-witnessing.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Delegated Witnessing" -linkTitle: "Delegated Witnessing" -weight: 7 -sidebar_position: 7 -description: > - Describes the process of sending domain snapshots to remote data vaults. ---- - -Describes the process of sending a domain snapshot to a remote data vault for -witnessing. The domain snapshot is then included in the witnessing event and -sent back to its original data vault. This makes the domain snapshot behave -like an ordinary portable hash chain that can be witnessed. The relative path -of the Merkle proof is used as a prefix for all other included portable hash -chains included in the domain snapshot. diff --git a/versioned_docs/version-1.1.0/Protocol/design-principles.md b/versioned_docs/version-1.1.0/Protocol/design-principles.md deleted file mode 100644 index 010612af..00000000 --- a/versioned_docs/version-1.1.0/Protocol/design-principles.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: "Design Principles" -linkTitle: "Design Principles" -weight: 8 -sidebar_position: 8 -description: > - Lists the design principles underlying our reference implementation ---- - -The following design principles pertain to Aqua reference Implementation `PKC` - -## Private is Default - -The principle default to private is that no data of the PKC [Data -vault](whitepaper.md#data-vault) is shared without it being explicitly -authorized by the associated account. - -### Domain Access Levels - -Levels of access are: - -Private: Only the account owner has access to files and services -initialized by his account. Agreement / Permissioned access: The Account -owner grants other Account's access to files or services based on -verifiable contracts which are themselves written with the Aqua Protocol -to ensure they are forgery-proof and therefore safe. Public: Other -Account's have access to the file or service without agreements. - -## Offline Capability - -The PKC Data Vault follow's the principle of being able to run and be -functional without internet connection after setup or through -installation based on local installation files. - -This allows PKC setups to be kept offline from any internet connectivity -while still functional. This can provide the required assurances for -very sensitive data. - -## Separation of Account and Service - -Concern: There is a trend in the DIF/WC3 Identity space that some -players like to accumulate personal identifiable data (PII) inside of -Wallets. We think this is a ill-fated direction and there should be -a clear separation between account and service. Wallets should not hold -personal identifiable data. - -Benefits: - -- If the service gets hacked, no account related data is leaked if - it's not stored. -- Account is not compromised, as there is no password saved within the - service with Password free login. - -#### [Wallet](whitepaper.md#wallet)'s have one job. Keep private keys safe! (Account Management) - -- Should be stupid, simple, safe! -- Allowed operations: - - Signing - - De- / Encrypt - - Publishing transactions to service (e.g. witness networks) -- Ability to choose “high level of assurance” depending on the stakes - associated with the account(s) managed by the wallet -- Takes care of key recovery mechanisms - -#### [Data Vault](whitepaper.md#data-vault) (Service)- Has one job: keep the data safe! - -- [Principle: Offline - Capability](Principle:_Offline_Capability) so it can run - offline; works offline on local machine -- All significant actions authorized and managed though the wallet -- Should offer good tooling for data storage and manipulation -- Strong access control: By [Principle: Default is - Private](Principle:_Default_is_Private) which means data - is only accessible by the owner. -- Data is well protected - - The Data Vault should apply additional security features to keep - the data safe. - - e.g. Encryption of files / databases if service is not used. - - e.g. Encryption of pages with web-decryption (allowing for - End-to-End Encryption). -- Capabilities for sharing and publishing data -- Offers full Backup and Recovery mechanisms to move data freely - - [Principle: Data - Portability](Principle:_Data_Portability "wikilink") - -## Signature Login - -We do not use passwords for login but instead we use a signature of a -private key to authorize access to a service. This increases security -and does not require the user to remember a password, creating a better -user experience. - -Pros: -\* Account owner uses his wallet to complete a signature challenge for -login. With this challenge he proves that he owns the private key to a -public key. If the public key is registered as an account at the -service, the account is granted access. - -- The password can't be leaked as it does not exist. -- Very high security - -Contra: -\* Requires access to the wallet which holds the private key to -authorize access - -- Not commonly understood by users as a way to login (new process) - -## Principle: Data Portability - -The Principle of Data Portability means that the -[Account](whitepaper.md#account) owner can instruct the Service to Export -all data associated with the [Account](whitepaper.md#account) and is free -to move this data to a new service which is capable of importing the -data. - -### Implementation Specifics - -In PKC's this is guaranteed by: -\* providing a Backup and restore procedure which allows to move data -between PKC's and restore them in case of a required recovery. - -- providing a file import and export function -- providing an import / export API - -Furthermore we ensure with the development of the MediaWiki Data -Accounting Extension, that the data is still compatible with the legacy -import / export (which means only the text not the verification data is -imported / exported. diff --git a/versioned_docs/version-1.1.0/Protocol/guardian.md b/versioned_docs/version-1.1.0/Protocol/guardian.md deleted file mode 100644 index d0954895..00000000 --- a/versioned_docs/version-1.1.0/Protocol/guardian.md +++ /dev/null @@ -1,374 +0,0 @@ ---- -title: "Guardian" -linkTitle: "Guardian" -weight: 9 -sidebar_position: 9 -description: > - Shows access and transport layer logic used to interconnect data vaults ---- - -# Context - -It is highly problematic to expose sensitive data, such as personal -identifiable data, to the internet. The service who hosts that sensitive -data, needs to be compromised only for a short amount of time, to leak -all the data. Often caused by configuration mistakes or by -vulnerabilities being present in the used technology stack. - -We can't effort to have leaks on personal-identifiable data in data -vaults. To raise the bar on making attacks difficult and reducing the -chance of leakage of information, we introduce the Guardian as a extra -security layer to protect services like the PKC from attacks. - -# Summary - -The Guardian is a software which manages the boundaries of your digital -domain. Guardians are used to connect to secure transport networks -(HTTPS, Matrix Network, Didcomm) and publishing networks (e.g. -Swarm.eth). The Guardian is used to build trusted connections to other -Guardians via trusted transport-layers to exchange data with them. As -the Guardian connects to other Guardians, it also manages all -connections to services in it's domain and access to those services. - -# Goal - -Secure all services behind the Guardian from attacks and unauthorized -access. Keep the data vault and it's data private and safe, while -enabling the ability to exchange data with other Guardians. - -## How - -Enforcement is handled on each connection and each data set so that -services behind the Guardian are never directly exposed. This makes the -Guardian the most security sensitive component in the Aqua reference -implementation, as we expect the Guardian to handle all incoming and -outgoing traffic. The Guardian enjoys additional attention and effort to -be up to it's task by hardening it and applying security best practices -to ensure that it is fulfilling it's security promise to keep services -behind the Guardian safe. - -Every transaction leaving or wanting to enter your domain will be -supervised and checked by the Guardian. The core functionality of the -Guardian is a library to verify the Aqua Protocol. Only if the -verification succeeds additional steps are introduced to make decisions -how the data is handled. - -This allows the Guardian to read and understand Aqua verified data. This -allows for the implementation of a wide set of behavioral rules and -offers the opportunity to create various 'Smart contract' languages on -top of it. - -The Guardian verifies a file, reads its contents and checks it's -permissions to classify if an action is considered legal or illegal, -permitted or denied. Basic functionality for a Guardian can be compared -with a traditional firewall, or a application firewall but is much more -sophisticated to manage access on the data-level. - -# Terminology: - -Proving ownership over a domain by signing the domain ID with an -self-issued identity claim which is also registered in a claim registry -to ensure nobody claims to have owned that domain before by manipulating -the digital clock and faking an earlier owner-ship claim over the -domain. - -## **Permission Agreements** / Data Usage Agreement / Access Rights - -are contracts which represent the terms and conditions under which files -and/or services are shared with other accounts and/or their digital -domains. - -By nature those Permission Agreements will be compiled through pages and -stored as files. To form an agreement, the other party must be notified -about new resources as they become available. For example, when we share -a page with another account. To complete a permission agreement, the -counter party has to sign the permission agreement or reject it. If the -permission agreement is signed, the other party enters a contractual -relationship in which they will be liable for any agreement violates -executed from their digital domain. - -# Processes - -## Domain Handshake -Establish trust between two Aqua domains. For this we have Alice and Bob which -want to establish trust between their domains. They both have a Guardian in -place to protect their data vaults. - -Steps: -1. Alice: Create access contract: I `` want to connect from my `` to a `` controlled by `` with my `` via the following channel: DNS/HTTPS via `alice_Guardian.domain.com`. -2. Alice: sign contract -3. Alice: SEND contract send the page via 'mail' / 'matrix' whatever to the remote PKC instance. -4. Bob: veries the contract contract and imports it -5. Bob: extend contract: I `` connect my PKC `` to your PKC `` via my Guardian_endpoint ``. -6. Bob: sign extended contract: Bob uses his wallet to sign his extended contract. -7. Bob: send extended contract TO Alice: Bob sends his Contract to his Guardian. -8. Bob's Guardian: Verifies and sends the contract to Alice Guardian. -9. Alice Guardian: - Guardian verifies all data - Sends OK back to Bob's Guardian - Sends Updates contract into Alice PKC - Waits for Bob's Guardian to request available pages -10. Bob's Guardian requests a list of pages: ' What pages do you share with me?' -11. Alice Guardian: Returns list of accessible resources for Bob - -## Example: Sharing a File - -Target: Sharing a file with another account. Using two Aqua data vaults -with their two Guardians to manage access to them. We assume the -Guardians already have executed a handshake to enter a trusted -relationship. We also assume, that the file should underlay access -basedon account restrictions and domain restrictions. - -**Example 1:** Sharing a file **without additional** constrains with -another account. - -Alice wants to share her page 'My secret research' with Bob. Their -Guardians have already formed a trusted connection. What Alice needs to -do now is to add a sub-page with an immutable link under the 'My secret -research' page and define access. To be able to define access Alice -needs to have a claim over the ownership over the domain she is sharing -from. - -Alice creates an Access Permission for the whole page or for a single -revision by creating a page with the following syntax: - -- ``:access_contract - - To give access to the whole page with all it's revisions. - -- ``:access_contract - - To give access to a specific revision. - ----- - -**Content of the page:** - -I Alice `` give access to Bob `` - -- option 1: to the whole page including it's history `` -- option 2: to the following revision ``'My secret - research' - -**Additional one-sided conditions:** - -- This access contract expires in 7 days - -This contract will come into place with my `` signature. - -The Guardian will react to a specific syntax of pages holding contracts, -agreements and access rights to adjust his network access rights -accordingly to it. Alice-Guardian will respond to the question what -resources are shared by Bobs-Guardian with the answer that there is a -new page available according to the access contract which now gives -Bobs-Guardian the ability to query the content of 'My secure research' -from Alice according to the contract. Depending on Bobs-Guardian -setting, the Guardian might automatically load the resource and forward -it into the post-box of Bobs Data Vault. - -**Example 2:** Sharing a file **with** constrains forming a **contract** -to do so. - -Same as 1 expect that for the contract to come into place, Bob needs to -sign the contract from Alice containing additional constrains. - ---- - -**Content of the page:** - -I Alice `` give access to Bob `` - -- option 1: to the whole page including it's history `` -- option 2: to the following revision ``'My secret - research' - -**Under the following conditions:** - -- Do not share outside your domain `` -- Do not share with any body else (Bobs domain can't have another - account registered to it, if there is an account registered the - Guardian of Bob will say that Bobs domain does not fulfill the - requirements to establish this contract. -- Do not modify it. -- Delete it after 7 days. - -For this contract to be valid, signatures of first Alice and then Bob -need to be present. This means, after Alice signed the access contract, -the contract is a new available resource to Bob to be loaded. Bob can -now sign the resource in his domain and return the contract. Leading to -the contract send back to Alice domain and being updated there. Bob now -gets access to 'My secret research' which has been updated as well, to -contain via an immutable link the access contract. - -Permission Templates, Complex Permissions (Groups and more) - -It is possible to apply complex permissions based on templates, or and -connecting multiple access contracts by using - -- instead of this syntax ``:permission_agreement -- the following the syntax ``:`` in - which the `` contains a list of sub-pages with access - contracts which can be used to apply access via permission-objects - which are represented by the `` page object. - -1. Alice wants to -2. If the user wants to propose changes to the page, he will send an - updated PAGE FILE to the OWNER of the PAGE. -3. The owner can decide to ACCEPT the changes. Or to include the - changes in the HISTORY File, but not COMMIT them. Or to NOT include - the update of the PAGE, and disregard it. - ---- - -### Specifications: - -The Guard Daemon checks if there is digital contract present in his -domain. Those contracts set permissions for allowing a counter party to -access a service or resource (like a file or a page, or a revision). -It's also defining the constrains under which permissions access is -given. In this case it requires the digital signature of the receiving -party for the agreement to come into place and be valid. - -Guardians have administrative access to the services they manage. -Therefore they can supervise the activities of services and use them as -triggers to e.g. provide access according to a set permission without -additional user action. - -# Guardian Components: - -APIs -- System-API to control a service via a service specific library. Each - services will have their own control-library and control API to - create an abstraction layer which allows for a unified control logic - in the Guardian. - - E.g. an account is allowed to access a service - - E.g. a resource is shared with an account - - E.g. a trust relationship between two services is established - (based on an agreement between two accounts) to exchange data - - **Implementation Specific PKC:** All interactions for system - interaction with MediaWiki / PKC - - Execute Actions: Move, Update, Edit, Delete Pages - - Request send to the Guardian: Verify a specific page or a - list of pages - -- **Data-API** to retrieve Aqua-Data between a service and the - Guardian, or between two Guardians. - - Send data to import API - - Read data via export API - - **Implementation Specific PKC:** Read special Pages used to - give access e.g. Data Usage Agreements, Permission - Agreements - -- **Aqua Verification Library** to be able to verify incoming and - outgoing data - - implementation of the 'external-verifier' in e.g. GO, Typescript - or Javascript (current) -- Account-Registry (Holding the list of trusted keys and the - relationship between them) - - This includes defined 'trusted accounts' -- Session-Handler/Registry (Acts like Stateful-Firewall on the - page-object level to mange imports / exports). The Guardian verifies - incoming and outgoing data and constructs sessions based on it. -- Guardian Policies: Are sets of rules followed and enforced by the - Guardian. This includes set of rules used to protect the domain from - unauthorized operations and access. Part of that are page access - permissions which are managed by the [Data Usage - Agreements](Data_Usage_Agreement "wikilink"). - - ``:`` -- Transport Layer API's / Sub-Modules for connectivity to distributed - services - - The Guardian-to-Guardian communication handler (via DNS/HTTPS - transport) - - Ethereum Integration, Ethereum Handler (As a witness Network) - - Matrix Integration, Matrix Handler (As a restrictive/ - permissioned transport layer) - - Schwarm Integration, Swarm Handler (As a publishing network) - -# Guardian-Integration-Services -The Guardian has a modular design to support integration with many services and -transport layers. - -## Web (HTTPS / DNS) Integration Goal: Have a -handler to connect web-facing Guardians with each other in a safe way. Be able -to run guardian procedures via two public Facing guardians which use a public -DNS name and HTTPS to interconnect with each other. Guardian procedures are: -Guardian handshakes to establish trust or remove trust Request or Send portable -Hash-Chains based on access rights between each other - -## Ethereum Node - -Integration Goal: Connect to a self-hosted or remote Ethereum Node. Option 1: -Configuration via Alchemy (Providing Keys) via Special:DataAccountingConfig -Option 2: Implementation of Ethereum Node via ./setup --ethereum-node (provide -container) Configuration of Connection to RPC Ethereum node via address (if in -same network) The Wallet can be directly be connected to a local Ethereum node -via RPC to avoid meta-data gathering of large providers, like INFURA which -could potential track which IP address has created which Ethereum Transaction -with which Metamask-Wallet, leading to a de-pseudonymousation of the user. ### -Ethereum Node Handler Goal: Accelerate lookups of the Guardian via caching -Every-time a witness contract is called, the Ethereum Node Handler will start -to cache the all Ethereum-Witness events of that Witness-Contract and Index -them in it's database. This will reduce access times to ms vs potential seconds -in lookup times, making the Guardian more performant and responsive. ## Matrix -Node Integration Goal: Connect to a self-hosted or remote synapse-server -(MATRIX) Node. Configure a remote matrix server or a local one via Guardian. -Implementation of Matrix-Node deployment via ./pkc setup --matrix-node (provide -container). - -### Matrix Node Handler - -Context: We use Ethereum Wallets as Identity-Anchors as they are globally -unique addresses (which are collision free) broadly adopted with supported -hardware ledgers as secure hardware elements with an existing fast moving -ecosystem for further development. They act as 'web-based' PGP-like utilities -which do not need any Blockchain-Interaction for Signing messages and can be -used as a valuable off-line capable identity anchor. With this step we separate -Identity and Service; even in case of compromising the computer of the user or -by having a breach of secrets in the Element-Client the Identity would be safe -(in case a hardware wallet would be used). This also drastically reduces attack -surface to phish a users credentials; as there is no Password-Login there is no -way to steal the password to impersonate the user. All security assumptions of -the User-Identity come back to the security of his private key. For the -Kolibri/PKC project this is the foundation for using wallet-addresses as -Identities to route traffic with matrix bots between PKC's. The following -actions are required to use the Ethereum Wallet as a strong Identity Anchor -within Matrix. - -This requires the following functionality: -* Register the user via an Ethereum wallet address (successfully piloted by inblockio) -* Detect that it is an Ethereum Wallet-Address; Verify integrity of address with the Ethereum Wallet-Address Checksum (TBD) -* Make username not changeable (Done via Matrix settings,successfully piloted by inblockio) -* Wallet login with Web-Wallet Metamask via OIDC (Open ID Connect) (successfully Piloted by inblockio) -* Verify Ownership of the Wallet by doing an Element-Client side Signature Challenge to the User. Challenge resolved by signing a message with sufficient entropy to not be ever the same (to protect against leakage) with the private key via the Ethereum -Metamask Webwallet (or a connected Hardware-Wallet) -* Implement a User-to-User request of proof of Identity Users / Server can challenge other users to proof that they hold the private Wallet-Key by triggering the Signature Challenge to the User; After the challenge is done, the requested party is provided with all information to do a manual verification of the signature (the Message which was -Signed, the Signature, the used method used for the signature) - -### Matrix-BOT - -Context: The Matrix-Network communicates with the PKC through the Guardian who -will manage all access to the MediaWiki service. The Guardian uses a Matrix-Bot (to -handle the communication) and a Matrix-Integration (to be flexible to use a -private synapse or a remote synapse server) to interact with the Matrix Network -as a permissioned transport layer. - -Referenz-Implementation: -Suitable options for a matrix-integration are 'go-lang' or 'rust'. Guardian -next generation Guardian will be written in Rust, so integration of security -relevant components would be preferably in Rust and Webassambly. A central -point to configure the guardian to connect to matrix and other services needs -to be provided. The matrix server is connected to the guardian with a service -bot which is able to open rooms to exchange revisions between PKC’s. - -Required Functionality of the Matrix-Bot: -* open new room for user (required) - to share resource invite / remove other -users to/ from room (required) - to set permissions who can read -* shared resource close room (required) - after resource share is revoked join a -room the user is invited too (by other matrix-bot) -*'accept invite' check for -challenge (provided via text from remote Guardian), leave room if challenge is -faulty and block user (required) delete? room / delete history? -Note: Use matrix only as channel not as storage (optional) preferably the -history of the channel is not kept -* post content of (mediawiki API query results from the Guardian) into a room -* (required) read content of room (send it to the Guardian for verification, - before it's send to the import API) (required) - diff --git a/versioned_docs/version-1.1.0/Protocol/immutable-hyperlinks.md b/versioned_docs/version-1.1.0/Protocol/immutable-hyperlinks.md deleted file mode 100644 index e0b68f9f..00000000 --- a/versioned_docs/version-1.1.0/Protocol/immutable-hyperlinks.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: "Immutable Hyperlinks" -linkTitle: "Immutable Hyperlinks" -weight: 10 -sidebar_position: 10 -description: > - Shows how the Aqua URI's can be used as immutable links. ---- - -Traditional hyperlinks are usually -[URL's](https://en.wikipedia.org/wiki/URL) based on the -[DNS](https://en.wikipedia.org/wiki/Domain_Name_System) structure. - -This allows the resource to be routed via DNS and specified via the URL -on the remote server. - -The limitations of URL's is that they are not expressing a specific -state of the resource they represent. There is no way to verify if the content -of the page is consistent with the content of the page who send a URL. -For news pages this means that the content of the page could have changed. E.g. -two visitors of the same news page could see two different pages. - -We need a better way to hyperlink so it's sure, that what is linked -is consistent across domains and users. Therefore we introduce Aqua URI's which are -used to enable the receive to verify the state of the resource. - -Goal ----- - -Use Immutable Hyperlinks as Unique Resource Identifiers (URI's) to allow -a consistent referenciation of resources with the ability to verify them with the AQP. - -Success Criteria ----------------- - -A Immutable Hyperlink schema which links to a specific state of a -resource. Instead of a stateless hyperlink we use verification_hash as a -URI which acts as the checksum to verify the retrieved revision. - -Input ------ - -- file upload wizard is executed with file-data and description as - input -- file is stored with in the service triggering a hook leading to the - calculation of -- verification_hash (calculated with the file as input for - content_hash) which is stored in the revision_object (file or - database) - -Output -###### - -When linking the file it's displayed in the following format: \[SHA3-512 -Hash\|Descriptor Text\] - -Boundary conditions -------------------- - -- File is too big to be hashed. We support currently up to 50 MB. -- File can't be hashed for some reason (error during the process to - due an unexpected code execution) -- File is empty (has no content) - -Implementation --------------- - -We create Immutable Hyperlinks by moving from URL's to sha3-512 hashes as -URI's. These URI's are globally unique and therefore collision resistant -as the namespace is sufficiently large. By using the hashes as links we -also refer to the state of the resource. As the hash is the -verification_hash of the resource it allows us to verify the integrity -of the resource with it. - -We are referring to files with their SHA3-512 hash in this format -\[SHA3-512\|human_readable_filename\]. Displayed is the human readable -filename white it's stored with the full SHA3-512 hash which allows us -to be used as Immutable Hyperlinks. - -To allow routing between resources we can add the `` as a -prefix to the `` resulting in the following syntax: - -`example: aqua:///` - -Note: Implementatstion specific to aqua-PKC: -- The verification_hash is stored in the content-slot 'transclusion hashes' with the internal links which referne the resource. diff --git a/versioned_docs/version-1.1.0/Protocol/whitepaper.md b/versioned_docs/version-1.1.0/Protocol/whitepaper.md deleted file mode 100644 index 718443d9..00000000 --- a/versioned_docs/version-1.1.0/Protocol/whitepaper.md +++ /dev/null @@ -1,786 +0,0 @@ ---- -title: Whitepaper -linkTitle: "Whitepaper" -weight: 1 -sidebar_position: 1 -description: > - High level outline of Aqua Protocol (AQP) specification ---- - - -| | | -|------------------|--------------------------------------------| -| Current version: | Aqua Protocol v1.1 Specification | -| Author: | Tim Bansemer, Publius Dirac | -| Date: | 30.12.2021 | -| Status: | DRAFT / Experimental | -| Implementation: | [https://github.com/inblockio/micro-pkc](https://github.com/inblockio/micro-pkc) | - -## Introduction - -The Aqua Protocol (AQP) is a data accountability and exchange protocol between -hosts in peer-to-peer environments. The AQP is used to realize the goal of -[accounting for data origin and history](data-accounting.md). The description -for the proof-of-concept implementation of the AQP can be found in [this -page](../implementations/reference-architecture.md). - -## Motivation - -In today's world, there are no widely adopted trustless processes of checking if -data have been manipulated or corrupted, are attributed to the wrong author, or -are attributed to the wrong time. Today's processes are dependent on centralized -trusted services which retain all power over governing the data. - -There is a lack of transparency or ability to check if data have been altered -by an unauthorized party. Additionally, consumers of data are incapable of -verifying if centralized services have altered the data. This leads to a world -of untrustworthy information in which we don't know how to conclude what is -true. - -In a world where every piece of information is a grain in a sandstorm, it has -become impossible to navigate reality. In contrast, in a world where every -piece of information is a fixed star in the sky for a lifetime, we are able to -relate and make sense of the information given. The Aqua Protocol (AQP) turns -grains of information into fixed stars of information. - -The AQP adds a peer-to-peer layer of accountability, making it impossible to -change data unnoticed. AQP adds an essential line of defense against attacks on -data integrity, plagiarism, or misattribution. AQP is used to govern trusted -data, which can be quickly verified. This includes the verification of its -integrity and history, the verification of its account (the entity who creates -or manipulates the data), and the verification of its existence and timestamp. - - The Aqua Protocol provides trustworthiness to data by - securing data ✅ integrity, 🔏 account and ⌚ time. - -In order to account data, it is necessary to track and verify its history. The -AQP provides a globally unique resource identification (URI) for each revision -of the verified data. This identifier is collision-free, and is referred the -same way across multiple interacting hosts. - -## Terminology - -## Wallet -A wallet is a software for protecting and managing private cryptographic keys -(of private-public key pairs) which are used to govern digital assets. This is -done by authorization of transactions via digital signatures or by initiating -decryption processes to access data. - -See [Separation of Concerns](design-principles.md#separation-of-account-and-service). - -### Account - -We are following Ethereum's account definition: -> In general, there are two types of accounts. Externally owned accounts, -> controlled by private keys. And contract accounts, controlled by their -> contract code --- [Ethereum Whitepaper](https://ethereum.org/en/whitepaper/#ethereum-accounts) - -In general, we can't prove if an account owner is a person or a machine. With -advancements in AI, it will become increasingly difficult to prove that a human -is a human. [Attempts are being made](https://www.proofofhumanity.id/) to -increase trustworthiness of accounts which fall short in questions of privacy -and security as they make public claims. Traditional know your customer (KYC) -combined with the AQP and Aqua Identity Protocol (AIP) identification processes -can provide similar "proof of being human" which can be attested to an account. -This allows us to outsource the problem of identification, where we only focus -on unique accounts which are sufficient for data accounting independent of -humans or machines. Identity claims issued via the AIP will help to provide the -context required to meaningfully interact between accounts. - -For more on this topic, please read the [Aqua Identity -Protocol](aqua-identity-protocol.md). - -### Domain -A domain is a unique namespace attributed to an account. It allows us to manage -services and files within that namespace creating a domain of data governance -After granted permissions, additional accounts can be added to share control -over a domain or singular assets. To enforce boundaries of a domain, additional -software like the [Guardian](guardian.md) is required. - -E.g. by setting up the a data vault with your account it becomes your -domain of data governance. - -### Revision - -A revision is the smallest portable entity within the AQP. Multiple revisions -form a single portable hash chain which is serialized in JSON format. -They have existed before in unsecured systems where multiple revisions form a -file which can be displayed as a page. The AQP adds the cryptographic harness -to secure it. With presenting a portable hash chain, it is possible to track -all incremental changes stored in each revision to understand the history of a -page and how it came to be. This allows us to have version control on digital -assets being able to restore earlier states and to relate to them. This allows -us to have historical evidence of digital assets. - -### Page - -A page is a visible representation of a file containing multiple or a single -revision attributed to a shared origin. A page view could also be used to -create a new revision by a used service which interfaces with the file for -manipulation. In AQP all revisions share a global URI hash to -attribute them together called a genesis hash. - -### Transaction Security - -Transaction security is an economic measure of the level of integrity assurance -for a transaction. It is defined as the cost required to forge a transaction. -The transaction security can be increased by cryptographic security and by strong -replication of transactions. Public distributed ledger systems are highly suitable -for providing very high level of transaction security at the cost of privacy -and immutability (data can't be changed or deleted). Today, public distributed -ledgers such as Bitcoin and Ethereum provide the highest level of transaction -security. - -### Data Asset - -Data turns into a valuable asset if it is accounted for. In an accounted form -it can be easily priced, exchanged or traded. - -### Data Vault - -Software used to store and manage data with an account. The software must apply -a secure architecture and measures for keeping data assets safe. This is -achieved through encryption, strong authentication and restrictive access to -keep data private by default. - -See [Design Principles / Separation of Account and -Service](design-principles.md#separation-of-account-and-service) - - -### Witness - -We define witnessing as the process of observing an event. A witness is judged -by their capability to recollect and share an observed event. In other words, -witnessing is the process of storing input data for later playback to provide -data symmetry around an event. - -### Witness Network - -The digital service in a distributed ledger or similar infrastructure which -provides transaction security and data symmetry for shared data within the -network. An example of a witness network would be Ethereum. - -E.g. Ethereum can be used to store a digital fingerprint of a domain snapshot -of a data vault. A domain snapshot is the Merklized state of all witnessed hash -chains being present in the data vault. It is required to pay the witness -network for its service. In the case of Ethereum, this is done using 'Ether'. -This in return allows the account owner to create an 'undeniable' proof that a -specific revision and the previous revisions within a hash chain has existed. - -### Portable Hash Chain - -A hash chain is a linked list where each node contains the cryptographic hash -of the previous node content. A portable hash chain is a hash chain that can be -moved from one host to another. - -### Immutable Hyperlinks / Transclusions -See [Immutable Hyperlinks](immutable-hyperlinks.md). - -## Specification - -To identify a revision with a unique fingerprint, we hash its content using -the SHA3-512 hashing function which always has a 128 characters long -output. This value can be used as a checksum to verify data integrity. -The checksum can then be entangled in a hash-chain to create an -immutable track record. We then calculate multiple properties associated -with the revision, in addition to its content checksum. In the next section, -we differentiate between REQUIRED and OPTIONAL properties for each -revision. - -All hashes are based on -[SHA3-512](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf). -This encryption standard is used to construct [portable hash -chains](#portable-hash-chain), which are serializing of data and its history in -a form that can be verified, and independent of location. The portable hash -chain can be fully or partially exchanged between hosts depending on the -application of the data. From here on, we refer the term "portable hash chain" -as "hash chain." - -In order to implement the AQP, we need to utilize a software that is capable of -generating portable hash chains and facilitating actions described in the -AQP. We call those nodes which facilitate the Aqua Protocol 'Aqua Data -Vaults' which given their role should be implemented as a software with secure -architecture and measures for keeping data assets safe. This is achieved -through encryption, authentication and restrictive access to keep data private -by default. - -# Revision Verification Structure - -A revision is RECOMMENDED to be limited to 50 Megabytes to ensure that the verification can take -place on all imaginable clients which might have slow network connectivity, low -memory, low cpu performance. Once a revision is verified, the next one can be -verified. Clients with more performance will be able to parallelize the -verification. Larger files can be chunked to be placed in multiple revisions. - -A verified data structure is identified by its URI `verification_hash` -and grouped by its `genesis_hash`. The first revision created will -create a `verification_hash` which has a special meaning and is -referred to as the `genesis_hash`. All future revisions building upon -that first revision will be attributed to the `genesis_hash` as a unique -URI for grouping the revisions. This allows us to understand if two -revisions are related without needing to verify the whole history of the -hash chain. - -## Verification Hash -`revision_verification_hash` is the hash sum over the string formed by the -following operation - -``` -revision_verification_hash = calculate_hash_sum( - content_hash + metadata_hash + - signature_hash + witness_hash -) -``` -The content_hash and metadata_hash are REQUIRED. -The signature_hash and witness_hash are OPTIONAL. - -## Content - -A content hash is the check sum for all content data fields which simplifies -hash construction and the ability to identify data corruption in this part of -the verification structure. -`content_hash` is the hash sum over the string formed by following operation: - -``` -contentObj = { - "main": content, - "extension_key_1": content_extension_1, - "extension_key_2": content_extension_2, - ..., - "extension_key_n": content_extension_n, -} -sortedContenObj = sort_by_keys(contentObj) -content_hash = calculate_hash_sum( - sortedContenObjValue_1, - sortedContenObjValue_2, - ..., - sortedContenObjValue_n, -) -``` -Description: -- content: The string input of the visible page using UTF-8 encoding schema. - REQUIRED. -- content extensions: more data MAY be encapsulated in addition to the main - content. These could be a file, a stateful link, or a signature. The content - extensions are sorted alphabetically by their key names. OPTIONAL. -- The `sort_by_keys` function sorts the content object elements by their keys - alphabetically. The JSON input MAY be a canonical JSON, in which the keys - order is already alphabetical, but we sort it always to ensure the order is - correct. - -To see an example of `contentObj` of a revision, see the [example](#Example) -section, - -## Metadata - -``` -metadata_hash = calculate_hash_sum( - domain_id + time_stamp + previous_verification_hash -) -``` - -Description: -- metadata_hash: The check sum for all metadata data fields. It simplifies the - hash construction and the ability to identify data corrupton in this part of - the verification structure. -- domain_id: 10 digits hexadecimal randomly generated to identify the host - system that runs the AQP service. -- time_stamp: time-stamp of the current revision (decimal numbers - YYYYMMDDHHMMSS e.g. 20211128092608). -- previous_verification_hash: previous_revision_verification_hash if present - -## Signature - -A signature in AQP is a cryptographic signature generated by public-private key -pair. The protocol should be abstract, where it will support 'Method' in later -iterations. This will allow us to use different types of implementations such -as: PGP signatures, Ethereum, or Bitcoin -[wallet](https://en.wikipedia.org/wiki/Cryptocurrency_wallet)'s signatures. - -In this specification, we use the AQP reference implementation's signing -method, which is via an Ethereum wallet. - -``` -signature_hash = calculate_hash_sum( - signature + public_key -) -``` - -The signature is generated by a wallet signing the following message: - -``` -I sign the following page verification_hash:" +[0x] -``` - -The `revision_verification_hash` MUST NOT be signed twice by the same key, to -avoid information leakage of the private key. - -For example, a wallet with an address of -`0xa2026582b94feb9124231fbf7b052c39218954c2` and a public key of -`0x041518581af65749b3ddc69889df3e5d229bc8ad79279a07ddeb368ade5e1592368c5ff3b69143d7a1e7cf64f7d0774a6724e6eaf138d318d07ddc30f6081ca89a` -signs the following message: -``` -I sign the following page verification_hash:" +[0x9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57] -``` -which results in the following signature: -``` -0x19b5697c4541509c1add3db9fc2f678b7b80325ebffd4d945ca00db5f8b3f98a142edbf9a7faa0a0c7ec4f10ae1b64cf2ea62ce3ee73ed2e37ce916d6bd016601c -``` - -## Witness - -Witnessing allows one to undeniably prove the existence of a dataset -(represented as a portable hash chain). To complete the witnessing process, a -Domain Snapshot is created. This is a collection of all revision hashes within -one domain. A Merkle tree is used to unify all hashes of the latest revisions -of all portable hash chains within a domain into a single hash value. - -The `witness_event_verification_hash` is written to the [Witness -Network](#witness-network). The -`witness_event_verification_hash` is then generated by using the -`domain_snapshot_genesis_hash` and the `merkle_root` hash together. This -allows the page snapshot itself to also be witnessed. - -A single revision which has been witnessed, will not store the whole Merkle -tree, but only its relevant path to the Merkle root. Performing a Merkle proof -means that its revision is included in the Merkle tree. - -``` -witness_hash = calculate_hash_sum( - domain_snapshot_genesis_hash + merkle_root + - witness_network + witness_event_transaction_hash -) -``` - -Description: -- `witness_hash`: the checksum for all signature data fields. It simplifies hash - construction and identifies data corruption in this part of the verification - structure. -- `domain_snapshot_genesis_hash`: Refers to the URI of the page which stores the - whole Merkle tree of the witness event. -- `merkle_root`: the root hash of the Merkle tree. The presence of the - Merkle tree allows for lazy verification to reduce required computational - steps for verification by skipping the Merkle proof as both datasets can be - entangled in the chain by a newer revision and therefore be immutable. -- `witness_network`: specifies which witness network was used to store the - `witness_event`. The following structure shows an AQP hash chain with 3 - revisions which wrote the `witness_event_verification_hash` into the - witness network. - -Additional context: -- relative-merkle-tree-proof: This provide the relative path with all required - hashes to verify the Merkle tree root from the first node which the - `verification_hash` of the revision as a starting point. -- `witness_event_verification_hash`: It is calculated by taking the sha3-512 - checksum of the `domain_snapshot_genesis_hash` and the `merkle_root` hash. - This ensures that the`domain_snapshot` itself will be witnessed. - - -## Example -The following structure shows an AQP hash chain with 3 revisions: - -### 1st Revision -This revision features all REQUIRED (content, metadata) and all OPTIONAL -(signature, witness) AQP data fields. -```json -{ - "verification_context": { - "has_previous_signature": false, - "has_previous_witness": false - }, - "content": { - "rev_id": 358, - "content": { - "main": "First revision text", - "transclusion-hashes": "" - }, - "content_hash": "ae188be061822074716b43925b3ffa90a03c530342be73c3440d8f022765ffebbb56c16552f13cd1ea61f876d2d892e0a73dcba5173fc47d371b4251d6c094da" - }, - "metadata": { - "domain_id": "acfa9f682e", - "time_stamp": "20220116090401", - "previous_verification_hash": "", - "metadata_hash": "d1025fd8866d9367735d2f6617b3aa87401e08d726f311cdf834ea9540955bfc59b428676bce5d47d5fed381394ab2ed838c5eecfc9cb37313705374752c247d", - "verification_hash": "9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57" - }, - "signature": { - "signature": "0x19b5697c4541509c1add3db9fc2f678b7b80325ebffd4d945ca00db5f8b3f98a142edbf9a7faa0a0c7ec4f10ae1b64cf2ea62ce3ee73ed2e37ce916d6bd016601c", - "public_key": "0x041518581af65749b3ddc69889df3e5d229bc8ad79279a07ddeb368ade5e1592368c5ff3b69143d7a1e7cf64f7d0774a6724e6eaf138d318d07ddc30f6081ca89a", - "wallet_address": "0xa2026582b94feb9124231fbf7b052c39218954c2", - "signature_hash": "cc42f40c4452a25f9ea48a97b6dfba6f69dec347db5c1adf25475b0b4a5da36af3fe48bf9f7ea0dda6bbed9367dc9c82834dbf8cc7f6220fd190cdb729d3f4ec" - }, - "witness": { - "witness_event_id": "2", - "domain_id": "acfa9f682e", - "domain_snapshot_title": "Data Accounting:DomainSnapshot:b33afaf53ed3d245f0319d4997db2032de9d77791ae11f5125189815eef44f2fba9633bebe2e57bc5ea4b0424872ed02fa6aa9ad909f467726b536933bf715bf", - "witness_hash": "9707780cebcf6ed02b40bd7e6956b35ffe142a2b5f8cee15c703a652fa389eb118ef101e2f463e95663aa4013a42d9f1ce4a83eed3528b02bf98626e7599bbd8", - "domain_snapshot_genesis_hash": "b33afaf53ed3d245f0319d4997db2032de9d77791ae11f5125189815eef44f2fba9633bebe2e57bc5ea4b0424872ed02fa6aa9ad909f467726b536933bf715bf", - "merkle_root": "14f26d7dc0be77afff9131c03cab39a2fa9e1270c6face3fdc35b9b4b4ac4550d048c356a4713568c42411c3e7fe3553ec7b993c9bd7da97cb976e843d7e4d29", - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "witness_network": "goerli", - "smart_contract_address": "0x45f59310ADD88E6d23ca58A0Fa7A55BEE6d2a611", - "witness_event_transaction_hash": "0x5900103adc09a789fd3bd7c23dfeff1ffce41dfba0a52b525ecc032e9279eb1f", - "sender_account_address": "0xa2026582b94feb9124231fbf7b052c39218954c2", - "source": "default", - "structured_merkle_proof": [ - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "4", - "left_leaf": "2554fb53531f4de26ff3ad1fb8c61feea6ea47c3f13c4abda385c46ef8541361f7eee42433050281714a3900115f04fe52b5a8d781a71c4c439c5de6b91cbe3c", - "right_leaf": "9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57", - "successor": "789e508ccb23fe053b628cebc19a2d32f34e6aa21e878e8611f7c14d891625c7b2e243b3c3105b98295333b9183e5ea272a055a84ab65ad927f7fd9c27aae48e" - }, - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "3", - "left_leaf": "789e508ccb23fe053b628cebc19a2d32f34e6aa21e878e8611f7c14d891625c7b2e243b3c3105b98295333b9183e5ea272a055a84ab65ad927f7fd9c27aae48e", - "right_leaf": "c16a966333cd22ff3497875a62202874221c1dae2e74b4351d058910f8d37160be480fce9aab4ec5e725beb695509f0fd65ae581568c6f1ae25eb4f1440b287f", - "successor": "80d7549af24e9a6bdfc32cefe0536d6528d665cc8e65859ef4cff87270f3db8d9b95aaecc167e10c9b5be9ce3ab36d8d880c3a518e1c5eb899ca9d95af24e9db" - }, - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "2", - "left_leaf": "80d7549af24e9a6bdfc32cefe0536d6528d665cc8e65859ef4cff87270f3db8d9b95aaecc167e10c9b5be9ce3ab36d8d880c3a518e1c5eb899ca9d95af24e9db", - "right_leaf": "f4e189a08b486253ea0a5cc7bf7150055e738898115c4caf00e45634d6925539d51852409d1fe9108469e9b15668b940f3369300bb27cc292d1fabc0c07cd593", - "successor": "e227dd97e5166364483b41f058f0d176e3a50a7510299038b09ae3aef2cbafb26c787afad82563a945b433fa2d1279af3535755235ab69d6e5ab089179177c14" - }, - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "1", - "left_leaf": "e227dd97e5166364483b41f058f0d176e3a50a7510299038b09ae3aef2cbafb26c787afad82563a945b433fa2d1279af3535755235ab69d6e5ab089179177c14", - "right_leaf": "780f3eb08f24022be4463be141bcda6a33a157cd0fd44cf209312b8427ac4036637a63d239526555128a4e7f4bb588ebfdbd8a8cc7d797038e29b852a4fae26c", - "successor": "f3bd4e82b1e3d304005a7ddf4ab940f3e4e1cf099ca1c058454c431ed3feb0674c044e53150eb5691073ba58a3491565f72f6a6c2a24562ea080b569b4496c9f" - }, - { - "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", - "depth": "0", - "left_leaf": "f3bd4e82b1e3d304005a7ddf4ab940f3e4e1cf099ca1c058454c431ed3feb0674c044e53150eb5691073ba58a3491565f72f6a6c2a24562ea080b569b4496c9f", - "right_leaf": "4a0c120fbdd6219b774eb2cb2076f4050d606b621e384c3ec645be0e5dbcdac3132f1f2acb531fa5ff62429907b77cf8d29a760be3765eb4decd83949a2925f8", - "successor": "14f26d7dc0be77afff9131c03cab39a2fa9e1270c6face3fdc35b9b4b4ac4550d048c356a4713568c42411c3e7fe3553ec7b993c9bd7da97cb976e843d7e4d29" - } - ] - } -} -``` - -### 2nd Revision -This revision entangles all data fields of the previous revision. As the -calculation of the revision_verification hash depends on the revision of the -previous revision, it is shown in verification_context. - -```json -{ - "verification_context": { - "has_previous_signature": true, - "has_previous_witness": true - }, - "content": { - "rev_id": 362, - "content": { - "main": "First revision text", - "signature-slot": "[\n {\n \"user\": \"0xa2026582b94feb9124231fbf7b052c39218954c2\",\n \"timestamp\": \"20220116090439\"\n }\n]", - "transclusion-hashes": "" - }, - "content_hash": "9732084a45fd344d63687ccf9b5cd942f99ffe1debd11622b05d0cd24a2de3e5608d5f5121bdd7559c0a2d39067f9258c4f9612e44728df2e8d9026a88ed650c" - }, - "metadata": { - "domain_id": "acfa9f682e", - "time_stamp": "20220116090439", - "previous_verification_hash": "9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57", - "metadata_hash": "8df483539e2f81e64c9b9df0c7e13ae7778947b5defef860fbaed1260eade794999839bb254ea5006a5d4b6a89a37980ab576dc546d6336518d65b80bf2a5cb5", - "verification_hash": "296347471b33f3d3c69cc6e0699d80b4cb68ffc79c3ecce96beb659fa324fab1de7a888932fbfb7c60bb8cc83c9445ce15532987a7b59440cada649681618293" - }, - "signature": { - "signature": "", - "public_key": "", - "wallet_address": "", - "signature_hash": "" - }, - "witness": null -} -``` - -### 3rd Revision -This revision features a transclusion-hash for an immutable link to another -revision. - -```json -{ - "verification_context": { - "has_previous_signature": false, - "has_previous_witness": false - }, - "content": { - "rev_id": 363, - "content": { - "main": "First revision text\n\n[[File:Logo_inblockio.png]]", - "signature-slot": "[\n {\n \"user\": \"0xa2026582b94feb9124231fbf7b052c39218954c2\",\n \"timestamp\": \"20220116090439\"\n }\n]", - "transclusion-hashes": "[{\"dbkey\":\"Logo_inblockio.png\",\"ns\":6,\"verification_hash\":\"9b2b3cafb90a07433a2b61885a9e64641a99b1e9024cf53b640501d3706b142fed7bc372300973137ef9d92584fac70976c3889d5610abcfe1f187c248263a56\"}]" - }, - "content_hash": "14b8256ccd5fa1d883983317f92f428eadb52f699f476b9be69f14c6892b41979ff7b5b7a7a978177985d6aaa0bcfd9857a2646aedc4cbb3299373daa647814b" - }, - "metadata": { - "domain_id": "acfa9f682e", - "time_stamp": "20220116090556", - "previous_verification_hash": "296347471b33f3d3c69cc6e0699d80b4cb68ffc79c3ecce96beb659fa324fab1de7a888932fbfb7c60bb8cc83c9445ce15532987a7b59440cada649681618293", - "metadata_hash": "09688c05a83bb74bb255fb0c571cb6314b65f5b7f00750547a2c43f4959d4702ae2aec019c6fb4b0e5d23adea87fd456b0eaffc6ae271163a1fa45b4bae54230", - "verification_hash": "b35894d74dfcf8b41ff95eed97705e1acf9081021e0d478d8645cb04b8a0b4a013ee8f7fb6e140d149f2c92f20bba984fad5535938a5e36ae6a799a18343b806" - }, - "signature": { - "signature": "", - "public_key": "", - "wallet_address": "", - "signature_hash": "" - }, - "witness": null -} -``` - -# API Endpoints - -The AQP provides 3 API endpoints which return data from a host that runs the -AQP: - -## Get Hash Chain -`/get_hash_chain_info/{identifier}?identifier=` -Input: -- `identifier_type`: the value must either be "title" or "genesis_hash" -- `identifier`: the title or genesis_hash string, e.g. "Main Page" or "02c3c2...215d8d" -Returns: all context for the requested hash_chain. - -Example: - -API Request: -`/get_hash_chain_info/genesis_hash?identifier=dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26` - -API Response: -```json -{ - "genesis_hash": "dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26", - "domain_id": "acfa9f682e", - "latest_verification_hash": "2554fb53531f4de26ff3ad1fb8c61feea6ea47c3f13c4abda385c46ef8541361f7eee42433050281714a3900115f04fe52b5a8d781a71c4c439c5de6b91cbe3c", - "site_info": { - "sitename": "Personal Knowledge Container", - "dbname": "my_wiki", - "base": "http://localhost:9352/index.php/Aqua", - "generator": "MediaWiki 1.37.1", - "case": "first-letter", - "namespaces": { - "0": { - "case": true, - "title": "" - }, - "6942": { - "case": true, - "title": "Data Accounting" - } - }, - "version": "0.3.0" - }, - "title": "Aqua", - "namespace": 0, - "chain_height": 3 -} -``` - -## Get Revision Hashes -`/get_revision_hashes/{verification_hash}` -Input: -- `verification_hash` -Returns: the revision requested if it exists and/or a list of any newer -revision than the one requested. - -Example: - -API Request: -`/get_revision_hashes/dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26` - -API Response: -```json -[ - "dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26", - "f483d7746f67e7099099bcfa8ea5a93148251c598857e8fad21ce842da62794467067802ef9e818d240cd3312a3346a769f363145a87bfc1eeae19fe8d21b328", - "2554fb53531f4de26ff3ad1fb8c61feea6ea47c3f13c4abda385c46ef8541361f7eee42433050281714a3900115f04fe52b5a8d781a71c4c439c5de6b91cbe3c" -] -``` - -## Get Revision -`/get_revision/{verification_hash}` -Input: -- `verification_hash` -Returns: the revision content together with its verification data - -Example: See example above. - -API Request: `/get_revision/dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26` - -# Verification Process - -The verification process is a redo of the verification data generation -process, and additionally a comparison of their results. - -**Verification of Content** - -All hashes are recalculated in a separate client implementation, and -compared with the ones sent via the API. If the data was not altered or -corrupted; nor was there a difference in the process to calculate the -hash, they will match. This will create a high level of assurance that -the integrity and history of the portable hash chain in question has not been -altered. - -**Verification of Account** - -We cryptographically verify that the revision signature is indeed generated by the account specified in the verification data. - -**Verification of Time** - -To verify that the witness event included in a revision is correct, a -lookup and comparison of the `witness_event_verification_hash` on-chain is -performed and compared with the recalculated event. - -**Reference Implementation** - -| | | -|------------------------------------|--------------------------------------------------------------------| -| Command-Line-Verification-Tool | [https://github.com/inblockio/aqua-verifier-js](https://github.com/inblockio/aqua-verifier-js) | -| Chrome Extension Verification Tool | [https://github.com/inblockio/aqua-verifier-webextension](https://github.com/inblockio/aqua-verifier-webextension) | - - - - -# Appendix - -The following content is informational and not part of the -specification. It should help to better understand utility, context and -services which can be built on top of AQP. - -## Aqua Protocol v1.1 Changes - -Moving over to revision based verification. This allows: - -- Bulk / in parallel verification; ensuring logarithmic verification - times, not linear increasing verification times with longer history. - In short: Much faster and scalable. -- Single revision and range verification (you want to verify a - specific part of the content-chain) - - This is useful for verification of identity claims, where - trusted parties have signed the claim and for the validator it's - sufficient to see that signature. -- This allows direct verification after every edit via the Guardian. - This is the preparation in the interaction to provide services - through the [Guardian](guardian.md). -- Changing the design to include transclusions e.g. this allows the - verification of subpages via their stateful links / - revision_verification_hashes - - This also allows the inclusion of media files in the - verification process - - You can upload pictures, PDF's, Word-Documents and have them - automatically included in the aqua protocol and therefore in the - verified data-structure -- Introduction of verification_context which indicates if the previous - revision has signature or witness data, or if the current revision - has transcluded resources. This will build the correct verification - structure before verification. - -Change in the data-structure: - -- when requesting a revision this is done via the - GetRevisionHandler.php -- the previous verification hash is always served as well -- if signature or witness data is present in the previous revision, - there is a flag (1/0) that this revision depends on the previous - revision -- transcluded resources will be added to the content hash for - verification - -## Data Accounting Protocol v1.2 \[TBD\] - -- Generalization of the Signature-Metadata to inform which signature - method was used. - - GPG Signatures - - BTC Wallet Signatures - - Ethereum Wallet Signatures - - Done by: Displaying method used for signing, displaying - underlying architecture. -- Including Account as part of the verified data structure -- Defining maximum payload size per revision - -## Services on AQP (Not yet implemented, exploration) - -- AQP-DACS: [Domain](#domain) Access Control System - - See: [Guardian](guardian.md) (Acting similar to a WebApplication-Firewall) - -- ANS: Name-System and Name-Registry. - - See [Aqua Name Resolution](aqua-name-resolution.md) - -- AQP-SSI: Self-Sovereign-Identity Protocol for [Identity - Claim](aqua-identity-protocol.md#self-issued-identity-claims) management - - See [Aqua Identity Protocol](aqua-identity-protocol.md) - -- AQP Delegated Witnessing - - See [Delegated Witnessing](delegated-witnessing.md) - -## Similar Projects - -None of the listed projects apply the concepts of versioning to their documents, -the concept of portable hash chains, the concept of personal data vaults for data -management in comparison with the AQP reference implementation. - -This following list is not exhaustive: -- [Surety](http://surety.com/) - The oldest blockchain-like timestamping service which has been publishing - to the New York Times since 1995. -- [OpenTimestamp](https://opentimestamps.org/) - A free and open-source service provided by Peter Todd using the Bitcoin - network as a distributed cryptographic clock. The AQP MAY use OpenTimestamp - as a witness network. -- [OriginStamp](https://originstamp.com/) - A company providing paid timestamping services for their customers. - It looks very similar to OpenTimestamps with open-source client libraries. -- [Factom Protocol](https://www.factomprotocol.org/) - A service which creates an architecture with an extra layer of blockchain, - to provide an extra layer of trusted parties while providing their own - token. In our opinion, it introduces unnecessary complexity and - intermediaries as dependencies compared to the AQP. -- [OpenAttestation](https://www.openattestation.com/) - An implementation of a timestamping service for document certification. One - application of it is for secure digital vaccination certificates by the - Singaporean government. They use the MetaMask Ethereum wallet for signing - documents making it the most similar project to AQP to our knowledge. - -## Blockchain Context - -DISCLAIMER: AQP is not a permissionless distributed ledger. In order for the -AQP to be valuable and working, a single node implementation and single node -deployments are sufficient, and do not require the witnessing part. The AQP MAY -benefit from being published to a distributed ledger technology (DLT)) to -achieve a witness event with high transaction security. AQP does not have a -token nor is it distributing data by default. - -As some concepts are very similar as those used in DLT's, please refer to the -following: - -A portable hash chain and its revisions are similar to a blockchain structure -and its blocks, which has its own root hash and a set of transactions which -are included inside. - -| **Blockchain Term** | **AQP Term** | **Explanation** | -|----------------------|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Transaction** | **Input Data** | In a blockchain, it's a signed transaction. In AQP, it's all the input data provided to calculate the respective content slot hashes. | -| **Block** | **Revision** | A block contains the Merklized list of transactions. A revision contains various hashed data inputs such as: | -| | | - Content slots | -| | | - Metadata data | -| | | - Signature data | -| | | - Witness data | -| **Genesis Block** | **Genesis Revision** | The first object in the hash chain/blockchain. | -| **Blockchain** | **Hash Chain** | The hash chain is not distributed but resides by default only in the local PKC. It is not a distributed ledger and lacks a consensus algorithm to create a shared truth between nodes. | - - -### A side note - -It has not escaped our notice that the provided AQP improves the existing -process of double-entry bookkeeping and provides a foundation for a new data -economy. This also allows to create unforgeable invoices which can be clearly -attributed to its sender, avoiding fraud. This is one of many other use cases, -e.g. providing trusted news via revision-controlled journalism. diff --git a/versioned_docs/version-1.1.0/intro.md b/versioned_docs/version-1.1.0/intro.md deleted file mode 100644 index fd5ba3aa..00000000 --- a/versioned_docs/version-1.1.0/intro.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: "Overview" -linkTitle: "Overview" -weight: 1 -sidebar_position: 1 -description: > - ---- - -We develop the AQUA-Protocol to increase trust and digital sovereignty for individuals and organizations. - -We believe that this is an effective way to redefine collaboration and strengthen democracy to be more inclusive and participatory by providing accountability for data. We do this in a context where it is critical to address challenges and threats which come with the advancement of technologies (e.g. deep fake, manipulation of data, digital surveillance, monopolization). - -With the powerful tools we provide, we can showcase how trusted data and digital sovereignty are key enablers to support the emancipation and integration of individuals and small to medium businesses into a digital economy, which is currently dominated by large players. We are showing how this is a feasible approach to empower more inclusive and democratic participation. - -# What are exemplary applications that are meeting current organizational demands? - -Aside from the core features of the AQUA-Protocol and its reference implementation (to provide data integrity verification, proof of existence, and a strong identity by using public-private key infrastructure), there is an amazing potential that comes as an emergent property of the interaction of individuals using sovereign instances of Personal-Knowledge-Containers. - -This potential lies in the ability to collaborate by exchanging verified data between independent parties to form a network of relationships as a web of trust. This allows for peer-to-peer institutions and organizations to be built fully software-defined, in traditional or network structures. - -It is possible to model existing institutions on top of this infrastructure today. It is a free and open-source tool to provide a process to issue and verify digital certificates for various use cases. Including examples, showcased for the educational sector (school and university degrees) but the use cases go beyond this: - -* Provide an infrastructure to curate knowledge and enable peer-to-peer wiki's in which a contribution itself is attested. This has potentially huge implications, as a successfully merged contribution to a leading scientific endeavor could one could imagine this succeeding the reputational value of a university degree. -* Fighting fake news by providing an audible trail for the information source to the consumer and which steps have been taken, by which account, to reach its current state. E.g. an intelligence report about an ongoing conflict or crisis. -* Providing credible credentials to fight deep fake and impersonation. In one shocking case, this shows the danger for our political landscape. In this example the mayor of Berlin was tricked, when she had a zoom call with a fake Vladimir Klitschko (in the role of the Mayor of Kyiv, using deep fake for the video and audio to impersonate him) who tried to get money from her. [Source](https://www.theguardian.com/world/2022/jun/25/european-leaders-deepfake-video-calls-mayor-of-kyiv-vitali-klitschko) -* Providing a trust infrastructure for invoice validation: Large companies are challenged by the increasing number of fraud and fishing emails to trick companies to send money to criminals. We can use the SSI-Approach of aqua to verify invoices and do automated tests towards the trustworthiness of the sender, by checking the sender's account and the trust relationship cryptographically. Allowing for automated verification of the invoices instead of lengthy manual testing procedures or complicated processes requiring a CRM-System with an intense KYC (Know You Customer) approach. -* Proving where the information has originated. This can be used to protect intellectual property (IP) or to prove where data originated. This is highly relevant in various contexts, be it for the credibility of evidence in court or for whistle-blowers or investigative journalists to give their claims more credibility. - -# The socio-technological impact on society -We provide a prototype implementation of the aqua protocol with a Personal-Knowledge-Container(PKC). An approach towards digital sovereignty without compromises. It enables data accounting and with it an effective way to enable peer-to-peer trusted data generation and exchange. We showcase that it is possible to have full control over your data, you can share and govern it independently of third parties. This is essential to democratize access to the digital economy, so individuals can utilize the value of their data and do trusted interactions with each other. - -This technology enables various applications by offering a peer-to-peer-publishing platform technology, this includes but is not limited to: -* Self-Sovereign Identity (SSI) -* crowdsourced knowledge management, a distributed Wikipedia -* crowdsourced news -* crowdsourced petition systems (crowdsourcing problems, solutions, decisions). - -This Protocol and prototype allow for the practical exploration this how this can redefine our collective sense-making by providing a rational process for forming a truth by consensus between trusted peers. This allows for the practical exploration of digital, participatory collaboration at scale, as the AQUA-Protocol can account for contributions that are currently not measurable in monetary value while those contributions provide value to society and/or nature. It seems possible to envision a different economy where data becomes a multi-dimensional currency that allows us to make better-informed decisions. It can inform us to have a greater choice in how we participate economically as service providers and/or consumers. - -* **What is it *not yet* good for?**: This is an experimental protocol with a pilot implementation, which is meant for the exploration of new design principles to improve digital sovereignty and trust. This prototype is not production-grade software and should not be used outside of experimental applications. The prototype does currently (Dec'22) not include a transport layer. diff --git a/versioned_docs/version-1.2.0/Components/__category__.json b/versioned_docs/version-1.2.0/Components/__category__.json deleted file mode 100644 index 60637293..00000000 --- a/versioned_docs/version-1.2.0/Components/__category__.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Components", - "position": 3, - "link": { - "type": "generated-index" - } - } \ No newline at end of file diff --git a/versioned_docs/version-1.2.0/Components/containers/__category__.json b/versioned_docs/version-1.2.0/Components/containers/__category__.json deleted file mode 100644 index f0f3957a..00000000 --- a/versioned_docs/version-1.2.0/Components/containers/__category__.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "label": "Containers", - "link": { - "type": "generated-index" - } - } \ No newline at end of file diff --git a/versioned_docs/version-1.2.0/Components/containers/aquafier.md b/versioned_docs/version-1.2.0/Components/containers/aquafier.md deleted file mode 100644 index ea4ac97a..00000000 --- a/versioned_docs/version-1.2.0/Components/containers/aquafier.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Aqua Container Rust "Aquafier" ---- - -## Aquafier -Aqua container is a rust with a react front ent project that implments the aqua protocol.It enables data to be signed , witnessed and verified. -The projects shows the capability of the aqua protocol to ensure data integrity. - -### technical details -- This project has an axum web server in rust. -- The web folder conatins a react js(typescript) frontend to interact with the back end. -- diesel is used as an ormwith sqlite backend -- HTTP protocol is used for interaction between the front end and the back end. -- files have a maximum size of 20 mb -- docker container is provided to help you quickly deploy the docker container. diff --git a/versioned_docs/version-1.2.0/Components/containers/media-wiki.md b/versioned_docs/version-1.2.0/Components/containers/media-wiki.md deleted file mode 100644 index d4c54aa7..00000000 --- a/versioned_docs/version-1.2.0/Components/containers/media-wiki.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: "Personal Knowledge Container" ---- - -The personal knowldge container is/was a prototype implementation of the aqua protocol v1.1. -To learn more about pkc check version 1.1 docs. \ No newline at end of file diff --git a/versioned_docs/version-1.2.0/Components/intro.md b/versioned_docs/version-1.2.0/Components/intro.md deleted file mode 100644 index 25b16b4f..00000000 --- a/versioned_docs/version-1.2.0/Components/intro.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: "Introduction" -sidebar_position: 1 ---- - - -### 1. Aqua cli -Aqua cli is a command line utility.That enables you to create aqua chains, verify aqua chains, witness and sign aqua chains. -There are two command line utilities. -<ul> -<li>A rust implmentation [here](https://github.com/inblockio/aqua-verifier-rs)</li> -<li>A javascript implmentation [here](https://github.com/inblockio/aqua-verifier-js) </li> -</ul> - -🤔 You would ask why have two : <br/> `Js enable us to quickly proto type our ideas.While the rust implmentation is stable.` - -🚀 What does the aqua cli do ? <br/> -The aqua cli enables your to generate, sign, witness and verify aqua chains locally. - -💡 aqua cli (rust) enable youto easily get started your interaction with the aqua-protocol.To get started visit the github page [here](https://github.com/inblockio/aqua-verifier-rs) to downlioad the latest release or build locally (check the readme file on how to build it.) - - -## Aqua container -This enable you to interact with the aqua protocol using a web browser, you can use the sand box setup for you [here](https://aquafire.aqua-protocol.org/). - -The container is built using the same libraries that are used to build the cli.This gives it all the capabilities of the cli but with a graphical interface. - -check it over [here](https://github.com/inblockio/aqua-verifier-rs) - - -## Aqua PKC - -The personal knowldge container is/was a prototype implementation of the aqua protocol v1.1. -To learn more about pkc check version 1.1 docs. - - -## Aqua guardian -A security gateway to exchange Aqua-Chains and enforce policies of Aqua-Contracts. It provides secure connectivity between Guardians and verifies the integrity of the Aqua storage containers. - -to learn -:::warning -The aqua guardian still uses aqua-protocol version 1.1 this makes it incompatible with protocol 1.2 and all tools that use protocol 1.2 for example Aqua container and Aqua cli -::: - -## Aqua verifier (chrome-extension) -This is a chrome extension that can be used to verify aqua chain.It can be installed from [here](https://chromewebstore.google.com/detail/verifypage/gadnjidhhadchnegnpadkibmjlgihiaj) - -This is the easiest and fastest way to get started with aqua protocol. \ No newline at end of file diff --git a/versioned_docs/version-1.2.0/Components/verifier/aqua-cli-javascript.md b/versioned_docs/version-1.2.0/Components/verifier/aqua-cli-javascript.md deleted file mode 100644 index cf19b12b..00000000 --- a/versioned_docs/version-1.2.0/Components/verifier/aqua-cli-javascript.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Aqua CLI Javascript Implementation ---- - -Aqua cli js is a command line utility.That enables you to create aqua chains, verify aqua chains, witness and sign aqua chains. - -:::warning -If you are just getting started use the rust cli , the js version is used to prototype ideas. -::: - - -💡 the repo location -`https://github.com/inblockio/aqua-verifier-js` - - -💿 Envireonment set up - - 1. ensure to install a js runtime, we use node [here](https://nodejs.org/en/download/package-manager), the latest version. - 2. ensure to have `Yarn` or `npm` - - -📝 Usage - - 1. `git clone git@github.com:inblockio/aqua-cli-js.git` - 2. `cd aqu-cli-js && npm i && npm build` - 3. finally create a credentials.json `touch credentials.json` paste the following content into the file , filling with appropriate details - ```json - { - "mnemonic": "sample sample sample sample sample sample sample asampl sample sample sample author matter", - "nostr_sk": "xxxxxxxxxxxxxxxx", - "did:key": "xxxxxxxxxxxxxx" - } - ``` - -* To get started run - 1. `./notarize.js --help` - - ``` - notarize.js [OPTIONS] <filename> - which generates filename.aqua.json - - Options: - --sign [cli|metamask|did] - Sign with either of: - 1. the Ethereum seed phrase provided in mnemonic.txt - 2. MetaMask - 3. DID key - --witness-eth Witness to Ethereum on-chain with MetaMask - --witness-nostr Witness to Nostr network - --witness-tsa Witness to TSA DigiCert - --link <filename.aqua.json> - Add a link to an AQUA chain as a dependency - - ``` - 1. `./verify.js --help` - - ``` - Usage: - verify.js [OPTIONS] <page title> - or - verify.js [OPTIONS] --file <offline file.json or file.xml> - - Options: - -v Verbose - --server <The url of the server, e.g. https://pkc.inblock.io> - --ignore-merkle-proof Ignore verifying the witness merkle proof of each revision - --file (If present) The file to read from for the data - If the --server is not specified, it defaults to http://localhost:9352 - ``` \ No newline at end of file diff --git a/versioned_docs/version-1.2.0/Components/verifier/aqua-cli-rust.md b/versioned_docs/version-1.2.0/Components/verifier/aqua-cli-rust.md deleted file mode 100644 index bea080ac..00000000 --- a/versioned_docs/version-1.2.0/Components/verifier/aqua-cli-rust.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Aqua CLI Rust Implementation ---- - -Aqua cli is a command line utility.That enables you to create aqua chains, verify aqua chains, witness and sign aqua chains. - -Just like other aqua tooling and libraries cli 1.2 tooling the cli versioning matches the protocol supported. - - -🚀 How to install it. -1. `cargo install aqua-cli` -2. building from source - a. `git clone git@github.com:inblockio/aqua-cli-rs.git` - b. `cargo build--release` - c. `cd target/release/ && cp aqua-cli /usr/bin` - - -💡 the repo location -`https://github.com:inblockio/aqua-cli-rs` - - -📝 Usage -``` -Aqua CLI TOOL - -======================================================== - -This tool validates files using a aqua protocol. It can: - • Verify aqua chain json file - • Generate aqua chain. - • Generate validation reports - -COMMANDS: - • -a or --authenticate to verify an aqua json file. - • -s or --sign to sign an aqua json file. - • -w or --witness to witness an aqua json file. - • -f or --file to generate an aqua json file. - • -v or --verbose to provide logs about the process when using -v,-s,-w or -f command (verbose option). - • -o or --output to save the output to a file (json, html or pdf). - • -l or --level define how strict the validation should be 1 or 2 - 1: Strict validation (does look up, if local wallet mnemonic fails it panic) - 2: Standard validation (create a new mnemonic if one in keys.json faile) - • -h or --help to show usage, about aqua-cli. - • -i or --info to show the cli version. - • -k or --key-file to specify the file containings (this can also be set in the env ) - • -d or --delete remove revision from an aqua json file, bydefault removes last revsion but can be used with -c or --count parameter to specifiy the number of revisions - • -c or --count to specify the number of revisions to remove (note a genesis revision cannot be removed) - -EXAMPLES: - aqua-cli -a chain.json - aqua-cli -s chain.json --output report.json - aqua-cli -w chain.json --output report.json - - aqua-cli -f document.pdf - aqua-cli --file image.png --verbose - aqua-cli -f document.json --output report.json - - -SUMMARY - * aquq-cli expects ateast parameter -s,-v,-w or -f. - * in your environment set the - 1. aqua_domain="random_alphanumeric" - 2. aqua_network="sepolia" or "holesky" or "mainnet" - 3. verification_platform="alchemy" or "infura" or "none" for witnessing (default "none") - 4. aqua_alchemy_look_up= false or true - -For more information, visit: https://github.com/inblockio/aqua-verifier-cli" - -``` - - - diff --git a/versioned_docs/version-1.2.0/Components/verifier/verifier.md b/versioned_docs/version-1.2.0/Components/verifier/verifier.md deleted file mode 100644 index 5ac904df..00000000 --- a/versioned_docs/version-1.2.0/Components/verifier/verifier.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: "Verifier" -sidebar_position: 1 ---- \ No newline at end of file diff --git a/versioned_docs/version-1.2.0/Components/verifier/webextension.md b/versioned_docs/version-1.2.0/Components/verifier/webextension.md deleted file mode 100644 index 96ad8578..00000000 --- a/versioned_docs/version-1.2.0/Components/verifier/webextension.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Aqua Verifier Webextension ---- - -![verifier](/img/aqua_chrome_plugin.png) \ No newline at end of file diff --git a/versioned_docs/version-1.2.0/contribution-guidelines.md b/versioned_docs/version-1.2.0/contribution-guidelines.md deleted file mode 100644 index 99ae04b8..00000000 --- a/versioned_docs/version-1.2.0/contribution-guidelines.md +++ /dev/null @@ -1,144 +0,0 @@ ---- -title: "Contribution Guidelines" -linkTitle: "Contribution" -weight: 20 -menu: - main: - weight: 20 ---- - -### Contribution Guide for Rust and JavaScript/TypeScript Aqua Projects -<hr/> -This guide outlines the best practices and requirements for contributing to our project. By following these practices, you ensure that the codebase remains consistent, maintainable, and adheres to modern standards. - -## General Guidelines -1. **Code Formatting**: - - Always use a formatter for consistent code style: - - **Rust**: <br/><br/> - Use `rustfmt`. Install it via `rustup component add rustfmt` and run it with `cargo fmt`.<br/> - - - **JavaScript/TypeScript**: <br/><br/> - Use `Prettier`.<br/> Ensure it's set up in your editor or run it manually before committing. - ```bash - npx prettier --write . - ``` -1. **Commit Messages**: - - Write clear and descriptive commit messages. - - Use present tense, e.g., *"Add error handling for API requests"*. - -2. **Code Reviews**: - - Always submit a pull request for review, even for small changes. - - Be open to constructive feedback and incorporate suggested changes. - -3. **Tests Are Essential**: - - Write unit tests and integration tests where applicable. - - Ensure all tests pass before submitting a pull request. - -4. **Consistency Matters:** - - Follow the existing project style guides. - - Make sure all code is formatted consistently (tools for this are discussed below). - ---- - -## Rust Guidelines - -1. **Avoid Pointer Manipulation**: - - Do not use raw pointers (`*const` or `*mut`) unless absolutely necessary. - - Stick to safe abstractions like references (`&`, `&mut`) or smart pointers (e.g., `Box`, `Rc`, `Arc`). - -2. **Follow Ownership and Borrowing Rules**: - - Ensure proper ownership and lifetime management to prevent common issues like dangling references. - -3. **Precise Functions**: - - Keep functions short and focused. A function should ideally perform one task. - - Use descriptive function names and avoid long functions (>50 lines is often a warning sign). - -4. **Use Idiomatic Rust**: - - Prefer idiomatic constructs over manual implementations. For example: - - Use iterators and combinators (`map`, `filter`) over manual loops where appropriate. - - Use pattern matching for handling `Option` or `Result` types. - - Avoid cloning unnecessarily; prefer references when possible. - -5. **Follow Rust Clippy Recommendations:** - - Use clippy to identify potential improvements. Run `cargo clippy --all-targets --all-features -- -D warnings` to catch and fix lint issues. - - Install `clippy` using `rustup component add clippy` - -6. **Error Handling:** - - Use `Result` and `Option` for error handling instead of panicking (`panic!`). - - Provide meaningful error messages with thiserror or anyhow for library-level code.(or a string in result containing a reason why the code failed) - -7. **Dependencies** - - Minimize dependencies. Ensure they are actively maintained and necessary. - - Use the latest stable versions of dependencies and avoid duplicates. - -8. **Documentation** - - Document public items with `///` comments. - - Include examples for complex functions or types. - - -<hr/> - -## JavaScript/TypeScript Contribution Guidelines - -1. **Use a Code Formatter:** - - Use Prettier for consistent formatting. Run npx prettier --write . before committing changes. - - Add Prettier configuration if not already present in the project. - -2. **Avoid Using any** - - Do not use any unless it's absolutely necessary and temporary. Instead:<br/> -  a. Use specific types or TypeScript's utility types (e.g., `Partial`, `Record`, `Pick`, etc.).<br/> -  b. Use `union` types (`string | number`) or enums for clearly defined options. - -3. **Pure Functions** - - Write pure, side-effect-free functions when possible - - Use immutable data structures - - Return new objects instead of mutating inputs - -4. **Error Handling** - - Use explicit error types - - Leverage discriminated unions for error handling - - Prefer `Result`-like patterns - ```typescript - type Result<T, E = Error> = - | { success: true; value: T } - | { success: false; error: E }; - - function divide(a: number, b: number): Result<number> { - if (b === 0) { - return { - success: false, - error: new Error('Division by zero') - }; - } - return { - success: true, - value: a / b - }; - } - ``` -5. **Performance Considerations** - - Use `const` by default or `let` - - Use `Map` and `Set` for efficient key-value and unique collections - - Avoid unnecessary object creation - -6. Documentation - - Use JSDoc or TypeDoc for documentation - - Include type information in documentation - - Provide examples in documentation comments - ```typescript - - /** - * Calculates the area of a rectangle - * @param width - The width of the rectangle - * @param height - The height of the rectangle - * @returns The calculated area - * @example - * const area = calculateArea(5, 10); - * console.log(area); // 50 - */ - function calculateArea(width: number, height: number): number { - return width * height; - } - - ``` - \ No newline at end of file diff --git a/versioned_docs/version-1.2.0/getting-started.md b/versioned_docs/version-1.2.0/getting-started.md deleted file mode 100644 index 9d4f72e5..00000000 --- a/versioned_docs/version-1.2.0/getting-started.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: "Getting Started" -sidebar_position: 2 ---- - -## Data Structure: -This are the basics to get you started but for a thorough understanding one done with the sections below have a look at references section to get a thorough understanding for example what is a witness, wtness network and how are witness hash created. - -The aqua chain structure can be broken into a the following components : - - -### Revision - -A revision is the smallest portable entity within the AQP. Multiple revisions -form a single portable hash chain which is serialized in JSON format. -They have existed before in unsecured systems where multiple revisions form a -file which can be displayed as a page. The AQP adds the cryptographic harness -to secure it. With presenting a portable hash chain, it is possible to track -all incremental changes stored in each revision to understand the history of a -page and how it came to be. This allows us to have version control on digital -assets being able to restore earlier states and to relate to them. This allows -us to have historical evidence of digital assets. -<br/> - -Every revision is represented by a merkle-root hash representing a list of alphabetically ordered key-value pairs which are hashed (implementation example SHA3-512). This allows us to dynamically change the data structure without the need to introduce breaking protocol changes. - - * The input data MUST NOT have dublicated keys as this would lead to non-deterministic ordering. - -Aqua-Chain: Is a portable hash-chain. This provides immutability for the history of the file, once signed and/or witnessed with the respective security guarantees. -Aqua-revisions form a portable Aqua-Chain. - -There are 4 Types of Revisions: - * Content Revision: Contains the data object(the data/file encoded to base 64).This is used to secure the data integrity and reference the data object for provenance purposes. - * Signature Revision: Is used to cryptographically sign, we are currently supporting Ethereum signatures. - * Witness Revision: Used to witness the Hash to prove its existence. We are supporting Ethereum by default. - * Metadata Revision: used to ensure content revision is valid. - - - -### Page - -A page is a visible representation of a file containing multiple or a single -revision attributed to a shared origin. A page view could also be used to -create a new revision by a used service which interfaces with the file for -manipulation. In AQP all revisions share a global URI hash to -attribute them together called a genesis hash. - - - -### Witness - -We define witnessing as the process of observing an event. A witness is judged -by their capability to recollect and share an observed event. In other words, -witnessing is the process of storing input data for later playback to provide -data symmetry around an event. - -### Witness Network - -The digital service in a distributed ledger or similar infrastructure which -provides transaction security and data symmetry for shared data within the -network. An example of a witness network would be Ethereum. - -E.g. Ethereum can be used to store a digital fingerprint of a domain snapshot -of a data vault. A domain snapshot is the Merklized state of all witnessed hash -chains being present in the data vault. It is required to pay the witness -network for its service. In the case of Ethereum, this is done using 'Ether'. -This in return allows the account owner to create an 'undeniable' proof that a -specific revision and the previous revisions within a hash chain has existed. - - diff --git a/versioned_docs/version-1.2.0/prologue.md b/versioned_docs/version-1.2.0/prologue.md deleted file mode 100644 index 661345dc..00000000 --- a/versioned_docs/version-1.2.0/prologue.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Prologue" -linkTitle: "prologue" -sidebar_position: 1 -weight: 10 -menu: - main: - weight: 10 ---- - - -## Introduction - -The Aqua Protocol (AQP) is a data accountability and exchange protocol between hosts in peer-to-peer environments. The AQP is used to realize the goal of accounting for data origin and history (data provenance). Short: A verifiable linkable data structure to attest and certify data. - -Issues for improving the protocol are tracked here: https://github.com/inblockio/aqua-improvement-proposal - - -## Motivation - -In today's world, there are no widely adopted trustless processes of checking if -data have been manipulated or corrupted, are attributed to the wrong author, or -are attributed to the wrong time. Today's processes are dependent on centralized -trusted services which retain all power over governing the data. - -There is a lack of transparency or ability to check if data have been altered -by an unauthorized party. Additionally, consumers of data are incapable of -verifying if centralized services have altered the data. This leads to a world -of untrustworthy information in which we don't know how to conclude what is -true. - -In a world where every piece of information is a grain in a sandstorm, it has -become impossible to navigate reality. In contrast, in a world where every -piece of information is a fixed star in the sky for a lifetime, we are able to -relate and make sense of the information given. The Aqua Protocol (AQP) turns -grains of information into fixed stars of information. - -The AQP adds a peer-to-peer layer of accountability, making it impossible to -change data unnoticed. AQP adds an essential line of defense against attacks on -data integrity, plagiarism, or misattribution. AQP is used to govern trusted -data, which can be quickly verified. This includes the verification of its -integrity and history, the verification of its account (the entity who creates -or manipulates the data), and the verification of its existence and timestamp. - diff --git a/versioned_docs/version-1.2.0/references.md b/versioned_docs/version-1.2.0/references.md deleted file mode 100644 index 61060e1b..00000000 --- a/versioned_docs/version-1.2.0/references.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: "References" - ---- - -## Signature - -A signature in AQP is a cryptographic signature generated by public-private key pair. The protocol should be abstract, where it will support ‘Method’ in later iterations. This will allow us to use different types of implementations such as: `PGP signatures`, `Ethereum`, or `Bitcoin wallet ’s` signatures. - -In this specification, we use the AQP reference implementation’s signing method, which is via an Ethereum wallet. - -```js -signature_hash = calculate_hash_sum( - signature + public_key -) -``` - -The signature is generated by a wallet signing the following message: - -``` -I sign the following page verification_hash:" +[0x0x9dab72<revision_verification_hash>] -``` - - -## Wallet -A wallet is a software for protecting and managing private cryptographic keys -(of private-public key pairs) which are used to govern digital assets. This is -done by authorization of transactions via digital signatures or by initiating -decryption processes to access data. - -See [Separation of Concerns](design-principles.md#separation-of-account-and-service). - -### Account - -We are following Ethereum's account definition: -> In general, there are two types of accounts. Externally owned accounts, -> controlled by private keys. And contract accounts, controlled by their -> contract code --- [Ethereum Whitepaper](https://ethereum.org/en/whitepaper/#ethereum-accounts) - -In general, we can't prove if an account owner is a person or a machine. With -advancements in AI, it will become increasingly difficult to prove that a human -is a human. [Attempts are being made](https://www.proofofhumanity.id/) to -increase trustworthiness of accounts which fall short in questions of privacy -and security as they make public claims. Traditional know your customer (KYC) -combined with the AQP and Aqua Identity Protocol (AIP) identification processes -can provide similar "proof of being human" which can be attested to an account. -This allows us to outsource the problem of identification, where we only focus -on unique accounts which are sufficient for data accounting independent of -humans or machines. Identity claims issued via the AIP will help to provide the -context required to meaningfully interact between accounts. - -For more on this topic, please read the [Aqua Identity -Protocol](aqua-identity-protocol.md). - -### Domain -A domain is a unique namespace attributed to an account. It allows us to manage -services and files within that namespace creating a domain of data governance -After granted permissions, additional accounts can be added to share control -over a domain or singular assets. To enforce boundaries of a domain, additional -software like the [Guardian](guardian.md) is required. - -E.g. by setting up the a data vault with your account it becomes your -domain of data governance. - - - -### Transaction Security - -Transaction security is an economic measure of the level of integrity assurance -for a transaction. It is defined as the cost required to forge a transaction. -The transaction security can be increased by cryptographic security and by strong -replication of transactions. Public distributed ledger systems are highly suitable -for providing very high level of transaction security at the cost of privacy -and immutability (data can't be changed or deleted). Today, public distributed -ledgers such as Bitcoin and Ethereum provide the highest level of transaction -security. - -### Data Asset - -Data turns into a valuable asset if it is accounted for. In an accounted form -it can be easily priced, exchanged or traded. - -### Data Vault - -Software used to store and manage data with an account. The software must apply -a secure architecture and measures for keeping data assets safe. This is -achieved through encryption, strong authentication and restrictive access to -keep data private by default. - -See [Design Principles / Separation of Account and -Service](design-principles.md#separation-of-account-and-service) - - - -## Metadata - -``` -metadata_hash = calculate_hash_sum( - domain_id + time_stamp + previous_verification_hash -) -``` - -Description: -- metadata_hash: The check sum for all metadata data fields. It simplifies the - hash construction and the ability to identify data corrupton in this part of - the verification structure. -- domain_id: 10 digits hexadecimal randomly generated to identify the host - system that runs the AQP service. -- time_stamp: time-stamp of the current revision (decimal numbers - YYYYMMDDHHMMSS e.g. 20211128092608). -- previous_verification_hash: previous_revision_verification_hash if present - - - -## Witness - -Witnessing allows one to undeniably prove the existence of a dataset -(represented as a portable hash chain). To complete the witnessing process, a -Domain Snapshot is created. This is a collection of all revision hashes within -one domain. A Merkle tree is used to unify all hashes of the latest revisions -of all portable hash chains within a domain into a single hash value. - -The `witness_event_verification_hash` is written to the [Witness -Network](#witness-network). The -`witness_event_verification_hash` is then generated by using the -`domain_snapshot_genesis_hash` and the `merkle_root` hash together. This -allows the page snapshot itself to also be witnessed. - -A single revision which has been witnessed, will not store the whole Merkle -tree, but only its relevant path to the Merkle root. Performing a Merkle proof -means that its revision is included in the Merkle tree. - -``` -witness_hash = calculate_hash_sum( - domain_snapshot_genesis_hash + merkle_root + - witness_network + witness_event_transaction_hash -) -``` - - -### Witness network -We are using the Ethereum Network as an optional Witness Network for -cryptographic time-stamping. - -## Encryption -according to wikipedia -``` -In cryptography, encryption (more specifically, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Despite its goal, encryption does not itself prevent interference but denies the intelligible content to a would-be interceptor. - -``` - -## Hash -according to investopedia - -``` -A hash is a mathematical function that converts an input of arbitrary length into an encrypted output of a fixed length. Thus, regardless of the original amount of data or file size involved, its unique hash will always be the same size. Moreover, secure hashes cannot be "reverse-engineered" to get the input from the hashed output, at least with current technology. - -If you use a specific function on the same data, its hash will be identical, so you can validate that the data is the same (i.e., unaltered) if you already know its hash. A different function would deliver a different hash. - -``` - -### Verification Process - -The verification process is a redo of the verification data generation -process, and additionally a comparison of their results. - -**Verification of Content** - -All hashes are recalculated in a separate client implementation, and -compared with the ones sent via the API. If the data was not altered or -corrupted; nor was there a difference in the process to calculate the -hash, they will match. This will create a high level of assurance that -the integrity and history of the portable hash chain in question has not been -altered. - -**Verification of Account** - -We cryptographically verify that the revision signature is indeed generated by the account specified in the verification data. - -**Verification of Time** - -To verify that the witness event included in a revision is correct, a -lookup and comparison of the `witness_event_verification_hash` on-chain is -performed and compared with the recalculated event. diff --git a/versioned_docs/version-1.3.0/aqua-protocol-version_1.3.md b/versioned_docs/version-1.3.0/aqua-protocol-version_1.3.md deleted file mode 100644 index 56d3e0a0..00000000 --- a/versioned_docs/version-1.3.0/aqua-protocol-version_1.3.md +++ /dev/null @@ -1,226 +0,0 @@ -# Aqua Protocol Version v1.3 -(Writing in process, unfinished Nov. 10th, 2024) -This is a developer documentation. - -The Aqua Protocol (AQP) is a data accountability and exchange protocol between hosts in peer-to-peer environments. The AQP is used to realize the goal of accounting for data origin and history (data provenance). Short: A verifiable linkable data structure to attest and certify data. - -Issues for improving the protocol are tracked here: https://github.com/inblockio/aqua-improvement-proposal - -## Data Structure: - -Every revision is represented by a merkle-root hash representing a list of alphabetically ordered key-value pairs which are hashed (implementation example SHA3-512). This allows us to dynamically change the data structure without the need to introduce breaking protocol changes. - - * The input data MUST NOT have dublicated keys as this would lead to non-deterministic ordering. - -Aqua-Chain: Is a portable hash-chain. This provides immutability for the history of the file, once signed and/or witnessed with the respective security guarantees. -Aqua-revisions form a portable Aqua-Chain. - -There are 4 Types of Revisions: - * Content Revision: Contains the data object if wrapped by the protocol. This is used to secure the data integrity and reference the data object for provenance purposes. The content revision makes the data object referencable for signatures, witness, and link revisions. - * Signature Revision: Is used to cryptographically sign, we are currently supporting DID and Ethereum signatures. - * Witness Revision: Used to witness the Hash to prove its existence. We are supporting Ethereum by default. - * Link Revision (TBD): Protocol specification for how to interlink Aqua-Chains. This also includes tracking externally managed datasets which are not wrapped into the Aqua-Chain itself. - -Example: - -1. Content-Revision - - -``` -{ - "revisions": { - "0xb576b6920e9bbb3e76d69b76e5b86f60590df43e9407d7d1b359cb8e2db00ce44d4c0741cbd1ca0f1a3605d3b2b56b58c412b2040743e12a1488de519e365587": { - "previous_verification_hash": "", - "domain_id": "5e5a1ec586", - "nonce: 4231256454123", - "local_timestamp": "20241105093856", - "revision_type": "content", - "content": "MIT License\n\nCopyright (c) 2024 inblock.io\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", - "leaves": [ - "da5385762bb4cd5e2fbc76861cceeb7fb5e7d5f3181e0e36997146c65a31fb7c363221759f77c2ed468f8874da81ec2467fa363243c71b90f94e2734db0134c1", - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "4c6cabd6d78399bc0bc6bcd255e4a08576e9b0204a4f03ff83a328a065c076e327aaaa503bbc840636ccbf62d7b577b3db010b6775b4576be3fc30a068df70f1", - "52e56bad6857482a1c56a0b52f577e2b513873573d15a48eee310b4c3f7efdee430945935ace2acbbe0fe3cf5ff914a9b6d0c9622453365203a7f55eefdf9771" - ] - } -``` -2. Signature-Revision example (Ethereum Wallet) -``` - "0x25bc631dc35efd51f1a43e886097c5809e633cfbe5448c5a1ca973be20a10f2dcbab0939e66b752aa84191f6705591615e1a3cacb4d28eef824267fd9dc19064": { - "previous_verification_hash": "0xb576b6920e9bbb3e76d69b76e5b86f60590df43e9407d7d1b359cb8e2db00ce44d4c0741cbd1ca0f1a3605d3b2b56b58c412b2040743e12a1488de519e365587", - "domain_id": "5e5a1ec586", - "local_timestamp": "20241105093856", - "revision_type": "signature", - "signature": "0x222d6a0c4024d50c5165f30125f64969a98af9f75cbe2b6a9798b5cd637714b60c7d7caf236afe773ce3879ede9a3dc95895dce60f6227a282a30cc116a56d681c", - "signature_public_key": "0x03b6ff4b0c45ce230eb48499614538ca7daa43000395e694ac92eaa1e4b805df8a", - "signature_wallet_address": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "signature_type": "Ethereum", - "leaves": [ - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "eab2e00fd4ca01067827148e7df80aab6813eb5b26023c117f6ab66b1db2da6a9704eb80f87e28aa5ab4ab025285764f1f3f81f0ee2e51602163bbfa25ff48ac", - "ed97cc41ef70162c0c3ca5b7f1bd88d9f3f3c249a3a9444376417d6cb9deb834f22890e25abb4fac8577e3d65e0e949f7224c11d5f549ad127c09d3b8dfa2df2", - "9b03a873f0dff741aab24307681728c586c1dcff4df6b194d09c6b239b572d00406e2d7390a541f70e083ca99414b3879f8c92ab231e6bdebe0612a24fabce3f", - "6ce0a5ba3573bb0d4650f912828af0f843856d0d67762cc647b65577eee5cf17c04ffb42472d71d53e5f228a6f581e6932cd671c0a505cf9e1f847b6eb01527d", - "02d2b681147691fbe0b98d3d8bfb67e2da13694d7e9e2c953a96ef9ea942237127efa787b8ca9f8c0253574586171683bfacec5613b9950bd440c49cf5faedf6", - "026bfe6061bbc69a805f5f9aeaa2d5c251fbd7a59602eafc1204542c37264700e3f45f79f972748f8424dfc5b0298273990638a4f11b143d11fd0483da7ad7c1" - ] - } - } -} -``` - -3. Signature-Revision example (DID Example) -``` - "0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3": { - "previous_verification_hash": "0x25bc631dc35efd51f1a43e886097c5809e633cfbe5448c5a1ca973be20a10f2dcbab0939e66b752aa84191f6705591615e1a3cacb4d28eef824267fd9dc19064", - "domain_id": "5e5a1ec586", - "local_timestamp": "20241105093856", - "revision_type": "signature", - "signature": { - "payload": "eyJtZXNzYWdlIjoiSSBzaWduIHRoZSBmb2xsb3dpbmcgcGFnZSB2ZXJpZmljYXRpb25faGFzaDogWzB4MHgyNWJjNjMxZGMzNWVmZDUxZjFhNDNlODg2MDk3YzU4MDllNjMzY2ZiZTU0NDhjNWExY2E5NzNiZTIwYTEwZjJkY2JhYjA5MzllNjZiNzUyYWE4NDE5MWY2NzA1NTkxNjE1ZTFhM2NhY2I0ZDI4ZWVmODI0MjY3ZmQ5ZGMxOTA2NF0ifQ", - "signatures": [ - { - "protected": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa24xd01panVGdzVkZEE3SmN5dmdVa0tpZDhXaDN3WW5Cc1hXa2FUVVJrTWRMI3o2TWtuMXdNaWp1Rnc1ZGRBN0pjeXZnVWtLaWQ4V2gzd1luQnNYV2thVFVSa01kTCJ9", - "signature": "h-OBw7eHVVNkgprtcEVD9GVu5_NgiLXzdshcyWXjdrJxljSdlu6yY9trrXBAuXcUXrxUuU-KWAR_eMTOq2-dCw" - } - ] - }, - "signature_public_key": "did:key:z6Mkn1wMijuFw5ddA7JcyvgUkKid8Wh3wYnBsXWkaTURkMdL", - "signature_wallet_address": "did:key:z6Mkn1wMijuFw5ddA7JcyvgUkKid8Wh3wYnBsXWkaTURkMdL", - "signature_type": "did:key", - "leaves": [ - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "d1bae393048ec8a35eacb290e538cc9575b616ee99e59af86585b36fe70541d8395d511a18f7cf31020f85a36b092784da29c4afb7ff641a541e342514b0a1c2", - "ed97cc41ef70162c0c3ca5b7f1bd88d9f3f3c249a3a9444376417d6cb9deb834f22890e25abb4fac8577e3d65e0e949f7224c11d5f549ad127c09d3b8dfa2df2", - "8a2a10de17eeed57fc11b8b277c9104cb4d0e1d4b919d07cf678401c80687c90b31cfbd6c35cb5590b7b02fdb7da0def97f0efdb8553f7fabcf6172a0c5fab5f", - "9744c7f71cc7062d1fca9b2b39a6f6b91a53ead1fe4db788a4bf33d21f0509cd04ce7d9e04aa01f6dfe952524649895c807fe21984e5d7826f5d12228b9219b3", - "94cccc4616e78a77cef476e299d75dab406c129cc28290d8779466fd4ab9364056521ca5356dcee82198dddb080ede7ec9dc210bc61c4deea9a5b439aaaf8cfc", - "646b45aba43fdb8f083c7a7b652dcfa4279f81afcc532736bbac8b29da690d3ea922bad14565d80974a0fb05123ffdb952a2708bedd1ad58f7c6bcb72ec90006" - ] - } - } -} -``` - -4. A) Witness-Revision example Ethereum (non-aggregated) - - -4. B) Witness_Revision example timestamping authority (TSA_RFC3161) -The witness_transaction_hash contains the server certificate chain. -``` -"0x0487556a32b8ba92cd579ace7062027e779295960eeb8ca7ac3908e3f379ae551953ae7bfb121f030d1f29b81dcf3dc955aebf992bcfbaee3f08487ab00416b7": { - "previous_verification_hash": "0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3", - "domain_id": "5e5a1ec586", - "local_timestamp": "20241105093856", - "revision_type": "witness", - "witness_merkle_root": "0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3", - "witness_timestamp": 1730802112, - "witness_network": "TSA_RFC3161", - "witness_smart_contract_address": "http://timestamp.digicert.com", - "witness_transaction_hash": "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", - "witness_sender_account_address": "DigiCert", - "witness_merkle_proof": "[{\"depth\":\"0\",\"left_leaf\":\"0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3\",\"right_leaf\":null,\"successor\":\"0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3\"}]", - "leaves": [ - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "f90837f8515c0def443cb512ee9dfaf8919722467d4019aaf63c13603600903202e8bf21304de25caafc61925b96e024c77c8f0e3223f00c724f524a12cebe95", - "13aa6a0a8800b4d8adeea104f8328bb1b5035276e2522a561c48d3db628263e26093426b35626dbd43b8198a15c6b017609d9fe4f9506f167a7997f80fd71859", - "9df7e7c5741d4373d29f576f3b0e894dacc4feda2cbed0b165a89c7ed3997f29482a5ac1f3f95ed34be0690b53f41d687334e132e80041563b15442380033a01", - "065c9da00b8c0e1d6f165ec946431b88f3a0d5764f9d3d3a5994a095122c81da3d0f3719d1ef712adf47effcea88ea1a2c7e6dbea7d71f0ae70ec388ed646995", - "a2ad3cedcedf8c9ae6ebbb0adde1863bf45247dcc51c14edea7fe4524b06f8ea7cba97f6da77641b537384bae53fa042bb43e377a2e98e71158c99e78185c6b3", - "41bb7271d1596fa17fa5ffcec141eb787d56c79c897ecc6cc83cda650171988e5cfd04e9b878f57d5bcc6f1054cd6162d271d06635b43011ad6785d6f0536b6e", - "6fe1ebd64bfcefda3b61ad5db9b450013e998b511384a9b671fe4c8809fe1f9868a5669bb6211e14346c8af55a41abd02994c73c52ced299d7e23fccd8a4cb13", - "e875b9b6fb0e609b72c6e303701abc3035e160ac541f0b7d542e8f1c354f957fb1d09518e02c6600d9b7e4e4a2591e7754cb60c4869153751bd49e231cdeb1ee", - "078df46bfe5b9db36854c62a053fc68c80a074ce9c13aef0f22e41f266583f1558a37bf56ec2346e34ac125a7aded5534d9506e624774680f128c817770d0370" - ] - } - } -``` -# Drafts - -5. Linkage - -Restriction: The linked resource MUST be an Aqua-Chain or MAY contain content addressed files (BitTorrent, IPFS, Swarm, any content that is verifiable by hash). - -url: path to ressource -remote expect-aqua-chain: boolean - expect type: aqua-chain / bittorrent / ipfs - the type of the linked resources. - require-in-depth-verification: if false, in depth verification will only draw a warning for not verifing or not be able to load the resource, if true, it will cause a critical verification error. - -* load and hash ressource (pull in with copy, pull in without copy). Restriction: only single files allowed. Possible to embedd remote content. -* -```json -{ - "revision_type": "link (when linking to other aqua-chain) / reference (when referencing an external source)", - "expect type": "aqua / bittorent / ipfs" - "required-indepth-verification: "true / false", - "verification-hash": "078df46bfe5b9db36854c62a053fc68c80a074ce9c13aef0f22e41f266583f1558a37bf56ec2346e34ac125a7aded5534d9506e624774680f128c817770d0370", - "url": "FQDN/path: full network-path to ressource / local: ABSOLUTE or RELATIVE path to the aquafier directly -} -``` - -Requirements: -* Remote data needs to be verifiable (stateful) -* This means the ressource must be loadable to hash it for verification - -* Aqua chains MAY support various content addressed storage solutions including: BitTorrent, IPFS, Swarm, any content that is verifiable by hash, these are specifc link types -* Content revisions MUST indicate if its an internal or externally tracked file object -* MIME type of the file (?) -* Filepath + SHA3 Hash - -How to load external resources / Summery: "how to draw the world in": - -* Verifier has its own content storage to store resources which have been loaded for verification. -* This content storage is content hashed (which means same files are not stored files) -* If content references an externally linked file, then the file is loaded and stored when verifying the aqua-chain -* A file is always looked up in the local content storage first by hash, before its loaded from the URL - -Object which is referenced needs to be persistant and verifiable. -Verifiable ressources must be: available (available), hashed, type defined - -Discussion: -* Using JSON-LD https://json-ld.org/ ? -* No, to many aspects which are not needed, Aqua chain focuses on verifiability - -# Backlog - -Future capabilities: - -Content links with external file tracking (and specific tools to interact): -6. Bit-Torrent file support (public files) referencing only the magnet link with the data requered for a torrent tool to load the data. -7. Git-File support to track a repository. -8. Generlised external-file-storage integration (write basic own implementation). -9. X-API integration: E.g. load the JSON and embedd data strucutre of a single tweet via API (TBD: how to solve media pull in pictures and videos). Solve by content addressed storage implementation for large media files: pictures, video, others. -10. Archive.org / Website download (offline archiving) with local storing but externally storage management. - -Support basic statements with a md-text-editor, form. -Type: Contract, requires in-depth-verification. - -Aggregator: Timestamping at maximum. - -When timestamping an aqua-chain receive a mutable flag on the revision which is timestamp. LOCKING it (do not allow new revisions until unlocked / unflagged). Idea: End-revisions, are not allowed to be extended. - -Topic: Witness Contract: -API Read function? -Verifier needs to have a hard conviction of whats our truth. ONE SMART contract, if not we could fall into the trap that somebody changes a witness revision to a different contract and it still would be valid. --> Is this a problem? - -Discussion: - -Optimizations: - -Different Hashing machanism -* https://crypto.stackexchange.com/questions/31674/what-advantages-does-keccak-sha-3-have-over-blake2 i can't find a strong reason for preferring sha3 -* tl; dr: blake2 didn't win nist because it's too similar to sha2. on the other hand, sha2 has been proven to stay even after decades, so being similar to it is actually a feature, not bug. but this is an argument from the author of blake2, which is biased -* Potentially using blake3 (optimized) which seems to be up to 15x faster -* What are the security considerations / drawbacks - - -Discussion "removing internally tracked files / content revisions": -* Remove Content revision with wrapping -* Track files with a local storage deamon -> only have their hash, receive files by hash, store them by hash -* Storage service and hasher service always come togather -* Possible to extend the aqua-verifier to support other storage implementations via shared interface (?) -* Track matadata of file with DB or with an extra file containing the sha3 hash and URL how to receive the file (?)RITIQUE and option (OPTIMIZATION): In depth verification (secure every field) vs shadllow verification (just hash the whole JSON file structure with one hash (root hash). diff --git a/versioned_docs/version-1.3.0/aqua_protocol.md b/versioned_docs/version-1.3.0/aqua_protocol.md deleted file mode 100644 index a3742ece..00000000 --- a/versioned_docs/version-1.3.0/aqua_protocol.md +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: Aqua Protocol Version 1.2 -linkTitle: "Aqua Protocol Version 1.2" -weight: 1 -description: > - Specificaiton of Aqua Protocol with example implementaiton ---- - - -| | | -|------------------|--------------------------------------------| -| Current version: | Aqua Protocol v1.2 Specification | -| Author: | Tim Bansemer, Publius Dirac | -| Date: | 26.11.2024 | -| Status: | DRAFT / Experimental | -| Implementation: | [https://github.com/inblockio/micro-pkc](https://github.com/inblockio/micro-pkc) | - -## Introduction -TBD -## Specification -TBD - - - - -# Aqua Protocol Version v1.3 -(Writing in process, unfinished Nov. 10th, 2024) -This is a developer documentation. - -The Aqua Protocol (AQP) is a data accountability and exchange protocol between hosts in peer-to-peer environments. The AQP is used to realize the goal of accounting for data origin and history (data provenance). Short: A verifiable linkable data structure to attest and certify data. - -Issues for improving the protocol are tracked here: https://github.com/inblockio/aqua-improvement-proposal - -## Data Structure: - -Every revision is represented by a merkle-root hash representing a list of alphabetically ordered key-value pairs which are hashed (implementation example SHA3-512). This allows us to dynamically change the data structure without the need to introduce breaking protocol changes. - - * The input data MUST NOT have dublicated keys as this would lead to non-deterministic ordering. - -Aqua-Chain: Is a portable hash-chain. This provides immutability for the history of the file, once signed and/or witnessed with the respective security guarantees. -Aqua-revisions form a portable Aqua-Chain. - -There are 4 Types of Revisions: - * Content Revision: Contains the data object if wrapped by the protocol. This is used to secure the data integrity and reference the data object for provenance purposes. The content revision makes the data object referencable for signatures, witness, and link revisions. - * Signature Revision: Is used to cryptographically sign, we are currently supporting DID and Ethereum signatures. - * Witness Revision: Used to witness the Hash to prove its existence. We are supporting Ethereum by default. - * Link Revision (TBD): Protocol specification for how to interlink Aqua-Chains. This also includes tracking externally managed datasets which are not wrapped into the Aqua-Chain itself. - -Example: - -1. Content-Revision - - -``` -{ - "revisions": { - "0xb576b6920e9bbb3e76d69b76e5b86f60590df43e9407d7d1b359cb8e2db00ce44d4c0741cbd1ca0f1a3605d3b2b56b58c412b2040743e12a1488de519e365587": { - "previous_verification_hash": "", - "domain_id": "5e5a1ec586", - "nonce: 4231256454123", - "local_timestamp": "20241105093856", - "revision_type": "content", - "content": "MIT License\n\nCopyright (c) 2024 inblock.io\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n", - "leaves": [ - "da5385762bb4cd5e2fbc76861cceeb7fb5e7d5f3181e0e36997146c65a31fb7c363221759f77c2ed468f8874da81ec2467fa363243c71b90f94e2734db0134c1", - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "4c6cabd6d78399bc0bc6bcd255e4a08576e9b0204a4f03ff83a328a065c076e327aaaa503bbc840636ccbf62d7b577b3db010b6775b4576be3fc30a068df70f1", - "52e56bad6857482a1c56a0b52f577e2b513873573d15a48eee310b4c3f7efdee430945935ace2acbbe0fe3cf5ff914a9b6d0c9622453365203a7f55eefdf9771" - ] - } -``` -2. Signature-Revision example (Ethereum Wallet) -``` - "0x25bc631dc35efd51f1a43e886097c5809e633cfbe5448c5a1ca973be20a10f2dcbab0939e66b752aa84191f6705591615e1a3cacb4d28eef824267fd9dc19064": { - "previous_verification_hash": "0xb576b6920e9bbb3e76d69b76e5b86f60590df43e9407d7d1b359cb8e2db00ce44d4c0741cbd1ca0f1a3605d3b2b56b58c412b2040743e12a1488de519e365587", - "domain_id": "5e5a1ec586", - "local_timestamp": "20241105093856", - "revision_type": "signature", - "signature": "0x222d6a0c4024d50c5165f30125f64969a98af9f75cbe2b6a9798b5cd637714b60c7d7caf236afe773ce3879ede9a3dc95895dce60f6227a282a30cc116a56d681c", - "signature_public_key": "0x03b6ff4b0c45ce230eb48499614538ca7daa43000395e694ac92eaa1e4b805df8a", - "signature_wallet_address": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "signature_type": "Ethereum", - "leaves": [ - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "eab2e00fd4ca01067827148e7df80aab6813eb5b26023c117f6ab66b1db2da6a9704eb80f87e28aa5ab4ab025285764f1f3f81f0ee2e51602163bbfa25ff48ac", - "ed97cc41ef70162c0c3ca5b7f1bd88d9f3f3c249a3a9444376417d6cb9deb834f22890e25abb4fac8577e3d65e0e949f7224c11d5f549ad127c09d3b8dfa2df2", - "9b03a873f0dff741aab24307681728c586c1dcff4df6b194d09c6b239b572d00406e2d7390a541f70e083ca99414b3879f8c92ab231e6bdebe0612a24fabce3f", - "6ce0a5ba3573bb0d4650f912828af0f843856d0d67762cc647b65577eee5cf17c04ffb42472d71d53e5f228a6f581e6932cd671c0a505cf9e1f847b6eb01527d", - "02d2b681147691fbe0b98d3d8bfb67e2da13694d7e9e2c953a96ef9ea942237127efa787b8ca9f8c0253574586171683bfacec5613b9950bd440c49cf5faedf6", - "026bfe6061bbc69a805f5f9aeaa2d5c251fbd7a59602eafc1204542c37264700e3f45f79f972748f8424dfc5b0298273990638a4f11b143d11fd0483da7ad7c1" - ] - } - } -} -``` - -3. Signature-Revision example (DID Example) -``` - "0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3": { - "previous_verification_hash": "0x25bc631dc35efd51f1a43e886097c5809e633cfbe5448c5a1ca973be20a10f2dcbab0939e66b752aa84191f6705591615e1a3cacb4d28eef824267fd9dc19064", - "domain_id": "5e5a1ec586", - "local_timestamp": "20241105093856", - "revision_type": "signature", - "signature": { - "payload": "eyJtZXNzYWdlIjoiSSBzaWduIHRoZSBmb2xsb3dpbmcgcGFnZSB2ZXJpZmljYXRpb25faGFzaDogWzB4MHgyNWJjNjMxZGMzNWVmZDUxZjFhNDNlODg2MDk3YzU4MDllNjMzY2ZiZTU0NDhjNWExY2E5NzNiZTIwYTEwZjJkY2JhYjA5MzllNjZiNzUyYWE4NDE5MWY2NzA1NTkxNjE1ZTFhM2NhY2I0ZDI4ZWVmODI0MjY3ZmQ5ZGMxOTA2NF0ifQ", - "signatures": [ - { - "protected": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDprZXk6ejZNa24xd01panVGdzVkZEE3SmN5dmdVa0tpZDhXaDN3WW5Cc1hXa2FUVVJrTWRMI3o2TWtuMXdNaWp1Rnc1ZGRBN0pjeXZnVWtLaWQ4V2gzd1luQnNYV2thVFVSa01kTCJ9", - "signature": "h-OBw7eHVVNkgprtcEVD9GVu5_NgiLXzdshcyWXjdrJxljSdlu6yY9trrXBAuXcUXrxUuU-KWAR_eMTOq2-dCw" - } - ] - }, - "signature_public_key": "did:key:z6Mkn1wMijuFw5ddA7JcyvgUkKid8Wh3wYnBsXWkaTURkMdL", - "signature_wallet_address": "did:key:z6Mkn1wMijuFw5ddA7JcyvgUkKid8Wh3wYnBsXWkaTURkMdL", - "signature_type": "did:key", - "leaves": [ - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "d1bae393048ec8a35eacb290e538cc9575b616ee99e59af86585b36fe70541d8395d511a18f7cf31020f85a36b092784da29c4afb7ff641a541e342514b0a1c2", - "ed97cc41ef70162c0c3ca5b7f1bd88d9f3f3c249a3a9444376417d6cb9deb834f22890e25abb4fac8577e3d65e0e949f7224c11d5f549ad127c09d3b8dfa2df2", - "8a2a10de17eeed57fc11b8b277c9104cb4d0e1d4b919d07cf678401c80687c90b31cfbd6c35cb5590b7b02fdb7da0def97f0efdb8553f7fabcf6172a0c5fab5f", - "9744c7f71cc7062d1fca9b2b39a6f6b91a53ead1fe4db788a4bf33d21f0509cd04ce7d9e04aa01f6dfe952524649895c807fe21984e5d7826f5d12228b9219b3", - "94cccc4616e78a77cef476e299d75dab406c129cc28290d8779466fd4ab9364056521ca5356dcee82198dddb080ede7ec9dc210bc61c4deea9a5b439aaaf8cfc", - "646b45aba43fdb8f083c7a7b652dcfa4279f81afcc532736bbac8b29da690d3ea922bad14565d80974a0fb05123ffdb952a2708bedd1ad58f7c6bcb72ec90006" - ] - } - } -} -``` - -4. A) Witness-Revision example Ethereum (non-aggregated) - - -4. B) Witness_Revision example timestamping authority (TSA_RFC3161) -The witness_transaction_hash contains the server certificate chain. -``` -"0x0487556a32b8ba92cd579ace7062027e779295960eeb8ca7ac3908e3f379ae551953ae7bfb121f030d1f29b81dcf3dc955aebf992bcfbaee3f08487ab00416b7": { - "previous_verification_hash": "0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3", - "domain_id": "5e5a1ec586", - "local_timestamp": "20241105093856", - "revision_type": "witness", - "witness_merkle_root": "0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3", - "witness_timestamp": 1730802112, - "witness_network": "TSA_RFC3161", - "witness_smart_contract_address": "http://timestamp.digicert.com", - "witness_transaction_hash": "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", - "witness_sender_account_address": "DigiCert", - "witness_merkle_proof": "[{\"depth\":\"0\",\"left_leaf\":\"0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3\",\"right_leaf\":null,\"successor\":\"0x894ac8cfbaf9fb75aae916c3693928e7d41264e1a85d7089f0cf4bb46963c9626808d26c54709d8458c0d0a07b7c4c619bbb714884854a19195719cb36aafdb3\"}]", - "leaves": [ - "8f68acdd2ccbe8f0088d78438a411af9fcde4259f85a7ff28a0cd4f543ca3b139e24282d39170fe446526f015d5e227eafaead6e73a91f7e3df73b5e3e6a02fb", - "78501ae4b82221563c51de71890ac8bad9d7bc608d8a094a512408785b4f39b3d3b8cea2a292326735ee19918a8c4919711d59661f4923117db8d2eaa2516e80", - "f90837f8515c0def443cb512ee9dfaf8919722467d4019aaf63c13603600903202e8bf21304de25caafc61925b96e024c77c8f0e3223f00c724f524a12cebe95", - "13aa6a0a8800b4d8adeea104f8328bb1b5035276e2522a561c48d3db628263e26093426b35626dbd43b8198a15c6b017609d9fe4f9506f167a7997f80fd71859", - "9df7e7c5741d4373d29f576f3b0e894dacc4feda2cbed0b165a89c7ed3997f29482a5ac1f3f95ed34be0690b53f41d687334e132e80041563b15442380033a01", - "065c9da00b8c0e1d6f165ec946431b88f3a0d5764f9d3d3a5994a095122c81da3d0f3719d1ef712adf47effcea88ea1a2c7e6dbea7d71f0ae70ec388ed646995", - "a2ad3cedcedf8c9ae6ebbb0adde1863bf45247dcc51c14edea7fe4524b06f8ea7cba97f6da77641b537384bae53fa042bb43e377a2e98e71158c99e78185c6b3", - "41bb7271d1596fa17fa5ffcec141eb787d56c79c897ecc6cc83cda650171988e5cfd04e9b878f57d5bcc6f1054cd6162d271d06635b43011ad6785d6f0536b6e", - "6fe1ebd64bfcefda3b61ad5db9b450013e998b511384a9b671fe4c8809fe1f9868a5669bb6211e14346c8af55a41abd02994c73c52ced299d7e23fccd8a4cb13", - "e875b9b6fb0e609b72c6e303701abc3035e160ac541f0b7d542e8f1c354f957fb1d09518e02c6600d9b7e4e4a2591e7754cb60c4869153751bd49e231cdeb1ee", - "078df46bfe5b9db36854c62a053fc68c80a074ce9c13aef0f22e41f266583f1558a37bf56ec2346e34ac125a7aded5534d9506e624774680f128c817770d0370" - ] - } - } -``` -# Drafts - -5. Linkage - -Restriction: The linked resource MUST be an Aqua-Chain or MAY contain content addressed files (BitTorrent, IPFS, Swarm, any content that is verifiable by hash). - -url: path to ressource -remote expect-aqua-chain: boolean - expect type: aqua-chain / bittorrent / ipfs - the type of the linked resources. - require-in-depth-verification: if false, in depth verification will only draw a warning for not verifing or not be able to load the resource, if true, it will cause a critical verification error. - -* load and hash ressource (pull in with copy, pull in without copy). Restriction: only single files allowed. Possible to embedd remote content. -* -```json -{ - "revision_type": "link (when linking to other aqua-chain) / reference (when referencing an external source)", - "expect type": "aqua / bittorent / ipfs" - "required-indepth-verification: "true / false", - "verification-hash": "078df46bfe5b9db36854c62a053fc68c80a074ce9c13aef0f22e41f266583f1558a37bf56ec2346e34ac125a7aded5534d9506e624774680f128c817770d0370", - "url": "FQDN/path: full network-path to ressource / local: ABSOLUTE or RELATIVE path to the aquafier directly -} -``` - -Requirements: -* Remote data needs to be verifiable (stateful) -* This means the ressource must be loadable to hash it for verification - -* Aqua chains MAY support various content addressed storage solutions including: BitTorrent, IPFS, Swarm, any content that is verifiable by hash, these are specifc link types -* Content revisions MUST indicate if its an internal or externally tracked file object -* MIME type of the file (?) -* Filepath + SHA3 Hash - -How to load external resources / Summery: "how to draw the world in": - -* Verifier has its own content storage to store resources which have been loaded for verification. -* This content storage is content hashed (which means same files are not stored files) -* If content references an externally linked file, then the file is loaded and stored when verifying the aqua-chain -* A file is always looked up in the local content storage first by hash, before its loaded from the URL - -Object which is referenced needs to be persistant and verifiable. -Verifiable ressources must be: available (available), hashed, type defined - -Discussion: -* Using JSON-LD https://json-ld.org/ ? -* No, to many aspects which are not needed, Aqua chain focuses on verifiability - -# Backlog - -Future capabilities: - -Content links with external file tracking (and specific tools to interact): -6. Bit-Torrent file support (public files) referencing only the magnet link with the data requered for a torrent tool to load the data. -7. Git-File support to track a repository. -8. Generlised external-file-storage integration (write basic own implementation). -9. X-API integration: E.g. load the JSON and embedd data strucutre of a single tweet via API (TBD: how to solve media pull in pictures and videos). Solve by content addressed storage implementation for large media files: pictures, video, others. -10. Archive.org / Website download (offline archiving) with local storing but externally storage management. - -Support basic statements with a md-text-editor, form. -Type: Contract, requires in-depth-verification. - -Aggregator: Timestamping at maximum. - -When timestamping an aqua-chain receive a mutable flag on the revision which is timestamp. LOCKING it (do not allow new revisions until unlocked / unflagged). Idea: End-revisions, are not allowed to be extended. - -Topic: Witness Contract: -API Read function? -Verifier needs to have a hard conviction of whats our truth. ONE SMART contract, if not we could fall into the trap that somebody changes a witness revision to a different contract and it still would be valid. --> Is this a problem? - -Discussion: - -Optimizations: - -Different Hashing machanism -* https://crypto.stackexchange.com/questions/31674/what-advantages-does-keccak-sha-3-have-over-blake2 i can't find a strong reason for preferring sha3 -* tl; dr: blake2 didn't win nist because it's too similar to sha2. on the other hand, sha2 has been proven to stay even after decades, so being similar to it is actually a feature, not bug. but this is an argument from the author of blake2, which is biased -* Potentially using blake3 (optimized) which seems to be up to 15x faster -* What are the security considerations / drawbacks - - -Discussion "removing internally tracked files / content revisions": -* Remove Content revision with wrapping -* Track files with a local storage deamon -> only have their hash, receive files by hash, store them by hash -* Storage service and hasher service always come togather -* Possible to extend the aqua-verifier to support other storage implementations via shared interface (?) -* Track matadata of file with DB or with an extra file containing the sha3 hash and URL how to receive the file (?)RITIQUE and option (OPTIMIZATION): In depth verification (secure every field) vs shadllow verification (just hash the whole JSON file structure with one hash (root hash). diff --git a/versioned_docs/version-1.3.0/intro.md b/versioned_docs/version-1.3.0/intro.md deleted file mode 100644 index 16321314..00000000 --- a/versioned_docs/version-1.3.0/intro.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Documentation" -linkTitle: "Documentation" -weight: 10 -menu: - main: - weight: 10 ---- - -The following are documentation used to understand the AQUA Protocol and it's -implementations. AQUA is heavily under development at the moment and is evolving -rapidly. diff --git a/versioned_docs/version-1.3.2/AccessControl.md b/versioned_docs/version-1.3.2/AccessControl.md deleted file mode 100644 index 64d247a2..00000000 --- a/versioned_docs/version-1.3.2/AccessControl.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: "Access Control" ---- - -# Access Control - -This document specifies the access control mechanisms in version 3 of the Aqua Protocol, leveraging portable hash-chains (Aqua-Chains) to manage permissions and enforce secure data exchange. Access control is facilitated through structured revisions within Aqua-Chains, enabling authoritative users to grant or negotiate access to resources using cryptographic signatures and optional bilateral agreements. - -The examples below illustrate two primary access control scenarios: unilateral access grants and bilateral access agreements requiring receiver acknowledgment. These use Ethereum-based signatures and SHA256 hashing, with optional timestamping on the Ethereum blockchain for trust. - -Context: Prototype for Fire-Wall like systems where prototyped in version 1.2 of the protocol, see https://github.com/inblockio/aqua-guardian - ---- - -## Unilateral Access Grant - -### Overview -A unilateral access grant allows an authoritative user to permit another party to access a specific resource without requiring additional acknowledgment. The sender must be an authoritative user within the context where the access is interpreted. - -### Input JSON for Access Grant -The input is a JSON form submitted to create an AquaTree revision. - -``` -{ - "type": "access", - "sender": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "receiver": "0x556f9d33Ac143718861bf23C918b50D32ff09F2f", - "resource": "0x98b736ef2dcdd0402f32748c4312b3226b24be8b8757ccd50b818991f98f93ad" -} -``` - -- **`type`**: Specifies the form type as an access grant. -- **`sender`**: Ethereum wallet address of the authoritative user granting access. -- **`receiver`**: Ethereum wallet address of the recipient granted access. -- **`resource`**: Verification hash of the Aqua-Chain revision representing the resource (e.g., a file or dataset). - -### Resulting Aqua-Chain Revision Datastructure -The access grant is encoded into an AquaTree with two revisions: a form revision and a signature revision. The signature verifies the sender’s authority. - -``` -{ - "0x78daea3f7a0e2a5699489bbdcb205fb829deed50d92883e2cff5204e5684c8fb": { - "previous_verification_hash": "", - "local_timestamp": "20250305204539", - "revision_type": "form", - "file_hash": "625110fe1d0c45174728fa6761029e8790b4323aa98a0aa73203f6e0161bdf85", - "file_nonce": "18ac9ab5e9c06d73441aa3bdf76461312a8acb0e29da8e3ac6d263b46b1a0948", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree", - "forms_type": "access", - "forms_sender": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "forms_receiver": "0x556f9d33Ac143718861bf23C918b50D32ff09F2f", - "forms_resource": "0x98b736ef2dcdd0402f32748c4312b3226b24be8b8757ccd50b818991f98f93ad", - "leaves": [ - "0ce8e015983856b9aa4bf1b981d4c1190cb3d75e8e672d939acbd99863803fd0", - "a1cc6e765d9443175ba32a450a04106a78391dbc036f8c437bf801744e4db417", - "a93ec79a8b62a91db5927c6b8d231284e3d018527769b21d71d555efbf390dde", - "aa0fb1f2bd8c5ee3169f03983d1c8d4ae50d48898282344ffb2a01ed0a0ce0eb", - "6e44f260490db970aa88fc21969f9018efb09b68e2e105765740fde4c82fff8e", - "0f7937d986689f822e4a296e2832195c19b119f2bb33ed3d01238e7da270fce0", - "356f5f23ac38ad9b94a9f962baee07cadd9212207541b538e19511b096bcf846", - "d781acf7ba880ecae581ffd8debcb4f5cb430bc2f237e27a6098471a9f7ffa60", - "43fcaef3dc4b2a2d0550543b638048edcfb710da9276da109a9e011ed1a53ed1", - "39ccd407bb105ed3be74df4a546d9b10c4f6c80e48b559102b04fa2b29aa83b4" - ] - }, - "0x2b4510a35f731af92fb2fde4dd78d5e325e174f84fb56123c973eaa6b3c57cd0": { - "previous_verification_hash": "0x78daea3f7a0e2a5699489bbdcb205fb829deed50d92883e2cff5204e5684c8fb", - "local_timestamp": "20250305204619", - "revision_type": "signature", - "signature": "0xa8c1b94521428454c96446523719a5a1795ec187e845efe7df5ce1c44dc99ca54d2813eed5e24fd4898bb8e5015fcc1f2df80c3d1b928dd7541b6f82011e419c1c", - "signature_public_key": "0x03b6ff4b0c45ce230eb48499614538ca7daa43000395e694ac92eaa1e4b805df8a", - "signature_wallet_address": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "signature_type": "ethereum:eip-191", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" - } -} -``` - -### Enforcement -The protocol requires: -1. Verification of the signature using the sender’s public key. -2. Confirmation that the sender is an authoritative user within the domain managing the resource. -3. Permission granted to the receiver to access the resource identified by `forms_resource`. - ---- - -## Bilateral Access Agreement - -### Overview -A bilateral access agreement requires both the sender and receiver to sign an Aqua-Chain, formalizing conditions for data sharing. The receiver’s signature acknowledges the conditions, and the resource is shared only after both signatures are present. - -### Input JSON for Access Agreement -The input includes conditions that the receiver must acknowledge. - -``` -{ - "type": "access_agreement", - "sender": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "receiver": "0xa2026582B94FEb9124231fbF7b052c39218954C2", - "resource": "0x98b736ef2dcdd0402f32748c4312b3226b24be8b8757ccd50b818991f98f93ad", - "conditions": "With signing this access agreement, the receiver agrees to use the resource solely for non-commercial purposes and not to redistribute it without prior consent." -} -``` - -- **`conditions`**: Human-readable and machine-enforceable terms of use - -### Resulting Aqua-Chain Revision Datastructure -The agreement comprises three revisions: the form, the sender’s signature, and the receiver’s signature. - -``` -{ - "revisions": { - "0xb9bc2f140ae99258eb350aca87f5de0f26f2204fd4dc143683b1d1497f87e6f9": { - "previous_verification_hash": "", - "local_timestamp": "20250305205355", - "revision_type": "form", - "file_hash": "78cbba02860c4e7f376f1b0544b747f1b3e3127d9f3712d2ec98c7fa03ed2e90", - "file_nonce": "42f43925d31bfdd26ac339c272a547c5d217d5d35ab87f4d337f5be7ce8cff94", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree", - "forms_type": "access_agreement", - "forms_sender": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "forms_receiver": "0xa2026582B94FEb9124231fbF7b052c39218954C2", - "forms_resource": "0x98b736ef2dcdd0402f32748c4312b3226b24be8b8757ccd50b818991f98f93ad", - "forms_conditions": "With signing this access agreement, the receiver agrees to use the resource solely for non-commercial purposes and not to redistribute it without prior consent.", - "leaves": [ - "d19b134d9445113182f49cb00bdbe1c26876bd05e64155120825530bd799fca8", - "b58f63b8c75ce58b2344b821f5374bd981480e0a12d8fc7135395d3b9ce7501c", - "cf42137b5cf6ae8ddd4b46d6a69abbe4fb6808b82a519b999cf8b3e708a650ec", - "64d1e018b19bf2d17f37a214d090fd307b5fea9be326a4d76ad48de5cb26fea2", - "aa0fb1f2bd8c5ee3169f03983d1c8d4ae50d48898282344ffb2a01ed0a0ce0eb", - "6e44f260490db970aa88fc21969f9018efb09b68e2e105765740fde4c82fff8e", - "91016c1a2a26b2dbab249bf4760062136aa89326028afaf8a69193749f80484f", - "7eb6a8beb0f74cb11e14eeff9ec4d70bafe4cc5739824d5d147580403a8ea466", - "d781acf7ba880ecae581ffd8debcb4f5cb430bc2f237e27a6098471a9f7ffa60", - "43fcaef3dc4b2a2d0550543b638048edcfb710da9276da109a9e011ed1a53ed1" - ] - }, - "0x04e5c695969ab0634e337c9cfc920a6c3d0a8b06f6480daf36ae74a4e6193b56": { - "previous_verification_hash": "0xb9bc2f140ae99258eb350aca87f5de0f26f2204fd4dc143683b1d1497f87e6f9", - "local_timestamp": "20250305205405", - "revision_type": "signature", - "signature": "0x6771333580642308cb18b27869d751e723d6e5a8328e2b5c1a6cb35a0a5d841536817d4b40301d8830a877f55f1869a222380df3432176e76959827811859acc1c", - "signature_public_key": "0x03b6ff4b0c45ce230eb48499614538ca7daa43000395e694ac92eaa1e4b805df8a", - "signature_wallet_address": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "signature_type": "ethereum:eip-191", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" - }, - "0x84cf1e09c51911599d4c2a9e5ad6390027b82f397db929a5468c1cc9b9815119": { - "previous_verification_hash": "0x04e5c695969ab0634e337c9cfc920a6c3d0a8b06f6480daf36ae74a4e6193b56", - "local_timestamp": "20250305205420", - "revision_type": "signature", - "signature": "0xba380c0b07cbcdaefd258cc3bdb21a3f31993a54d9e991ba0b9953e62767f5cc53b03f659dc80466dd9a00e83920fa0eeffa43921a6f5a387e44155547b58f311c", - "signature_public_key": "0x041518581af65749b3ddc69889df3e5d229bc8ad79279a07ddeb368ade5e1592368c5ff3b69143d7a1e7cf64f7d0774a6724e6eaf138d318d07ddc30f6081ca89a", - "signature_wallet_address": "0xa2026582B94FEb9124231fbF7b052c39218954C2", - "signature_type": "ethereum:eip-191", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" - } - } -} -``` - -#### Key Fields: -- **`forms_conditions`**: Specifies enforceable terms, stored as part of the Aqua-Chain. -- **`signature`**: Two signatures are required: - - Sender’s signature authorizes the agreement. - - Receiver’s signature acknowledges the conditions. - -### Enforcement Workflow -The protocol requires: -1. **Sender Initiation**: The sender creates and signs the agreement (revisions 1 and 2). -2. **Receiver Acknowledgment**: The receiver signs the agreement (revision 3). -3. **Validation**: The fully signed Aqua-Chain is verified, ensuring both signatures are valid. -Additional checks: Signature must be authoritative in the context of the sender. Signature of the receiver must be from the account defined by the sender. -4. **Resource Sharing**: The resource is shared with the receiver only after both signatures are confirmed. An option is to share any revision before the referrenced revision to provide verifiable history. Another option could be to define optional policies to allow e.g. access to future revisions (updates) to the AquaTree. - diff --git a/versioned_docs/version-1.3.2/AquaIdentity.md b/versioned_docs/version-1.3.2/AquaIdentity.md deleted file mode 100644 index 74c679e9..00000000 --- a/versioned_docs/version-1.3.2/AquaIdentity.md +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: "Aqua Identity" ---- - -# Aqua Identity - -**Aqua Identity** leverages the Aqua Protocol to deliver trusted identity claims and attestations within a secure, decentralized framework. Operating as a layer-two application, it builds upon the foundational verifications completed at layer one, ensuring a robust and reliable identity management system. For an Aqua Identity to be considered valid, all prerequisite atomic and relational verification checks must be successfully completed prior to its issuance. **Atomic verification** refers to the validation of a single revision’s content, ensuring all required checks (e.g., data integrity, format compliance) are met. **Relational verification** examines the relationships between revisions, confirming plausibility of timestamps, consistency of revision hashes (e.g., matching the expected `previous_verification_hash`), and availability of linked resources. - -## Self-Authenticated Identity Claims - -Self-authenticated identity claims form the cornerstone of the Aqua Identity system. These claims originate from individuals asserting their own identity attributes, serving as the initial step in establishing a verifiable identity. - -### Verification Conditions -To ensure the validity of a self-authenticated identity claim, the following conditions must be met: -- **Signature Requirement**: The claim MUST be cryptographically signed by the issuer, who is the owner of the associated wallet. -- **Ownership Restriction**: Only the wallet owner is authorized to issue claims pertaining to that wallet, ensuring authenticity and accountability. - -## Example: Self-Authenticated Identity Claim - -Below is an example of a self-authenticated identity claim represented as a JSON dictionary, encapsulating key personal attributes: - -``` -{ - "type": "identity_claim", - "name": "John", - "surname": "Doe", - "email": "john.doe@example.com", - "date_of_birth": "1995-10-15", - "wallet_address": "0x568a94a8f0f3dc0b245b853bef572075c1df5c50" -} -``` - -This JSON structure is encapsulated within an **Aqua revision** of type `"form"`, utilizing a tree-based verification structure. The tree structure enables **selective disclosure**, allowing the claimant to remove values from specific keys before sharing with third parties, without compromising the ability to verify the remaining fields. This ensures privacy while maintaining the integrity of the claim’s data structure. - -### Aqua Revision Example -The following demonstrates how the identity claim is wrapped into an Aqua revision, including a signature for authentication: - -``` -{ - "revisions": { - "0x5721891d757ee81ab3cd00442293f3808a99e676d2d1bda03cda26bae23daed1": { - "previous_verification_hash": "", - "local_timestamp": "20250228083859", - "revision_type": "form", - "file_hash": "e193009bf33316803481ad0dd2aea14ccf489ca261fa403c96f8e054d5ea4659", - "file_nonce": "74a3389590e9af459113ad629ec5682b73747291b840e39226b58054a475d3ef", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree", - "forms_type": "identity_claim", - "forms_name": "John", - "forms_surname": "Doe", - "forms_email": "john.doe@example.com", - "forms_date_of_birth": "1995-10-15", - "forms_wallet_address": "0x568a94a8f0f3dc0b245b853bef572075c1df5c50", - "leaves": [ - "a30b33749a68fb367b267f2f8b44d53a1bfe3aba94b265df98f812a2db1ac60d", - "f7f02d3b6bd597c63b423a0bb682e77c9b42b1c27ef777bad47259eaa6d5a45f", - "3b5abc4d1a21b05caa891be0650cf25cea133ddb939b1c45a8282bcab686545a", - "dcb7cfdf2bae4a7e558e58dc9a26bc2627f35f2097c38b3e1493693ed3495239", - "5122dde9b24bdd39f3eb20f64c18e6a960b6a3320c7cfb7707b8e7de581cc7f2", - "28d88a09468f136c21475a121b53c626d1c29902a076b7e94c8a77aaa2a45b37", - "15a1e4c78fa31877be47fa99afee32bd426d6bf74c5297f0d1d706b987c528bd", - "b95b4f6e034884da002c503e2753b4b93c5a9d07a0d9ee13576f0bace9c4649b", - "78d7f2378e5160fd5d5e52065467c8c444f20b75e03e0b0d564ee6dc9b7fa7dd", - "d781acf7ba880ecae581ffd8debcb4f5cb430bc2f237e27a6098471a9f7ffa60", - "43fcaef3dc4b2a2d0550543b638048edcfb710da9276da109a9e011ed1a53ed1", - "39ccd407bb105ed3be74df4a546d9b10c4f6c80e48b559102b04fa2b29aa83b4" - ] - }, - "0xe5ee04bc1eb8365d8c609cc6afa4dc9c003dd6cd0538797ba458d58a660aedf8": { - "previous_verification_hash": "0x5721891d757ee81ab3cd00442293f3808a99e676d2d1bda03cda26bae23daed1", - "local_timestamp": "20250228084213", - "revision_type": "signature", - "signature": "0x8a3055c71bc3fb705add8a82c88e6d7f909a1f53415e1172da66a7d807c517004b84b6df8f8e86d764bb49629ec9d5a34075a959799f9153fb1af0f246d4c2fe1b", - "signature_public_key": "0x0380a77a1a6d59be5c10d7ee5e10def79283938bb8a60025d0fe5404e650e8ccc1", - "signature_wallet_address": "0x568a94a8f0f3dc0b245b853bef572075c1df5c50", - "signature_type": "ethereum:eip-191", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" - } - } -} -``` - -This example illustrates a fully formed identity claim with multiple attributes, cryptographically signed to ensure authenticity and integrity. - -## Attestations - -Attestations enhance the trustworthiness of self-authenticated identity claims by introducing third-party validation. An attestation is issued by an attester who verifies the accuracy of the claim’s attributes against a reliable source, such as a government-issued ID. - -### Example: Attestation Input JSON -Below is an example of the input JSON for an attestation within an Aqua form revision: - -``` -{ - "type": "identity_attestation", - "identity_claim_id": "0x5721891d757ee81ab3cd00442293f3808a99e676d2d1bda03cda26bae23daed1", - "name": "John", - "surname": "Doe", - "email": "john.doe@example.com", - "date_of_birth": "1995-10-15", - "context": "I verified the attributes against a government-issued ID. I hereby attest that the above information is true and correct to the best of my knowledge.", - "wallet_address": "0x6b2f22390c318107e95c58c90a66afaf7ef06853" -} -``` - -### Verification Conditions -For an attestation to be valid, it MUST satisfy the following requirements: -- **`forms_type`**: Must be set to `"identity_attestation"`. -- **`forms_identity_claim_id`**: Must reference the revision hash of the associated identity claim. -- **`forms_wallet_address`**: Must correspond to the wallet address of the attester. -- **`forms_context`**: Optional but recommended field providing additional context about the attestation process (e.g., verification method or source), enhancing transparency and trust. -- **Attribute Overlap**: Must include at least one attribute with an identical key-value pair to the referenced identity claim, ensuring consistency. - -### Aqua Revision for Attestation -The attestation is formalized within an Aqua revision, including both the form and its cryptographic signature: - -``` -{ - "revisions": { - "0xcd5acfd60283091769c765b05add4fe7bfc6471174264af523de96305d367e46": { - "previous_verification_hash": "", - "local_timestamp": "20250228100501", - "revision_type": "form", - "file_hash": "2a8f574fa444958c2acfa5ce9652cbe26e3c38271cb130280682a119050565cc", - "file_nonce": "4d5be0fffe4ea48a214f93cdc5da3933c252569a6e2d5e557346015219ab4921", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree", - "forms_type": "identity_attestation", - "forms_identity_claim_id": "0x5721891d757ee81ab3cd00442293f3808a99e676d2d1bda03cda26bae23daed1", - "forms_name": "John", - "forms_surname": "Doe", - "forms_email": "john.doe@example.com", - "forms_date_of_birth": "1995-10-15", - "forms_context": "I hereby attest that the above information is true and correct to the best of my knowledge.", - "forms_wallet_address": "0x6b2f22390c318107e95c58c90a66afaf7ef06853", - "leaves": [ - "80f38992d148b666addfdee7678aa8b6e6b6babb6b088d58d19e85135c5cd92f", - "fadc2c5b6793a43ac3e0c5920b56bbd0cc3dac56fc60b45091a8671e884cbec9", - "5890fbf208e5503532c9d4f1cf97cd78d993b42d023187ac02cdc4298a01a197", - "3b5abc4d1a21b05caa891be0650cf25cea133ddb939b1c45a8282bcab686545a", - "dcb7cfdf2bae4a7e558e58dc9a26bc2627f35f2097c38b3e1493693ed3495239", - "a37e968e97736a195db0ca44538174984e34fc10b68aa6d351386ccf8b87470f", - "5122dde9b24bdd39f3eb20f64c18e6a960b6a3320c7cfb7707b8e7de581cc7f2", - "28d88a09468f136c21475a121b53c626d1c29902a076b7e94c8a77aaa2a45b37", - "724b53a739396244b394d8ea53afb014de7c99eb243f5d6d574d154a02c9ba5f", - "21e21d483289413fac72228b2005deddc3155cc4850059303f084a05368c4e57", - "02f64008e4005ffc43c0270e32e4b3c1c1c8075793aea167923960c59a4300c2", - "d781acf7ba880ecae581ffd8debcb4f5cb430bc2f237e27a6098471a9f7ffa60", - "43fcaef3dc4b2a2d0550543b638048edcfb710da9276da109a9e011ed1a53ed1", - "39ccd407bb105ed3be74df4a546d9b10c4f6c80e48b559102b04fa2b29aa83b4" - ] - }, - "0x7be476f6c305187b2410cfff0df8e6eeb4ba53a25b3e389231085d4934c68aec": { - "previous_verification_hash": "0xcd5acfd60283091769c765b05add4fe7bfc6471174264af523de96305d367e46", - "local_timestamp": "20250228100743", - "revision_type": "signature", - "signature": "0xb2b51810d7134f969fb48736e6f390d3eadac3b1e9adb5b8ef54c600ae77826971d64a74e01dd0bc1e2a18911ea1e8350733b3f7676866653ae8f0e7645fb7a51b", - "signature_public_key": "0x02b027a2f4592f83c1301c1e6629f648a953d791d7c7059b1c46a6a24d9101f4c9", - "signature_wallet_address": "0x6b2f22390c318107e95c58c90a66afaf7ef06853", - "signature_type": "ethereum:eip-191", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" - } - } -} -``` - -Attesters play a critical role in the Aqua Identity ecosystem, validating self-authenticated claims to enhance their credibility and utility. - -## Example Project - -For a practical implementation, refer to the open-source project: - -[**Aqua Identity on GitHub**](https://github.com/inblockio/aqua-identity) diff --git a/versioned_docs/version-1.3.2/Cheque.md b/versioned_docs/version-1.3.2/Cheque.md deleted file mode 100644 index 30b09536..00000000 --- a/versioned_docs/version-1.3.2/Cheque.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -sidebar_position: 7 ---- - -# A Payment Infrastructure Prototype - -This prototype implements a paper-cheque equivalent using the **Aqua Protocol** for offline data verification, **WAVs** as a gateway for distributed computation and on-chain triggers, and a **smart contract** to manage funds securely. It enables a sender to issue a "cheque" and a receiver to cash it out via cryptographic signatures and verification. - -- **GitHub**: [aqua-cheques](https://github.com/inblockio/aqua-cheque) -- **WAVs Gateway**: [wavs-demos](https://github.com/Lay3rLabs/wavs-demos) - ---- - -## Core Workflow - -The system mimics a traditional cheque: -1. Sender creates a cheque with payment details. -2. Sender signs it cryptographically. -3. Receiver updates the cheque with their address and signs it. -4. The signed cheque is verified offline via Aqua and executed on-chain via WAVs. - -### Flow Diagram -![Escrow Gateway Aqua](/docs_pics/Escrow_Gateway_Aqua.png) - -Another flow: -![Cheque Flow Aqua - Wavs](/docs_pics/Flow_Cheque.jpg) - -### Example cheque -![Paper cheque Example](/docs_pics/Cheque_Filled_Example.png) - ---- - -## Step-by-Step Process - -### 1. Create the Initial Aqua Form (Sender) -The sender defines the payment in an Aqua JSON object: - -```json -{ - "sender": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "receiver": "", - "amount": "0.3", - "currency": "ETH" -} -``` - -- **`sender`**: Ethereum address of the payer. -- **`receiver`**: Left blank initially (filled by the receiver later). -- **`amount`**: Payment amount in the specified currency. -- **`currency`**: Token or coin type (e.g., ETH). - -### 2. Sender Signs the Form -The sender signs the JSON using an Ethereum EIP-191 signature. This is appended to the Aqua revision history (see "Aqua Revisions" below). - -### 3. Receiver Updates the Form -The receiver adds their address to the JSON: - -```json -{ - "sender": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "receiver": "0x4a79b0d4b8feda7af5902da2d15d73a7e5fdefd4", - "amount": "0.3", - "currency": "ETH" -} -``` - -### 4. Receiver Signs the Form -The receiver signs the updated JSON, also using EIP-191, completing the cheque. - -### 5. Verification and Execution -- The signed JSON is uploaded to the WAVs gateway. -- WAVs runs the Aqua library (Rust API) to verify: - - Sender and receiver signatures. - - Consistency of fields (e.g., `amount` and `currency` match between revisions). -- If valid, WAVs triggers the on-chain smart contract to transfer funds from the sender to the receiver. - ---- - -## Interface Design - -The system assumes two user-facing views interacting with the WAVs gateway: - -### View 1: cheque Registration -- **Purpose**: Sender uploads the initial signed JSON. -- **Requirements**: - - Smart contract whitelists the sender’s address to accept the cheque. - - Interface submits the JSON to the WAVs instance via an API call. - -### View 2: cheque Cashout -- **Purpose**: Receiver uploads the fully signed JSON for verification and payout. -- **Requirements**: - - Interface submits the updated JSON to WAVs. - - WAVs verifies signatures and triggers the smart contract. - -#### API Integration -- WAVs may provide a built-in interface (TBD—cheque [wavs-demos](https://github.com/Lay3rLabs/wavs-demos)). -- If not, your interface must: - 1. Package the JSON with signatures. - 2. Send it to the WAVs endpoint (e.g., `POST /verify`). - 3. Handle the response (success triggers payout; failure returns an error). - -**Example API Call** (hypothetical): -```bash -curl -X POST https://wavs-instance.example.com/verify \ - -H "Content-Type: application/json" \ - -d '{"aqua_json": <signed_json>}' -``` - - ---- - -## Aqua Revisions with Signatures - -Aqua tracks changes and signatures in a revision tree. Below is an example of a fully signed cheque: - -```json -{ - "revisions": { - "0xd453ccae56945ce381f1adb57feef37ba77e215604fe078faa2d9527159c9c76": { - "previous_verification_hash": "", - "local_timestamp": "20250306172550", - "revision_type": "form", - "file_hash": "dd056a2c7c877716e2fd9f4f1aecfff05da6aae0158c0aa60775afa88cc1daf3", - "forms_sender": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "forms_receiver": "", - "forms_amount": "0.3", - "forms_currency": "ETH", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree" - }, - "0x1ea148be50e98f45996353a8b2b1eb5b8e379c2bc02c18fe875e6c52bd1ccd08": { - "previous_verification_hash": "0xd453ccae56945ce381f1adb57feef37ba77e215604fe078faa2d9527159c9c76", - "revision_type": "signature", - "signature": "0xd3984892d212c2613fbbea69ed669449e378f5d085326c6e2770f69e5420408515a1975a9308e058f8d33dee700b8018e372b622e8ea12934ebc0b1c1e9832f21b", - "signature_wallet_address": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "signature_type": "ethereum:eip-191" - }, - "0x6548c5d222c4c4382e430aff84432896ce64e5c1fb465c907a4a91a927ce4a9c": { - "previous_verification_hash": "", - "revision_type": "form", - "file_hash": "00bf727b9503eeb95283eb315595a4340aae9db9abc15e77caab0a27ebb62f93", - "forms_sender": "0xbdc64c49bf736cfe1b8233b083d3d632f26feb27", - "forms_receiver": "0x4a79b0d4b8feda7af5902da2d15d73a7e5fdefd4", - "forms_amount": "0.3", - "forms_currency": "ETH" - }, - "0x9c234109372fe09e1193f9637536eb555cfbe7803cdf17067dfad0d76fc52a86": { - "previous_verification_hash": "0x6548c5d222c4c4382e430aff84432896ce64e5c1fb465c907a4a91a927ce4a9c", - "revision_type": "signature", - "signature": "0xabdacd337ae491914b6f2afb2e53249709983c3c98c54c66fcf07fed186a5fb751a6b29e1444bec134695ee01da8fc12b56d71b89df7801c49ce67f2068cc30d1b", - "signature_wallet_address": "0x4a79b0d4b8feda7af5902da2d15d73a7e5fdefd4", - "signature_type": "ethereum:eip-191" - } - }, - "tree": { - "hash": "0x9c234109372fe09e1193f9637536eb555cfbe7803cdf17067dfad0d76fc52a86", - "children": [] - } -} -``` - -### Verification Rules -- **`forms_sender`**, **`forms_amount`**, and **`forms_currency`** must match between revisions. -- Only **`forms_receiver`** can differ (updated by the receiver). -- Signatures must validate against the respective wallet addresses. - ---- - -## Additional Milestones (Aqua-Dev-Team) - -1. [ ] **Aqua Library**: Integrate the Rust-based Aqua API for offline verification (see [aqua-cheques](https://github.com/inblockio/aqua-cheques)). -2. [ ] **WAVs Setup**: Deploy a WAVs instance or use an existing one. Ensure it can: - - Accept JSON submissions. - - Run Aqua verification. - - Trigger the smart contract. -3. [ ] **Smart Contract**: Deploy an escrow contract with: - - Whitelisting for sender addresses. - - Locking cheque amoung with revision hash and amount for possible revocation - - A `cashout` function triggered by WAVs. diff --git a/versioned_docs/version-1.3.2/RestAPI.md b/versioned_docs/version-1.3.2/RestAPI.md deleted file mode 100644 index 1014ca5d..00000000 --- a/versioned_docs/version-1.3.2/RestAPI.md +++ /dev/null @@ -1,349 +0,0 @@ ---- -title: "Rest API" -menu: - main: - weight: 10 ---- - -## REST API Specification for Aqua-Protocol Version 3 - -REST APIs are used to interact with the Aqua-Protocol in Client-Server applications. -This includes data syncing and exchange operations between different aqua-services. -Early versions of this API where prototypes within the PKC-Guardian project. - -## Base URL -/aqua/v3/ - - -## Authentication -- **Requirement**: All endpoints except `/session` (POST) require a `Bearer` JWT in the `Authorization` header. -- **JWT Details**: Issued via SIWE-OIDC, tied to the user’s Ethereum wallet address (secp256k1-derived), configurable lifespan (default: 1 hour). - -## Endpoints - -### 1. Get Aqua Tree Latest -- **Method**: `GET` -- **Path**: `/trees/{genesisHash}/latest` -- **Description**: Retrieves all latest revision hashes across all branches of the tree starting from the genesis hash. -- **Query Params**: - - `includeMetadata` (boolean, default: `false`): Include full revision details. -- **Response** (minimal): - ```json - { - "latest": [ - "0x4d8f16e234aee6738325cb4e4bee0a4ae83e251614bbf1620961e3af9f702554", - "0xsomeotherhash..." - ] - } -``` - -## Authentication -- **Requirement**: All endpoints except `/session` (POST) require a `Bearer` JWT in the `Authorization` header. -- **JWT Details**: Issued via SIWE-OIDC, tied to the user’s Ethereum wallet address (secp256k1-derived), configurable lifespan (default: 1 hour). - -### 1. Get Aqua Tree Latest -- **Method**: `GET` -- **Path**: `/trees/:revisionHash/latest` -- **Description**: Retrieves all latest revision hashes across all branches of the tree starting from the genesis hash. -- **Query Params**: - - `includeMetadata` (boolean, default: `false`): Include full revision details. -- **Response** (minimal): - - ```json - { - "latest": [ - "0x4d8f16e234aee6738325cb4e4bee0a4ae83e251614bbf1620961e3af9f702554", - "0xsomeotherhash..." - ] - } -``` -Response (with includeMetadata=true): - ```json -{ - "latest": [ - { - "verification_hash": "0x4d8f16e234aee6738325cb4e4bee0a4ae83e251614bbf1620961e3af9f702554", - "revision_type": "link", - "local_timestamp": "20250223204717", - "previous_verification_hash": "0xc828a5579c69923a66db6b06e6e47c31dc08ccc8f8340d8e2b190683dc76de21" - } - ] -} -``` -Status Codes: -- `200`: Success -- `404`: Genesis hash not found -- `401`: Unauthorized - -## Get Aqua Tree Branch -- **Method**: `GET` -- **Path**: `/trees/:revisionHash/branch` -- **Description**: Retrieves the branch from the specified hash back to the genesis hash (backward traversal only). -- **Query Params**: - - `page` (int, optional, default: `1`): Pagination page. - - `limit` (int, optional, default: `100`): Revisions per page. -- **Response**: - ```json - { - "branch": [ - { - "verification_hash": "0x4d8f16e234aee6738325cb4e4bee0a4ae83e251614bbf1620961e3af9f702554", - "revision_type": "link", - "local_timestamp": "20250223204717", - "previous_verification_hash": "0xc828a5579c69923a66db6b06e6e47c31dc08ccc8f8340d8e2b190683dc76de21" - }, - "..." - ], - "pagination": { - "page": 1, - "limit": 100, - "total": 4 - } - } -``` -``` - -- **Notes**: `pagination` omitted if not used (no `page` or `limit` provided). -- **Status Codes**: - - `200`: Success - - `404`: Branch hash not found - - `401`: Unauthorized - -## Get Aqua Tree Revision -- **Method**: `GET` -- **Path**: `/trees/:revisionHash` -- **Description**: Retrieves details of a specific revision. -- **Response**: - ```json - { - "verification_hash": "0x97b36fbde14bfddaa639c7d3b8416d44781ccc1092e536e01c4a7dbd0c90eff9", - "previous_verification_hash": "", - "local_timestamp": "20250218190616", - "revision_type": "file", - "file_hash": "a7bf1f3efdfaad71b28125b91c1403cba0eaf6db2c8dff9a438d13754de5b468", - "file_nonce": "ztqu4gByEgd0WKGgakpwMoK2WhieZ-WE0ztzQhCWJ2Y" - } - ``` - -- **Status Codes**: - - `200`: Success - - `404`: Revision not found - - `401`: Unauthorized - -## Post New Tree Revision -- **Method**: `POST` -- **Path**: `/trees` -- **Description**: Creates a new revision, validated against `aqua-verifier-js-lib` verifier. -- **Request Body** (example for `signature` type): - - ```json - { - "previous_verification_hash": "0x6c64a40493862be542a0c6eb016df21d4c1c6c11208ecc0013d0c209679bc962", - "revision_type": "signature", - "signature": "0x6fbf1437d6532e97edc08b7b1e7c09ed21103abc1b6d324550585fbf85e8bfb858e570f4cc35432da45b76aec1d933c7a5870ecba3e06fa29cf510f2cfa0165f1c", - "signature_public_key": "0x0219b2dee3f0691f26ce35104b7411d379e15dc62ae8d3a0797b7257e87e7a5821", - "signature_wallet_address": "0x011d801fd833eb98109aaca1923f7652cf16db7f", - "signature_type": "ethereum:eip-191" - } - ``` - -- **Response**: - ```json - { - "verification_hash": "0xc828a5579c69923a66db6b06e6e47c31dc08ccc8f8340d8e2b190683dc76de21", - "local_timestamp": "20250223210000" - } - ``` - -- **Validation**: Rejects if: - - `previous_verification_hash` doesn’t exist. - - Revision type or fields are invalid/malformed (per `aqua-verifier-js-lib`). -- **Status Codes**: - - `201`: Created - - `400`: Invalid/malformed revision (with error details if `error_mode=verbose`) - - `404`: Previous hash not found - - `401`: Unauthorized - -## Verify Aqua Tree -- **Method**: `POST` -- **Path**: `/verify` -- **Description**: Delegates verification to `aqua-verifier-js-lib`, returns a detailed report. -- **Request Body**: - ```json - { - "revisions": { - "0x97b36fbde14bfddaa639c7d3b8416d44781ccc1092e536e01c4a7dbd0c90eff9": { - "previous_verification_hash": "", - "local_timestamp": "20250218190616", - "revision_type": "file", - "file_hash": "a7bf1f3efdfaad71b28125b91c1403cba0eaf6db2c8dff9a438d13754de5b468", - "file_nonce": "ztqu4gByEgd0WKGgakpwMoK2WhieZ-WE0ztzQhCWJ2Y" - } - } - } - ``` - -- **Response**: - ```json - { - "report": { - "0x97b36fbde14bfddaa639c7d3b8416d44781ccc1092e536e01c4a7dbd0c90eff9": { - "status": "valid", - "details": "Verification passed per aqua-verifier-js-lib" - } - } - } - ``` - -- **Status Codes**: - - `200`: Success - - `400`: Malformed input - - `401`: Unauthorized - -## Session Handling - -### Login -- **Method**: `POST` -- **Path**: `/session` -- **Request Body** (SIWE-OIDC): - ```json - { - "message": "example.com wants you to sign in with your Ethereum account...", - "signature": "0x..." - } - ``` - -- **Response**: - ```json - { - "token": "jwt...", - "expires_at": "20250223214400", - "wallet_address": "0x011d801fd833eb98109aaca1923f7652cf16db7f" - } - ``` - -- **Status Codes**: - - `201`: Session created - - `400`: Invalid SIWE message/signature - -### Logout -- **Method**: `DELETE` -- **Path**: `/session` -- **Response**: `204 No Content` -- **Status Codes**: - - `204`: Success - - `401`: Unauthorized - -### Session Info -- **Method**: `GET` -- **Path**: `/session` -- **Response**: - ```json - { - "wallet_address": "0x011d801fd833eb98109aaca1923f7652cf16db7f", - "expires_at": "20250223214400" - } - ``` - -- **Status Codes**: - - `200`: Success - - `401`: Unauthorized - -## Configuration (JSON) -```json -{ - "session": { - "jwt_lifespan": 3600 - }, - "rate_limit": { - "requests_per_minute": 600 - }, - "error_mode": "verbose", - "key_filter": { - "mode": "whitelist", - "keys": ["0x011d801fd833eb98109aaca1923f7652cf16db7f"] - } -} -``` - -- **Notes**: - - `error_mode`: `"minimal"` (HTTP status only) or `"verbose"` (detailed messages). - - `key_filter`: `"all"`, `"blacklist"`, or `"whitelist"` for Ethereum wallet addresses. - -## Error Handling Examples - -### Minimal Mode -- `400 Bad Request` (no body) - -### Verbose Mode -- **Invalid Revision**: - ```json - { - "error": "Invalid revision", - "details": "Missing 'signature' field for revision_type 'signature'" - } - ``` - -## Get File Object -Scalability: Use HTTP range requests (via Range header) to support partial downloads, enabling clients to resume transfers or fetch chunks of large files. -Integrity: Return the file’s hash in the response headers (e.g., Content-MD5 or a custom header like X-File-Hash) so clients can verify the file matches the requested hash. -Efficiency: Stream the file content to handle large sizes without loading everything into memory. - -- **Method**: `GET` -- **Path**: `/files/:fileHash` -- **Description**: Retrieves the file object associated with the specified file hash. Supports large files via streaming and partial content delivery. -- **Query Params**: - - None required; optional params like `download` (boolean) could be added later for forcing downloads vs. inline display. -- **Headers**: - - `Range` (optional): Specifies byte range (e.g., `bytes=0-1048575` for first 1MB). Supports partial content retrieval per RFC 7233. -- **Response**: - - **Status**: `200 OK` (full file) or `206 Partial Content` (range request) - - **Headers**: - - `Content-Type`: MIME type of the file (e.g., `application/octet-stream` if unknown). - - `Content-Length`: Size of the returned content in bytes. - - `X-File-Hash`: The file’s hash (e.g., `a7bf1f3efdfaad71b28125b91c1403cba0eaf6db2c8dff9a438d13754de5b468`) for client-side verification. - - `Accept-Ranges`: `bytes` (indicates range requests are supported). - - `Content-Range` (if `206`): Byte range delivered (e.g., `bytes 0-1048575/5242880`). - - **Body**: The file content, streamed as a binary response. -- **Example Response** (full file): - - **Status**: `200 OK` - - **Headers**: - ``` - Content-Type: application/pdf - Content-Length: 5242880 - X-File-Hash: a7bf1f3efdfaad71b28125b91c1403cba0eaf6db2c8dff9a438d13754de5b468 - Accept-Ranges: bytes - ``` - - **Body**: [binary file content] -- **Example Response** (partial file): - - **Request Header**: `Range: bytes=0-1048575` - - **Status**: `206 Partial Content` - - **Headers**: - ``` - Content-Type: application/pdf - Content-Length: 1048576 - X-File-Hash: a7bf1f3efdfaad71b28125b91c1403cba0eaf6db2c8dff9a438d13754de5b468 - Accept-Ranges: bytes - Content-Range: bytes 0-1048575/5242880 - ``` - - **Body**: [first 1MB of binary file content] -- **Status Codes**: - - `200`: Success (full file delivered) - - `206`: Partial Content (range request fulfilled) - - `404`: File hash not found - - `401`: Unauthorized - - `416`: Range Not Satisfiable (if requested range is invalid) -- **Notes**: - - Clients can verify integrity by comparing the `X-File-Hash` with the requested `fileHash`. - - Large files are streamed to avoid memory overload; range support enables resumable downloads. - -Explanation -- **Path**: /files/:fileHash keeps it intuitive and consistent with /trees/:revisionHash. -- **Range Support**: Using the Range header and 206 Partial Content status allows clients to fetch large files in chunks, critical for scalability and reliability (e.g., resuming interrupted downloads). -- **Integrity**: The X-File-Hash header echoes the file’s hash back, letting clients confirm the delivered content matches the request. This is lightweight and leverages standard HTTP practices. -- **Streaming**: The response body is streamed, ensuring the server can handle large files without buffering everything in memory. - - -## Open Todos for the API -- Add support for file deletion -- add support for revision deletion diff --git a/versioned_docs/version-1.3.2/VerifierTests.md b/versioned_docs/version-1.3.2/VerifierTests.md deleted file mode 100644 index c3090c5d..00000000 --- a/versioned_docs/version-1.3.2/VerifierTests.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "Verifier Tests" ---- - -## Overview -The Aqua verifier MUST validate revisions per the schema defined at [https://aqua-protocol.org/docs/v3/schema_2](https://aqua-protocol.org/docs/v3/schema_2). This document specifies required tests for implementations to ensure compliance with the Aqua protocol, as introduced at [/docs/v3/intro](/docs/v3/intro). Tests are divided into Revision Verification and Relational Verification domains. Implementations MUST pass all tests to be considered conformant. - -## Prerequisites -- **Schema**: Implementations MUST conform to [https://aqua-protocol.org/docs/v3/schema_2](https://aqua-protocol.org/docs/v3/schema_2). -- **Tools**: Implementations MAY use any framework supporting SHA256 hashing and Ethereum EIP-191 (using the secp256k1 curve) signature validation. Implementations MAY support additional hashing algorithms (e.g., SHA3-512) or signature schemes (e.g., secp256r1) only if specified in an updated schema and supported by new, defined `signature_type` or `witness_network` values. - -## Revision Verification Tests -These tests ensure each revision object in `revisions` is independently valid. Types MUST adhere to the schema at [https://aqua-protocol.org/docs/v3/schema_2](https://aqua-protocol.org/docs/v3/schema_2). - -- **RV-01: Version Compliance** - - The `version` field MUST be one of the following exact strings: - - `"https://aqua-protocol.org/docs/schema/v1.3.2 | SHA256 | Method: scalar"` - - `"https://aqua-protocol.org/docs/schema/v1.3.2 | SHA256 | Method: tree"` - - Implementations MUST reject any other value. - -- **RV-02: Required Fields** - - Every revision MUST include `previous_verification_hash`, `local_timestamp`, `revision_type`, and `version`. - - Implementations MUST reject revisions missing these fields or containing empty strings for `local_timestamp`, `revision_type`, or `version`. - - `local_timestamp` MUST be in YYYYMMDDHHMMSS format and MUST represent a valid UTC time after 2020-01-01 00:00:00. - -- **RV-03: File Revision Integrity** - - A `revision_type` of `"file"` MUST include `file_hash` and `file_nonce`. - - The `file_hash` MUST equal the SHA256 hash of either: - - The referenced file content concatenated with `file_nonce`, OR - - The OPTIONAL `content` field (serialized file data) concatenated with `file_nonce`, if present. - - Implementations MUST reject revisions where `file_hash` does not match either computation. - -- **RV-04: Signature Verification | Signature Type: ethereum:eip-191** - - A `revision_type` of `"signature"` MUST include `signature`, `signature_public_key`, and `signature_wallet_address`. - - The `signature` MUST validate against `previous_verification_hash` using `signature_public_key` per `signature_type` `"ethereum:eip-191"` (secp256k1 curve). - - Implementations MUST reject invalid signatures. - -- **RV-05: Witness Verification | Witness (Ethereum)** - - A `revision_type` of `"witness"` MUST include `witness_network`, `witness_address`, and `witness_smart_contract_address`. - - `witness_network` MUST be one of: `"mainnet"`, `"sepolia"`, `"nostr"`, or `"TSA_RFC3161"`. Other values MUST be rejected. - - `witness_merkle_root`, if present, MUST be the valid Merkle root hash derived from `witness_merkle_proof`. - - `witness_smart_contract_address` MUST be a valid Ethereum contract address for the specified `witness_network`, capable of storing and retrieving verification hashes. - - `witness_transaction_hash`, if present, MUST be a valid transaction hash for the specified `witness_network`. - - `witness_sender_account_address`, if present, MUST be a valid account address for the specified `witness_network`. - - `witness_merkle_proof`, if present, MUST be a valid Merkle proof including `previous_verification_hash` as a leaf. - - Implementations MUST reject witness revisions failing these checks. - -- **RV-06: Signature Type Restriction** - - `signature_type` MUST be one of: `"ethereum:eip-191"` or `"did_key"` for signature revisions. Other values MUST be rejected. - -- **RV-07: Witness Type Restriction** - - `witness_network` MUST be one of: `"mainnet"`, `"sepolia"`, `"nostr"`, or `"TSA_RFC3161"` for witness revisions. Other values MUST be rejected. - -- **RV-08: Indexed Content Verification** - - Each key in `file_index` MUST be a valid `file_hash` from a revision with `revision_type` `"file"`. - - Implementations MUST reject `file_index` entries referencing invalid or nonexistent `file_hash` values. - -## Relational Verification Tests -These tests ensure consistency across `revisions`, `file_index`, `tree`, and `treeMapping`. Types MUST be strict per [https://aqua-protocol.org/docs/v3/schema_2](https://aqua-protocol.org/docs/v3/schema_2). - -- **RL-01: Previous Hash Linking** - - `previous_verification_hash` MUST match a valid revision key in the pool of all verified revisions or be empty for the first (genesis) revision. - - Implementations MUST reject invalid or nonexistent references. - -- **RL-02: Type: Link Revision** - - A revision referenced by revision type `link` MUST exist and be valid in the pool of all verified revisions. - - Implementations MUST reject links to invalid or missing revisions and throw an revision not found error. - -- **RL-03: Loop Detection** - - Implementations MUST have a loop detection mechanism. - -- **RL-04: Fork Detection** - - Implementations MUST have a fork detection mechanism to output deterministic results. - -- **RL-05: Timestamp Order** - - Implementations MUST have a timestamp plausibility check accross revisions for local timestamps - - Implementations MUST have a timestamp plausibility check for cryptographic timestamps (Witness events) diff --git a/versioned_docs/version-1.3.2/cli-tool.md b/versioned_docs/version-1.3.2/cli-tool.md deleted file mode 100644 index 3b1a76e8..00000000 --- a/versioned_docs/version-1.3.2/cli-tool.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -sidebar_position: 8 ---- - -# AQUA CLI Tool - -The AQUA CLI tool (`aqua-js-cli`) is a command-line interface for interacting with the AQUA protocol. It provides functionality for notarizing, signing, witnessing, and verifying files in the AQUA system. - -## What is Notarization? - -Notarization in AQUA is the process of creating an immutable record of a file or document on the blockchain. When you notarize a file: -- A unique hash of the file is generated -- The hash is recorded on the blockchain -- A proof of existence is created -- The file's integrity can be verified at any time - -This process ensures that the document existed at a specific point in time and hasn't been modified since. - -## Getting Started - -### Clone the Repository - -```bash -git clone https://github.com/inblockio/aqua-js-cli.git -cd aqua-js-cli -``` - -## Requirements - -- Node.js 14.x+ (latest version recommended) -- npm (Node Package Manager) - -## Installation - -1. Install dependencies: -```bash -npm install -``` - -2. Build the project: -```bash -npm run build -``` - -## Usage - -### 1. Notarizing, Signing, and Witnessing - -#### Basic Notarization -```bash -./notarize.js <FILE_PATH> -``` - -#### Signing Files -Sign files using different methods (cli, metamask, or did): -```bash -./notarize.js --sign [cli|metamask|did] <FILE_PATH> -``` - -#### Witnessing Files -Witness files using different methods (eth, nostr, or tsa): -```bash -./notarize.js [--witness eth|--witness nostr|--witness tsa] <FILE_PATH> -``` - -#### Multiple Chain Witnessing -Witness multiple AQUA chains: -```bash -./notarize.js FILE1,FILE2 --witness eth --vtree --type sepolia -``` - -Witness specific revisions: -```bash -./notarize.js FILE1@0x_revision_,FILE2@0x_revision_ --witness eth --type cli --vtree -``` - -### 2. Verification - -#### Basic Verification -```bash -./verify.js <AQUA_CHAIN_FILE_PATH> -``` - -#### Verification Options - -- Verbose output: -```bash -./verify.js <FILE_PATH>.aqua.json -v -``` - -- Skip merkle proof verification (faster): -```bash -./verify.js <FILE_PATH>.aqua.json --ignore-merkle-proof -``` - -### 3. Managing Revisions - -#### Delete Last Revision -```bash -./notarize.js --remove <FILE_PATH> -``` - -#### Link AQUA Chains -Link one AQUA chain to another: -```bash -./notarize.js <FILE_PATH> --link <TARGET_FILE_PATH.aqua.json> -``` - -### 4. Content Management - -#### Generate Content Revision -```bash -./notarize.js --content <FILE_PATH> -``` - -#### Generate Scalar Revision -```bash -./notarize.js --scalar <FILE_PATH> -``` - -### 5. Forms Management - -#### Create Genesis Form -```bash -./notarize.js example-form.json --form example-form.json -``` -Note: For genesis, the filename must match the form name. - -#### Create Form Revision -```bash -./notarize.js <FILE_PATH> --form example-form.json -``` - -#### Update Forms - -Delete a form entry: -```bash -./form_updater.js example-form.json.aqua.json@<revision> --delete <field> -``` - -Update/restore a form entry: -```bash -./form_updater.js example-form.json.aqua.json --update <form_field> <value> -``` - -Form operations include: -- File validation for .aqua.json files -- Form key detection (exact and partial matches) -- Handling deleted fields -- Non-destructive updates preserving original structure diff --git a/versioned_docs/version-1.3.2/intro.md b/versioned_docs/version-1.3.2/intro.md deleted file mode 100644 index e9f22ec3..00000000 --- a/versioned_docs/version-1.3.2/intro.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Aqua Protocol Version 3" ---- -**Welcome to Aqua: A Cryptographic Trust Protocol for Decentralized Data Integrity** - -The Aqua Protocol is a foundational framework for building distributed trust networks. By leveraging hash-chains, cryptographic signatures, and Ethereum-based timestamping, Aqua enables scalable, trustless verification of data integrity and provenance without reliance on centralized authorities. It empowers developers and innovators to create applications that certify, attest, and secure data in an open, private and decentralized way. - -#### What Aqua Enables -Aqua serves as a versatile building block for a wide range of applications, including: -- **Data Accountability**: Track and verify the origin and history of data (data accounting). -- **Access Control**: Enforce secure, automated access policies. -- **Identity Claims and Attestations**: Certify identities and assertions without intermediaries. -- **Notarization and Beyond**: Provide undeniable proof of data existence and authenticity. - -#### What’s Been Built (Prototypes) -The potential of Aqua is being explored through practical implementations: -- **Federated Wiki Infrastructure**: A notarized wiki system with built-in trust (PKC, https://github.com/inblockio/aqua-pkc, Protocol v1.2). -- **Chrome Extension for Verification**: A tool for name resolution and AquaTree validation (Aqua Verifier, https://chromewebstore.google.com/detail/aqua-verifier/gadnjidhhadchnegnpadkibmjlgihiaj, Protocol v1.2). -- **Firewall-Like Systems**: Automated access control enforcement integrated with Aqua ("Guardian," Protocol v1.2). -- **Document Signing Service**: A platform for signing and verifying files ("Aquafier," https://aquafier.inblock.io, transitioning from v1.2 to v3). -- **Decentralized Identity Solution**: A new approach to identity management (Aqua Identity, https://github.com/inblockio/aqua-identity). -Please request a demo with us via demo@inblock.io. - -#### The Vision of Aqua -Aqua is still evolving, and we’re discovering the full scope of this powerful protocol. Here’s how we see it: -- **An Open Framework**: Enabling private, decentralized solutions for general data notarization. -- **A Verifiable Data Structure**: Linking and certifying data with cryptographic precision. -- **A Protocol for Provenance**: Ensuring clear attribution and integrity of data origins. -- **A Foundation for Trust**: Powering distributed networks where trust is built-in, not assumed. - -#### How It Works -At its core, Aqua creates portable hash-chains—called AquaTrees—that record a gapless history of data revisions. These trees can be timestamped on Ethereum for immutability, exchanged across services, and verified automatically. Whether securing documents, systems, or identities, Aqua liberates the certification process from institutional gatekeepers, making trust accessible through open cryptographic standards. - -We’re excited to see where this journey takes us—and invite you to explore, build, and contribute to the future of decentralized trust with Aqua Protocol Version 3. diff --git a/versioned_docs/version-1.3.2/schema_2.md b/versioned_docs/version-1.3.2/schema_2.md deleted file mode 100644 index b6b92ded..00000000 --- a/versioned_docs/version-1.3.2/schema_2.md +++ /dev/null @@ -1,349 +0,0 @@ ---- -title: "Schema (v3.2)" ---- - -The shema documentation below outlines the five types of revisions (`file`, `content`, `signature`, `witness`,`link` and `form`) and their respective properties. - -This schema defines a structure for atomic revisions of aqua secured files. -Each revision is uniquely identified by a hash and contains metadata specific to its type. - -## Revisions - -The `revision` is identified by a unique hash which is also used to verify the integrity of the revision. -It acts as a globally unique identifier. Unique identifiers are used as unique references to link revisions together or to perform operations on them (transport, access control, etc.). - -There are four main types of revisions: - -1. **Content Revision** -1.1 **Form Revision** (a special type of content revision for layer 2 applications) -2. **Signature Revision** -3. **Witness Revision** -4. **Link Revision** - -All revision types share properties which are common forming a hash-chain. These are: -- **`previous_verification_hash`**: (String) The hash of the previous revision in the chain. Empty for the first revision. -- **`local_timestamp`**: (String) The UTC timestamp of the revision in `YYYYMMDDHHMMSS` format. -- **`revision_type`**: (String) The type of revision. -- **`version`**: (String) The schema version and hashing method used. - -In addition each revision type has specific properties outlined below. - -### Hashing Method -The hashing method used is SHA256. The revision object sorts all key-values as 'Canonical JSON' -this ensures no whitespaces, sorted keys, no floating-point ambiguity and unicode normalization. - -There are two hashing methods used: -- **`Scalar`**: Is a simple hash of the stringified revision object. This is the default method for performance reasons. -- **`Tree`**: Creates a merkle tree of all the values. - This allows a more granular verification. This is used for e.g. selective disclosure. - -### Hash Security -The system is designed to allow for the hash algorithm to be exchangable. -Same applies to any other cryptographic cyphers being used (e.g. signatures) to ensure post-quantum security. -Any type is modular, allowing for new subtypes to be introduced with different cyphers. - -### 1. Content Revision - -A **Content Revision** represents the initial or updated state of a file which is secured by the Aqua-Protocol. It includes metadata about the file: its hash and index. -The index is a mutable part of the datastructure, it allows to update file location and the services which handels the file. - -#### Properties: -- **`previous_verification_hash`**: (String) The hash of the previous revision in the chain. Empty for the first revision (genesis revision). -- **`local_timestamp`**: (String) The UTC timestamp of the revision in `YYYYMMDDHHMMSS` format. - Its a local timestamp of the server running the aqua-service. For cryptographically secured timestamps the witness revision is used. -- **`revision_type`**: (String) The type of revision, always `"content"` for this type. -- **`file_hash`**: (String) The hash of the file content. -- **`file_nonce`**: (String) A unique nonce associated with the file. - This is used to ensure that additional entropy is added to the hash to make it globallyunique. -- **`version`**: (String) The schema version and hashing method used. - -#### Example File Revision: -```json -{ -"0xd9bc7c36e7b28c6d97c8389881b90e1df163b067b11c69139bf4f24498d5cf92": { - "previous_verification_hash": "", - "local_timestamp": "20250224154438", - "revision_type": "file", - "file_hash": "bd2e8e2a1b3c5d008e1d43ecb11105f42c5ad4e05922bab98981840b636c661e", - "file_nonce": "65eddd0e16a995170dbef8feaf86a7928678426f20a309bb6627887915c04efb", - "version": "https://https://https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" -} -``` -### File Revision - -A **File Revision** includes the file's content or reference, hash and nonce. - -#### Properties: -- **`previous_verification_hash`**: (String) The hash of the previous revision in the chain. -- **`local_timestamp`**: (String) The timestamp of the revision in `YYYYMMDDHHMMSS` format. -- **`revision_type`**: (String) The type of revision, always `"file"` for this type. -- **`content`**: (String) The content of the file. -- **`file_hash`**: (String) The hash of the file content. -- **`file_nonce`**: (String) A unique nonce associated with the file. -- **`version`**: (String) The schema version and hashing method used. - -### 1.1 Form Revision - -Form revisions are a special type of content revision for layer 2 applications. -They are used to create a form that can be signed by the user. - -Native Layer 2 applications are aqua identity and aqua access control. -The tree verification structure allows for selective disclosure of the form data. - -Find detailled examples under the "Aqua Identity" and "Access Control" tabs. - -#### Example: -```json -"revisions": { - "0xd9bc7c36e7b28c6d97c8389881b90e1df163b067b11c69139bf4f24498d5cf92": { - "previous_verification_hash": "", - "local_timestamp": "20250228211940", - "revision_type": "form", - "file_hash": "2a3b63fabff884365782f5457c68491852cf8f3cbf9a9ca4bfffb1da8f295407", - "file_nonce": "9d68ebcc6b09d3c854c09efec4f872be85deabe436dbae3baa00d4a176b02167", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree", - "forms_type": "identity_claim", - "forms_name": "John", - "forms_surname": "Doe", - "forms_email": "john.doe@example.com", - "forms_date_of_birth": "1995-10-15", - "forms_wallet_address": "0x1234567890abcdef", - "leaves": [ - "1bea26961b7276cb64c432e67852ec2ce634c20c96192036f6da1fd8adfc9168", - "ff0edef64dcdf6aafed912534f11d228a88ef6a3f9ef0e5dcd659a131e1a130b", - "3b5abc4d1a21b05caa891be0650cf25cea133ddb939b1c45a8282bcab686545a", - "dcb7cfdf2bae4a7e558e58dc9a26bc2627f35f2097c38b3e1493693ed3495239", - "5122dde9b24bdd39f3eb20f64c18e6a960b6a3320c7cfb7707b8e7de581cc7f2", - "28d88a09468f136c21475a121b53c626d1c29902a076b7e94c8a77aaa2a45b37", - "15a1e4c78fa31877be47fa99afee32bd426d6bf74c5297f0d1d706b987c528bd", - "15df50012dddb9f5b7157aa4dc227b3e1452c19232443ac2b388eeb07a94ec43", - "74e6c3c9476b3547c42b157edd3a61571fef4b1b109c8a0170fd146008d639d3", - "d781acf7ba880ecae581ffd8debcb4f5cb430bc2f237e27a6098471a9f7ffa60", - "43fcaef3dc4b2a2d0550543b638048edcfb710da9276da109a9e011ed1a53ed1", - "39ccd407bb105ed3be74df4a546d9b10c4f6c80e48b559102b04fa2b29aa83b4" - ] - } -``` - -### 2. Signature Revision - -A **Signature Revision** represents a digital signature applied to a file revision. It includes the signature, public key, and wallet address of the signer. - -#### Properties: -- **`previous_verification_hash`**: (String) The hash of the previous revision in the chain. -- **`local_timestamp`**: (String) The timestamp of the revision in `YYYYMMDDHHMMSS` format. -- **`revision_type`**: (String) The type of revision, always `"signature"` for this type. -- **`signature`**: (String) The digital signature. -- **`signature_public_key`**: (String) The public key of the signer. -- **`signature_wallet_address`**: (String) The wallet address of the signer. -- **`signature_type`**: (String) The type of signature (e.g., `"ethereum:eip-191"`). - This allows for different signature types to be added to Aqua Protocol. -- **`version`**: (String) The schema version and hashing method used. - -#### Example: -```json -{ - "previous_verification_hash": "0xe2922c4c80060a035fa7ace36ed7d9e32aa901382b5651e9f68354bc1bc9edb4", - "local_timestamp": "20250224154448", - "revision_type": "signature", - "signature": "0x799cd8177dc2c5dc34d389601175d550466a73509b71d533aaa3ff0ee958b3b31b574bdfd158a7ad0b186da5f5b440bc18453a6848bc659ccd6de06a09d6ea6e1b", - "signature_public_key": "0x0380a77a1a6d59be5c10d7ee5e10def79283938bb8a60025d0fe5404e650e8ccc1", - "signature_wallet_address": "0x568a94a8f0f3dc0b245b853bef572075c1df5c50", - "signature_type": "ethereum:eip-191", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" -} -``` - -### 3. Witness Revision - -A **Witness Revision** represents a record of a witness event, such as a blockchain transaction. It includes metadata about the witness event, such as the transaction hash and network. - -#### Properties: -- **`previous_verification_hash`**: (String) The hash of the previous revision in the chain. -- **`local_timestamp`**: (String) The timestamp of the revision in `YYYYMMDDHHMMSS` format. -- **`revision_type`**: (String) The type of revision, always `"witness"` for this type. -- **`version`**: (String) The schema version and hashing method used. -- **`witness_merkle_root`**: (String) The Merkle root of the witness event. -- **`witness_timestamp`**: (Number) The timestamp of the witness event. -- **`witness_network`**: (String) The network where the witness event occurred (e.g., `"sepolia"`). -- **`witness_smart_contract_address`**: (String) The address of the smart contract involved. -- **`witness_transaction_hash`**: (String) The hash of the transaction. -- **`witness_sender_account_address`**: (String) The address of the sender's account. -- **`witness_merkle_proof`**: (Array) An array of Merkle proofs. - -#### Example: -```json -{ - "previous_verification_hash": "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd", - "local_timestamp": "20250224154506", - "revision_type": "witness", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", - "witness_merkle_root": "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd", - "witness_timestamp": 1740411910, - "witness_network": "sepolia", - "witness_smart_contract_address": "0x45f59310ADD88E6d23ca58A0Fa7A55BEE6d2a611", - "witness_transaction_hash": "0xad007675d238746783d697ca8cbc0260f87275430d43ba08dea11d26a00e8850", - "witness_sender_account_address": "0x568a94a8f0f3dc0b245b853bef572075c1df5c50", - "witness_merkle_proof": [ - "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd" - ] -} -``` - -### 4. Link Revision - -A **Link Revision** represents a record of other revisions belonging to other or the same AquaTree structure. This serves two distinct purposes: 1) To be able to reference other AquaTree objects in a verifiable way. 2) To acknowledge forks within an AquaTree which could be removed without recognition without a link revision to "merge" those revisions into the continues hash-chain structure. - - -#### Example Link Revision: -```json -{ -"0x4f714e6e5cbf6e6c4b820ca68b248d8afc4937ef173b0ccad5872ca6ad16d438": { - "previous_verification_hash": "0x2438975974cfcf054c45046dd3c96a3531da4a2086ba762867c350abe7e2283c", - "local_timestamp": "20250318210818", - "revision_type": "link", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", - "link_type": "aqua", - "link_verification_hashes": [ - "0x8227c0d94b5683cd6787690908e260cbb855b90fc77ae17f52852c667741b02c" - ], - "link_file_hashes": [ - "d8cbd265da90ac6bd3357c44de18557f66987ecb1e5bcb78346f4592d6d14c9b" - ] - } -``` - -## Other Metadata and its role - -### File Index - -The `file_index` object maps revision hashes to file names in a mutable form. -This allows for files to be reorganised or to be associated with varios services. -As the revision is immutable, it is required that this is external to the revision. - -#### Example: -```json -{ - "0xe2922c4c80060a035fa7ace36ed7d9e32aa901382b5651e9f68354bc1bc9edb4": "LICENSE" -} -``` - -## Tree Structure - -The `tree` object represents the hierarchical structure of revisions. Each node contains a `hash` and an array of `children`. - -#### Example: -```json -{ - "hash": "0xe2922c4c80060a035fa7ace36ed7d9e32aa901382b5651e9f68354bc1bc9edb4", - "children": [ - { - "hash": "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd", - "children": [ - { - "hash": "0x121a8e95204fafdd18fb1ea1287c278693f48b28d88e341f86e3c336e9731eab", - "children": [ - { - "hash": "0x105356040bab31f82778a47bb24604bb966a6994b3f3fccc14e0b084f634bde3", - "children": [] - } - ] - } - ] - } - ] -} -``` - -## Tree Mapping - -The `treeMapping` object provides paths to specific revisions and identifies the latest revision hash. - -#### Properties: -- **`paths`**: (Object) Maps revision hashes to their paths in the tree. -- **`latestHash`**: (String) The hash of the latest revision. - -#### Example: -```json -{ - "paths": { - "0x105356040bab31f82778a47bb24604bb966a6994b3f3fccc14e0b084f634bde3": [ - "0xe2922c4c80060a035fa7ace36ed7d9e32aa901382b5651e9f68354bc1bc9edb4", - "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd", - "0x121a8e95204fafdd18fb1ea1287c278693f48b28d88e341f86e3c336e9731eab", - "0x105356040bab31f82778a47bb24604bb966a6994b3f3fccc14e0b084f634bde3" - ] - }, - "latestHash": "0x105356040bab31f82778a47bb24604bb966a6994b3f3fccc14e0b084f634bde3" -} -``` - -## Example - -Below is a complete example on how Aquatree looks like - - -```json -{ - "revisions": { - "0xe2922c4c80060a035fa7ace36ed7d9e32aa901382b5651e9f68354bc1bc9edb4": { - "previous_verification_hash": "", - "local_timestamp": "20250224154438", - "revision_type": "file", - "file_hash": "bd2e8e2a1b3c5d008e1d43ecb11105f42c5ad4e05922bab98981840b636c661e", - "file_nonce": "65eddd0e16a995170dbef8feaf86a7928678426f20a309bb6627887915c04efb", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" - }, - "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd": { - "previous_verification_hash": "0xe2922c4c80060a035fa7ace36ed7d9e32aa901382b5651e9f68354bc1bc9edb4", - "local_timestamp": "20250224154448", - "revision_type": "signature", - "signature": "0x799cd8177dc2c5dc34d389601175d550466a73509b71d533aaa3ff0ee958b3b31b574bdfd158a7ad0b186da5f5b440bc18453a6848bc659ccd6de06a09d6ea6e1b", - "signature_public_key": "0x0380a77a1a6d59be5c10d7ee5e10def79283938bb8a60025d0fe5404e650e8ccc1", - "signature_wallet_address": "0x568a94a8f0f3dc0b245b853bef572075c1df5c50", - "signature_type": "ethereum:eip-191", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" - }, - "0x121a8e95204fafdd18fb1ea1287c278693f48b28d88e341f86e3c336e9731eab": { - "previous_verification_hash": "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd", - "local_timestamp": "20250224154506", - "revision_type": "witness", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", - "witness_merkle_root": "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd", - "witness_timestamp": 1740411910, - "witness_network": "sepolia", - "witness_smart_contract_address": "0x45f59310ADD88E6d23ca58A0Fa7A55BEE6d2a611", - "witness_transaction_hash": "0xad007675d238746783d697ca8cbc0260f87275430d43ba08dea11d26a00e8850", - "witness_sender_account_address": "0x568a94a8f0f3dc0b245b853bef572075c1df5c50", - "witness_merkle_proof": [ - "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd" - ] - }, - "0x105356040bab31f82778a47bb24604bb966a6994b3f3fccc14e0b084f634bde3": { - "previous_verification_hash": "0x121a8e95204fafdd18fb1ea1287c278693f48b28d88e341f86e3c336e9731eab", - "local_timestamp": "20250224154548", - "revision_type": "file", - "content": "GNU GENERAL PUBLIC LICENSE...", - "file_hash": "bd7aec058dde7038fa2e88607ca870bd88da53e6fc32d6c0f8674b59419c061b", - "file_nonce": "2da1dc9f782e9f489c35cbd01413399f7c8ac14b3deea6c428b2380dbc7af725", - "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" - } - }, - "file_index": { - "0xe2922c4c80060a035fa7ace36ed7d9e32aa901382b5651e9f68354bc1bc9edb4": "LICENSE" - }, - "treeMapping": { - "paths": { - "0x105356040bab31f82778a47bb24604bb966a6994b3f3fccc14e0b084f634bde3": [ - "0xe2922c4c80060a035fa7ace36ed7d9e32aa901382b5651e9f68354bc1bc9edb4", - "0x115d8604f5c689602b7703ce5f4c1ba59a731c9c1a3798cbd2d205df1e772ebd", - "0x121a8e95204fafdd18fb1ea1287c278693f48b28d88e341f86e3c336e9731eab", - "0x105356040bab31f82778a47bb24604bb966a6994b3f3fccc14e0b084f634bde3" - ] - }, - "latestHash": "0x105356040bab31f82778a47bb24604bb966a6994b3f3fccc14e0b084f634bde3" - } -} -``` - - diff --git a/versioned_docs/version-1.3.2/sdk/README.md b/versioned_docs/version-1.3.2/sdk/README.md deleted file mode 100644 index a84055de..00000000 --- a/versioned_docs/version-1.3.2/sdk/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# Aqua Protocol SDK Documentation - -The Aqua Protocol SDK provides a powerful interface for file notarization, signing, and verification using blockchain and distributed technologies. This documentation will help you understand and use the SDK effectively. - -## Table of Contents - -- [Getting Started](./getting-started.md) -- [Core Concepts](./core-concepts.md) -- API Reference - - [Aquafier API](./api/aquafier.md) - - [Chainable API](./api/chainable.md) - - [Signing](./api/signing.md) - - [Witnessing](./api/witnessing.md) - - [Verification](./api/verification.md) - -## Quick Example - -```typescript -import { AquafierChainable } from 'aqua-js-sdk'; - -// Create a new notarization -const aqua = new AquafierChainable(null) - .notarize(fileObject) - .sign("metamask", credentials) - .witness("eth", "sepolia") - .verify(); - -// Get results -const tree = aqua.getValue(); -const logs = aqua.getLogs(); -``` - -## Need Help? - -- Check our [Troubleshooting Guide](./troubleshooting.md) -- Review [Common Use Cases](./use-cases.md) -- See [API Examples](./examples.md) diff --git a/versioned_docs/version-1.3.2/sdk/api/chainable.md b/versioned_docs/version-1.3.2/sdk/api/chainable.md deleted file mode 100644 index 9e6ee6dd..00000000 --- a/versioned_docs/version-1.3.2/sdk/api/chainable.md +++ /dev/null @@ -1,181 +0,0 @@ -# Chainable API Reference - -The `AquafierChainable` class provides a fluent interface for performing operations on Aqua Trees. It allows you to chain multiple operations while maintaining state and collecting logs. - -## Quick Example - -```typescript -const aqua = new AquafierChainable(tree) - .notarize(file) - .sign("metamask", credentials) - .witness("eth", "sepolia") - .verify(); -``` - -## Constructor - -### `new AquafierChainable(initialValue?: AquaTree | null)` - -Creates a new chainable Aqua operation sequence. - -```typescript -// Start with no tree -const aqua = new AquafierChainable(null); - -// Start with existing tree -const aqua = new AquafierChainable(existingTree); -``` - -## Methods - -### `notarize(fileObject: FileObject, options?: NotarizeOptions): Promise<this>` - -Creates a genesis revision for file notarization. - -```typescript -const fileObject = { - name: "document.pdf", - hash: "0x...", - content: "..." // optional -}; - -const options = { - isForm: false, - enableContent: false, - enableScalar: true -}; - -await aqua.notarize(fileObject, options); -``` - -### `sign(signType: SignType, credentials: CredentialsData, enableScalar?: boolean): Promise<this>` - -Signs the current Aqua Tree state. - -```typescript -const credentials = { - mnemonic: "", // For CLI signing - nostr_sk: "", // For Nostr - did_key: "", // For DID - alchemy_key: "", // For Ethereum - witness_eth_network: "", - witness_method: "" -}; - -await aqua.sign("metamask", credentials); -``` - -Supported sign types: -- `"cli"` - Command-line signing using HDNodeWallet -- `"metamask"` - Browser or Node.js MetaMask signing -- `"did"` - Decentralized Identifier signing - -### `witness(witnessType: WitnessType, witnessNetwork: WitnessNetwork, witnessPlatform: WitnessPlatformType, credentials: CredentialsData, enableScalar?: boolean): Promise<this>` - -Witnesses the current Aqua Tree state. - -```typescript -await aqua.witness( - "eth", // witnessType - "sepolia", // witnessNetwork - "metamask", // witnessPlatform - credentials, // credentials object - true // enableScalar -); -``` - -Witness Types: -- `"eth"` - Ethereum blockchain witnessing -- `"nostr"` - Nostr protocol witnessing -- `"tsa"` - Time Stamp Authority witnessing - -Networks (for Ethereum): -- `"mainnet"` -- `"sepolia"` -- `"goerli"` - -Platforms: -- `"metamask"` - MetaMask wallet -- `"cli"` - Command-line interface -- `"api"` - Direct API calls - -### `verify(linkedFileObject: Array<FileObject> = []): Promise<this>` - -Verifies the current Aqua Tree state. - -```typescript -await aqua.verify([fileObject]); -``` - -### Getters - -#### `getValue(): AquaTree` -Gets the current Aqua Tree state. - -#### `getVerificationValue(): Result<AquaOperationData, LogData[]>` -Gets the result of the last verification operation. - -#### `getLogs(): LogData[]` -Gets all collected operation logs. - -## Error Handling - -The chainable API uses a Result type for error handling. You can check for errors in the logs: - -```typescript -const aqua = new AquafierChainable(null); -await aqua.notarize(fileObject); - -const logs = aqua.getLogs(); -if (logs.length > 0) { - console.log("Operation logs:", logs); -} - -const verificationResult = aqua.getVerificationValue(); -if (verificationResult.isErr()) { - console.error("Verification failed:", verificationResult.data); -} -``` - -## Best Practices - -1. Chain operations in logical order: - ```typescript - await aqua - .notarize(file) // First create genesis - .sign(...) // Then sign - .witness(...) // Then witness - .verify(); // Finally verify - ``` - -2. Handle errors appropriately: - ```typescript - try { - await aqua - .notarize(file) - .sign(...); - } catch (error) { - console.error("Operation failed:", error); - console.log("Logs:", aqua.getLogs()); - } - ``` - -3. Use enableScalar when appropriate: - ```typescript - await aqua - .notarize(file, { enableScalar: true }) - .sign("metamask", credentials, true) - .witness("eth", "sepolia", "metamask", credentials, true); - ``` - -4. Check verification results: - ```typescript - const result = await aqua - .notarize(file) - .verify(); - - const verificationResult = result.getVerificationValue(); - if (verificationResult.isOk()) { - console.log("Verification successful"); - } - ``` diff --git a/versioned_docs/version-1.3.2/sdk/api/signing.md b/versioned_docs/version-1.3.2/sdk/api/signing.md deleted file mode 100644 index 10be5f3c..00000000 --- a/versioned_docs/version-1.3.2/sdk/api/signing.md +++ /dev/null @@ -1,223 +0,0 @@ -# Signing API Reference - -The Aqua Protocol SDK provides three distinct signing methods to accommodate different use cases and environments. - -## Signature Types - -### 1. CLI Signing - -Uses ethers.js HDNodeWallet for secure command-line signing. - -```typescript -// Using Chainable API -await aqua.sign( - "cli", // signType - credentials // credentials object -); - -// Using Standard API -await aquafier.signAquaTree( - tree, - "cli", - credentials -); -``` - -**Features:** -- Direct signing process -- Suitable for automation -- Server-side signing -- HDNodeWallet integration - -**Configuration:** -```typescript -const credentials = { - mnemonic: "your-mnemonic-phrase" -}; -``` - -### 2. DID Signing (Decentralized Identifier) - -Uses key-did-provider-ed25519 for DID-based signing. - -```typescript -// Using Chainable API -await aqua.sign( - "did", // signType - credentials // credentials object -); - -// Using Standard API -await aquafier.signAquaTree( - tree, - "did", - credentials -); -``` - -**Features:** -- Ed25519 signatures -- DID verification -- JWS handling -- key-did-resolver support - -**Configuration:** -```typescript -const credentials = { - did_key: "your-did-key" -}; -``` - -### 3. MetaMask Signing - -Provides browser and Node.js MetaMask integration. - -```typescript -// Using Chainable API -await aqua.sign( - "metamask", // signType - credentials // credentials object -); - -// Using Standard API -await aquafier.signAquaTree( - tree, - "metamask", - credentials -); -``` - -**Features:** -- Browser integration -- Node.js support via local server -- Environment detection -- Public key recovery -- Signature verification - -## Batch Signing - -For signing multiple trees at once: - -```typescript -// Using Chainable API -const trees = [tree1, tree2, tree3].map(tree => - new AquafierChainable(tree) - .sign("metamask", credentials) -); - -// Using Standard API -const result = await aquafier.signMultipleAquaTrees( - trees, - "metamask", - credentials -); -``` - -## Message Format - -All signing methods use a standardized message format: -```typescript -const message = `I sign this revision: ${hash}`; -``` - -## Signature Verification - -You can verify signatures after signing: - -```typescript -// Using Chainable API -const result = await aqua - .sign("metamask", credentials) - .verify(); - -// Using Standard API -const verified = await aquafier.verifyAquaTree( - signedTree, - [fileObject] -); - -// Recover signer's address (MetaMask only) -const address = await recoverWalletAddress(signature, message); -``` - -## Best Practices - -1. **Choose the Right Method:** - - Use CLI for automation and scripts - - Use MetaMask for interactive applications - - Use DID for decentralized identity integration - -2. **Error Handling:** -```typescript -try { - await aqua.sign("metamask", credentials); -} catch (error) { - console.error("Signing failed:", error); - const logs = aqua.getLogs(); - // Handle failure -} -``` - -3. **MetaMask Environment:** -```typescript -// Browser -await aqua.sign("metamask", credentials); - -// Node.js (starts local server) -await aqua.sign("metamask", { - ...credentials, - port: 8545, // Optional server port - host: "localhost" // Optional server host -}); -``` - -4. **Verify After Signing:** -```typescript -const result = await aqua - .sign("metamask", credentials) - .verify(); - -if (result.getVerificationValue().isOk()) { - console.log("Signature verified successfully"); -} -``` - -## Common Issues - -1. **MetaMask Connection:** - - Check wallet connection - - Verify account access - - Handle user rejections - - Monitor connection state - -2. **DID Signing:** - - Validate DID format - - Check key permissions - - Handle resolver errors - - Verify JWS format - -3. **CLI Signing:** - - Verify mnemonic format - - Check wallet derivation - - Handle key generation errors - - Monitor signing process - -## Security Considerations - -1. **Private Key Management:** - - Never expose private keys in code - - Use secure key storage - - Implement key rotation - - Monitor for unauthorized use - -2. **Signature Verification:** - - Always verify signatures - - Check signer addresses - - Validate message format - - Monitor for replay attacks - -3. **Environment Security:** - - Secure MetaMask connections - - Protect mnemonic phrases - - Secure DID keys - - Monitor signing requests diff --git a/versioned_docs/version-1.3.2/sdk/api/verification.md b/versioned_docs/version-1.3.2/sdk/api/verification.md deleted file mode 100644 index a5158fd8..00000000 --- a/versioned_docs/version-1.3.2/sdk/api/verification.md +++ /dev/null @@ -1,233 +0,0 @@ -# Verification API Reference - -The Aqua Protocol SDK provides comprehensive verification capabilities for validating file authenticity, signatures, and witness proofs. - -## Basic Verification - -### Using Chainable API - -```typescript -// Verify after any operation -const result = await aqua - .notarize(file) - .sign("metamask", credentials) - .witness("eth", "sepolia", "metamask", credentials) - .verify(); - -// Check verification result -if (result.getVerificationValue().isOk()) { - console.log("Verification successful"); -} else { - console.error("Verification failed:", result.getLogs()); -} -``` - -### Using Standard API - -```typescript -const verified = await aquafier.verifyAquaTree( - tree, - [fileObject] -); - -if (verified.isOk()) { - console.log("Tree verified successfully"); -} else { - console.error("Verification failed:", verified.data); -} -``` - -## Verification Types - -### 1. Tree Structure Verification - -Verifies the integrity of the Aqua Tree structure: -- File index validation -- Hash chain verification -- Revision order checking - -```typescript -const result = await aquafier.verifyAquaTree(tree, [fileObject]); -``` - -### 2. Revision Verification - -Verifies specific revisions within the tree: - -```typescript -const result = await aquafier.verifyAquaTreeRevision( - tree, - revision, - revisionItemHash, - [fileObject] -); -``` - -### 3. Graph Data Verification - -Generates and verifies graph data for visualization: - -```typescript -// Full tree verification with graph data -const graphData = await aquafier.verifyAndGetGraphData( - tree, - [fileObject] -); - -// Single revision verification with graph data -const revisionGraph = await aquafier.verifyAndGetGraphDataRevision( - tree, - revision, - revisionItemHash, - [fileObject] -); -``` - -## Verification Components - -The verification process checks multiple aspects: - -1. **File Verification** - - Hash validation - - Content integrity - - Metadata matching - -2. **Signature Verification** - - Signer authentication - - Message format validation - - Public key recovery - -3. **Witness Verification** - - Proof validation - - Timestamp verification - - Platform-specific checks: - - Ethereum: Transaction verification - - Nostr: Event verification - - TSA: Timestamp validation - -## Error Handling - -```typescript -try { - const result = await aqua.verify(); - - if (result.getVerificationValue().isOk()) { - const tree = result.getValue(); - console.log("Verification successful:", tree); - } else { - const logs = result.getLogs(); - console.error("Verification failed:", logs); - } -} catch (error) { - console.error("Verification error:", error); -} -``` - -## Graph Data Structure - -The verification graph data provides a visual representation of the verification state: - -```typescript -interface VerificationGraphData { - nodes: { - id: string; - label: string; - type: string; - status: "verified" | "failed" | "pending"; - }[]; - edges: { - from: string; - to: string; - label: string; - }[]; -} -``` - -## Best Practices - -1. **Regular Verification** -```typescript -// Verify after each major operation -await aqua - .notarize(file) - .verify() // After notarization - .sign(...) - .verify() // After signing - .witness(...) - .verify(); // After witnessing -``` - -2. **Comprehensive Verification** -```typescript -// Include all relevant file objects -const allFiles = [mainFile, ...linkedFiles]; -await aqua.verify(allFiles); -``` - -3. **Error Analysis** -```typescript -const result = await aqua.verify(); -const logs = result.getLogs(); - -// Analyze verification failures -const failures = logs.filter(log => - log.type === "verification_failure" -); - -// Check specific components -const signatureIssues = logs.filter(log => - log.component === "signature" -); -``` - -4. **Graph Data Usage** -```typescript -const graphData = await aquafier.verifyAndGetGraphData( - tree, - [fileObject] -); - -// Analyze verification path -const failedNodes = graphData.nodes.filter(node => - node.status === "failed" -); -``` - -## Common Issues - -1. **File Hash Mismatch** - - Verify file content hasn't changed - - Check hash calculation method - - Validate file encoding - -2. **Signature Verification Failure** - - Check signer address - - Verify message format - - Validate signature data - -3. **Witness Proof Issues** - - Verify blockchain transaction - - Check Nostr event existence - - Validate TSA timestamp - -4. **Tree Structure Issues** - - Check revision order - - Verify hash chain - - Validate file indices - -## Performance Considerations - -1. **Batch Verification** - - Group related verifications - - Cache verification results - - Reuse file objects - -2. **Graph Data Optimization** - - Request graph data only when needed - - Cache graph representations - - Limit verification depth - -3. **Error Recovery** - - Implement retry logic - - Cache intermediate results - - Log verification steps diff --git a/versioned_docs/version-1.3.2/sdk/api/witnessing.md b/versioned_docs/version-1.3.2/sdk/api/witnessing.md deleted file mode 100644 index b1bfb1ec..00000000 --- a/versioned_docs/version-1.3.2/sdk/api/witnessing.md +++ /dev/null @@ -1,223 +0,0 @@ -# Witnessing API Reference - -The Aqua Protocol SDK provides three distinct witnessing methods, each offering different trade-offs in terms of security, speed, and decentralization. - -## Witness Types - -### 1. Ethereum Witnessing - -Uses Ethereum blockchain for secure, decentralized witnessing. - -```typescript -// Using Chainable API -await aqua.witness( - "eth", // witnessType - "sepolia", // network - "metamask", // platform - credentials // credentials object -); - -// Using Standard API -await aquafier.witnessAquaTree( - tree, - "eth", - "sepolia", - "metamask", - credentials -); -``` - -**Features:** -- Browser and Node.js support -- MetaMask integration -- Automatic environment detection -- Chain ID validation -- Network switching -- Transaction monitoring - -**Configuration:** -```typescript -const credentials = { - alchemy_key: "your-alchemy-key", - witness_eth_network: "sepolia", - witness_method: "metamask" -}; -``` - -### 2. Nostr Witnessing - -Uses the Nostr protocol for lightweight, fast witnessing. - -```typescript -// Using Chainable API -await aqua.witness( - "nostr", // witnessType - "default", // network (unused for Nostr) - "api", // platform - credentials // credentials object -); - -// Using Standard API -await aquafier.witnessAquaTree( - tree, - "nostr", - "default", - "api", - credentials -); -``` - -**Features:** -- Event creation and signing -- Relay communication (damus.io) -- Event verification -- Timestamp validation -- WebSocket handling - -**Configuration:** -```typescript -const credentials = { - nostr_sk: "your-nostr-secret-key" -}; -``` - -### 3. Time Stamp Authority (TSA) - -Uses RFC 3161 Time-Stamp Protocol for official timestamping. - -```typescript -// Using Chainable API -await aqua.witness( - "tsa", // witnessType - "default", // network (unused for TSA) - "api", // platform - credentials // credentials object -); - -// Using Standard API -await aquafier.witnessAquaTree( - tree, - "tsa", - "default", - "api", - credentials -); -``` - -**Features:** -- RFC 3161 compliance -- ASN.1 encoding/decoding -- SHA-256 verification -- Timestamp extraction -- Base64 handling - -## Batch Witnessing - -For witnessing multiple trees at once: - -```typescript -// Using Chainable API -const trees = [tree1, tree2, tree3].map(tree => - new AquafierChainable(tree) - .witness("eth", "sepolia", "metamask", credentials) -); - -// Using Standard API -const result = await aquafier.witnessMultipleAquaTrees( - trees, - "eth", - "sepolia", - "metamask", - credentials -); -``` - -## Verification - -After witnessing, you can verify the witness proofs: - -```typescript -// Using Chainable API -const result = await aqua - .witness("eth", "sepolia", "metamask", credentials) - .verify(); - -// Using Standard API -const verified = await aquafier.verifyAquaTree( - witnessedTree, - [fileObject] -); -``` - -## Best Practices - -1. **Choose the Right Method:** - - Use Ethereum for highest security and decentralization - - Use Nostr for fast, lightweight witnessing - - Use TSA for official timestamp requirements - -2. **Error Handling:** -```typescript -try { - await aqua.witness("eth", "sepolia", "metamask", credentials); -} catch (error) { - console.error("Witnessing failed:", error); - const logs = aqua.getLogs(); - // Handle failure -} -``` - -3. **Monitor Transaction Status** (Ethereum): -```typescript -const result = await aqua - .witness("eth", "sepolia", "metamask", credentials); - -// Check logs for transaction status -const logs = result.getLogs(); -const txStatus = logs.find(log => - log.type === "transaction_status" -); -``` - -4. **Verify After Witnessing:** -```typescript -const result = await aqua - .witness("eth", "sepolia", "metamask", credentials) - .verify(); - -if (result.getVerificationValue().isOk()) { - console.log("Witness verified successfully"); -} -``` - -5. **Network Selection** (Ethereum): - - Use testnets (sepolia, goerli) for development - - Use mainnet for production - - Always check gas costs - - Monitor network status - -6. **Credential Security:** - - Never expose private keys - - Use environment variables - - Rotate keys regularly - - Monitor for unauthorized use - -## Common Issues - -1. **Ethereum Connection:** - - Check MetaMask connection - - Verify network selection - - Ensure sufficient gas - - Check Alchemy API key - -2. **Nostr Relay:** - - Check relay connection - - Verify key format - - Monitor event propagation - - Handle timeout errors - -3. **TSA Service:** - - Verify service availability - - Check response format - - Validate timestamps - - Handle encoding errors diff --git a/versioned_docs/version-1.3.2/sdk/core-concepts.md b/versioned_docs/version-1.3.2/sdk/core-concepts.md deleted file mode 100644 index 930c99ba..00000000 --- a/versioned_docs/version-1.3.2/sdk/core-concepts.md +++ /dev/null @@ -1,136 +0,0 @@ -# Core Concepts - -## Aqua Tree Structure - -The Aqua Protocol uses a specialized tree structure (AquaTree) to maintain the history and verification state of files. Each tree contains: -- File metadata -- Revision history -- Signatures -- Witness records -- Verification proofs - -## Signature System - -The SDK supports three distinct signing methods: - -### 1. CLI Signing -- Uses ethers.js HDNodeWallet for secure message signing -- Ideal for automated or server-side operations -- Simple and direct signing process - -### 2. DID Signing (Decentralized Identifier) -- Implements DID-based signing using key-did-provider-ed25519 -- Supports Ed25519 signatures -- Verifiable through key-did-resolver -- Handles JSON Web Signatures (JWS) - -### 3. MetaMask Signing -- Supports both browser and Node.js environments -- Browser: Direct MetaMask integration -- Node.js: Local server for MetaMask interaction -- Features automatic environment detection -- Includes public key recovery from signatures - -## Witness System - -The SDK implements three distinct witnessing methods: - -### 1. Ethereum Witnessing -- Supports both browser and Node.js environments -- Uses MetaMask for transaction signing -- Features: - - Automatic environment detection - - Local server for Node.js MetaMask interaction - - Chain ID validation - - Network switching support - - Transaction status monitoring - -### 2. Nostr Witnessing -- Implements Nostr protocol-based witnessing -- Uses nostr-tools for protocol operations -- Features: - - Event creation and signing - - Relay communication (damus.io) - - Event verification - - Timestamp validation - - Cross-platform WebSocket handling - -### 3. Time Stamp Authority (TSA) -- Implements RFC 3161 Time-Stamp Protocol -- Uses DigiCert TSA service -- Features: - - ASN.1 encoding/decoding - - SHA-256 hash verification - - Timestamp extraction and validation - - Base64 response handling - -## Common Features Across Systems - -### Signing Features -- Standardized message format: "I sign this revision: [hash]" -- Comprehensive signature verification -- Return signatures with wallet/DID information -- Error handling and validation - -### Witnessing Features -- Support for both witnessing and verification -- Consistent timestamp handling -- Environment-aware implementations -- Comprehensive error handling -- Synchronous and asynchronous operations - -## Operation Flow - -1. **File Preparation** - - Hash calculation - - Metadata collection - - Content processing (optional) - -2. **Tree Creation** - - Genesis revision creation - - File index management - - Tree structure validation - -3. **Signing Process** - - Method selection (CLI/DID/MetaMask) - - Signature generation - - Public key recovery - - Signature verification - -4. **Witnessing Process** - - Platform selection (Ethereum/Nostr/TSA) - - Transaction/event creation - - Proof generation - - Status monitoring - -5. **Verification** - - Signature validation - - Witness proof verification - - Tree structure integrity check - - Timestamp validation - -## Best Practices - -1. **Choose the Right Tools** - - Use CLI signing for automation - - Use MetaMask for interactive browser applications - - Use DID for decentralized identity integration - - Choose witnessing method based on security and speed requirements - -2. **Error Handling** - - Always check Result types for errors - - Monitor witness transaction status - - Validate signatures before witnessing - - Keep track of operation logs - -3. **Performance Optimization** - - Enable scalar values when appropriate - - Batch operations when possible - - Use chainable API for cleaner code - - Monitor gas costs for Ethereum operations - -4. **Security Considerations** - - Secure credential management - - Validate file hashes - - Verify signatures independently - - Monitor witness network status diff --git a/versioned_docs/version-1.3.2/sdk/getting-started.md b/versioned_docs/version-1.3.2/sdk/getting-started.md deleted file mode 100644 index ced82419..00000000 --- a/versioned_docs/version-1.3.2/sdk/getting-started.md +++ /dev/null @@ -1,85 +0,0 @@ -# Getting Started with Aqua Protocol SDK - -## Installation - -```bash -npm install aqua-js-sdk -``` - -## Basic Concepts - -The Aqua Protocol SDK provides a system for file notarization and verification using three main operations: - -1. **Notarization**: Creating a genesis revision for your file -2. **Signing**: Adding cryptographic signatures using various methods -3. **Witnessing**: Recording the file state on different platforms -4. **Verification**: Validating the authenticity of files - -## Quick Start - -### Using the Chainable API (Recommended) - -```typescript -import { AquafierChainable } from 'aqua-js-sdk'; - -// Prepare your file object -const fileObject = { - name: "document.pdf", - hash: "0x...", // File hash - content: "..." // Optional file content -}; - -// Create credentials (example for MetaMask) -const credentials = { - mnemonic: "", // For CLI signing - nostr_sk: "", // For Nostr witnessing - did_key: "", // For DID signing - alchemy_key: "", // For Ethereum operations - witness_eth_network: "sepolia", - witness_method: "metamask" -}; - -// Create and process your file -const aqua = new AquafierChainable(null); -const result = await aqua - .notarize(fileObject) - .sign("metamask", credentials) - .witness("eth", "sepolia", "metamask", credentials) - .verify(); - -// Get results -const tree = result.getValue(); -const logs = result.getLogs(); -``` - -### Using the Standard API - -```typescript -import { Aquafier } from 'aqua-js-sdk'; - -const aqua = new Aquafier(); - -// Create genesis revision -const genesis = await aqua.createGenesisRevision(fileObject); - -// Sign the tree -const signed = await aqua.signAquaTree(genesis.data.aquaTree, "metamask", credentials); - -// Witness the tree -const witnessed = await aqua.witnessAquaTree( - signed.data.aquaTree, - "eth", - "sepolia", - "metamask", - credentials -); - -// Verify the tree -const verified = await aqua.verifyAquaTree(witnessed.data.aquaTree, [fileObject]); -``` - -## Next Steps - -- Read about [Core Concepts](./core-concepts.md) to understand the system better -- Check out [Common Use Cases](./use-cases.md) for practical examples -- Review the [API Reference](./api/aquafier.md) for detailed documentation diff --git a/versioned_sidebars/version-1.1.0-sidebars.json b/versioned_sidebars/version-1.1.0-sidebars.json deleted file mode 100644 index caea0c03..00000000 --- a/versioned_sidebars/version-1.1.0-sidebars.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "tutorialSidebar": [ - { - "type": "autogenerated", - "dirName": "." - } - ] -} diff --git a/versioned_sidebars/version-1.2.0-sidebars.json b/versioned_sidebars/version-1.2.0-sidebars.json deleted file mode 100644 index caea0c03..00000000 --- a/versioned_sidebars/version-1.2.0-sidebars.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "tutorialSidebar": [ - { - "type": "autogenerated", - "dirName": "." - } - ] -} diff --git a/versioned_sidebars/version-1.3.0-sidebars.json b/versioned_sidebars/version-1.3.0-sidebars.json deleted file mode 100644 index caea0c03..00000000 --- a/versioned_sidebars/version-1.3.0-sidebars.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "tutorialSidebar": [ - { - "type": "autogenerated", - "dirName": "." - } - ] -} diff --git a/versioned_sidebars/version-1.3.2-sidebars.json b/versioned_sidebars/version-1.3.2-sidebars.json deleted file mode 100644 index b95d529a..00000000 --- a/versioned_sidebars/version-1.3.2-sidebars.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "tutorialSidebar": [ - { - "type": "doc", - "id": "intro", - "label": "Introduction" - }, - { - "type": "doc", - "id": "schema_2", - "label": "Schema Reference" - }, - { - "type": "doc", - "id": "VerifierTests", - "label": "Verifier Tests" - }, - { - "type": "category", - "label": "Developer Tools", - "items": [ - { - "type": "doc", - "id": "RestAPI", - "label": "REST API" - }, - { - "type": "doc", - "id": "cli-tool", - "label": "CLI Tool" - }, - { - "type": "category", - "label": "SDK", - "items": [ - { - "type": "doc", - "id": "sdk/getting-started", - "label": "Getting Started" - }, - { - "type": "doc", - "id": "sdk/core-concepts", - "label": "Core Concepts" - }, - { - "type": "category", - "label": "API Reference", - "items": [ - { - "type": "doc", - "id": "sdk/api/signing", - "label": "Signing" - }, - { - "type": "doc", - "id": "sdk/api/verification", - "label": "Verification" - }, - { - "type": "doc", - "id": "sdk/api/witnessing", - "label": "Witnessing" - } - ] - } - ] - } - ] - }, - { - "type": "category", - "label": "Security & Identity", - "items": [ - { - "type": "doc", - "id": "AquaIdentity", - "label": "Aqua Identity" - }, - { - "type": "doc", - "id": "AccessControl", - "label": "Access Control" - } - ] - }, - { - "type": "category", - "label": "Use Cases", - "items": [ - { - "type": "doc", - "id": "Cheque", - "label": "WAVS integration: Digital Cheque" - } - ] - } - ] -} diff --git a/versions.json b/versions.json deleted file mode 100644 index 2e5f0bbd..00000000 --- a/versions.json +++ /dev/null @@ -1,5 +0,0 @@ -[ - "1.3.2", - "1.2.0", - "1.1.0" -] From 789611ff4321db9cdde49f4e90b46e07be813d8e Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Mon, 1 Dec 2025 16:59:54 +0300 Subject: [PATCH 02/15] general menu structure --- dev_tools/aqua_sdk.mdx | 0 dev_tools/aquafier_api.mdx | 0 dev_tools/cli.mdx | 0 docs.json | 29 ++++++++++++++++------------- schema_reference/aqua_tree.mdx | 0 schema_reference/introduction.mdx | 0 schema_reference/revision.mdx | 0 schema_reference/signing.mdx | 0 schema_reference/witness.mdx | 4 ++++ use_cases/introduction.mdx | 23 +++++++++++++++++++++++ 10 files changed, 43 insertions(+), 13 deletions(-) create mode 100644 dev_tools/aqua_sdk.mdx create mode 100644 dev_tools/aquafier_api.mdx create mode 100644 dev_tools/cli.mdx create mode 100644 schema_reference/aqua_tree.mdx create mode 100644 schema_reference/introduction.mdx create mode 100644 schema_reference/revision.mdx create mode 100644 schema_reference/signing.mdx create mode 100644 schema_reference/witness.mdx create mode 100644 use_cases/introduction.mdx diff --git a/dev_tools/aqua_sdk.mdx b/dev_tools/aqua_sdk.mdx new file mode 100644 index 00000000..e69de29b diff --git a/dev_tools/aquafier_api.mdx b/dev_tools/aquafier_api.mdx new file mode 100644 index 00000000..e69de29b diff --git a/dev_tools/cli.mdx b/dev_tools/cli.mdx new file mode 100644 index 00000000..e69de29b diff --git a/docs.json b/docs.json index d40c4eb5..091fcbc4 100644 --- a/docs.json +++ b/docs.json @@ -32,18 +32,18 @@ { "group": "Use Cases", "pages": [ - "essentials/markdown", - "essentials/code", - "essentials/images", - "essentials/reusable-snippets" + "use_cases/introduction", + "use_cases/supply_chain", + "use_cases/identity_attestation" + ] }, { "group": "Development tools", "pages": [ - "ai-tools/cursor", - "ai-tools/claude-code", - "ai-tools/windsurf" + "dev_tools/aqua_sdk", + "dev_tools/aquafier_api", + "dev_tools/aqua_cli" ] } ] @@ -54,16 +54,19 @@ { "group": "API documentation", "pages": [ - "api-reference/introduction" + "schema_reference/introduction" ] }, { - "group": "Aquafier Endpoints", + "group": "Aqua Protocol Terms Schema", "pages": [ - "api-reference/endpoint/get", - "api-reference/endpoint/create", - "api-reference/endpoint/delete", - "api-reference/endpoint/webhook" + "schema_reference/aqua_tree", + "schema_reference/revision", + "schema_reference/witness_revision", + "schema_reference/signing_revision", + "schema_reference/link_revision", + "schema_reference/template_revision", + "schema_reference/object_revision" ] } ] diff --git a/schema_reference/aqua_tree.mdx b/schema_reference/aqua_tree.mdx new file mode 100644 index 00000000..e69de29b diff --git a/schema_reference/introduction.mdx b/schema_reference/introduction.mdx new file mode 100644 index 00000000..e69de29b diff --git a/schema_reference/revision.mdx b/schema_reference/revision.mdx new file mode 100644 index 00000000..e69de29b diff --git a/schema_reference/signing.mdx b/schema_reference/signing.mdx new file mode 100644 index 00000000..e69de29b diff --git a/schema_reference/witness.mdx b/schema_reference/witness.mdx new file mode 100644 index 00000000..94399f40 --- /dev/null +++ b/schema_reference/witness.mdx @@ -0,0 +1,4 @@ +--- +title: "Witness Revision" +description: "Get to learn about witness revision" +--- \ No newline at end of file diff --git a/use_cases/introduction.mdx b/use_cases/introduction.mdx new file mode 100644 index 00000000..4caec9e5 --- /dev/null +++ b/use_cases/introduction.mdx @@ -0,0 +1,23 @@ +--- +title: 'Use Cases & Examples' +description: 'How can Aqua protocol be used in your project' +--- + + +<CardGroup cols={2}> + <Card title="Document Verification" icon="file-check" href="/essentials/document-verification"> + Learn how to verify documents and ensure authenticity. + </Card> + + <Card title="Supply Chain Tracking" icon="truck" href="/essentials/supply-chain"> + Track products through the supply chain with transparency and verification. + </Card> + + <Card title="Identity Attestation" icon="id-card" href="/essentials/identity-attestation"> + Implement secure identity verification and credential attestation. + </Card> + + <Card title="Examples & Tutorials" icon="graduation-cap" href="/essentials/examples"> + Practical examples and step-by-step tutorials for building with Aqua Protocol. + </Card> +</CardGroup> From 4f2906491b6100c1ddc0724c15ecd74c4b34a120 Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Tue, 2 Dec 2025 11:20:41 +0300 Subject: [PATCH 03/15] introduction and quick start --- docs.json | 5 +- index.mdx | 108 +++++++++++++++----------- previous_versions/version-4.mdx | 4 + quickstart.mdx | 133 ++++++++++++++++++++------------ 4 files changed, 155 insertions(+), 95 deletions(-) create mode 100644 previous_versions/version-4.mdx diff --git a/docs.json b/docs.json index 091fcbc4..eb4c4d19 100644 --- a/docs.json +++ b/docs.json @@ -22,11 +22,12 @@ ] }, { - "group": "Previous Versions", + "group": "Aqua Versions", "pages": [ "previous_versions/version-1", "previous_versions/version-2", - "previous_versions/version-3" + "previous_versions/version-3", + "previous_versions/version-4" ] }, { diff --git a/index.mdx b/index.mdx index 15c23fb6..ec5c428e 100644 --- a/index.mdx +++ b/index.mdx @@ -1,97 +1,117 @@ --- title: "Introduction" -description: "Welcome to the new home for your documentation" +description: "Learn about Aqua protocol" --- -## Setting up -Get your documentation site up and running in minutes. +The Aqua Protocol is a foundational framework for building distributed trust networks. By leveraging hash-chains, cryptographic signatures, and Ethereum-based timestamping, Aqua enables scalable, trustless verification of data integrity and provenance without reliance on centralized authorities. It empowers developers and innovators to create applications that certify, attest, and secure data in an open, private and decentralized way. + + + + <Card - title="Start here" + title="Core Idea" icon="rocket" href="/quickstart" horizontal > - Follow our three step quickstart guide. + The protocol is all about building trust. </Card> -## Make it yours +Trust can be build by relying on hashing/encryption mechanism or by delegating to a mutually trusted party, Aqua protocol can handles both scenarios for you. + + + +## How It Works -Design a docs site that looks great and empowers your users. +At its core, Aqua creates portable hash-chains—called AquaTrees—that record a gapless history of data revisions. These trees can be timestamped on Ethereum for immutability, exchanged across services, and verified automatically. Whether securing documents, systems, or identities, Aqua liberates the certification process from institutional gatekeepers, making trust accessible through open cryptographic standards. + +We’re excited to see where this journey takes us—and invite you to explore, build, and contribute to the future of decentralized trust with Aqua Protocol Version 4. + + +<Tip>Where do i begin, below are helpful area that you can quickly get started with </Tip> <Columns cols={2}> <Card - title="Edit locally" - icon="pen-to-square" - href="/development" - > - Edit your docs locally and preview them in real time. - </Card> - <Card - title="Customize your site" - icon="palette" - href="/essentials/settings" + title="Understand the Schema" + icon="brain" + href="/schema_reference/introduction" > - Customize the design and colors of your site to match your brand. + Understand the componennets that make up the protocol </Card> + <Card - title="Set up navigation" + title="Explore Examples list " icon="map" - href="/essentials/navigation" + href="https://github.com/inblockio/aqua-examplesn" > - Organize your docs to help users find what they need and succeed with your product. + Explore a curated list of examples in different programming languages </Card> <Card - title="API documentation" + title="Look at the code" icon="terminal" - href="/api-reference/introduction" + href="https://github.com/inblockio" > - Auto-generate API documentation from OpenAPI specifications. + Comfotable with code, Want to dive into the deep end ? </Card> -</Columns> -## Create beautiful pages + <Card title="Developer Tools" icon="wrench" href="/essentials/aqua-sdk"> + Get started with our SDK and development tools. + </Card> +</Columns> -Everything you need to create world-class documentation. +## The Vision of Aqua +Aqua is still evolving, and we’re discovering the full scope of this powerful protocol. Here’s how we see it: <Columns cols={2}> <Card - title="Write with MDX" - icon="pen-fancy" - href="/essentials/markdown" + title="An Open Framework" + icon="book-open" + href="" > - Use MDX to style your docs pages. + Enabling private, decentralized solutions for general data notarization. </Card> + <Card - title="Code samples" - icon="code" - href="/essentials/code" + title="A Verifiable Data Structure" + icon="shield-check" + href="" > - Add sample code to demonstrate how to use your product. + Linking and certifying data with cryptographic precision. </Card> + <Card - title="Images" - icon="image" - href="/essentials/images" + title="A Protocol for Provenance" + icon="fingerprint" + href="" > - Display images and other media. + Ensuring clear attribution and integrity of data origins. </Card> + <Card - title="Reusable snippets" - icon="recycle" + title="A Foundation for Trust" + icon="handshake" href="/essentials/reusable-snippets" > - Write once and reuse across your docs. + Powering distributed networks where trust is built-in, not assumed. </Card> </Columns> + + ## Need inspiration? <Card title="See complete examples" icon="stars" - href="https://mintlify.com/customers" + href="https://github.com/inblockio/aqua-examples" > - Browse our showcase of exceptional documentation sites. + Browse our repositories of exceptional example projects. </Card> + + + +<Note>Need help? Email us info@inblock.io to talk to us.</Note> + + diff --git a/previous_versions/version-4.mdx b/previous_versions/version-4.mdx new file mode 100644 index 00000000..9a3d4656 --- /dev/null +++ b/previous_versions/version-4.mdx @@ -0,0 +1,4 @@ +--- +title: 'Aqua Protocol Version 4' +description: 'An overview of verision 4 of the Aqua protocol' +--- \ No newline at end of file diff --git a/quickstart.mdx b/quickstart.mdx index c711458b..a70df8fc 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -1,80 +1,115 @@ --- title: "Quickstart" -description: "Start building awesome documentation in minutes" +description: "Start building awesome projects in minutes" --- -## Get started in three steps +### Using Javascript /Typescipt Get started in three steps -Get your documentation site running locally and make your first customization. +> We encourage users to use Typescript to enjoy type defination and better development expirience -### Step 1: Set up your local environment +<Info> + **Prerequisites**: + + * Node.js version 19 or higher + * npm or pnpm +</Info> + +Follow these steps to install and run Mintlify on your operating system. + +<Steps> + <Step title="Create a project "> + ```bash theme={null} + # For Node.js TypeScript projects + npm create vite@latest my-project -- --template vanilla-ts + + # Or for a simple setup + npx tsc --init + ``` + </Step> + + <Step title="Install Aqua JS SDK"> + use npm or pnpm to install th js sdk + + ```bash theme={null} + npm i aqua-js-sdk + ``` -<AccordionGroup> - <Accordion icon="copy" title="Clone your docs locally"> - During the onboarding process, you created a GitHub repository with your docs content if you didn't already have one. You can find a link to this repository in your [dashboard](https://dashboard.mintlify.com). - - To clone the repository locally so that you can make and preview changes to your docs, follow the [Cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) guide in the GitHub docs. - </Accordion> - <Accordion icon="rectangle-terminal" title="Start the preview server"> - 1. Install the Mintlify CLI: `npm i -g mint` - 2. Navigate to your docs directory and run: `mint dev` - 3. Open `http://localhost:3000` to see your docs live! - <Tip>Your preview updates automatically as you edit files.</Tip> - </Accordion> -</AccordionGroup> + </Step> + + <Step title="Preview locally"> + Navigate to where your `package.json` file is located, and run the following command: + + ```bash theme={null} + npm run dev + ``` -### Step 2: Deploy your changes + A local preview of your documentation will be available at `http://localhost:{configured port}`. + </Step> +</Steps> + +## Using Rust +Create a library or a binary project using the recommended commands.Then simply run the following command to istall the library + +```bash theme={null} +cargo add aqua-verifier +``` + +We encourage You to use the latest version of the protocol. +<Warning>The library version number matches the protocol version</Warning> + + + +## Troubleshooting <AccordionGroup> - <Accordion icon="github" title="Install our GitHub app"> - Install the Mintlify GitHub app from your [dashboard](https://dashboard.mintlify.com/settings/organization/github-app). - - Our GitHub app automatically deploys your changes to your docs site, so you don't need to manage deployments yourself. -</Accordion> -<Accordion icon="palette" title="Update your site name and colors"> - For a first change, let's update the name and colors of your docs site. + <Accordion title="Error: Could not load the "sharp" module using the darwin-arm64 runtime"> + This may be due to an outdated version of node. Try the following: - 1. Open `docs.json` in your editor. - 2. Change the `"name"` field to your project name. - 3. Update the `"colors"` to match your brand. - 4. Save and see your changes instantly at `http://localhost:3000`. + 1. Remove the currently-installed version of the CLI: `npm remove -g mint` + 2. Upgrade to Node v19 or higher. + 3. Reinstall the CLI: `npm i -g mint` + </Accordion> - <Tip>Try changing the primary color to see an immediate difference!</Tip> + <Accordion title="Issue: Encountering an unknown error"> + Solution: Go to the root of your device and delete the `~/.mintlify` folder. Then run `mint dev` again. </Accordion> </AccordionGroup> -### Step 3: Go live +Curious about what changed in the latest CLI version? Check out the [CLI changelog](https://www.npmjs.com/package/mintlify?activeTab=versions). + -<Accordion icon="rocket" title="Publish your docs"> - 1. Commit and push your changes. - 2. Your docs will update and be live in moments! -</Accordion> +--- ## Next steps -Now that you have your docs running, explore these key features: +Now that you have your aqua library installed, explore these key features: <CardGroup cols={2}> -<Card title="Write Content" icon="pen-to-square" href="/essentials/markdown"> - Learn MDX syntax and start writing your documentation. -</Card> + <Card title="Witnessing" icon="eye" href="/essentials/markdown"> + Represents a record of a witness event, such as a blockchain transaction + </Card> + + <Card title="Signing" icon="signature" href="/essentials/settings"> + Represents a digital signature applied to a revision in an aqua tree. + </Card> -<Card title="Customize style" icon="palette" href="/essentials/settings"> - Make your docs match your brand perfectly. -</Card> + <Card title="Linking" icon="link" href="/essentials/code"> + Represents a record of other revisions belonging to other or the same AquaTree structure. + </Card> -<Card title="Add code examples" icon="square-code" href="/essentials/code"> - Include syntax-highlighted code blocks. -</Card> + <Card title="Templates" icon="flag" href="/api-reference/introduction"> + Template revisions specify the structure of other types of revisions. + </Card> -<Card title="API documentation" icon="code" href="/api-reference/introduction"> - Auto-generate API docs from OpenAPI specs. -</Card> + <Card title="Objects" icon="brackets" href="/api-reference/introduction"> + Object revisions are literal generic JSON envelops whose structure is defined by a template revision + </Card> </CardGroup> + <Note> - **Need help?** See our [full documentation](https://mintlify.com/docs) or join our [community](https://mintlify.com/community). + **Need help?** join our [community](https://aquaprotocol.zulipchat.com/). </Note> From e36fcd217e674aff67dafba9435898794297ea72 Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Tue, 2 Dec 2025 12:36:30 +0300 Subject: [PATCH 04/15] develpment docs --- dev_tools/aqua_cli.mdx | 5 + dev_tools/aqua_sdk.mdx | 5 + dev_tools/aquafier_api.mdx | 5 + dev_tools/cli.mdx | 0 development.mdx | 279 ++++++++++++++++++++++++++++++------- index.mdx | 1 + quickstart.mdx | 1 + 7 files changed, 244 insertions(+), 52 deletions(-) create mode 100644 dev_tools/aqua_cli.mdx delete mode 100644 dev_tools/cli.mdx diff --git a/dev_tools/aqua_cli.mdx b/dev_tools/aqua_cli.mdx new file mode 100644 index 00000000..899448a7 --- /dev/null +++ b/dev_tools/aqua_cli.mdx @@ -0,0 +1,5 @@ +--- +title: 'Aqua CLI' +description: 'Install a binary for notarization and verification' +icon: "terminal" +--- diff --git a/dev_tools/aqua_sdk.mdx b/dev_tools/aqua_sdk.mdx index e69de29b..38df37ed 100644 --- a/dev_tools/aqua_sdk.mdx +++ b/dev_tools/aqua_sdk.mdx @@ -0,0 +1,5 @@ +--- +title: 'Aqua SDK' +description: 'a library for use in a code base for notarization and verification' +icon: "code" +--- diff --git a/dev_tools/aquafier_api.mdx b/dev_tools/aquafier_api.mdx index e69de29b..2f515d92 100644 --- a/dev_tools/aquafier_api.mdx +++ b/dev_tools/aquafier_api.mdx @@ -0,0 +1,5 @@ +--- +title: 'Aquafier API' +description: ' A http api for notarization and verification ' +icon: "code" +--- diff --git a/dev_tools/cli.mdx b/dev_tools/cli.mdx deleted file mode 100644 index e69de29b..00000000 diff --git a/development.mdx b/development.mdx index ac633bad..ab658147 100644 --- a/development.mdx +++ b/development.mdx @@ -1,94 +1,269 @@ --- title: 'Development' -description: 'Preview changes locally to update your docs' +description: 'Ensure to Go through Quickstart before reading this' +icon: "code" --- + +## Good to have +Signing and witnessing option depend on different things. + +There are 3 Signing methods that are supported +1. DID Signature +2. Etherium Signature +3. P12 Signature + + +<Accordion title="DID Signature."> + To generate a DID Signature you need a did key. + You can generate one using js and the library `digitalcredentials/did-method-key` + You can oalso get one online using tools like https://hub.ebsi.eu/tools/did-generator + +</Accordion> + +<Accordion title="Etherium Signature."> +Two ways of generating an Ethereum signature are supported. +1. Have metamask wallet browser extension set up in your default browser. +2. store a wallet mnemonic in a credentails.json file. + +Check the specific tool ie SDK or cli on how to use credentials.json or pass in the credentials +</Accordion> + +<Accordion title="P12 Signature"> +To generate a P12 Signature you need a password and content. +For development you can generate one using iopenssl for production get a trusted certificate. + +for development + +```bash +# Generate a private key +openssl genrsa -out private.key 2048 + +# Create a certificate signing request +openssl req -new -key private.key -out certificate.csr +## For some systems you need to specify the configured +### openssl req -new -key private.key -out certificate.csr -config "C:\Program Files\Git\usr\ssl\openssl.cnf" + +# Generate a self-signed certificate (valid for 365 days) +openssl x509 -req -days 365 -in certificate.csr -signkey private.key -out certificate.crt + +# Create the P12 file (you'll be prompted for a password) +openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt + +``` +Once you have the P12 file, you need to convert it to base64 for the `p12_content` field: + + +```bash +# Convert P12 to base64 string +base64 -i certificate.p12 -o certificate.txt +# On Linux: base64 certificate.p12 > certificate.txt +``` + +If you need a certificate trusted by others: + +1. Purchase from a Certificate Authority (CA) + * DigiCert, Sectigo, GlobalSign, etc. + * Request a "Code Signing Certificate" or "Document Signing Certificate" + * They'll provide a P12/PFX file + +2. Some CAs provide P12 directly, others give you: + * A certificate (.crt/.cer) + * A private key (.key) + * Intermediate certificates + + If separate, combine them: + + ```bash + openssl pkcs12 -export -out certificate.p12 \ + -inkey privatekey.key \ + -in certificate.crt \ + -certfile intermediate.crt + ``` +</Accordion> + + +There are 3 Witness methods that are supported +1. TSA Witness +2. Etherium Witness +3. NOSTR Witness + + + + +<Accordion title="TSA Witness."> +You will need Time stamping Authority url. +Here are some Free Public TSA Services urls: +```bash +##DigiCert +http://timestamp.digicert.com + +## Sectigo (Comodo) +http://timestamp.sectigo.com +http://timestamp.comodoca.com + +## GlobalSign +http://timestamp.globalsign.com/scripts/timstamp.dll +http://timestamp.globalsign.com/tsa/r6advanced1 + +## Entrust +http://timestamp.entrust.net/TSS/RFC3161sha2TS + + +``` + +</Accordion> + +<Accordion title="Etherium Witness."> +Two ways of generating an Ethereum signature are supported. +1. Have metamask wallet browser extension set up in your default browser. +2. store a wallet mnemonic in a credentails.json file. + +Check the specific tool ie SDK or cli on how to use credentials.json or pass in the credentials + +For verification of witness you will need an alchemy key, follow the instruction here on how to generate one +https://www.alchemy.com/docs/how-to-create-access-keys +</Accordion> + + +<Accordion title="Nostr Witness."> +You will need a nostr secreat key to generate a Nostr Witness. +How to get a Nostr screate key + * Download any Nostr app (Damus, Amethyst, Primal, etc.) + * Choose "Create new account" (Or Login to your account) + * The app will generate a key pair for you + * Your secret key starts with `nsec1...` + +Or you can use a web-based key generator + * Visit sites like nostr.com or nostrtool.com + * Click "Generate Keys" +</Accordion> + + + +## JS SDK use <Info> **Prerequisites**: - Node.js version 19 or higher - - A docs repository with a `docs.json` file + - A project with the latest `aqua sdk` installed. </Info> -Follow these steps to install and run Mintlify on your operating system. + + + +Follow these steps to notarize a file, then sign it and finaly witness it. +<Note>This example are based on v3 of the protocol</Note> <Steps> -<Step title="Install the Mintlify CLI"> +<Step title="Generate an Aqua tree"> -```bash -npm i -g mint +```Typescript + // first step create a file object of the file you want to notarize + let testFileContent = readFile("./test.txt") + + let aquaFileObject: FileObject = { + fileName: "text.txt", + fileContent: testFileContent ? testFileContent : "", + path: "./text.txt" + } + + // intialize the js library + let aquafier = new Aquafier(); + let genesisRevisionResult = await aquafier.createGenesisRevision(aquaFileObject); + if (genesisRevisionResult.isOk()) { + // continue with the aqua tree you just generated + }else{ + console.erorr(`An error occured`) + } ``` </Step> -<Step title="Preview locally"> +<Step title="Sign An Aqua tree"> -Navigate to your docs directory where your `docs.json` file is located, and run the following command: -```bash -mint dev -``` +```Typescript +// create AquaTreeWrapper object +// at time you might need to specify a revision to sign +// by default just pass in an empty string + + let aqua_wrapper: AquaTreeWrapper = { + aquaTree: genesisRevisionResult.data.aquaTree!!, + fileObject: aquaFileObject, + revision: "", + }; + let signedResult = await aquafier.signAquaTree(aqua_wrapper, "metamask", creds, true); -A local preview of your documentation will be available at `http://localhost:3000`. + if (signedResult.isOk()) { + //proceed with your code + }else{ + // throw an error or log the error + } +``` </Step> -</Steps> -## Custom ports -By default, Mintlify uses port 3000. You can customize the port Mintlify runs on by using the `--port` flag. For example, to run Mintlify on port 3333, use this command: +<Step title="Witness An Aqua tree"> -```bash -mint dev --port 3333 -``` -If you attempt to run Mintlify on a port that's already in use, it will use the next available port: +```Typescript -```md -Port 3000 is already in use. Trying 3001 instead. -``` +// create AquaTreeWrapper object +// at time you might need to specify a revision to Witness +// by default just pass in an empty string -## Mintlify versions + let aqua_wrapper_2: AquaTreeWrapper = { + aquaTree: genesisRevisionResult.data.aquaTree!!, + fileObject: aquaFileObject, + revision: "", + }; -Please note that each CLI release is associated with a specific version of Mintlify. If your local preview does not align with the production version, please update the CLI: + let witnessResult = await aquafier.witnessAquaTree(aqua_wrapper_2, "eth", "sepolia", "metamask", creds, true); -```bash -npm mint update + if (witnessResult.isOk()) { + + console.log("Witnessing successful: \n", JSON.stringify(witnessResult.data, null, 4)); + + }else{ + // throw an error or log the error + } ``` -## Validating links -The CLI can assist with validating links in your documentation. To identify any broken links, use the following command: +</Step> -```bash -mint broken-links -``` -## Deployment +</Steps> -If the deployment is successful, you should see the following: -<Frame> - <img src="/images/checks-passed.png" alt="Screenshot of a deployment confirmation message that says All checks have passed." style={{ borderRadius: '0.5rem' }} /> -</Frame> -## Code formatting +## Aqua tree verification +At any point you may want to verify an aqua tree. -We suggest using extensions on your IDE to recognize and format MDX. If you're a VSCode user, consider the [MDX VSCode extension](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) for syntax highlighting, and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for code formatting. +```Typescript -## Troubleshooting +// fetch the aqua tree from sytesm files or db or state +// let aquaTree = -<AccordionGroup> - <Accordion title='Error: Could not load the "sharp" module using the darwin-arm64 runtime'> +// ensure the file object is created just like above when notarizing +// verification ensures the file is as was when the the aqua tree was generated - This may be due to an outdated version of node. Try the following: - 1. Remove the currently-installed version of the CLI: `npm remove -g mint` - 2. Upgrade to Node v19 or higher. - 3. Reinstall the CLI: `npm i -g mint` - </Accordion> +// intialize the js library + let aquafier = new Aquafier(); + + // Verify the aqua tree + + let verificationResults = await aquafier.verifyAquaTree(aquaTree, [aquaFileObject], + creds + ); + + if (verificationResults.isOk()) { + console.log("Successful result: \n", JSON.stringify(verificationResults.data, null, 4)); + } + else { + console.log("Failed verification data: \n", JSON.stringify(verificationResults.data, null, 4)); + } +``` - <Accordion title="Issue: Encountering an unknown error"> - - Solution: Go to the root of your device and delete the `~/.mintlify` folder. Then run `mint dev` again. - </Accordion> -</AccordionGroup> -Curious about what changed in the latest CLI version? Check out the [CLI changelog](https://www.npmjs.com/package/mintlify?activeTab=versions). +<Tip>Want to check put the full examples visit https://github.com/inblockio/aqua-js-sdk/tree/master/examples </Tip> \ No newline at end of file diff --git a/index.mdx b/index.mdx index ec5c428e..adcba0bf 100644 --- a/index.mdx +++ b/index.mdx @@ -1,6 +1,7 @@ --- title: "Introduction" description: "Learn about Aqua protocol" +icon: "door-open" --- diff --git a/quickstart.mdx b/quickstart.mdx index a70df8fc..aa70bc8f 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -1,6 +1,7 @@ --- title: "Quickstart" description: "Start building awesome projects in minutes" +icon: "rocket" --- ### Using Javascript /Typescipt Get started in three steps From 8bc1cc5c6130bd2e6c836475820e2d851aa81c82 Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Tue, 2 Dec 2025 13:02:16 +0300 Subject: [PATCH 05/15] more documentation --- docs.json | 39 ++++--- schema_reference/aqua_tree.mdx | 13 +++ schema_reference/file_index.mdx | 15 +++ schema_reference/introduction.mdx | 8 ++ .../{signing.mdx => link_revision.mdx} | 0 schema_reference/object_revision.mdx | 0 schema_reference/revision.mdx | 105 ++++++++++++++++++ schema_reference/signing_revision.mdx | 0 schema_reference/template_revision.mdx | 0 .../{witness.mdx => witness_revision.mdx} | 0 10 files changed, 163 insertions(+), 17 deletions(-) create mode 100644 schema_reference/file_index.mdx rename schema_reference/{signing.mdx => link_revision.mdx} (100%) create mode 100644 schema_reference/object_revision.mdx create mode 100644 schema_reference/signing_revision.mdx create mode 100644 schema_reference/template_revision.mdx rename schema_reference/{witness.mdx => witness_revision.mdx} (100%) diff --git a/docs.json b/docs.json index eb4c4d19..54dda5c1 100644 --- a/docs.json +++ b/docs.json @@ -36,7 +36,6 @@ "use_cases/introduction", "use_cases/supply_chain", "use_cases/identity_attestation" - ] }, { @@ -62,12 +61,18 @@ "group": "Aqua Protocol Terms Schema", "pages": [ "schema_reference/aqua_tree", - "schema_reference/revision", - "schema_reference/witness_revision", - "schema_reference/signing_revision", - "schema_reference/link_revision", - "schema_reference/template_revision", - "schema_reference/object_revision" + "schema_reference/file_index", + { + "group": "Revision", + "pages": [ + "schema_reference/revision", + "schema_reference/witness_revision", + "schema_reference/signing_revision", + "schema_reference/link_revision", + "schema_reference/template_revision", + "schema_reference/object_revision" + ] + } ] } ] @@ -93,15 +98,15 @@ }, "contextual": { "options": [ - "copy", - "view", - "chatgpt", - "claude", - "perplexity", - "mcp", - "cursor", - "vscode" - ] + "copy", + "view", + "chatgpt", + "claude", + "perplexity", + "mcp", + "cursor", + "vscode" + ] }, "footer": { "socials": { @@ -110,4 +115,4 @@ "linkedin": "https://www.linkedin.com/company/inblock-io" } } -} +} \ No newline at end of file diff --git a/schema_reference/aqua_tree.mdx b/schema_reference/aqua_tree.mdx index e69de29b..804c71f5 100644 --- a/schema_reference/aqua_tree.mdx +++ b/schema_reference/aqua_tree.mdx @@ -0,0 +1,13 @@ +--- +title: "Aqua Tree " +description: "What is a Aqua Tree , what makes up an Aqua Tree ?" +--- + +An Aqua tree is the root object of Aqua Protocol schema defination . +It wraps two object revsion and file index. + + * To understand revisions [read](/schema_reference/revision) + * To understand File index [read](/schema_reference/file_index) + + +<Check>The term tree is used and not chain as the revisions can contain more than one child while chain assumes a one vs One relationship hence the use of the word tree</Check> \ No newline at end of file diff --git a/schema_reference/file_index.mdx b/schema_reference/file_index.mdx new file mode 100644 index 00000000..b3471484 --- /dev/null +++ b/schema_reference/file_index.mdx @@ -0,0 +1,15 @@ +--- +title: "File Index " +description: "What is a File Index , what makes up a File Index ?" +--- + +A file index is Record(Hashmap) of revsion hash and the file name that created the aqua tree or to an external aqua tree that is linked to the current aqua tree +example of file index +```JSON + // revision objects + "file_index": { + "0xe1bcaa92b0ea2f0eb1f046ca4fc877f26726e5bec8b1a5cf25504a29bc4e0f28": "test.txt" + } + //rest of aqua tree + +``` diff --git a/schema_reference/introduction.mdx b/schema_reference/introduction.mdx index e69de29b..6cd358a4 100644 --- a/schema_reference/introduction.mdx +++ b/schema_reference/introduction.mdx @@ -0,0 +1,8 @@ +--- +title: "Aqua Protocol " +description: "Good to know, basic terminology" +--- + +Aqua protocol generates a json file as ouput when notarizing a file. +This JSON output is composed of two objects `revision` and `file index`. +The root JSON object is referred to as an Aqua tree. diff --git a/schema_reference/signing.mdx b/schema_reference/link_revision.mdx similarity index 100% rename from schema_reference/signing.mdx rename to schema_reference/link_revision.mdx diff --git a/schema_reference/object_revision.mdx b/schema_reference/object_revision.mdx new file mode 100644 index 00000000..e69de29b diff --git a/schema_reference/revision.mdx b/schema_reference/revision.mdx index e69de29b..7e4e3317 100644 --- a/schema_reference/revision.mdx +++ b/schema_reference/revision.mdx @@ -0,0 +1,105 @@ +--- +title: "Aqua Protocol Revisions" +description: "What is a revision , what maked up a revision ?" +--- + +Revisions are content-identifiable envelops in Aqua-Protocol. They are atomic and form a graph structure in a hash-tree. It represents the evolutionary, iterative, and historical essence of the atomic objects in the Aqua Protocol. + + +- Revision Chaining: Revisions form chains via optional previous_revision (a SHA3-256 hash), marking genesis if absent. +- Type Identification: revision_type specifies the revision's purpose—either a reference to a [template](https://www.notion.so/V4-Protocol-Draft-27ae695c0eec801c95fff40830e4c0e4?pvs=21) (32-hex hash) (for [Object](https://www.notion.so/V4-Protocol-Draft-27ae695c0eec801c95fff40830e4c0e4?pvs=21) revisions) or built-in types like "[template](https://www.notion.so/V4-Protocol-Draft-27ae695c0eec801c95fff40830e4c0e4?pvs=21)", "[signature](https://www.notion.so/V4-Protocol-Draft-27ae695c0eec801c95fff40830e4c0e4?pvs=21)", or "[link](https://www.notion.so/V4-Protocol-Draft-27ae695c0eec801c95fff40830e4c0e4?pvs=21)". +- Timing and Entropy: Includes a Unix timestamp (local_timestamp, unsigned 64-bit) and a random nonce (128-bit hex) for ordering and anti-collision. +- Versioning: version points to a protocol schema URL or a hash/custom string (up to 128 chars) for compatibility. +- Canonicalisation Method: method chooses between "scalar" (simple object hash for efficiency) or "tree" (Merkle tree for granular proofs, e.g., selective disclosure). +- Hash Type: identifier of the hashing function to generate the hash ID of the revision +- Schema Integration: Optional schema embeds a full JSON Schema (Draft 2020-12) for validating custom data in templates. + + +```JSON +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://aqua-protocol.org/docs/v4/metaschema", + "title": "Aqua Protocol Metaschema", + "description": "Schema for metadata in Aqua Protocol revisions", + "type": "object", + "properties": { + "previous_revision": { + "description": "SHA3-256 hash of the previous revision. If not present, this is a genesis revision.", + "type": "string", + "pattern": "^[0-9a-fA-F]{64}$" + }, + "revision_type": { + "description": "Non-traversable reference to a template or one of the specified types.", + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9a-fA-F]{32}$" + "description": "Non-traversable reference to a template revision hash." + }, + { + "type": "string", + "enum": ["template", "signature", "link"] + "description": "Fundamental revision types within Aqua Protocol" + } + ] + }, + "local_timestamp": { + "description": "Unsigned 64-bit integer Unix timestamp.", + "type": "integer", + "minimum": 0, + "maximum": 18446744073709551615 + }, + "nonce": { + "description": "128-bit random bytes for entropy, hex-encoded.", + "type": "string", + "pattern": "^[0-9a-fA-F]{32}$" + }, + "version": { + "description": "Version identifier: either a specific URL or a SHA256 hash.", + "oneOf": [ + { + "type": "string", + "const": "https://aqua-protocol.org/docs/v4/schema | FIPS_202-SHA3-256" + }, + { + "type": "string", + "pattern": "^{32}" + "maxLength": 128, + } + ] + }, + "hash_type": { + "description": "Hash function identifier: either FIPS_202-SHA3-256 or a custom hashing type.", + "oneOf": [ + { + "type": "string", + "const": "FIPS_202-SHA3-256" + }, + { + "type": "string", + "pattern": "^{32}" + "maxLength": 128, + } + ] + } + "method": { + "description": "Method type.", + "type": "string", + "enum": ["tree", "scalar"] + "description": "Scalar: Is a simple hash of the stringified revision object. This is the default method for performance reasons. Tree: Creates a merkle tree of all the values. This allows a more granular verification. This is used for e.g. selective disclosure", + } + "schema": { + "description": "Schema definition found in template revisions", + "type": "object", + "$ref": "https://json-schema.org/draft/2020-12/schema" + } + }, + "required": ["revision_type", "local_timestamp", "nonce", "version", "hash_type", "method"], + // This is to allow other revision types like link revision and signature revision + // Its the responsibility of the implementation to be more or less permissive + "additionalFields": true +} + + + +``` \ No newline at end of file diff --git a/schema_reference/signing_revision.mdx b/schema_reference/signing_revision.mdx new file mode 100644 index 00000000..e69de29b diff --git a/schema_reference/template_revision.mdx b/schema_reference/template_revision.mdx new file mode 100644 index 00000000..e69de29b diff --git a/schema_reference/witness.mdx b/schema_reference/witness_revision.mdx similarity index 100% rename from schema_reference/witness.mdx rename to schema_reference/witness_revision.mdx From 1371f100afd75f01abcda1ad169fad17f9f0006c Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Tue, 2 Dec 2025 13:11:17 +0300 Subject: [PATCH 06/15] more documentation --- aqua-logo.svg | 33 +++++++++++++++++++++++++++++++++ docs.json | 6 +++--- 2 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 aqua-logo.svg diff --git a/aqua-logo.svg b/aqua-logo.svg new file mode 100644 index 00000000..8d5d949b --- /dev/null +++ b/aqua-logo.svg @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="192" height="192"> +<path d="M0 0 C17.74806183 15.26312823 29.24688264 36.65737626 32.28125 59.86328125 C34.21447333 86.57866829 29.21314043 112.23858244 11.59375 133.26171875 C-4.63562213 151.5197624 -26.30687489 166.48018545 -51.58691406 168.0402832 C-83.18089665 168.6554003 -107.550755 162.81687391 -131.09375 140.57421875 C-148.73169364 122.35884243 -158.18966712 98.45833347 -159.03125 73.17578125 C-158.42734865 46.49755114 -148.16984362 22.80783001 -129.78125 3.55078125 C-93.7444394 -30.69136747 -37.9539705 -31.57251753 0 0 Z " fill="#F5F5F5" transform="translate(158.71875,23.13671875)"/> +<path d="M0 0 C2.88440402 0.60411756 5.04993447 1.47026131 7.5390625 3.0390625 C8.197854 3.45043457 8.85664551 3.86180664 9.53540039 4.28564453 C12.37024483 6.10267416 15.19189192 7.93995273 18.01611328 9.7734375 C20.17689654 11.15027328 20.17689654 11.15027328 23.30859375 12.65625 C26.24577155 14.22274482 28.07327659 15.27206488 30 18 C30.192294 21.47608393 29.96726821 24.57622191 29.55761719 28.01391602 C28.95710907 33.15711249 28.75451835 36.70972191 31.66015625 41.09765625 C36.95859491 45.40540187 43.88544279 47.31819193 50.31347656 49.38671875 C52 50 52 50 53 51 C53.08651611 52.41570123 53.10704904 53.835595 53.09765625 55.25390625 C53.09282227 56.53491211 53.09282227 56.53491211 53.08789062 57.84179688 C53.07532227 59.18854492 53.07532227 59.18854492 53.0625 60.5625 C53.05798828 61.46419922 53.05347656 62.36589844 53.04882812 63.29492188 C53.03700244 65.52997589 53.01906638 67.76499602 53 70 C57.95 70 62.9 70 68 70 C67.67 71.32 67.34 72.64 67 74 C62.38 74 57.76 74 53 74 C53 77.3 53 80.6 53 84 C46.4 84 39.8 84 33 84 C33 85.32 33 86.64 33 88 C39.6 88 46.2 88 53 88 C53 89.65 53 91.3 53 93 C52.31897217 93.21092285 51.63794434 93.4218457 50.9362793 93.63916016 C47.84541105 94.61100528 44.76690815 95.61746015 41.6875 96.625 C40.61564453 96.95628906 39.54378906 97.28757812 38.43945312 97.62890625 C37.41142578 97.97050781 36.38339844 98.31210938 35.32421875 98.6640625 C34.37635498 98.96779785 33.42849121 99.2715332 32.4519043 99.58447266 C29.24276377 101.13694656 29.24276377 101.13694656 27 107 C33.27 107 39.54 107 46 107 C45.01 108.98 45.01 108.98 44 111 C37.73 111 31.46 111 25 111 C25 114.63 25 118.26 25 122 C9.14923907 124.2789284 -4.54827266 124.78542302 -20 120 C-21.4999411 118.5000589 -21.31607651 117.05340395 -21.53515625 114.96484375 C-21.66567383 113.75151367 -21.66567383 113.75151367 -21.79882812 112.51367188 C-21.9293457 111.2384668 -21.9293457 111.2384668 -22.0625 109.9375 C-22.15337891 109.08349609 -22.24425781 108.22949219 -22.33789062 107.34960938 C-22.56250722 105.23348465 -22.78175227 103.11679106 -23 101 C-23.65073486 101.02094727 -24.30146973 101.04189453 -24.97192383 101.06347656 C-27.91862555 101.14659338 -30.8650809 101.19864484 -33.8125 101.25 C-34.83666016 101.28351563 -35.86082031 101.31703125 -36.91601562 101.3515625 C-37.89892578 101.36445313 -38.88183594 101.37734375 -39.89453125 101.390625 C-40.80050049 101.41157227 -41.70646973 101.43251953 -42.63989258 101.45410156 C-45 101 -45 101 -48 97 C-40.08 97 -32.16 97 -24 97 C-24.90055299 94.63385967 -24.90055299 94.63385967 -28.125 93.81640625 C-30.07297295 93.17446062 -32.02644828 92.55424793 -33.984375 91.94335938 C-35.68622643 91.37900575 -37.34763875 90.69605718 -39 90 C-39.33 89.01 -39.66 88.02 -40 87 C-36.37 87 -32.74 87 -29 87 C-29 85.68 -29 84.36 -29 83 C-32.96 83 -36.92 83 -41 83 C-41 83.99 -41 84.98 -41 86 C-42.95766281 86.08082094 -44.91626728 86.13910778 -46.875 86.1875 C-48.51082031 86.23970703 -48.51082031 86.23970703 -50.1796875 86.29296875 C-51.11039063 86.19628906 -52.04109375 86.09960938 -53 86 C-53.66 85.01 -54.32 84.02 -55 83 C-50.71 83 -46.42 83 -42 83 C-42.66 80.36 -43.32 77.72 -44 75 C-45.13179687 74.97421875 -46.26359375 74.9484375 -47.4296875 74.921875 C-48.91149743 74.86560374 -50.39326677 74.80825618 -51.875 74.75 C-52.99455078 74.72873047 -52.99455078 74.72873047 -54.13671875 74.70703125 C-56.3046875 74.609375 -56.3046875 74.609375 -60 74 C-60.66 72.68 -61.32 71.36 -62 70 C-56.06 69.67 -50.12 69.34 -44 69 C-43.566875 66.628125 -43.13375 64.25625 -42.6875 61.8125 C-42.03451294 58.90376731 -41.23710684 56.78349038 -40 54 C-37.22125087 52.24040287 -34.61309632 51.43267592 -31.5 50.41015625 C-28.75100888 49.17918167 -28.75100888 49.17918167 -27.6875 46.18359375 C-26.93195719 42.78758624 -26.39475086 39.45608407 -26 36 C-24.99941984 27.28763127 -22.48636514 23.82352491 -16 18 C-14.83185318 16.72847736 -13.68532762 15.43671451 -12.5625 14.125 C-8.45131483 9.34765056 -4.22568411 4.67604047 0 0 Z " fill="#0A0A0A" transform="translate(92,37)"/> +<path d="M0 0 C0.83015625 0.26683594 1.6603125 0.53367187 2.515625 0.80859375 C19.51296158 6.82180245 32.97420997 20.09401251 41 36 C48.95091179 54.21621877 49.37315044 73.56952643 42.20263672 92.05566406 C34.3148721 111.04522304 20.57080874 122.77637954 2 131 C-1.29908012 132.18749612 -4.59477239 133.17101201 -8 134 C-8.61053223 134.17200928 -9.22106445 134.34401855 -9.85009766 134.52124023 C-13.76787588 135.39368665 -17.7523451 135.18458626 -21.75 135.1875 C-22.61882812 135.19974609 -23.48765625 135.21199219 -24.3828125 135.22460938 C-29.96052704 135.2371718 -34.64643246 134.56662292 -40 133 C-40.96164063 132.75121094 -41.92328125 132.50242188 -42.9140625 132.24609375 C-60.98950338 126.85471585 -74.88445392 114.12218847 -84.04541016 97.84960938 C-91.5197467 83.36736547 -93.95189509 64.49120505 -90.09375 48.54296875 C-88.92335474 44.90048864 -87.59465712 41.47618377 -86 38 C-85.55398437 37.0203125 -85.10796875 36.040625 -84.6484375 35.03125 C-75.68459425 17.20371818 -60.32476173 4.95108374 -41.5625 -1.4375 C-28.38257329 -4.8616243 -12.82370252 -4.59980634 0 0 Z M-27.60644531 8.34179688 C-28.45867676 9.27088867 -28.45867676 9.27088867 -29.328125 10.21875 C-29.96363281 10.90453125 -30.59914062 11.5903125 -31.25390625 12.296875 C-31.91261719 13.02390625 -32.57132813 13.7509375 -33.25 14.5 C-33.89324219 15.19609375 -34.53648438 15.8921875 -35.19921875 16.609375 C-39.05258204 20.79612787 -42.82076772 25.05246719 -46.54589844 29.35351562 C-47.65417683 30.60842319 -48.81613472 31.81613472 -50 33 C-50.59773267 35.17012955 -50.59773267 35.17012955 -50.96484375 37.68359375 C-51.12533203 38.61107422 -51.28582031 39.53855469 -51.45117188 40.49414062 C-51.77465897 42.45195207 -52.0949867 44.41028822 -52.41210938 46.36914062 C-52.57388672 47.29791016 -52.73566406 48.22667969 -52.90234375 49.18359375 C-53.04148193 50.03493896 -53.18062012 50.88628418 -53.32397461 51.76342773 C-54.09291064 54.30738692 -54.93342532 55.36280573 -57 57 C-58.47109951 57.44430998 -59.95133319 57.85903537 -61.4375 58.25 C-63.93622234 59.11972221 -63.93622234 59.11972221 -66 61 C-68.08149732 66.06607813 -68.91407128 70.5231421 -70 76 C-75.94 76.33 -81.88 76.66 -88 77 C-87.34 78.32 -86.68 79.64 -86 81 C-83.17482275 81.46588547 -80.70920439 81.69615501 -77.875 81.75 C-76.74384766 81.79447266 -76.74384766 81.79447266 -75.58984375 81.83984375 C-73.72714047 81.91057932 -71.86356245 81.95754983 -70 82 C-69.34 84.64 -68.68 87.28 -68 90 C-72.29 90 -76.58 90 -81 90 C-80.34 90.99 -79.68 91.98 -79 93 C-76.10391601 93.36498034 -76.10391601 93.36498034 -72.875 93.1875 C-71.77929688 93.16042969 -70.68359375 93.13335937 -69.5546875 93.10546875 C-68.71164063 93.07066406 -67.86859375 93.03585938 -67 93 C-67 92.01 -67 91.02 -67 90 C-63.04 90 -59.08 90 -55 90 C-55 91.32 -55 92.64 -55 94 C-58.63 94 -62.26 94 -66 94 C-65.67 94.99 -65.34 95.98 -65 97 C-62.65583681 97.98747874 -60.4173534 98.8082667 -58 99.5625 C-55.63107062 100.31561436 -53.32781821 101.11833885 -51 102 C-50.67 102.66 -50.34 103.32 -50 104 C-57.92 104 -65.84 104 -74 104 C-71.57798395 108.16300156 -71.57798395 108.16300156 -68.63989258 108.45410156 C-67.73392334 108.4331543 -66.8279541 108.41220703 -65.89453125 108.390625 C-64.91162109 108.37773437 -63.92871094 108.36484375 -62.91601562 108.3515625 C-61.89185547 108.31804687 -60.86769531 108.28453125 -59.8125 108.25 C-58.77673828 108.23195313 -57.74097656 108.21390625 -56.67382812 108.1953125 C-54.11549164 108.14815422 -51.55762993 108.07641052 -49 108 C-48.34 113.94 -47.68 119.88 -47 126 C-31.38232381 132.24707048 -17.26956474 131.33914153 -1 129 C-1 125.37 -1 121.74 -1 118 C5.27 118 11.54 118 18 118 C18.99 116.02 18.99 116.02 20 114 C13.73 114 7.46 114 1 114 C4 108 4 108 6.4519043 106.58447266 C7.39976807 106.2807373 8.34763184 105.97700195 9.32421875 105.6640625 C10.35224609 105.32246094 11.38027344 104.98085937 12.43945312 104.62890625 C13.51130859 104.29761719 14.58316406 103.96632813 15.6875 103.625 C16.77095703 103.27050781 17.85441406 102.91601562 18.97070312 102.55078125 C21.64130685 101.68018796 24.31686513 100.83100048 27 100 C27 98.35 27 96.7 27 95 C20.4 95 13.8 95 7 95 C7 93.68 7 92.36 7 91 C13.6 91 20.2 91 27 91 C27 87.7 27 84.4 27 81 C31.62 81 36.24 81 41 81 C41.33 79.68 41.66 78.36 42 77 C37.05 77 32.1 77 27 77 C27 70.73 27 64.46 27 58 C25.35 57.236875 23.7 56.47375 22 55.6875 C20.99710937 55.22214844 19.99421875 54.75679687 18.9609375 54.27734375 C16.50631191 53.21842215 14.18892118 52.46220033 11.625 51.75 C7.53955495 50.19163436 5.68601642 47.78297257 3.7265625 43.93359375 C2.78053994 40.11390051 3.31396515 36.71455434 3.8125 32.875 C4.48839684 27.57745242 4.48839684 27.57745242 2.45703125 22.80078125 C-0.25540988 20.92433538 -3.06158929 19.50147692 -6 18 C-9.01435736 16.07367342 -11.96940945 14.05919826 -14.9375 12.0625 C-16.39910818 11.08625188 -17.86624701 10.11821236 -19.33984375 9.16015625 C-19.97269287 8.74386963 -20.60554199 8.32758301 -21.25756836 7.89868164 C-23.82041951 6.57685803 -25.36115424 6.46639874 -27.60644531 8.34179688 Z " fill="#FAFAFA" transform="translate(118,30)"/> +<path d="M0 0 C3.57422202 0.4898857 6.03378 2.1631072 8.984375 4.16015625 C9.91894531 4.78857422 10.85351562 5.41699219 11.81640625 6.06445312 C13.26853516 7.05348633 13.26853516 7.05348633 14.75 8.0625 C15.73355469 8.72572266 16.71710938 9.38894531 17.73046875 10.07226562 C20.15718572 11.70971057 22.58014787 13.35243436 25 15 C24.77441406 15.87140625 24.54882812 16.7428125 24.31640625 17.640625 C22.95458042 24.16045436 22.34631322 29.29538506 25.25 35.4375 C30.43764614 43.29788877 39.39787979 45.41481255 48 48 C48 53.61 48 59.22 48 65 C18.63 65 -10.74 65 -41 65 C-38.5215311 53.84688995 -38.5215311 53.84688995 -36 51 C-28.84210526 47 -28.84210526 47 -25 47 C-24.96261719 46.35675781 -24.92523438 45.71351562 -24.88671875 45.05078125 C-24.66636153 42.02194968 -24.35001636 39.01663588 -24 36 C-23.88527344 34.94296875 -23.77054688 33.8859375 -23.65234375 32.796875 C-22.16633986 23.68271779 -17.84116745 18.62381479 -11.453125 12.4375 C-9.15117316 10.16030033 -7.02207877 7.73484528 -4.875 5.3125 C-1.09230769 1.09230769 -1.09230769 1.09230769 0 0 Z " fill="#FAFAFA" transform="translate(93,42)"/> +<path d="M0 0 C17.74806183 15.26312823 29.24688264 36.65737626 32.28125 59.86328125 C34.21447333 86.57866829 29.21314043 112.23858244 11.59375 133.26171875 C-4.63562213 151.5197624 -26.30687489 166.48018545 -51.58691406 168.0402832 C-83.18089665 168.6554003 -107.550755 162.81687391 -131.09375 140.57421875 C-148.73169364 122.35884243 -158.18966712 98.45833347 -159.03125 73.17578125 C-158.42734865 46.49755114 -148.16984362 22.80783001 -129.78125 3.55078125 C-93.7444394 -30.69136747 -37.9539705 -31.57251753 0 0 Z M-133.3671875 14.91015625 C-149.02952607 34.57913957 -156.18289162 59.06483767 -153.484375 84.03173828 C-150.89878433 101.65032732 -143.31634471 118.36400242 -131.71875 131.86328125 C-131.21214844 132.51296875 -130.70554688 133.16265625 -130.18359375 133.83203125 C-117.06129092 150.08176251 -96.91305738 159.28612087 -76.71875 162.86328125 C-48.31013264 164.61804844 -24.43897217 159.50673795 -2.65625 140.55078125 C-0.99546878 139.00417874 0.65062325 137.44164433 2.28125 135.86328125 C3.044375 135.1259375 3.8075 134.38859375 4.59375 133.62890625 C14.77703668 123.09203323 21.14843805 109.80529747 25.28125 95.86328125 C25.64605469 94.69796875 26.01085937 93.53265625 26.38671875 92.33203125 C30.12136617 76.91487658 28.64637093 57.73688381 23.28125 42.86328125 C22.77271484 41.331875 22.77271484 41.331875 22.25390625 39.76953125 C13.49424364 16.07791708 -5.41230628 -0.5717987 -27.71875 -11.13671875 C-65.1133068 -27.79614664 -106.95606396 -15.10629527 -133.3671875 14.91015625 Z " fill="#070707" transform="translate(158.71875,23.13671875)"/> +<path d="M0 0 C1.12148437 0.4021875 2.24296875 0.804375 3.3984375 1.21875 C23.35345366 9.01029644 37.21259081 23.71138707 45.875 43.0625 C52.60193798 60.50270957 52.2703386 80.85228219 45 98 C35.65607051 118.45685535 20.53252216 132.13919591 -0.375 139.9375 C-16.97087106 145.77972191 -37.32522065 144.6649732 -53.13989258 137.28320312 C-60.03009009 133.90945375 -66.28777897 130.17094202 -72 125 C-72.66 124.43152344 -73.32 123.86304688 -74 123.27734375 C-85.39985692 112.790366 -94.31347153 96.51235526 -96 81 C-96.1608326 77.06147141 -96.18508932 73.12896226 -96.1875 69.1875 C-96.19974609 68.14529297 -96.21199219 67.10308594 -96.22460938 66.02929688 C-96.26054687 46.94648793 -88.11934377 30.91866906 -74.9375 17.3125 C-64.95286548 7.43613966 -53.65822577 1.31108503 -40 -2 C-39.3918042 -2.1743457 -38.7836084 -2.34869141 -38.15698242 -2.52832031 C-26.53443101 -5.06989013 -11.06211615 -4.20806724 0 0 Z M-75.22265625 23.34375 C-89.55450689 40.35419315 -93.56164664 58.31046335 -92 80 C-91.42352432 84.23044464 -90.47623533 88.00161361 -89 92 C-88.67128906 92.97582031 -88.34257813 93.95164062 -88.00390625 94.95703125 C-81.78283613 111.72593652 -68.72785376 124.90685552 -53 133 C-37.40758828 139.84735257 -18.21551124 142.30884734 -2 136 C-1.030625 135.64808594 -0.06125 135.29617187 0.9375 134.93359375 C19.27610191 127.84609837 31.60432369 116.01752009 40.27734375 98.40625 C44.40358111 88.81469448 46.25686571 79.08683213 46.3125 68.6875 C46.31797852 67.94693359 46.32345703 67.20636719 46.32910156 66.44335938 C46.26272731 61.33025292 45.39295133 56.92075198 44 52 C43.75121094 51.03835937 43.50242188 50.07671875 43.24609375 49.0859375 C38.05799638 31.69202649 26.00927525 17.78574528 10.4140625 8.72265625 C-18.87860916 -6.05774215 -52.57285487 -0.54004758 -75.22265625 23.34375 Z " fill="#141414" transform="translate(119,26)"/> +<path d="M0 0 C0.99 0.33 1.98 0.66 3 1 C6.42871138 1.16190138 9.85105636 1.29651789 13.28320312 1.34179688 C15.41015625 1.42578125 15.41015625 1.42578125 19 2 C21.57493155 4.97831508 21 6.87901972 21 11 C15.06 11.495 15.06 11.495 9 12 C10.81115956 13.81115956 13.61278227 13.38199448 16.0625 13.5625 C17.16722656 13.64628906 18.27195312 13.73007813 19.41015625 13.81640625 C20.69212891 13.90728516 20.69212891 13.90728516 22 14 C22 13.01 22 12.02 22 11 C25.96 11 29.92 11 34 11 C34 12.32 34 13.64 34 15 C30.7 15.33 27.4 15.66 24 16 C24 16.66 24 17.32 24 18 C25.12148438 18.29003906 25.12148438 18.29003906 26.265625 18.5859375 C27.25046875 18.84632812 28.2353125 19.10671875 29.25 19.375 C30.71179687 19.75785156 30.71179687 19.75785156 32.203125 20.1484375 C34.65837303 20.89598509 36.75617405 21.77123817 39 23 C39 23.66 39 24.32 39 25 C31.41 25.33 23.82 25.66 16 26 C18.52128356 28.52128356 19.51239013 28.29353069 23.0078125 28.4140625 C23.99394531 28.45273438 24.98007812 28.49140625 25.99609375 28.53125 C27.02863281 28.5621875 28.06117187 28.593125 29.125 28.625 C30.16527344 28.66367188 31.20554688 28.70234375 32.27734375 28.7421875 C34.85138311 28.83664766 37.42541155 28.92221214 40 29 C41.39523639 35.0129606 42.41443993 40.8516193 43 47 C52.86455616 49.83653476 61.65331203 51.63104081 72 51 C73.45442027 50.92044828 74.90884776 50.84102851 76.36328125 50.76171875 C80.24472688 50.5394501 84.12222433 50.27876179 88 50 C88 50.99 88 51.98 88 53 C80.97991345 55.70498748 74.25629004 56.30153309 66.8125 56.3125 C65.96977539 56.31765625 65.12705078 56.3228125 64.25878906 56.328125 C58.84278512 56.26863182 54.20382083 55.50078845 49 54 C48.03835937 53.75121094 47.07671875 53.50242188 46.0859375 53.24609375 C28.01755216 47.85682031 14.1202656 35.13055403 4.96337891 18.86279297 C2.36719929 13.84281058 0.30513641 8.49807464 -1 3 C-0.67 2.01 -0.34 1.02 0 0 Z " fill="#EFEFEF" transform="translate(29,109)"/> +<path d="M0 0 C11.03913945 -0.16207546 21.98440762 0.34235269 33 1 C32.34 2.32 31.68 3.64 31 5 C20.77 5 10.54 5 0 5 C0 3.35 0 1.7 0 0 Z " fill="#191919" transform="translate(105,143)"/> +<path d="M0 0 C11.88 0 23.76 0 36 0 C36 1.32 36 2.64 36 4 C31.3552879 4.0988803 26.71118827 4.1714715 22.06567383 4.21972656 C20.48548715 4.23984186 18.90537491 4.26713804 17.32543945 4.30175781 C15.05401252 4.35028343 12.78356942 4.37296809 10.51171875 4.390625 C9.80536789 4.41127014 9.09901703 4.43191528 8.3712616 4.45318604 C6.36987305 4.45410156 6.36987305 4.45410156 3 4 C2.01 2.68 1.02 1.36 0 0 Z " fill="#191919" transform="translate(44,134)"/> +<path d="M0 0 C1.65 0 3.3 0 5 0 C5.12117188 1.14597656 5.24234375 2.29195313 5.3671875 3.47265625 C5.53614266 5.00263906 5.70543127 6.53258507 5.875 8.0625 C5.95363281 8.81466797 6.03226563 9.56683594 6.11328125 10.34179688 C6.5209891 13.96412428 7.0332876 17.38190114 8.09375 20.875 C9.03521969 24.12144719 8.96728883 25.80794687 8 29 C7.01 29 6.02 29 5 29 C1.7301967 19.12975654 0.2899066 10.34966574 0 0 Z " fill="#202020" transform="translate(11,95)"/> +<path d="M0 0 C10.23 0 20.46 0 31 0 C30.34 1.32 29.68 2.64 29 4 C19.43 4 9.86 4 0 4 C0 2.68 0 1.36 0 0 Z " fill="#E9E9E9" transform="translate(125,121)"/> +<path d="M0 0 C1.32 0.33 2.64 0.66 4 1 C2.30897085 4.60986533 0.20056635 7.88961266 -1.9375 11.25 C-4.93431048 16.02431724 -7.31003285 20.61322972 -9 26 C-10.32 25.67 -11.64 25.34 -13 25 C-11.79568227 15.33712124 -6.00382961 7.43027139 0 0 Z " fill="#181818" transform="translate(30,42)"/> +<path d="M0 0 C9.86140414 1.02374746 18.13610193 4.84052964 27 9 C26.67 10.32 26.34 11.64 26 13 C22.21776999 12.39565804 19.23340279 11.26537185 15.8125 9.5625 C10.61990989 7.12141824 5.66086971 5.82272944 0 5 C0 3.35 0 1.7 0 0 Z " fill="#191919" transform="translate(110,12)"/> +<path d="M0 0 C0 1.32 0 2.64 0 4 C-0.87398437 4.12955078 -0.87398437 4.12955078 -1.765625 4.26171875 C-8.02410965 5.33432068 -13.45266649 7.27576583 -19.23828125 9.87890625 C-21.84250668 10.93606707 -24.23322047 11.55146926 -27 12 C-27 10.68 -27 9.36 -27 8 C-6.38367609 -2.12789203 -6.38367609 -2.12789203 0 0 Z " fill="#191919" transform="translate(82,13)"/> +<path d="M0 0 C6.45672576 5.51511992 6.45672576 5.51511992 9.03515625 7.81640625 C12.86203241 11.23036321 16.64941962 14.28088726 21 17 C20.67 18.32 20.34 19.64 20 21 C11.75381807 18.10943445 3.31339881 10.94964415 -2 4 C-2 3.01 -2 2.02 -2 1 C-1.34 0.67 -0.68 0.34 0 0 Z " fill="#151515" transform="translate(34,147)"/> +<path d="M0 0 C4.07357621 1.35785874 5.28082069 4.07374088 7.4375 7.5625 C8.03582642 8.51443237 8.03582642 8.51443237 8.64624023 9.4855957 C16 21.30925829 16 21.30925829 16 26 C13.71875 25.9140625 13.71875 25.9140625 11 25 C9.58002294 22.75571422 8.5379661 20.7848277 7.5 18.375 C5.62480282 14.28694624 3.80258732 10.42494393 1 6.875 C-1 4 -1 4 -0.625 1.8203125 C-0.41875 1.21960937 -0.2125 0.61890625 0 0 Z " fill="#161616" transform="translate(159,41)"/> +<path d="M0 0 C0.99 0.99 1.98 1.98 3 3 C-2.53037732 10.14664956 -10.24735264 18.08245088 -19 21 C-19.66 19.68 -20.32 18.36 -21 17 C-20.154375 16.443125 -19.30875 15.88625 -18.4375 15.3125 C-11.62012656 10.75116343 -5.52902047 6.13036409 0 0 Z " fill="#151515" transform="translate(157,147)"/> +<path d="M0 0 C1.32 0 2.64 0 4 0 C4.70861513 10.21586809 2.59610959 19.21822996 0 29 C-1.32 28.67 -2.64 28.34 -4 28 C-3.63503808 23.76452088 -3.23253196 19.7702621 -2 15.6875 C-0.59688225 10.51350331 -0.33296054 5.33613076 0 0 Z " fill="#171717" transform="translate(176,95)"/> +<path d="M0 0 C0 1.32 0 2.64 0 4 C-3.1184325 5.0394775 -5.27475586 5.11494838 -8.54296875 5.09765625 C-9.61611328 5.09443359 -10.68925781 5.09121094 -11.79492188 5.08789062 C-12.91447266 5.07951172 -14.03402344 5.07113281 -15.1875 5.0625 C-16.31865234 5.05798828 -17.44980469 5.05347656 -18.61523438 5.04882812 C-21.41020927 5.03703498 -24.2050782 5.0205765 -27 5 C-27.33 3.68 -27.66 2.36 -28 1 C-23.89587259 0.83235721 -19.79169203 0.6660526 -15.6875 0.5 C-13.93663086 0.42845703 -13.93663086 0.42845703 -12.15039062 0.35546875 C-10.47299805 0.28779297 -10.47299805 0.28779297 -8.76171875 0.21875 C-7.73006592 0.17685547 -6.69841309 0.13496094 -5.63549805 0.09179688 C-3.75788811 0.02639796 -1.87874855 0 0 0 Z " fill="#131313" transform="translate(110,174)"/> +<path d="M0 0 C3.99432781 1.62061033 6.79558321 4.39339173 9.8125 7.375 C10.5849707 8.09816406 10.5849707 8.09816406 11.37304688 8.8359375 C12.83203125 10.2734375 12.83203125 10.2734375 15 13 C14.82421875 15.3515625 14.82421875 15.3515625 14 17 C10.00567219 15.37938967 7.20441679 12.60660827 4.1875 9.625 C3.67251953 9.14289063 3.15753906 8.66078125 2.62695312 8.1640625 C1.16796875 6.7265625 1.16796875 6.7265625 -1 4 C-0.82421875 1.6484375 -0.82421875 1.6484375 0 0 Z " fill="#202020" transform="translate(92,66)"/> +<path d="M0 0 C3.16854747 0.57691478 4.78226459 1.41646887 7.015625 3.72265625 C7.54414062 4.26083984 8.07265625 4.79902344 8.6171875 5.35351562 C9.15601562 5.91748047 9.69484375 6.48144531 10.25 7.0625 C10.80429688 7.63033203 11.35859375 8.19816406 11.9296875 8.78320312 C13.29334214 10.18212469 14.64760417 11.59019114 16 13 C15.67 13.99 15.34 14.98 15 16 C11.83145253 15.42308522 10.21773541 14.58353113 7.984375 12.27734375 C7.45585938 11.73916016 6.92734375 11.20097656 6.3828125 10.64648438 C5.84398438 10.08251953 5.30515625 9.51855469 4.75 8.9375 C4.19570312 8.36966797 3.64140625 7.80183594 3.0703125 7.21679688 C1.70665786 5.81787531 0.35239583 4.40980886 -1 3 C-0.67 2.01 -0.34 1.02 0 0 Z " fill="#222222" transform="translate(92,58)"/> +<path d="M0 0 C3.13084099 0.57764438 4.77743006 1.40030044 7.015625 3.65234375 C7.54414062 4.18150391 8.07265625 4.71066406 8.6171875 5.25585938 C9.15601562 5.81080078 9.69484375 6.36574219 10.25 6.9375 C10.80429688 7.48857422 11.35859375 8.03964844 11.9296875 8.60742188 C16 12.73287408 16 12.73287408 16 15 C14.20214844 15.67163086 14.20214844 15.67163086 12 16 C10.35253906 14.92016602 10.35253906 14.92016602 8.765625 13.25390625 C8.19199219 12.66416016 7.61835937 12.07441406 7.02734375 11.46679688 C6.44082031 10.83837891 5.85429688 10.20996094 5.25 9.5625 C4.64800781 8.93794922 4.04601562 8.31339844 3.42578125 7.66992188 C1.9390699 6.12421404 0.4680135 4.5634768 -1 3 C-0.67 2.01 -0.34 1.02 0 0 Z " fill="#1F1F1F" transform="translate(78,87)"/> +<path d="M0 0 C6.93 0 13.86 0 21 0 C21 1.32 21 2.64 21 4 C14.07 4 7.14 4 0 4 C0 2.68 0 1.36 0 0 Z " fill="#DDDDDD" transform="translate(77,115)"/> +<path d="M0 0 C6.6 0 13.2 0 20 0 C20 1.32 20 2.64 20 4 C13.4 4 6.8 4 0 4 C0 2.68 0 1.36 0 0 Z " fill="#E7E7E7" transform="translate(93,129)"/> +<path d="M0 0 C2 0 2 0 3.515625 1.50390625 C4.08796875 2.18324219 4.6603125 2.86257812 5.25 3.5625 C5.86488281 4.28566406 6.47976562 5.00882812 7.11328125 5.75390625 C7.73589844 6.49511719 8.35851562 7.23632812 9 8 C10.14473463 9.33427675 11.29046728 10.66769833 12.4375 12 C13.283125 12.99 14.12875 13.98 15 15 C14.67 15.66 14.34 16.32 14 17 C10.00567219 15.37938967 7.20441679 12.60660827 4.1875 9.625 C3.67251953 9.14289063 3.15753906 8.66078125 2.62695312 8.1640625 C1.16796875 6.7265625 1.16796875 6.7265625 -1 4 C-0.82421875 1.6484375 -0.82421875 1.6484375 0 0 Z " fill="#101010" transform="translate(79,78)"/> +<path d="M0 0 C3.96 0 7.92 0 12 0 C12 1.32 12 2.64 12 4 C8.04 4 4.08 4 0 4 C0 2.68 0 1.36 0 0 Z " fill="#E3E3E3" transform="translate(105,144)"/> +<path d="M0 0 C3.96 0 7.92 0 12 0 C12 1.32 12 2.64 12 4 C8.37 4 4.74 4 1 4 C0.67 2.68 0.34 1.36 0 0 Z " fill="#DCDCDC" transform="translate(68,134)"/> +<path d="M0 0 C4.62 0 9.24 0 14 0 C14 0.99 14 1.98 14 3 C9.38 3 4.76 3 0 3 C0 2.01 0 1.02 0 0 Z " fill="#FCFCFC" transform="translate(81,145)"/> +<path d="M0 0 C3.63 0 7.26 0 11 0 C10.34 1.32 9.68 2.64 9 4 C6.03 4 3.06 4 0 4 C0 2.68 0 1.36 0 0 Z " fill="#1C1C1C" transform="translate(145,121)"/> +<path d="M0 0 C3.96 0 7.92 0 12 0 C12 0.99 12 1.98 12 3 C8.37 3 4.74 3 1 3 C0.67 2.01 0.34 1.02 0 0 Z " fill="#F9F9F9" transform="translate(51,120)"/> +</svg> diff --git a/docs.json b/docs.json index 54dda5c1..d3a4cd57 100644 --- a/docs.json +++ b/docs.json @@ -1,13 +1,13 @@ { "$schema": "https://mintlify.com/docs.json", "theme": "mint", - "name": "Mint Starter Kit", + "name": "Aqua Protocol Documentation", "colors": { - "primary": "#16A34A", + "primary": "#E55B1F", "light": "#07C983", "dark": "#15803D" }, - "favicon": "/favicon.svg", + "favicon": "aqua-logo.svg", "navigation": { "tabs": [ { From f3c23262ccdefd101e6db6a2c7cf97c65c1956d2 Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Fri, 5 Dec 2025 11:49:07 +0300 Subject: [PATCH 07/15] verison docs --- .claude/settings.json | 8 + docs.json | 39 +- previous_versions/version-1.mdx | 4 - previous_versions/version-2.mdx | 4 - previous_versions/version-3.mdx | 4 - previous_versions/version-4.mdx | 4 - .../version_1/assurance_levels.mdx | 50 ++ previous_versions/version_1/concepts.mdx | 336 ++++++++ .../version_1/data_accounting.mdx | 77 ++ .../version_1/data_governance.mdx | 115 +++ .../version_1/delegated_witnessing.mdx | 15 + .../version_1/design_principles.mdx | 128 +++ previous_versions/version_1/guardian.mdx | 374 +++++++++ .../version_1/idenity_protocol.mdx | 443 ++++++++++ .../version_1/immutable_hyperlinks.mdx | 86 ++ previous_versions/version_1/introduction.mdx | 40 + .../version_1/name_resolution.mdx | 13 + previous_versions/version_1/whitepaper.mdx | 783 ++++++++++++++++++ previous_versions/version_2/concepts.mdx | 252 ++++++ previous_versions/version_2/introduction.mdx | 44 + previous_versions/version_2/tooling.mdx | 167 ++++ previous_versions/version_3/concepts.mdx | 0 previous_versions/version_3/introduction.mdx | 4 + previous_versions/version_3/tooling.mdx | 4 + previous_versions/version_4/introduction.mdx | 133 +++ schema_reference/link_revision.mdx | Bin 0 -> 12792 bytes schema_reference/object_revision.mdx | 247 ++++++ schema_reference/signing_revision.mdx | 352 ++++++++ schema_reference/template_revision.mdx | 441 ++++++++++ schema_reference/witness_revision.mdx | 417 +++++++++- 30 files changed, 4562 insertions(+), 22 deletions(-) create mode 100644 .claude/settings.json delete mode 100644 previous_versions/version-1.mdx delete mode 100644 previous_versions/version-2.mdx delete mode 100644 previous_versions/version-3.mdx delete mode 100644 previous_versions/version-4.mdx create mode 100644 previous_versions/version_1/assurance_levels.mdx create mode 100644 previous_versions/version_1/concepts.mdx create mode 100644 previous_versions/version_1/data_accounting.mdx create mode 100644 previous_versions/version_1/data_governance.mdx create mode 100644 previous_versions/version_1/delegated_witnessing.mdx create mode 100644 previous_versions/version_1/design_principles.mdx create mode 100644 previous_versions/version_1/guardian.mdx create mode 100644 previous_versions/version_1/idenity_protocol.mdx create mode 100644 previous_versions/version_1/immutable_hyperlinks.mdx create mode 100644 previous_versions/version_1/introduction.mdx create mode 100644 previous_versions/version_1/name_resolution.mdx create mode 100644 previous_versions/version_1/whitepaper.mdx create mode 100644 previous_versions/version_2/concepts.mdx create mode 100644 previous_versions/version_2/introduction.mdx create mode 100644 previous_versions/version_2/tooling.mdx create mode 100644 previous_versions/version_3/concepts.mdx create mode 100644 previous_versions/version_3/introduction.mdx create mode 100644 previous_versions/version_3/tooling.mdx create mode 100644 previous_versions/version_4/introduction.mdx diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 00000000..8002223e --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,8 @@ + { + "permissions": { + "additionalDirectories": [ + "C:\\Users\\ADMIN\\Desktop\\Development\\Rust\\aqua-rs-sdk", + "C:\\Users\\ADMIN\\Desktop\\Development\\Projects\\aqua-docs" + ] + } + } \ No newline at end of file diff --git a/docs.json b/docs.json index d3a4cd57..55a282d4 100644 --- a/docs.json +++ b/docs.json @@ -24,10 +24,41 @@ { "group": "Aqua Versions", "pages": [ - "previous_versions/version-1", - "previous_versions/version-2", - "previous_versions/version-3", - "previous_versions/version-4" + { + "group": "Version (v1.0 - depracated)", + "pages": [ + "previous_versions/version_1/introduction", + "previous_versions/version_1/concepts", + "previous_versions/version_1/whitepaper", + "previous_versions/version_1/idenity_protocol", + "previous_versions/version_1/name_resolution", + "previous_versions/version_1/assurance_levels", + "previous_versions/version_1/data_accounting", + "previous_versions/version_1/data_governance", + "previous_versions/version_1/delegated_witnessing", + "previous_versions/version_1/design_principles", + "previous_versions/version_1/guardian", + "previous_versions/version_1/immutable_hyperlinks" + ] + }, + { + "group": "Version (v2.0 - depracated)", + "pages": [ + "previous_versions/version_2/introduction", + "previous_versions/version_2/concepts", + "previous_versions/version_2/tooling" + ] + }, + { + "group": "Version (v3.0 - current)", + "pages": [ + "previous_versions/version_3/introduction", + "previous_versions/version_3/concepts", + "previous_versions/version_3/tooling" + ] + }, + "previous_versions/version_4/version_4" + ] }, { diff --git a/previous_versions/version-1.mdx b/previous_versions/version-1.mdx deleted file mode 100644 index eeb8c4ea..00000000 --- a/previous_versions/version-1.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 'Aqua Protocol Version 1' -description: 'An overview of verision 1 of the Aqua protocol' ---- \ No newline at end of file diff --git a/previous_versions/version-2.mdx b/previous_versions/version-2.mdx deleted file mode 100644 index 0222197b..00000000 --- a/previous_versions/version-2.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 'Aqua Protocol Version 2' -description: 'An overview of verision 2 of the Aqua protocol' ---- \ No newline at end of file diff --git a/previous_versions/version-3.mdx b/previous_versions/version-3.mdx deleted file mode 100644 index 18960704..00000000 --- a/previous_versions/version-3.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 'Aqua Protocol Version 3' -description: 'An overview of verision 3 of the Aqua protocol' ---- \ No newline at end of file diff --git a/previous_versions/version-4.mdx b/previous_versions/version-4.mdx deleted file mode 100644 index 9a3d4656..00000000 --- a/previous_versions/version-4.mdx +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 'Aqua Protocol Version 4' -description: 'An overview of verision 4 of the Aqua protocol' ---- \ No newline at end of file diff --git a/previous_versions/version_1/assurance_levels.mdx b/previous_versions/version_1/assurance_levels.mdx new file mode 100644 index 00000000..8cde2f4b --- /dev/null +++ b/previous_versions/version_1/assurance_levels.mdx @@ -0,0 +1,50 @@ +--- +title: "Assurance Levels (AAL)" +linkTitle: "Assurance Levels" +description: > + Highlights the levels of assurances you can receive by using technology provided in the Aqua reference implementation. +--- + +How safe are the wallets to used? - Current PKC Pilot - relating to the +'Authentication assurance level's (AAL)' according to the World Bank +standards: + +See short presentation [Aqua_PKC_-_Wallet-Security.pdf](https://github.com/inblockio/aqua-docs/files/7885411/Aqua_PKC_-_Wallet-Security.pdf) + +### Level 1 + +The Metamask wallet alone has a low (level 1 ) level of assurance. +MetaMask is the most common browser blockchain wallet applications on +the web and their developer teams strive for increased security to keep +crypto-assets of their 10 Million+ Users safe. + +### Level 2 + +Metamask offers integration with Hardware-Wallets which raises the level +of assurance by having at least 2 authentication factors (e.g., a token +with a password or PIN) to min. level 2. The Hardware-Tokens are build +to be temper proof. + +### Level 3 + +- It is possible to integrate the different layers of security at once + +with Metamask (Password Protection) a hardware-token (temper proof) with +PIN a one-time-password generator based on your mobile-phone +(recommended is a hardened mobile phone which also uses biometrics for +highest security) requires implementation of one-time-password +authentication for logins after wallet-authentication see +[https://github.com/inblockio/micro-PKC/issues/37](https://github.com/inblockio/micro-PKC/issues/37) + +- Other high security options allow multi-signature logins with + smart-contracts requiring multiple parties to confirm the operation + to be executed. This can be defined based on the smart contract to + extreme security as each of the layers mentioned above can be added + to each party being involved in the multi-signature event to open a + PKC or to SIGN a verified page within the PKC or to witness a data + set via a witness network. + +- The mentioned security model is not dependent on the security of + Metamask. If Metamask is hacked it will not allow to compromise the + model above as the security of the private key of the hardware token + is preserved. diff --git a/previous_versions/version_1/concepts.mdx b/previous_versions/version_1/concepts.mdx new file mode 100644 index 00000000..60d300f0 --- /dev/null +++ b/previous_versions/version_1/concepts.mdx @@ -0,0 +1,336 @@ +--- +title: 'Concepts ' +description: Explains the technologies selected for the reference implementation and why we selected them. +--- + +Implementation specific architecture documentation for the Aqua Data +Vault 'Personal Knowledge Container (PKC)'. In this document you will +find reasoning as to why certain components were chosen to build this +prototype. We have not duplicated any vendor documentation. Please find +the linked-list for the documentation of the components we use here: + +- [MetaMask](https://docs.metamask.io/guide/) +- [Ethereum](https://ethereum.org/en/developers/docs/) +- [Docker](https://docs.docker.com/) +- [MediaWiki](https://www.mediawiki.org/wiki/Documentation) +- [MediaWiki Extension: Aqua](https://github.com/inblockio/aqua-docs) +- [MediaWiki Skin Tweeki](https://tweeki.kollabor.at/) +- [Pelith Eauth Server](https://github.com/pelith/node-eauth-server) +- [Nodejs](https://nodejs.org/en/docs/) +- [GitHub](https://docs.github.com/en) +- [Apache](https://httpd.apache.org/docs/) +- [Nginx](https://nginx.org/en/docs/) +- [Let's Encrypt](https://letsencrypt.org/docs/) + + + + +All software components selected are open source licenses. They each +have active developer communities behind them to secure future support +and further development. + +## Wallets / Accounts + +Why do we use Ethereum Wallets / Accounts? + +An identity anchor needs to be a public, private key. This allows a +public component which we can share (public key) and a private component +which proves ownership over that public-key. Public keys are used in +Ethereum as accounts to receive and send transactions. Therefore the +Ethereum ecosystem has developed standards. These have evolved to a +larger eco-system involving wallet-providers which have built software +and hardware wallets to securely manage those keys. We leverage one of +the most vibrant developer communities and utilize these wallets. In our +case they are used mainly for offline-activities (Login, Signing) which +do not require connectivity to the Ethereum blockchain. + +## Web-Application (Chrome-Extension MetaMask) + +Was selected as it is one of the most advanced, widely used, +feature-rich web-wallets. Most importantly it's a browser-plugin which +allows us to interact with browser applications. MetaMask also has the +ability to connect to a hardware wallet allowing for increased security +and levels of assurance. + +- Large User-Base 10 Million + + + + +- Hardware Wallet Support (E.g. Ledger) + - Large User-base 5 Million + + + + +- All related source code is open source, lot's of money behind it + (future proof) +- SSI (Self-sovereign identity): Compatible with the DID schema + did:ethr:`<wallet_address>` +- Fulfills SSI principles: + - Controlled by user, allows for creation of new accounts / wallet + addresses + - User can create new identity anchor independent of third party + - Can be moved between devices by users recovery key or even to a + hardware wallet (not recommended but possible: + https://kryptonitelex.medium.com/how-to-transfer-your-metamask-to-a-ledger-hardware-wallet-bcece7d5567b) + +## Witness Network + +We are using the Ethereum Network as an optional Witness Network for +cryptographic time-stamping. + +### Why public Blockchain? + +The witness event serves the purpose of being able to prove the +existence of a document without the ability to deny it. This requires +censorship resistance and global coverage. The security of the network, +it's distribution, and the high economical price to attack the network, +are all good reasons why we want to use a public blockchain to publish +highly obfuscated hashes (fingerprints). This proves the state of the +data in a Data Vault (PKC). + +The MetaMask wallet is able to publish the witness event verification +hash to the public Ethereum blockchain. This completes our third +important layer of integrity verification, which is to prove +cryptographic time and existence of a document by writing it's +fingerprint onto the ledger. This is not done directly, but through a +process which highly obfuscates the hash. This ensures that that there +is no plausible attack (even if the attacker owns a powerful quantum +computer) to match the fingerprint with any personal data. + +## Data Vault + +The Data Vault named 'Personal Knowledge Container' is creatd by using a +tool for containerization called 'Docker'. This allows us to package our +application so it can be deployed to different operating system +environments. Docker provides the abstraction / virtualization layer. + +Inside Docker we containerized multiple services: + +## MediaWiki for data governance + +MediaWiki is a data governance tool which has a legacy as a +collaboration tool. It powers Wikipedia, the largest encyclopedia in the +world. We step into this experience, and the benefits of a feature rich, +battle-proven application. It's a powerful tool to both manage and +present data. + +As MediaWiki has an active and established developer community, it is +possible to tap into existing professional service companies. Supporting +development and any required changes within the application. + +MediaWiki has been modified to use workflows for data processing. This +will allow for implementing and testing workflows and business logic +between Personal-Knowledge-Containers. + +We use all the benefits of MediaWiki to manage and present data in the +browser, while we work around one of its main limitations: Security. +MediaWiki was never developed to have advanced security and permission +structures, as it was built for Wikipedia - a fully public website. This +has several implications for us. + +Security Practices: + +- We assume that we can't defend against insider attacks on the same + MediaWiki instance, therefore every user has their own instance +- If there is a need for a collaboration space, it is possible to + spawn containers for multiple accounts which trust each other to + work together on shared data + + + +- If you use a hosted PKC instance, assume the provider has access to + your data as we don't use homomorphic encryption nor do we have + encryption implemented +- We are using typed and tested PHP (for MediaWiki Extension Data + Accounting) to improve test coverage to increase stability and + security of our application + + + +- To securely exchange data between PKC's, we implement a separate + security software called Guardian. The Guardian protects the PKC and + manages all access according to the accounts owners set permissions. + The Guardian is under active development. It will receive the + highest scrutiny and attention to ensure a minimal attack surface + while allowing trust between Guardians so data can be exchanged. + + + +- The Apache WebServer present in the MediaWiki container has a + technological dependency and needs regular updates as Apache was + effected by critical security issues like + [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) +- Therefore we do not expose the Apache web-server to the internet by + default and do not recommend this to ensure that there is no + unnecessary attack surface. If an organization decides to expose the + web-surface of a PKC to the internet, they should expect this + instance to be compromised and leak all it's stored data. Therefore + we re-emphasize: If PKC / MediaWiki is exposed to the web, there + can't be any guarantee that data can be kept private. Therefore + assume your data can be leaked on a web-facing MediaWiki instance. + Organizations hosting PKC's for collaboration should do so with + restricted firewall permissions, ensuring that the web-interface is + only reachable for the employees authorized to see the content. + +## MediaWiki Extension: Aqua + +The existing ecosystem and reference implementations around MediaWiki +allowed us to quickly prototype our reference implementation for Aqua. +The implementation itself allowed us to further develop the protocol. +The downsides are currently old PHP code and MediaWiki's legacy. In +return we benefit from a well documented project. + +Looking forward we want to see other client-implementations in different +languages independent of MediaWiki to show the potential of the Aqua +Protocol. We hope to re-use part of the PHP code base to apply it to +other applications, like Word-Press. + +## MediaWiki Skin Choice + +Using Tweeki as a Bootstrap 4 compatible Skin for MediaWiki, we were +able to establish contact with the chief maintainer of the extension, +and were able to collaborate to solve various issues to improve the +skin. We are coordinating with other parties to see how we can improve +support for the Skin. In the future we are hoping to increase the +maintainer base. Prospectively we want to use Tweeki as an abstraction +layer from MediaWiki classic to Bootstrap 4, and respectively Bootstrap +5+. + +## Authentication + +- For Authentication with Web-Wallets, we use + [https://github.com/pelith/node-eauth-server](https://github.com/pelith/node-eauth-server) which provides us with + an open source solution for a signature-response challenge. We then + integrate with OAUTH2 and OIDC using existing authentication + standards to achieve the login. +- The Pelith server provides us with the Signature-Challenge and is + forwarding the access token via OAUTH2 to MediaWiki. Here we check + if the user exists. If this is the case, access is granted. + +## WebServer-Proxy / HTTPs + +- We are using NGINX Web-Server as the proxy server. NGINX is a modern + and the most popular (#1 since 2021 by share[^1]) web-server on the + web. +- We are using Let's Encrypt to provide secure connections via HTTPS + if a PKC is deployed to the web. Let's encrypt serves over 260 + million websites according to the vendor website.[^2] provides free + TLS Certificates for secure HTTPS connections. +- The NGINX Web-Proxy allows us to ensure that we can add additional + services to the PKC and redirect the services according to our + needs. + +## Software-Development + +- We use [https://github.com](https://github.com) for software development. As we started + with very little budget, we gratefully utilised free resources to + develop our open source software. This allowed us to focus on being + productive. + - Github is owned by Microsoft and is therefore subject to US + policies and Microsofts interests. + - This itself requires us to move away to be independent or at + least host a mirror instance outside of Github. The deletion of + a repository or losing access could harm our development process + significantly. +- We use GPL-V3 license on the majority of our repositories. + - We maintain the rights on branding + - We maintain more restrictive rights on deployment scripts + (service provider technologies) + +## Browser Choice + +We are using the Chrome-Engine as our Web-Browser of choice. It's the +most dominant web-browser on the Web, and has become the quasi standard +with many different forks creating an ecosystem around it. +Microsoft-Edge is actually Chrome. There are non-google chrome forks +which deserve attention, funding and support (like +[https://github.com/Eloston/ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium)). This will provide us +with a modern and state of the art browser architecture to work with. + +As Chrome is the most secure and modern base to build on, we support +-only- chrome. Therefore we use a chrome extension to verify the content +of an Aqua file. This extension is available for download in the Google +Chrome App Store, or can be built from scratch following the +instructions in our repository.[^3] + +This allows us to provide ease of setup, as users can easily deploy the +chrome extension without further effort by adding it from the google app +store. + +We are using NPM / node.js for fast prototyping. This comes with severe +security implications as the npm ecosystem has been prone to various +supply-chain attacks over recent months [^4] . + +## Technology choices on cryptography + +All cryptography used in our development is based on international NIST +standards and follows the international understanding for internet +security. This is consistent with the perspective of the BSI in Germany, +but for some specific details there are no insights provided by the +ministry. + +### Hashing Algorithms (SHA3-512) + +PKC uses standard Crypto (SHA3-512) winner of the National Institute of +Standards and Technology see +[https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf) . We do not +use custom encryption as this comes at the cost of unnecessary risks. + +This is an accepted secure and recommended standard according to [BSI - +Technische Richtlinie – Kryptographische Algorithmen und Schlussellängen +Seite +42](https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.pdf?__blob=publicationFile). + +### Merkle Tree[^5] + +- We use merkle trees to be able to witness the state of all pages / + files in a single hash. Used to generate a unique fingerprint of a + domain (a collection of verified data hash chain's within one + domain). +- There is a lot of future potential in ongoing research to improve + privacy and utility of merkle trees in the [Aqua + Protocol](https://pkc.inblock.io/index.php/Aqua_Protocol) + - See related technologies and research like TAPROOT: + [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) + +### Public-Private-Key Signatures (secp256k1) + +Used in combination with Ethereum Accounts. It is used for signing and +authentication challenges. + +- in ether.js + [cryptography/secp256k1](https://github.com/ethereumjs/ethereumjs-monorepo/blob/ade4233ddffffdd146b386de701762196a8c941c/packages/util/src/signature.ts#L23-L45) + see + [implementation](https://github.com/ethereum/js-ethereum-cryptography/blob/b1f35053df3f0cfa132fc45d59b688ca0d62994a/src/secp256k1-compat.ts#L99-L123) +- related documents of the 'Standards for Efficient Cryptography + Group' [https://secg.org](https://secg.org) specific doc secp256k1 [Both variants + of the same standardization process of the Standards for Efficient + Cryptography Group 2015, See differences + P9](https://www.secg.org/sec2-v2.pdf) + + + +- Supported by BSI secp256r1 but secp256k1 is not + mentioned.https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR03116/BSI-TR-03116-4.pdf?__blob=publicationFile&v=7 + Request for clarification was send via E-Mail on the 3rd of November + 2021 by Tim Bansemer. Answer of the BSI: Currently the BSI has no + assessment or recommendation for secp256k1. + + + +- For authentication with Metamask Ethereum wallets we currently use + [https://github.com/pelith/node-eauth-server](https://github.com/pelith/node-eauth-server). We are signing a + unique input value with ethereum.js using the personal sign method. + Once the challenge is completed successfully we receive an OAUTH + token from the Eauth identity provider of the pelith Eauth server. + +1. [NGINX: Most Popular Web Server](https://linuxiac.com/nginx-most-popular-web-server/) + +2. [Let's Encrypt](https://letsencrypt.org/) + +3. [Aqua Verify Page Chrome Extension - GitHub](https://github.com/inblockio/aqua-verifypage-chrome-extension) + +4. [NPM Supply Chain Attack](https://duckduckgo.com/?q=npm+supply+chain+attack&ia=software) + +5. [Merkle Tree - Wikipedia](https://en.wikipedia.org/wiki/Merkle_tree) + diff --git a/previous_versions/version_1/data_accounting.mdx b/previous_versions/version_1/data_accounting.mdx new file mode 100644 index 00000000..68f43840 --- /dev/null +++ b/previous_versions/version_1/data_accounting.mdx @@ -0,0 +1,77 @@ +--- +title: "Data Accounting" +linkTitle: "Data Accounting" +weight: 5 +sidebar_position: 5 +description: > + Introduces the concept of Data Accounting +--- + +We first exchanged goods, then we used means to exchange goods, such as +shells and coins. Today we use money. We have transitioned to a world where +we present and exchange data to receive goods and services. + +The system for accounting provided by Luca Pacioli, the double-entry +accounting is the foundation of our work. We present a modern +way to do double-entry bookkeeping for data. + +Data accounting is the process of metering data in a standardized unit +of exchange, and converting it into a form which can be exchanged to +provide data symmetry between accounts. + +The unit of exchange is not measured in a numeric value as found in cash +systems. Data have multi-dimensional value, which means they depends on your +perspective and your relationship to data. This determines how much this +data-set is worth to the individual. + +The standard measure of exchange is a hash, representing the state of the +data. A SHA3-512 hash always has 128 characters, regardless of the size +of the data it is representing. + +## Metering data / anchoring data in space + +To meter data, we can refer to them using a digital fingerprint, i.e. their +hash. This allows us to refer to the data in a consistent form. The hash has +captured sufficient entropy to be unique, so it becomes a unique resource +locator. This ensures that it is always deterministic to what data we relate +to. + +## Accounting data / anchoring data to account + +The second step is that the data is attributed to a specific account. This is +achieved by using cryptographic signatures known as [public/private key +encryption](https://en.wikipedia.org/wiki/Public-key_cryptography). The public +key acts as a unique account address. It is necessary that the accounts in use +are globally unique, so there is no realistic probability of a name collision +between accounts. This ensures that no data is attributed by mistake to two +accounts or more. + +## Proof of existence / anchoring data to time + +The last step to account data is the usage of a cryptographically secure clock, +so we know which data were witnessed first. Data can be replicated, so the +value lies within the social implications of the message within the published +data. This cryptographic timestamping allows us to determine the first account +to witness the data. The most secure witness-networks which provide a service +for cryptographic witnessing of datasets are Bitcoin and Ethereum. The first +known examples of partial data accounting were done by [Surety in +1995](https://www.vice.com/en/article/j5nzx4/what-was-the-first-blockchain) and +[OpenTimestamps in +2012](https://petertodd.org/2016/opentimestamps-announcement). + +## Practical accounting + +The accounting book in the data accounting age is a 'data vault' which is +controlled by one or multiple accounts. This allows both personal data vaults +or organizational data vaults. + +A data vault is controlled by a cryptographic wallet. The vault has the +objective to govern the data for the account owner who is associated with the +vault. + +The vault provides a capability to export and import data, so it can be +exchanged between data vaults. This allows for collaboration at scale, and the +usage of data as a means of exchange. + +*Please contribute to this article (fixing errors) by exporting it and +sending it back with your improvement to community\[at\]inblock\[dot\]io.* diff --git a/previous_versions/version_1/data_governance.mdx b/previous_versions/version_1/data_governance.mdx new file mode 100644 index 00000000..96d59991 --- /dev/null +++ b/previous_versions/version_1/data_governance.mdx @@ -0,0 +1,115 @@ +--- +title: "Data Governance" +linkTitle: "Data Governance" +weight: 6 +sidebar_position: 6 +description: > + Introduces the concept of Data Governance +--- + +Author: Ben Koo +E-Mail: koo0905\[at\]gmail\[dot\]com +Year: 2021 + +Data Governance identifies how to manage the value of data. A well-known +turning point in history was the publication of [Luca +Pacioli](wikipedia:Luca_Pacioli "wikilink")'s [Summa de +arithmetica](wikipedia:Summa_de_arithmetica "wikilink"). This +encyclopedia of mathematics, had 26 pages worth of text on what we call +[Double-entry +bookkeeping](wikipedia:Double-entry_bookkeeping "wikilink"). This became +the foundational literature for +[accounting](wikipedia:accounting "wikilink"), the progenitor of using +data to assign value to accounts, and henceforth gave birth to the +practice of data governance. + +# Accounting as the foundation of Data Governance + +According to historian Jane-Gleeson White[^1][^2], Pacioli's double +entry book keeping idea influenced the development of arts, sciences, +and capitalism. [Double-entry +bookkeeping](wikipedia:Double-entry_bookkeeping "wikilink") as a +rigorous approach to ensure data integrity, not only influenced the +practice of the accounting profession, and it had a significant impact +on the the formulation of [Hamiltonian +Mechanics](wikipedia:Hamiltonian_Mechanics "wikilink"), which is a +foundational theory of both classical mechanics and quantum mechanics. + +Sir [William Rowan +Hamilton](wikipedia:William_Rowan_Hamilton "wikilink") wrote a paper[^3] +cited many many scholars to demonstrate that many ideas about complex +algebraic manipulation that laid the foundation of scientific +revolutions are based on the formulation of creating accountable +mathematical formulation strategies through double entry book keeping. +[David Ellerman](https://www.ellerman.org) had a paper that explains the +powers of double entry bookkeeping in sciences[^4]. The notion that +creating public addresses for transactions amongst different accounts +has been documented as a scientific theory on Double Entry Book-keeping. +This book can be found online[^5]: + +## Digital Governance + +Given the intellectual roots of data governance have strong linkages to +mathematics and accounting, it is only after the introduction of +[personal computing devices](wikipedia:personal_computer "wikilink"), +and later the ubiquity of [Internet](wikipedia:Internet "wikilink") +access that made data governance an idea relevant to public affairs. The +argument is that many people's basic privacy and property rights may be +challenged by people who have access to data collection and deployment +technologies. Imminent threats such as fake news, big brother monitoring +practices, identity thefts, and crypto currency issuance are already +challenging the stability of the existing social fabric. These type of +social debates are often related to the ideas of [Digital +governance](wikipedia:Digital_governance "wikilink"). At this time, +digital governance has not yet become a mature field of study, and it +needs to be grounded in simple principles, so that it can be +transparently practiced with local adaptations. + +## Conceptualization of Data Governance + +Beside the notion of digital governance, data as an asset class must be +kept accountable, so that it can be evaluated, and transferred with an +objective operational framework. Knowing how to organize data in formats +that satisfy consistent abstraction strategies, such as [Universal +Resource Identifier](wikipedia:URI "wikilink") and [Universal Resource +Locator](wikipedia:URL "wikilink") are important starting points in this +field. Earlier work in data governance in a web of [hyperlinked +media](wikipedia:Hyperlink "wikilink") can be traced back to [Project +Xanadu](wikipedia:Project_Xanadu "wikilink") by [Ted +Nelson](wikipedia:Ted_Nelson "wikilink"). + +More recent more publications in this fields are +[Lessig](wikipedia:Lawrence_Lessig "wikilink")'s [Code +v2](https://lessig.org/product/codev2)[^6] and soon to be published work +of [Alex Pentland](wikipedia:Alex_Pentland "wikilink")'s [Building the +New Economy](https://wip.mitpress.mit.edu/new-economy)[^7]. + +## References + +[^1]: J. Gleeson-White, Double Entry: How the merchants of Venice shaped + the modern world--and how their invention could make or break the + planet, publisher Allen & Unwin, `<ISBN:978-1-74175-755-2>`, November + 2011 + +[^2]: J. Gleeson-White, SIX CAPITALS, or CAN ACCOUNTANTS SAVE THE + PLANET?, publisher Allen & Unwin, ISBN-10:9780393246674, February + 2015 + +[^3]: Hamilton, S.W.R. (1837) Theory of Conjugate Functions, or + Algebraic Couples: with a Preliminary and Elementary Essay on + Algebra as the Science of Pure Time, Transactions of the Royal Irish + Academy, 17pp. 293–422. + +[^4]: David Ellerman, On Double-Entry Bookkeeping: The Mathematical + Treatment, [https://arxiv.org/pdf/1407.1898.pdf](https://arxiv.org/pdf/1407.1898.pdf) + +[^5]: J.C. Colt, The Science of Double Entry Book-keeping, online + media:[https://core.ac.uk/download/pdf/56693696.pdf](https://core.ac.uk/download/pdf/56693696.pdf), last accessed: + May 4th, 2021 + +[^6]: L. Lessig, Code: And Other Laws of Cyberspace, Version 2.0, + Publisher: Basic Books, 2nd Revised edition, December 2006 + +[^7]: Alex Pentland, Alexander Lipton, and Thomas Hardjono, Building the + New Economy, MIT Press, Work in Progress, + [https://wip.mitpress.mit.edu/new-economy](https://wip.mitpress.mit.edu/new-economy) diff --git a/previous_versions/version_1/delegated_witnessing.mdx b/previous_versions/version_1/delegated_witnessing.mdx new file mode 100644 index 00000000..be7135f6 --- /dev/null +++ b/previous_versions/version_1/delegated_witnessing.mdx @@ -0,0 +1,15 @@ +--- +title: "Delegated Witnessing" +linkTitle: "Delegated Witnessing" +weight: 7 +sidebar_position: 7 +description: > + Describes the process of sending domain snapshots to remote data vaults. +--- + +Describes the process of sending a domain snapshot to a remote data vault for +witnessing. The domain snapshot is then included in the witnessing event and +sent back to its original data vault. This makes the domain snapshot behave +like an ordinary portable hash chain that can be witnessed. The relative path +of the Merkle proof is used as a prefix for all other included portable hash +chains included in the domain snapshot. diff --git a/previous_versions/version_1/design_principles.mdx b/previous_versions/version_1/design_principles.mdx new file mode 100644 index 00000000..010612af --- /dev/null +++ b/previous_versions/version_1/design_principles.mdx @@ -0,0 +1,128 @@ +--- +title: "Design Principles" +linkTitle: "Design Principles" +weight: 8 +sidebar_position: 8 +description: > + Lists the design principles underlying our reference implementation +--- + +The following design principles pertain to Aqua reference Implementation `PKC` + +## Private is Default + +The principle default to private is that no data of the PKC [Data +vault](whitepaper.md#data-vault) is shared without it being explicitly +authorized by the associated account. + +### Domain Access Levels + +Levels of access are: + +Private: Only the account owner has access to files and services +initialized by his account. Agreement / Permissioned access: The Account +owner grants other Account's access to files or services based on +verifiable contracts which are themselves written with the Aqua Protocol +to ensure they are forgery-proof and therefore safe. Public: Other +Account's have access to the file or service without agreements. + +## Offline Capability + +The PKC Data Vault follow's the principle of being able to run and be +functional without internet connection after setup or through +installation based on local installation files. + +This allows PKC setups to be kept offline from any internet connectivity +while still functional. This can provide the required assurances for +very sensitive data. + +## Separation of Account and Service + +Concern: There is a trend in the DIF/WC3 Identity space that some +players like to accumulate personal identifiable data (PII) inside of +Wallets. We think this is a ill-fated direction and there should be +a clear separation between account and service. Wallets should not hold +personal identifiable data. + +Benefits: + +- If the service gets hacked, no account related data is leaked if + it's not stored. +- Account is not compromised, as there is no password saved within the + service with Password free login. + +#### [Wallet](whitepaper.md#wallet)'s have one job. Keep private keys safe! (Account Management) + +- Should be stupid, simple, safe! +- Allowed operations: + - Signing + - De- / Encrypt + - Publishing transactions to service (e.g. witness networks) +- Ability to choose “high level of assurance” depending on the stakes + associated with the account(s) managed by the wallet +- Takes care of key recovery mechanisms + +#### [Data Vault](whitepaper.md#data-vault) (Service)- Has one job: keep the data safe! + +- [Principle: Offline + Capability](Principle:_Offline_Capability) so it can run + offline; works offline on local machine +- All significant actions authorized and managed though the wallet +- Should offer good tooling for data storage and manipulation +- Strong access control: By [Principle: Default is + Private](Principle:_Default_is_Private) which means data + is only accessible by the owner. +- Data is well protected + - The Data Vault should apply additional security features to keep + the data safe. + - e.g. Encryption of files / databases if service is not used. + - e.g. Encryption of pages with web-decryption (allowing for + End-to-End Encryption). +- Capabilities for sharing and publishing data +- Offers full Backup and Recovery mechanisms to move data freely + - [Principle: Data + Portability](Principle:_Data_Portability "wikilink") + +## Signature Login + +We do not use passwords for login but instead we use a signature of a +private key to authorize access to a service. This increases security +and does not require the user to remember a password, creating a better +user experience. + +Pros: +\* Account owner uses his wallet to complete a signature challenge for +login. With this challenge he proves that he owns the private key to a +public key. If the public key is registered as an account at the +service, the account is granted access. + +- The password can't be leaked as it does not exist. +- Very high security + +Contra: +\* Requires access to the wallet which holds the private key to +authorize access + +- Not commonly understood by users as a way to login (new process) + +## Principle: Data Portability + +The Principle of Data Portability means that the +[Account](whitepaper.md#account) owner can instruct the Service to Export +all data associated with the [Account](whitepaper.md#account) and is free +to move this data to a new service which is capable of importing the +data. + +### Implementation Specifics + +In PKC's this is guaranteed by: +\* providing a Backup and restore procedure which allows to move data +between PKC's and restore them in case of a required recovery. + +- providing a file import and export function +- providing an import / export API + +Furthermore we ensure with the development of the MediaWiki Data +Accounting Extension, that the data is still compatible with the legacy +import / export (which means only the text not the verification data is +imported / exported. diff --git a/previous_versions/version_1/guardian.mdx b/previous_versions/version_1/guardian.mdx new file mode 100644 index 00000000..d0954895 --- /dev/null +++ b/previous_versions/version_1/guardian.mdx @@ -0,0 +1,374 @@ +--- +title: "Guardian" +linkTitle: "Guardian" +weight: 9 +sidebar_position: 9 +description: > + Shows access and transport layer logic used to interconnect data vaults +--- + +# Context + +It is highly problematic to expose sensitive data, such as personal +identifiable data, to the internet. The service who hosts that sensitive +data, needs to be compromised only for a short amount of time, to leak +all the data. Often caused by configuration mistakes or by +vulnerabilities being present in the used technology stack. + +We can't effort to have leaks on personal-identifiable data in data +vaults. To raise the bar on making attacks difficult and reducing the +chance of leakage of information, we introduce the Guardian as a extra +security layer to protect services like the PKC from attacks. + +# Summary + +The Guardian is a software which manages the boundaries of your digital +domain. Guardians are used to connect to secure transport networks +(HTTPS, Matrix Network, Didcomm) and publishing networks (e.g. +Swarm.eth). The Guardian is used to build trusted connections to other +Guardians via trusted transport-layers to exchange data with them. As +the Guardian connects to other Guardians, it also manages all +connections to services in it's domain and access to those services. + +# Goal + +Secure all services behind the Guardian from attacks and unauthorized +access. Keep the data vault and it's data private and safe, while +enabling the ability to exchange data with other Guardians. + +## How + +Enforcement is handled on each connection and each data set so that +services behind the Guardian are never directly exposed. This makes the +Guardian the most security sensitive component in the Aqua reference +implementation, as we expect the Guardian to handle all incoming and +outgoing traffic. The Guardian enjoys additional attention and effort to +be up to it's task by hardening it and applying security best practices +to ensure that it is fulfilling it's security promise to keep services +behind the Guardian safe. + +Every transaction leaving or wanting to enter your domain will be +supervised and checked by the Guardian. The core functionality of the +Guardian is a library to verify the Aqua Protocol. Only if the +verification succeeds additional steps are introduced to make decisions +how the data is handled. + +This allows the Guardian to read and understand Aqua verified data. This +allows for the implementation of a wide set of behavioral rules and +offers the opportunity to create various 'Smart contract' languages on +top of it. + +The Guardian verifies a file, reads its contents and checks it's +permissions to classify if an action is considered legal or illegal, +permitted or denied. Basic functionality for a Guardian can be compared +with a traditional firewall, or a application firewall but is much more +sophisticated to manage access on the data-level. + +# Terminology: + +Proving ownership over a domain by signing the domain ID with an +self-issued identity claim which is also registered in a claim registry +to ensure nobody claims to have owned that domain before by manipulating +the digital clock and faking an earlier owner-ship claim over the +domain. + +## **Permission Agreements** / Data Usage Agreement / Access Rights + +are contracts which represent the terms and conditions under which files +and/or services are shared with other accounts and/or their digital +domains. + +By nature those Permission Agreements will be compiled through pages and +stored as files. To form an agreement, the other party must be notified +about new resources as they become available. For example, when we share +a page with another account. To complete a permission agreement, the +counter party has to sign the permission agreement or reject it. If the +permission agreement is signed, the other party enters a contractual +relationship in which they will be liable for any agreement violates +executed from their digital domain. + +# Processes + +## Domain Handshake +Establish trust between two Aqua domains. For this we have Alice and Bob which +want to establish trust between their domains. They both have a Guardian in +place to protect their data vaults. + +Steps: +1. Alice: Create access contract: I `<Alice_account>` want to connect from my `<domain_id>` to a `<domain_id>` controlled by `<Bobs_account>` with my `<Alice_domain_id>` via the following channel: DNS/HTTPS via `alice_Guardian.domain.com`. +2. Alice: sign contract +3. Alice: SEND contract send the page via 'mail' / 'matrix' whatever to the remote PKC instance. +4. Bob: veries the contract contract and imports it +5. Bob: extend contract: I `<bobs_account>` connect my PKC `<bobs_domain_id>` to your PKC `<Alice_domain_id>` via my Guardian_endpoint `<bobs_guardian.domain2.com>`. +6. Bob: sign extended contract: Bob uses his wallet to sign his extended contract. +7. Bob: send extended contract TO Alice: Bob sends his Contract to his Guardian. +8. Bob's Guardian: Verifies and sends the contract to Alice Guardian. +9. Alice Guardian: + Guardian verifies all data + Sends OK back to Bob's Guardian + Sends Updates contract into Alice PKC + Waits for Bob's Guardian to request available pages +10. Bob's Guardian requests a list of pages: ' What pages do you share with me?' +11. Alice Guardian: Returns list of accessible resources for Bob + +## Example: Sharing a File + +Target: Sharing a file with another account. Using two Aqua data vaults +with their two Guardians to manage access to them. We assume the +Guardians already have executed a handshake to enter a trusted +relationship. We also assume, that the file should underlay access +basedon account restrictions and domain restrictions. + +**Example 1:** Sharing a file **without additional** constrains with +another account. + +Alice wants to share her page 'My secret research' with Bob. Their +Guardians have already formed a trusted connection. What Alice needs to +do now is to add a sub-page with an immutable link under the 'My secret +research' page and define access. To be able to define access Alice +needs to have a claim over the ownership over the domain she is sharing +from. + +Alice creates an Access Permission for the whole page or for a single +revision by creating a page with the following syntax: + +- `<genesis_hash>`:access_contract + - To give access to the whole page with all it's revisions. + +- `<revision_hash>`:access_contract + - To give access to a specific revision. + +---- + +**Content of the page:** + +I Alice `<alice-account>` give access to Bob `<bob-account>` + +- option 1: to the whole page including it's history `<genesis_hash>` +- option 2: to the following revision `<revision_hash>`'My secret + research' + +**Additional one-sided conditions:** + +- This access contract expires in 7 days + +This contract will come into place with my `<alice-account>` signature. + +The Guardian will react to a specific syntax of pages holding contracts, +agreements and access rights to adjust his network access rights +accordingly to it. Alice-Guardian will respond to the question what +resources are shared by Bobs-Guardian with the answer that there is a +new page available according to the access contract which now gives +Bobs-Guardian the ability to query the content of 'My secure research' +from Alice according to the contract. Depending on Bobs-Guardian +setting, the Guardian might automatically load the resource and forward +it into the post-box of Bobs Data Vault. + +**Example 2:** Sharing a file **with** constrains forming a **contract** +to do so. + +Same as 1 expect that for the contract to come into place, Bob needs to +sign the contract from Alice containing additional constrains. + +--- + +**Content of the page:** + +I Alice `<alice-account>` give access to Bob `<bob-account>` + +- option 1: to the whole page including it's history `<genesis_hash>` +- option 2: to the following revision `<revision_hash>`'My secret + research' + +**Under the following conditions:** + +- Do not share outside your domain `<Bobs-domain_id>` +- Do not share with any body else (Bobs domain can't have another + account registered to it, if there is an account registered the + Guardian of Bob will say that Bobs domain does not fulfill the + requirements to establish this contract. +- Do not modify it. +- Delete it after 7 days. + +For this contract to be valid, signatures of first Alice and then Bob +need to be present. This means, after Alice signed the access contract, +the contract is a new available resource to Bob to be loaded. Bob can +now sign the resource in his domain and return the contract. Leading to +the contract send back to Alice domain and being updated there. Bob now +gets access to 'My secret research' which has been updated as well, to +contain via an immutable link the access contract. + +Permission Templates, Complex Permissions (Groups and more) + +It is possible to apply complex permissions based on templates, or and +connecting multiple access contracts by using + +- instead of this syntax `<genesis_hash>`:permission_agreement +- the following the syntax `<genesis_hash>`:`<genesis_hash-2>` in + which the `<genesis_hash-2>` contains a list of sub-pages with access + contracts which can be used to apply access via permission-objects + which are represented by the `<genesis_hash-2>` page object. + +1. Alice wants to +2. If the user wants to propose changes to the page, he will send an + updated PAGE FILE to the OWNER of the PAGE. +3. The owner can decide to ACCEPT the changes. Or to include the + changes in the HISTORY File, but not COMMIT them. Or to NOT include + the update of the PAGE, and disregard it. + +--- + +### Specifications: + +The Guard Daemon checks if there is digital contract present in his +domain. Those contracts set permissions for allowing a counter party to +access a service or resource (like a file or a page, or a revision). +It's also defining the constrains under which permissions access is +given. In this case it requires the digital signature of the receiving +party for the agreement to come into place and be valid. + +Guardians have administrative access to the services they manage. +Therefore they can supervise the activities of services and use them as +triggers to e.g. provide access according to a set permission without +additional user action. + +# Guardian Components: + +APIs +- System-API to control a service via a service specific library. Each + services will have their own control-library and control API to + create an abstraction layer which allows for a unified control logic + in the Guardian. + - E.g. an account is allowed to access a service + - E.g. a resource is shared with an account + - E.g. a trust relationship between two services is established + (based on an agreement between two accounts) to exchange data + - **Implementation Specific PKC:** All interactions for system + interaction with MediaWiki / PKC + - Execute Actions: Move, Update, Edit, Delete Pages + - Request send to the Guardian: Verify a specific page or a + list of pages + +- **Data-API** to retrieve Aqua-Data between a service and the + Guardian, or between two Guardians. + - Send data to import API + - Read data via export API + - **Implementation Specific PKC:** Read special Pages used to + give access e.g. Data Usage Agreements, Permission + Agreements + +- **Aqua Verification Library** to be able to verify incoming and + outgoing data + - implementation of the 'external-verifier' in e.g. GO, Typescript + or Javascript (current) +- Account-Registry (Holding the list of trusted keys and the + relationship between them) + - This includes defined 'trusted accounts' +- Session-Handler/Registry (Acts like Stateful-Firewall on the + page-object level to mange imports / exports). The Guardian verifies + incoming and outgoing data and constructs sessions based on it. +- Guardian Policies: Are sets of rules followed and enforced by the + Guardian. This includes set of rules used to protect the domain from + unauthorized operations and access. Part of that are page access + permissions which are managed by the [Data Usage + Agreements](Data_Usage_Agreement "wikilink"). + - `<domain_id><account><genesis_hash><revision_hash>`:`<domain_id><account><genesis_hash><revision_hash>` +- Transport Layer API's / Sub-Modules for connectivity to distributed + services + - The Guardian-to-Guardian communication handler (via DNS/HTTPS + transport) + - Ethereum Integration, Ethereum Handler (As a witness Network) + - Matrix Integration, Matrix Handler (As a restrictive/ + permissioned transport layer) + - Schwarm Integration, Swarm Handler (As a publishing network) + +# Guardian-Integration-Services +The Guardian has a modular design to support integration with many services and +transport layers. + +## Web (HTTPS / DNS) Integration Goal: Have a +handler to connect web-facing Guardians with each other in a safe way. Be able +to run guardian procedures via two public Facing guardians which use a public +DNS name and HTTPS to interconnect with each other. Guardian procedures are: +Guardian handshakes to establish trust or remove trust Request or Send portable +Hash-Chains based on access rights between each other + +## Ethereum Node + +Integration Goal: Connect to a self-hosted or remote Ethereum Node. Option 1: +Configuration via Alchemy (Providing Keys) via Special:DataAccountingConfig +Option 2: Implementation of Ethereum Node via ./setup --ethereum-node (provide +container) Configuration of Connection to RPC Ethereum node via address (if in +same network) The Wallet can be directly be connected to a local Ethereum node +via RPC to avoid meta-data gathering of large providers, like INFURA which +could potential track which IP address has created which Ethereum Transaction +with which Metamask-Wallet, leading to a de-pseudonymousation of the user. ### +Ethereum Node Handler Goal: Accelerate lookups of the Guardian via caching +Every-time a witness contract is called, the Ethereum Node Handler will start +to cache the all Ethereum-Witness events of that Witness-Contract and Index +them in it's database. This will reduce access times to ms vs potential seconds +in lookup times, making the Guardian more performant and responsive. ## Matrix +Node Integration Goal: Connect to a self-hosted or remote synapse-server +(MATRIX) Node. Configure a remote matrix server or a local one via Guardian. +Implementation of Matrix-Node deployment via ./pkc setup --matrix-node (provide +container). + +### Matrix Node Handler + +Context: We use Ethereum Wallets as Identity-Anchors as they are globally +unique addresses (which are collision free) broadly adopted with supported +hardware ledgers as secure hardware elements with an existing fast moving +ecosystem for further development. They act as 'web-based' PGP-like utilities +which do not need any Blockchain-Interaction for Signing messages and can be +used as a valuable off-line capable identity anchor. With this step we separate +Identity and Service; even in case of compromising the computer of the user or +by having a breach of secrets in the Element-Client the Identity would be safe +(in case a hardware wallet would be used). This also drastically reduces attack +surface to phish a users credentials; as there is no Password-Login there is no +way to steal the password to impersonate the user. All security assumptions of +the User-Identity come back to the security of his private key. For the +Kolibri/PKC project this is the foundation for using wallet-addresses as +Identities to route traffic with matrix bots between PKC's. The following +actions are required to use the Ethereum Wallet as a strong Identity Anchor +within Matrix. + +This requires the following functionality: +* Register the user via an Ethereum wallet address (successfully piloted by inblockio) +* Detect that it is an Ethereum Wallet-Address; Verify integrity of address with the Ethereum Wallet-Address Checksum (TBD) +* Make username not changeable (Done via Matrix settings,successfully piloted by inblockio) +* Wallet login with Web-Wallet Metamask via OIDC (Open ID Connect) (successfully Piloted by inblockio) +* Verify Ownership of the Wallet by doing an Element-Client side Signature Challenge to the User. Challenge resolved by signing a message with sufficient entropy to not be ever the same (to protect against leakage) with the private key via the Ethereum +Metamask Webwallet (or a connected Hardware-Wallet) +* Implement a User-to-User request of proof of Identity Users / Server can challenge other users to proof that they hold the private Wallet-Key by triggering the Signature Challenge to the User; After the challenge is done, the requested party is provided with all information to do a manual verification of the signature (the Message which was +Signed, the Signature, the used method used for the signature) + +### Matrix-BOT + +Context: The Matrix-Network communicates with the PKC through the Guardian who +will manage all access to the MediaWiki service. The Guardian uses a Matrix-Bot (to +handle the communication) and a Matrix-Integration (to be flexible to use a +private synapse or a remote synapse server) to interact with the Matrix Network +as a permissioned transport layer. + +Referenz-Implementation: +Suitable options for a matrix-integration are 'go-lang' or 'rust'. Guardian +next generation Guardian will be written in Rust, so integration of security +relevant components would be preferably in Rust and Webassambly. A central +point to configure the guardian to connect to matrix and other services needs +to be provided. The matrix server is connected to the guardian with a service +bot which is able to open rooms to exchange revisions between PKC’s. + +Required Functionality of the Matrix-Bot: +* open new room for user (required) - to share resource invite / remove other +users to/ from room (required) - to set permissions who can read +* shared resource close room (required) - after resource share is revoked join a +room the user is invited too (by other matrix-bot) +*'accept invite' check for +challenge (provided via text from remote Guardian), leave room if challenge is +faulty and block user (required) delete? room / delete history? +Note: Use matrix only as channel not as storage (optional) preferably the +history of the channel is not kept +* post content of (mediawiki API query results from the Guardian) into a room +* (required) read content of room (send it to the Guardian for verification, + before it's send to the import API) (required) + diff --git a/previous_versions/version_1/idenity_protocol.mdx b/previous_versions/version_1/idenity_protocol.mdx new file mode 100644 index 00000000..799596ac --- /dev/null +++ b/previous_versions/version_1/idenity_protocol.mdx @@ -0,0 +1,443 @@ +--- +title: "Identity Protocol" +description: > + The following text has the goal to highlight the possibility to build identity protocol functionality on top of the core verifiction protocol. + This part of the project is in early stages and not mature. +--- + +The Aqua Identity Protocol (AIP) is an experimental application protocol +under development for Self Sovereign Identity's (SSIs) on top of the +Aqua Protocol. This is an active field of research which is related to +the work of the Decentralized-Identity-Foundation (DIF)[^1] and the +World-Wide-Web-Consortium[^2]. As this is under active development, +anything you see is experimental and subject to change. The goal is to +provide a Self-Sovereign-Digital Identity Protocol to protect individual +rights, freedom and the opportunity for the individual to participate in +the digital economy. + +We are building on the advancements and insights for rebooting the +web-of-trust initiative[^3] and the definition of a +Self-Sovereign-Identity provided by Christopher Allen in shortened form here.[^4] + +### Self-Sovereign-Identity-Principles + +1. **Existence:** users must have an independent existence. +2. **Control:** users must control their identities. +3. **Access:** users must have access to their own data. +4. **Transparency:** Systems and algorithms must be transparent. +5. **Persistence:** Identities must be long-lived. +6. **Portability:** Information and services about identity must be transportable. +7. **Interoperability:** Identities should be as widely usable as possible. +8. **Consent:** users must agree to the use of their identity. +9. **Minimization:** Disclosure of claims must be minimized. +10. **Protection:** The rights of users must be protected. + + +Those 10 stated principles are implemented within the Aqua Protocol and +it's existing reference implementation in various degrees. They are also +represented in the [Design Principles](design-principles.md). + + +# Architecture + +For the Aqua Identity Protocol to be implemented in accordance with the +above statements, SSI-Principles and critical component choices from +outside the protocol need to be made, and required tools need to be +provided. **Data Vault**'s will provide a space which is fully account +controlled. Other architectural decisions enabling SSI can be found in +the reference implementation PKC Architecture Documentation. + +### Usage of **Data Vaults** to protect identity claims + +Pages with the namespace `<Account>`: must be 'read and write able' by +`<Account>` only by default. This is to protect the personal-identifiable +data of the user. This data should be stored in a place where only the +account owner has access to. This can be achieved by having the data +stored locally on a machine the account owner has, or by using +cryptography which requires the account's owner explicit interaction to +decrypt it. The content should not be decrypted on the server, but +within the web-browser or client-application to ensure that a +potentially compromised service-provider can't leak the sensitive +information. + +- Identity claims are **encrypted by default** and can only be + decrypted by the account owner or other accounts explicitly given + permission to do so. +- Identity claims **must** be given access by the account owner to + e.g. let somebody else sign them. + +Note: There should be an extra effort by any **Data Vault** +implementation to protect identity claims. It is recommended to strongly +regulate and audit the emerging solutions to ensure a high level of +protection for citizens. + +### Self Issued Identity Claims + +These are used to make statements about an account to form an identity. Those +claims can be partially revealed on demand to other parties. Those +claims can also be protected by advancements in privacy technologies +like Zero-Knowledge-Proofs and ongoing advancements in key management. + +Identity claims are sets of [Verified +Data](https://pkc.inblock.io/index.php/Verified_Data) which follow a +structured data convention to claim or attest attributes to an account. +For example, an attribute could be the year of birth of an account +owner, or the legal name of an account owner. Claims should always be +atomic to allow the account owner to disclose them selectivity. +Different claims can be combined to represent a citizen ID or a +drivers-license. Other claims can be educational certificates, like +school certificates. + +Identity claims in the [Aqua Identity +Protocol](https://pkc.inblock.io/index.php/Aqua_Identity_Protocol) are +**always self issues**. This means that the first signature on the claim +needs to be from the private key which belongs to the account, i.e. the claim +is issued for. This proves account ownership. This means: + +- All claims can only be issued from the account which they make a + claim about. A claim belongs to it's origin account and can only be + managed from it's address. +- A claim can 'accumulate trust' by being signed by other accounts who + support this claim. +- Self-issuance protects accounts against spam, and the issuance of + fraudulent claims to an account without the knowledge of the account + owner. + +##### **Claim Attestation** + +Can be completed by a Trust Authority referring to the Identity Claim in +collaboration with the account owner, or a referencing statement. + +It is possible **to attest to a claim** by referencing the claim's +unique revision_verification hash within the attestation. This means you +can make statements about an account or about a claim without involving +the account owner in that process. An attestation contains a statement +about the referenced data set, and is expected to be signed by the +account who makes the attestation. This ensures there is clear account +attribution. Attestations without signature should be disregarded, as +they have no account attribution. + +--- + +## **Specification for the Aqua Identity Protocol** + +Policies for Self-Issued-Identity-Claims: + +- Syntax of Title: `<Account (e.g. Ethereum Wallet Address)>`:`<Attribute (English Descriptive Title)>` +- Example: + [0xa2026582b94feb9124231fbf7b052c39218954c2:Birthdate](https://pkc.inblock.io/index.php/0xa2026582b94feb9124231fbf7b052c39218954c2:Birthdate) + +The title is not protected against changes, but the content of the page +is protected.**IMPORTANT:** Therefore, we **must** compare the page +stored **`<Account>`,`<attribute>`**. Then reassemble the title to check if +they are consistent before proceeding with further validation of the +identity claim. + +Content of the page + +- **Account:** `<Account>` + - Is repeated to reassemble the title to check it. +- **Attribute:** `<attribute_name>` + - Is repeated to reassemble the title to check it. +- **Value:** Is the value of the claim. E.g. '1889' for a year of + birth. + - The first revision **must** be signed by the account owner to + create a self-issued identity claim + - Values **must** not change within a hash-chain. If a value + changes, the claim will be marked as invalid with the revision + of the change. If a new attribute value needs to be defined for + an account, this is done through a new claim. + +----- + +**Claim issuance Process** + +1. Claim is created (based on template) +2. Claim is signed by issuer (first revision) +3. Claim is registered by issuer (optional, done via Claim Registry) +4. Claim is verified by authority to accumulate trust (this might + include the requirement to hold a revocation authority on a claim + registered via a Claim Registry) + +Trust-Chains with Identity Claims + +Will build a web of trust, which can be applicable not only for public +institutions, but also for commercial organizations and private +entities. + +### A trust chain of identity claims for educational certificates (example) + +1. The certificate is issued as integrity verified data via the Aqua + Protocol. +2. The recipient of the certificate registers the certificate as an + identity claim +3. The certificate is signed after it was issued as an identity claim + by a Trust Authority (e.g. the university professor) and the + university director's office (director) +4. The university professor holds trust claims from the university + director +5. The university director holds trust claims by the ministry of + education +6. The educational ministry of education holds trust claims by the + minister-president +7. The minister-president holds trust claims of a verified election + +The chain of trust is supplied by the party signing the statement. + +*IMPORTANT: **The authority who is given authority needs to prove +where their authority originated** **when they act in the function of +that authority.*** + +1. E.g. the professor needs to supply the claim of the university + entitling him +2. E.g. the university director needs to supply the claim of the + educational ministry +3. E.g. the educational ministry needs to supply the claim of the + minister-president. +4. ... and so on. + +# Verification Process + +1. Claim is presented +2. Claim integrity is validated + 1. How can you trust the content of a claim: Claim content needs to + be static. E.g. a given-name claim 'Jarred Maxim' cannot change, + even if there are many revisions to the page. If the static + content HAS changed, the claim is INVALID or at least only valid + until the point where it changed. In the case of such an + information change, a new claim needs to be issued. +3. Claim registry is validated (root trust) +4. Claim signatures are validated + 1. Comparison between signature time and validity of the signing + authority. Is the account authority still valid? + 2. lookup of authority claims from expected root trust? + +### Trust in Signatures + +If somebody signs an identity claim, we believe they do that to + +1. Vouch with their account for the integrity of the presented data. + This can be supported via an Authoritative Claim and a comment which + gets attached to the claim itself or is issued via an Attestation. +2. To verify the signature, we use an automated verification process. + This is done through implementations of an Aqua-Verifier like + [https://github.com/inblockio/aqua-verifier-js](https://github.com/inblockio/aqua-verifier-js) or + [https://github.com/inblockio/aqua-VerifyPage-chrome-extension](https://github.com/inblockio/aqua-verifypage-chrome-extension) + which also checks against the restrictions given by the Aqua + Identity Protocol or/and additional defined policies. +3. Add access rights to a claim by adding a Data Usage Agreement which + is enforced by the Guardian. Access rights can be restricted: + 1. to specific accounts + 2. to specific domain id's representing an instance of a Data Vault +4. Verification: The verification process considers which account it + signed, and what was stated with the signature, or with the + additional data added to the claim. To consider a claim valid, the + relationship between the verifying party and the Trust Authority who + signed it, is essential. Can the party be trusted? Why do I trust + this party? + 1. Claims can be either chained (cascaded into each other) and + offline verified, and/or online verified against an existing + Claim-Registry. In both cases a known trusted party account + reference point is required for the verifying party to trust. + +#### **Trust Authorities** + +are accounts which have an elevated trusted position. They issue +[Authoritative Trust +Claims](https://pkc.inblock.io/index.php/Authoritative_Claim) to give +legitimacy to a self-issued identity claim. + +Why do you trust a professor to issue an [Educational +Certificate](https://pkc.inblock.io/index.php/Educational_Certificate)? + +Because the professor is able to provide a trust chain, represented by a +chained [Authoritative Trust +Claim](https://pkc.inblock.io/index.php/Authoritative_Claim), proving +that he has authority to attest an [Educational +Certificate](https://pkc.inblock.io/index.php/Educational_Certificate) +with his signature. With his signature, he is increasing the trust of +the self-issued [Identity +Claim](https://pkc.inblock.io/index.php/Identity_Claim) to allow it to +have practical utility. + +### **Claim Registries** + +A claim registry in the context of the Aqua Identity Protocol is a +global registry to allow for real-time global claim revocation and +re-instantiation of Identity Claim's. This solves the problems related +and known to certificate revocation. The Claim Registry acts like a +global Claim Revocation List (CRL)[^5]. + +E.g. a driver's license can be revoked by a Trust Authority and later be +re-instantiated after the 'Punishment for driving too fast' is over. +Identity claims are either valid or invalid. The Claim Registry is +managing who can revoke / re-instantiate a registered claim. + +There is ongoing research and optimizations on privacy concerns to +reduce costs for on-chain Identity Claim. + +Implementation in Ethereum with Smart-Contracts (Solidity). All claims +are account bound. + +**Claim Registration Specification - Smart Contract Structure** + +- **`<revision_verification_hash>`** as root trust of the self-issued + identity claim. A claim has to be a verified page, which is signed + and timestamped. If all are present, the next page-verification hash + entangles all of those properties and becomes the 'address' of the + claim. In the receipt of the publish process for the claim, there is + an attached receipt, and by writing the receipt into the claim, + there is also a new revision generated. This creates the second + revision of the claim, which entangles the signature and the witness + event with the hash-chain to make them immutable. +- **`<status>`** \[type:boolean\] of claim + - 0 - valid + - 1 - revoked + + + +- **`<valid until>`** \[type: date DDMMYYYY\]: if current date past + expiration date, the claim is considered expired and is not accepted + anymore +- **`<owner == sender address>`** \[type:address\] an account which + updates the status of the claim, e.g. revocation or suspension of an + account +- **`<additional revocation authority>`** \[type:address\] list of + accounts which are authorized to update status of the claim other + than the owner. The owner has a special right to update the list of + revocation authorities to hold new addresses. +--- + + EXAMPLE: Claim Registration Data \[Receipt\] + +The presence of Claim Registration Data \[Receipt\] means that the claim +address (verification hash) has been written to a Claim Registry on a +Witness Network. + +Protocol: Aqua Identity Protocol Version 1.0 + +Registration Event: 1 + +- Domain ID: e9ece84189 +- Claim address (verification hash of self-signed claim): + 1db331add502cf1b1712468d1c3e5d66a0016a6f04885c5533619ffbb43fffb6dfa452e119d4bee7628e9792af69089d38d860a5f8d0708184bbb74b8cabdaf7 +- `<if bulk registration>` + - Merkle Root: + 7e9782fb8a6e749ef2ba48f8cd410b05335ba48b20ba42508efeb76add38b0f39e717e91381c8de34641af4c477c39fc169eaa0908dba25e0a54e8de615fcd00 + - Claim Snapshot Verification Hash: + 278f930a35d06d7b9d28aab37d402c147d1beffdbe53d212481c17ec686698e9469f9cf7d7d53b9a4435c4b99ca2e578b5dc5fec6c63cb802b540493fe927575 +- Witness Network: goerli +- Claim Registry Smart Contract Address: + 0x45f59310ADD88E6d23ca58A0Fa7A55BEE6d2a611 +- Transaction Hash: + 0xa572e8d6ef8d4a1bb3b5087680817e70bb79a0376c3a9be9e2c6b4d92df228a1 + Sender Account Address: 0xa2026582b94feb9124231fbf7b052c39218954c2 + ___ + +#### **Claim Revocation** + +**Traditional** **revocation:** + +- Traditional strategies for certificate revocation can be + applied.[^6] +- Most effective are short expiration dates where possible, due to the + lack of effective revocation processes for certificates without + global registries. + +**Using Distributed Ledgers** + +- Done via [Claim + Registry](https://pkc.inblock.io/index.php/Claim_Registry) + (indicates the global status of an identity claim to be either valid + or invalid) + +**Process:** + +- Locally completed (within the Self-Issued Identity Claim) by + changing the status to 'revoked' and signing by the issuer. This + adds a receipt to the identity claim, which is displayed when + verifying the claim. This includes the revocation transaction for + the revocation on the + [Identity-Registry](https://pkc.inblock.io/index.php/Identity-Registry) +- If there is a new claim which is succeeding the previous identity + claim[Claim + Registry](https://pkc.inblock.io/index.php/Claim_Registry), then + this is also noticed within the revocation receipt under + 'Successor-Claim: `<hash>`. + +<b>Bulk Claim Registration (Should be part of Claim Registry)</b> + +- To reduce costs during registration of the identity claims via a + [Claim Registry](https://pkc.inblock.io/index.php/Claim_Registry) + they can be clustered and registered together +- We use the + [SmartContract:Identity-Registry](https://pkc.inblock.io/index.php/SmartContract:Identity-Registry) + for this. To scale our efforts we utilize a variant of the + 'Domain-Manifest-Generator / Publisher' which is very similar. The + differences are in the selection of what can be published, and the + data structure which is published to the Claim Registry instead of + the witness smart contract. +- The Claim Snapshot Generator can only include ID claims of your own + `<Account>` namespace. +- The Claim Snapshot Publisher is registering all selected claims + (select them by page name (filter required) and will populate the + target + [SmartContract:Identity-Registry](https://pkc.inblock.io/index.php/SmartContract:Identity-Registry). + Every claim will hold the relative merkle-proof to show the path for + it's registration. + +Examples for **Identity Claims with Aqua:** + +- [Example Identity Documents with PKC and Data + Accounting](https://pkc.inblock.io/index.php/User:0xa2026582b94feb9124231fbf7b052c39218954c2) +- Reference:Example Identity Documents (Research) + +# FAQ + +1. How to find [Claim + Registry](https://pkc.inblock.io/index.php/Claim_Registry)'s? By + following the chain of trust of authoritative claims and validating + them one by one. +2. How to check if authority is still valid and how to find an + authority registry? As before, by reading the chain of trust and + looking up the status of the related identity claims. +3. How to visually check authority dependencies? It is possible to + visualize the links of links of links to represent the chain of + trust. + +Important References: + +- [Basic intro into + DID](https://www.youtube.com/watch?v=gWfAIYXcyH4&ab_channel=Okta) +- [Basic intro into + DIDComm](https://www.youtube.com/watch?v=8c7yRTENqSc&ab_channel=DecentralizedIdentityFoundation) +- [W3C Verified Data + Model](https://www.w3.org/TR/vc-data-model/#claims) +- [Revocation List 2020](https://w3c-ccg.github.io/vc-status-rl-2020/) + A privacy-preserving mechanism for revoking Verifiable Credentials +- [DIDCOMM implementations and + use-cases](https://github.com/decentralized-identity/didcomm-messaging) +- [DIDkit](https://github.com/spruceid/didkit) + +Thought leader Christopher Allen: + +- [Self-Sovereign-Identity-Principles](https://github.com/WebOfTrustInfo/self-sovereign-identity/blob/master/self-sovereign-identity-principles.md) +- [A bitcoin based SSI infrastructure + prototype](https://github.com/BlockchainCommons/Gordian) + +### References + +See Implementation Specific Aqua Identity Protocol Implementation in MWe + +1. [Identity Foundation](https://identity.foundation/) + +2. [W3C (World Wide Web Consortium)](https://www.w3.org/) + +3. [Web of Trust](https://www.weboftrust.info/) + +4. [Self-Sovereign Identity Principles - GitHub](https://github.com/WebOfTrustInfo/self-sovereign-identity/blob/master/self-sovereign-identity-principles.md) + +5. [Certificate Revocation (CRL) Explained - SecureW2](https://www.securew2.com/blog/certificate-revocation-crl-explained) + +6. [PKI Certificate Revocation Process Explained - TechNet](https://social.technet.microsoft.com/wiki/contents/articles/34071.pki-certificate-revocation-process-explained.aspx) + diff --git a/previous_versions/version_1/immutable_hyperlinks.mdx b/previous_versions/version_1/immutable_hyperlinks.mdx new file mode 100644 index 00000000..e0b68f9f --- /dev/null +++ b/previous_versions/version_1/immutable_hyperlinks.mdx @@ -0,0 +1,86 @@ +--- +title: "Immutable Hyperlinks" +linkTitle: "Immutable Hyperlinks" +weight: 10 +sidebar_position: 10 +description: > + Shows how the Aqua URI's can be used as immutable links. +--- + +Traditional hyperlinks are usually +[URL's](https://en.wikipedia.org/wiki/URL) based on the +[DNS](https://en.wikipedia.org/wiki/Domain_Name_System) structure. + +This allows the resource to be routed via DNS and specified via the URL +on the remote server. + +The limitations of URL's is that they are not expressing a specific +state of the resource they represent. There is no way to verify if the content +of the page is consistent with the content of the page who send a URL. +For news pages this means that the content of the page could have changed. E.g. +two visitors of the same news page could see two different pages. + +We need a better way to hyperlink so it's sure, that what is linked +is consistent across domains and users. Therefore we introduce Aqua URI's which are +used to enable the receive to verify the state of the resource. + +Goal +---- + +Use Immutable Hyperlinks as Unique Resource Identifiers (URI's) to allow +a consistent referenciation of resources with the ability to verify them with the AQP. + +Success Criteria +---------------- + +A Immutable Hyperlink schema which links to a specific state of a +resource. Instead of a stateless hyperlink we use verification_hash as a +URI which acts as the checksum to verify the retrieved revision. + +Input +----- + +- file upload wizard is executed with file-data and description as + input +- file is stored with in the service triggering a hook leading to the + calculation of +- verification_hash (calculated with the file as input for + content_hash) which is stored in the revision_object (file or + database) + +Output +###### + +When linking the file it's displayed in the following format: \[SHA3-512 +Hash\|Descriptor Text\] + +Boundary conditions +------------------- + +- File is too big to be hashed. We support currently up to 50 MB. +- File can't be hashed for some reason (error during the process to + due an unexpected code execution) +- File is empty (has no content) + +Implementation +-------------- + +We create Immutable Hyperlinks by moving from URL's to sha3-512 hashes as +URI's. These URI's are globally unique and therefore collision resistant +as the namespace is sufficiently large. By using the hashes as links we +also refer to the state of the resource. As the hash is the +verification_hash of the resource it allows us to verify the integrity +of the resource with it. + +We are referring to files with their SHA3-512 hash in this format +\[SHA3-512\|human_readable_filename\]. Displayed is the human readable +filename white it's stored with the full SHA3-512 hash which allows us +to be used as Immutable Hyperlinks. + +To allow routing between resources we can add the `<domain_id>` as a +prefix to the `<verification_hash>` resulting in the following syntax: + +`example: aqua://<domain_id>/<page_verification_hash>` + +Note: Implementatstion specific to aqua-PKC: +- The verification_hash is stored in the content-slot 'transclusion hashes' with the internal links which referne the resource. diff --git a/previous_versions/version_1/introduction.mdx b/previous_versions/version_1/introduction.mdx new file mode 100644 index 00000000..4901c435 --- /dev/null +++ b/previous_versions/version_1/introduction.mdx @@ -0,0 +1,40 @@ +--- +title: 'Aqua Protocol Version 1' +description: 'An overview of verision 1 of the Aqua protocol' +--- + + + + +We develop the AQUA-Protocol to increase trust and digital sovereignty for individuals and organizations. + +We believe that this is an effective way to redefine collaboration and strengthen democracy to be more inclusive and participatory by providing accountability for data. We do this in a context where it is critical to address challenges and threats which come with the advancement of technologies (e.g. deep fake, manipulation of data, digital surveillance, monopolization). + +With the powerful tools we provide, we can showcase how trusted data and digital sovereignty are key enablers to support the emancipation and integration of individuals and small to medium businesses into a digital economy, which is currently dominated by large players. We are showing how this is a feasible approach to empower more inclusive and democratic participation. + +# What are exemplary applications that are meeting current organizational demands? + +Aside from the core features of the AQUA-Protocol and its reference implementation (to provide data integrity verification, proof of existence, and a strong identity by using public-private key infrastructure), there is an amazing potential that comes as an emergent property of the interaction of individuals using sovereign instances of Personal-Knowledge-Containers. + +This potential lies in the ability to collaborate by exchanging verified data between independent parties to form a network of relationships as a web of trust. This allows for peer-to-peer institutions and organizations to be built fully software-defined, in traditional or network structures. + +It is possible to model existing institutions on top of this infrastructure today. It is a free and open-source tool to provide a process to issue and verify digital certificates for various use cases. Including examples, showcased for the educational sector (school and university degrees) but the use cases go beyond this: + +* Provide an infrastructure to curate knowledge and enable peer-to-peer wiki's in which a contribution itself is attested. This has potentially huge implications, as a successfully merged contribution to a leading scientific endeavor could one could imagine this succeeding the reputational value of a university degree. +* Fighting fake news by providing an audible trail for the information source to the consumer and which steps have been taken, by which account, to reach its current state. E.g. an intelligence report about an ongoing conflict or crisis. +* Providing credible credentials to fight deep fake and impersonation. In one shocking case, this shows the danger for our political landscape. In this example the mayor of Berlin was tricked, when she had a zoom call with a fake Vladimir Klitschko (in the role of the Mayor of Kyiv, using deep fake for the video and audio to impersonate him) who tried to get money from her. [Source](https://www.theguardian.com/world/2022/jun/25/european-leaders-deepfake-video-calls-mayor-of-kyiv-vitali-klitschko) +* Providing a trust infrastructure for invoice validation: Large companies are challenged by the increasing number of fraud and fishing emails to trick companies to send money to criminals. We can use the SSI-Approach of aqua to verify invoices and do automated tests towards the trustworthiness of the sender, by checking the sender's account and the trust relationship cryptographically. Allowing for automated verification of the invoices instead of lengthy manual testing procedures or complicated processes requiring a CRM-System with an intense KYC (Know You Customer) approach. +* Proving where the information has originated. This can be used to protect intellectual property (IP) or to prove where data originated. This is highly relevant in various contexts, be it for the credibility of evidence in court or for whistle-blowers or investigative journalists to give their claims more credibility. + +# The socio-technological impact on society +We provide a prototype implementation of the aqua protocol with a Personal-Knowledge-Container(PKC). An approach towards digital sovereignty without compromises. It enables data accounting and with it an effective way to enable peer-to-peer trusted data generation and exchange. We showcase that it is possible to have full control over your data, you can share and govern it independently of third parties. This is essential to democratize access to the digital economy, so individuals can utilize the value of their data and do trusted interactions with each other. + +This technology enables various applications by offering a peer-to-peer-publishing platform technology, this includes but is not limited to: +* Self-Sovereign Identity (SSI) +* crowdsourced knowledge management, a distributed Wikipedia +* crowdsourced news +* crowdsourced petition systems (crowdsourcing problems, solutions, decisions). + +This Protocol and prototype allow for the practical exploration this how this can redefine our collective sense-making by providing a rational process for forming a truth by consensus between trusted peers. This allows for the practical exploration of digital, participatory collaboration at scale, as the AQUA-Protocol can account for contributions that are currently not measurable in monetary value while those contributions provide value to society and/or nature. It seems possible to envision a different economy where data becomes a multi-dimensional currency that allows us to make better-informed decisions. It can inform us to have a greater choice in how we participate economically as service providers and/or consumers. + +* **What is it *not yet* good for?**: This is an experimental protocol with a pilot implementation, which is meant for the exploration of new design principles to improve digital sovereignty and trust. This prototype is not production-grade software and should not be used outside of experimental applications. The prototype does currently (Dec'22) not include a transport layer. diff --git a/previous_versions/version_1/name_resolution.mdx b/previous_versions/version_1/name_resolution.mdx new file mode 100644 index 00000000..bc65da84 --- /dev/null +++ b/previous_versions/version_1/name_resolution.mdx @@ -0,0 +1,13 @@ +--- +title: "Aqua Name Resolution (ANS)" +description: ANS is used to hashes of various types to human readable names +--- + +ANS is used to resolve hashes of various types to human readable names. + +The following hashes are resolved by the ANS: +* wallet-addresses to names, organisations an aliases. +* genesis_hashes to titles. +* domain_ids to registered endpoints of that domain. + +See the [reference implementation](https://github.com/inblockio/aqua-verifier-webextension/blob/main/src/name_resolver.ts). diff --git a/previous_versions/version_1/whitepaper.mdx b/previous_versions/version_1/whitepaper.mdx new file mode 100644 index 00000000..4189150a --- /dev/null +++ b/previous_versions/version_1/whitepaper.mdx @@ -0,0 +1,783 @@ +--- +title: Whitepaper +linkTitle: "Whitepaper" +description: High level outline of Aqua Protocol (AQP) specification +--- + + +| | | +|------------------|--------------------------------------------| +| Current version: | Aqua Protocol v1.1 Specification | +| Author: | Tim Bansemer, Publius Dirac | +| Date: | 30.12.2021 | +| Status: | DRAFT / Experimental | +| Implementation: | [https://github.com/inblockio/micro-pkc](https://github.com/inblockio/micro-pkc) | + +## Introduction + +The Aqua Protocol (AQP) is a data accountability and exchange protocol between +hosts in peer-to-peer environments. The AQP is used to realize the goal of +[accounting for data origin and history](data-accounting.md). The description +for the proof-of-concept implementation of the AQP can be found in [this +page](../implementations/reference-architecture.md). + +## Motivation + +In today's world, there are no widely adopted trustless processes of checking if +data have been manipulated or corrupted, are attributed to the wrong author, or +are attributed to the wrong time. Today's processes are dependent on centralized +trusted services which retain all power over governing the data. + +There is a lack of transparency or ability to check if data have been altered +by an unauthorized party. Additionally, consumers of data are incapable of +verifying if centralized services have altered the data. This leads to a world +of untrustworthy information in which we don't know how to conclude what is +true. + +In a world where every piece of information is a grain in a sandstorm, it has +become impossible to navigate reality. In contrast, in a world where every +piece of information is a fixed star in the sky for a lifetime, we are able to +relate and make sense of the information given. The Aqua Protocol (AQP) turns +grains of information into fixed stars of information. + +The AQP adds a peer-to-peer layer of accountability, making it impossible to +change data unnoticed. AQP adds an essential line of defense against attacks on +data integrity, plagiarism, or misattribution. AQP is used to govern trusted +data, which can be quickly verified. This includes the verification of its +integrity and history, the verification of its account (the entity who creates +or manipulates the data), and the verification of its existence and timestamp. + + The Aqua Protocol provides trustworthiness to data by + securing data ✅ integrity, 🔏 account and ⌚ time. + +In order to account data, it is necessary to track and verify its history. The +AQP provides a globally unique resource identification (URI) for each revision +of the verified data. This identifier is collision-free, and is referred the +same way across multiple interacting hosts. + +## Terminology + +## Wallet +A wallet is a software for protecting and managing private cryptographic keys +(of private-public key pairs) which are used to govern digital assets. This is +done by authorization of transactions via digital signatures or by initiating +decryption processes to access data. + +See [Separation of Concerns](design-principles.md#separation-of-account-and-service). + +### Account + +We are following Ethereum's account definition: +> In general, there are two types of accounts. Externally owned accounts, +> controlled by private keys. And contract accounts, controlled by their +> contract code +-- [Ethereum Whitepaper](https://ethereum.org/en/whitepaper/#ethereum-accounts) + +In general, we can't prove if an account owner is a person or a machine. With +advancements in AI, it will become increasingly difficult to prove that a human +is a human. [Attempts are being made](https://www.proofofhumanity.id/) to +increase trustworthiness of accounts which fall short in questions of privacy +and security as they make public claims. Traditional know your customer (KYC) +combined with the AQP and Aqua Identity Protocol (AIP) identification processes +can provide similar "proof of being human" which can be attested to an account. +This allows us to outsource the problem of identification, where we only focus +on unique accounts which are sufficient for data accounting independent of +humans or machines. Identity claims issued via the AIP will help to provide the +context required to meaningfully interact between accounts. + +For more on this topic, please read the [Aqua Identity +Protocol](aqua-identity-protocol.md). + +### Domain +A domain is a unique namespace attributed to an account. It allows us to manage +services and files within that namespace creating a domain of data governance +After granted permissions, additional accounts can be added to share control +over a domain or singular assets. To enforce boundaries of a domain, additional +software like the [Guardian](guardian.md) is required. + +E.g. by setting up the a data vault with your account it becomes your +domain of data governance. + +### Revision + +A revision is the smallest portable entity within the AQP. Multiple revisions +form a single portable hash chain which is serialized in JSON format. +They have existed before in unsecured systems where multiple revisions form a +file which can be displayed as a page. The AQP adds the cryptographic harness +to secure it. With presenting a portable hash chain, it is possible to track +all incremental changes stored in each revision to understand the history of a +page and how it came to be. This allows us to have version control on digital +assets being able to restore earlier states and to relate to them. This allows +us to have historical evidence of digital assets. + +### Page + +A page is a visible representation of a file containing multiple or a single +revision attributed to a shared origin. A page view could also be used to +create a new revision by a used service which interfaces with the file for +manipulation. In AQP all revisions share a global URI hash to +attribute them together called a genesis hash. + +### Transaction Security + +Transaction security is an economic measure of the level of integrity assurance +for a transaction. It is defined as the cost required to forge a transaction. +The transaction security can be increased by cryptographic security and by strong +replication of transactions. Public distributed ledger systems are highly suitable +for providing very high level of transaction security at the cost of privacy +and immutability (data can't be changed or deleted). Today, public distributed +ledgers such as Bitcoin and Ethereum provide the highest level of transaction +security. + +### Data Asset + +Data turns into a valuable asset if it is accounted for. In an accounted form +it can be easily priced, exchanged or traded. + +### Data Vault + +Software used to store and manage data with an account. The software must apply +a secure architecture and measures for keeping data assets safe. This is +achieved through encryption, strong authentication and restrictive access to +keep data private by default. + +See [Design Principles / Separation of Account and +Service](design-principles.md#separation-of-account-and-service) + + +### Witness + +We define witnessing as the process of observing an event. A witness is judged +by their capability to recollect and share an observed event. In other words, +witnessing is the process of storing input data for later playback to provide +data symmetry around an event. + +### Witness Network + +The digital service in a distributed ledger or similar infrastructure which +provides transaction security and data symmetry for shared data within the +network. An example of a witness network would be Ethereum. + +E.g. Ethereum can be used to store a digital fingerprint of a domain snapshot +of a data vault. A domain snapshot is the Merklized state of all witnessed hash +chains being present in the data vault. It is required to pay the witness +network for its service. In the case of Ethereum, this is done using 'Ether'. +This in return allows the account owner to create an 'undeniable' proof that a +specific revision and the previous revisions within a hash chain has existed. + +### Portable Hash Chain + +A hash chain is a linked list where each node contains the cryptographic hash +of the previous node content. A portable hash chain is a hash chain that can be +moved from one host to another. + +### Immutable Hyperlinks / Transclusions +See [Immutable Hyperlinks](immutable-hyperlinks.md). + +## Specification + +To identify a revision with a unique fingerprint, we hash its content using +the SHA3-512 hashing function which always has a 128 characters long +output. This value can be used as a checksum to verify data integrity. +The checksum can then be entangled in a hash-chain to create an +immutable track record. We then calculate multiple properties associated +with the revision, in addition to its content checksum. In the next section, +we differentiate between REQUIRED and OPTIONAL properties for each +revision. + +All hashes are based on +[SHA3-512](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf). +This encryption standard is used to construct [portable hash +chains](#portable-hash-chain), which are serializing of data and its history in +a form that can be verified, and independent of location. The portable hash +chain can be fully or partially exchanged between hosts depending on the +application of the data. From here on, we refer the term "portable hash chain" +as "hash chain." + +In order to implement the AQP, we need to utilize a software that is capable of +generating portable hash chains and facilitating actions described in the +AQP. We call those nodes which facilitate the Aqua Protocol 'Aqua Data +Vaults' which given their role should be implemented as a software with secure +architecture and measures for keeping data assets safe. This is achieved +through encryption, authentication and restrictive access to keep data private +by default. + +# Revision Verification Structure + +A revision is RECOMMENDED to be limited to 50 Megabytes to ensure that the verification can take +place on all imaginable clients which might have slow network connectivity, low +memory, low cpu performance. Once a revision is verified, the next one can be +verified. Clients with more performance will be able to parallelize the +verification. Larger files can be chunked to be placed in multiple revisions. + +A verified data structure is identified by its URI `verification_hash` +and grouped by its `genesis_hash`. The first revision created will +create a `verification_hash` which has a special meaning and is +referred to as the `genesis_hash`. All future revisions building upon +that first revision will be attributed to the `genesis_hash` as a unique +URI for grouping the revisions. This allows us to understand if two +revisions are related without needing to verify the whole history of the +hash chain. + +## Verification Hash +`revision_verification_hash` is the hash sum over the string formed by the +following operation + +``` +revision_verification_hash = calculate_hash_sum( + content_hash + metadata_hash + + signature_hash + witness_hash +) +``` +The content_hash and metadata_hash are REQUIRED. +The signature_hash and witness_hash are OPTIONAL. + +## Content + +A content hash is the check sum for all content data fields which simplifies +hash construction and the ability to identify data corruption in this part of +the verification structure. +`content_hash` is the hash sum over the string formed by following operation: + +``` +contentObj = { + "main": content, + "extension_key_1": content_extension_1, + "extension_key_2": content_extension_2, + ..., + "extension_key_n": content_extension_n, +} +sortedContenObj = sort_by_keys(contentObj) +content_hash = calculate_hash_sum( + sortedContenObjValue_1, + sortedContenObjValue_2, + ..., + sortedContenObjValue_n, +) +``` +Description: +- content: The string input of the visible page using UTF-8 encoding schema. + REQUIRED. +- content extensions: more data MAY be encapsulated in addition to the main + content. These could be a file, a stateful link, or a signature. The content + extensions are sorted alphabetically by their key names. OPTIONAL. +- The `sort_by_keys` function sorts the content object elements by their keys + alphabetically. The JSON input MAY be a canonical JSON, in which the keys + order is already alphabetical, but we sort it always to ensure the order is + correct. + +To see an example of `contentObj` of a revision, see the [example](#Example) +section, + +## Metadata + +``` +metadata_hash = calculate_hash_sum( + domain_id + time_stamp + previous_verification_hash +) +``` + +Description: +- metadata_hash: The check sum for all metadata data fields. It simplifies the + hash construction and the ability to identify data corrupton in this part of + the verification structure. +- domain_id: 10 digits hexadecimal randomly generated to identify the host + system that runs the AQP service. +- time_stamp: time-stamp of the current revision (decimal numbers + YYYYMMDDHHMMSS e.g. 20211128092608). +- previous_verification_hash: previous_revision_verification_hash if present + +## Signature + +A signature in AQP is a cryptographic signature generated by public-private key +pair. The protocol should be abstract, where it will support 'Method' in later +iterations. This will allow us to use different types of implementations such +as: PGP signatures, Ethereum, or Bitcoin +[wallet](https://en.wikipedia.org/wiki/Cryptocurrency_wallet)'s signatures. + +In this specification, we use the AQP reference implementation's signing +method, which is via an Ethereum wallet. + +``` +signature_hash = calculate_hash_sum( + signature + public_key +) +``` + +The signature is generated by a wallet signing the following message: + +``` +I sign the following page verification_hash:" +[0x<revision_verification_hash>] +``` + +The `revision_verification_hash` MUST NOT be signed twice by the same key, to +avoid information leakage of the private key. + +For example, a wallet with an address of +`0xa2026582b94feb9124231fbf7b052c39218954c2` and a public key of +`0x041518581af65749b3ddc69889df3e5d229bc8ad79279a07ddeb368ade5e1592368c5ff3b69143d7a1e7cf64f7d0774a6724e6eaf138d318d07ddc30f6081ca89a` +signs the following message: +``` +I sign the following page verification_hash:" +[0x9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57] +``` +which results in the following signature: +``` +0x19b5697c4541509c1add3db9fc2f678b7b80325ebffd4d945ca00db5f8b3f98a142edbf9a7faa0a0c7ec4f10ae1b64cf2ea62ce3ee73ed2e37ce916d6bd016601c +``` + +## Witness + +Witnessing allows one to undeniably prove the existence of a dataset +(represented as a portable hash chain). To complete the witnessing process, a +Domain Snapshot is created. This is a collection of all revision hashes within +one domain. A Merkle tree is used to unify all hashes of the latest revisions +of all portable hash chains within a domain into a single hash value. + +The `witness_event_verification_hash` is written to the [Witness +Network](#witness-network). The +`witness_event_verification_hash` is then generated by using the +`domain_snapshot_genesis_hash` and the `merkle_root` hash together. This +allows the page snapshot itself to also be witnessed. + +A single revision which has been witnessed, will not store the whole Merkle +tree, but only its relevant path to the Merkle root. Performing a Merkle proof +means that its revision is included in the Merkle tree. + +``` +witness_hash = calculate_hash_sum( + domain_snapshot_genesis_hash + merkle_root + + witness_network + witness_event_transaction_hash +) +``` + +Description: +- `witness_hash`: the checksum for all signature data fields. It simplifies hash + construction and identifies data corruption in this part of the verification + structure. +- `domain_snapshot_genesis_hash`: Refers to the URI of the page which stores the + whole Merkle tree of the witness event. +- `merkle_root`: the root hash of the Merkle tree. The presence of the + Merkle tree allows for lazy verification to reduce required computational + steps for verification by skipping the Merkle proof as both datasets can be + entangled in the chain by a newer revision and therefore be immutable. +- `witness_network`: specifies which witness network was used to store the + `witness_event`. The following structure shows an AQP hash chain with 3 + revisions which wrote the `witness_event_verification_hash` into the + witness network. + +Additional context: +- relative-merkle-tree-proof: This provide the relative path with all required + hashes to verify the Merkle tree root from the first node which the + `verification_hash` of the revision as a starting point. +- `witness_event_verification_hash`: It is calculated by taking the sha3-512 + checksum of the `domain_snapshot_genesis_hash` and the `merkle_root` hash. + This ensures that the`domain_snapshot` itself will be witnessed. + + +## Example +The following structure shows an AQP hash chain with 3 revisions: + +### 1st Revision +This revision features all REQUIRED (content, metadata) and all OPTIONAL +(signature, witness) AQP data fields. +```json +{ + "verification_context": { + "has_previous_signature": false, + "has_previous_witness": false + }, + "content": { + "rev_id": 358, + "content": { + "main": "First revision text", + "transclusion-hashes": "" + }, + "content_hash": "ae188be061822074716b43925b3ffa90a03c530342be73c3440d8f022765ffebbb56c16552f13cd1ea61f876d2d892e0a73dcba5173fc47d371b4251d6c094da" + }, + "metadata": { + "domain_id": "acfa9f682e", + "time_stamp": "20220116090401", + "previous_verification_hash": "", + "metadata_hash": "d1025fd8866d9367735d2f6617b3aa87401e08d726f311cdf834ea9540955bfc59b428676bce5d47d5fed381394ab2ed838c5eecfc9cb37313705374752c247d", + "verification_hash": "9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57" + }, + "signature": { + "signature": "0x19b5697c4541509c1add3db9fc2f678b7b80325ebffd4d945ca00db5f8b3f98a142edbf9a7faa0a0c7ec4f10ae1b64cf2ea62ce3ee73ed2e37ce916d6bd016601c", + "public_key": "0x041518581af65749b3ddc69889df3e5d229bc8ad79279a07ddeb368ade5e1592368c5ff3b69143d7a1e7cf64f7d0774a6724e6eaf138d318d07ddc30f6081ca89a", + "wallet_address": "0xa2026582b94feb9124231fbf7b052c39218954c2", + "signature_hash": "cc42f40c4452a25f9ea48a97b6dfba6f69dec347db5c1adf25475b0b4a5da36af3fe48bf9f7ea0dda6bbed9367dc9c82834dbf8cc7f6220fd190cdb729d3f4ec" + }, + "witness": { + "witness_event_id": "2", + "domain_id": "acfa9f682e", + "domain_snapshot_title": "Data Accounting:DomainSnapshot:b33afaf53ed3d245f0319d4997db2032de9d77791ae11f5125189815eef44f2fba9633bebe2e57bc5ea4b0424872ed02fa6aa9ad909f467726b536933bf715bf", + "witness_hash": "9707780cebcf6ed02b40bd7e6956b35ffe142a2b5f8cee15c703a652fa389eb118ef101e2f463e95663aa4013a42d9f1ce4a83eed3528b02bf98626e7599bbd8", + "domain_snapshot_genesis_hash": "b33afaf53ed3d245f0319d4997db2032de9d77791ae11f5125189815eef44f2fba9633bebe2e57bc5ea4b0424872ed02fa6aa9ad909f467726b536933bf715bf", + "merkle_root": "14f26d7dc0be77afff9131c03cab39a2fa9e1270c6face3fdc35b9b4b4ac4550d048c356a4713568c42411c3e7fe3553ec7b993c9bd7da97cb976e843d7e4d29", + "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", + "witness_network": "goerli", + "smart_contract_address": "0x45f59310ADD88E6d23ca58A0Fa7A55BEE6d2a611", + "witness_event_transaction_hash": "0x5900103adc09a789fd3bd7c23dfeff1ffce41dfba0a52b525ecc032e9279eb1f", + "sender_account_address": "0xa2026582b94feb9124231fbf7b052c39218954c2", + "source": "default", + "structured_merkle_proof": [ + { + "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", + "depth": "4", + "left_leaf": "2554fb53531f4de26ff3ad1fb8c61feea6ea47c3f13c4abda385c46ef8541361f7eee42433050281714a3900115f04fe52b5a8d781a71c4c439c5de6b91cbe3c", + "right_leaf": "9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57", + "successor": "789e508ccb23fe053b628cebc19a2d32f34e6aa21e878e8611f7c14d891625c7b2e243b3c3105b98295333b9183e5ea272a055a84ab65ad927f7fd9c27aae48e" + }, + { + "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", + "depth": "3", + "left_leaf": "789e508ccb23fe053b628cebc19a2d32f34e6aa21e878e8611f7c14d891625c7b2e243b3c3105b98295333b9183e5ea272a055a84ab65ad927f7fd9c27aae48e", + "right_leaf": "c16a966333cd22ff3497875a62202874221c1dae2e74b4351d058910f8d37160be480fce9aab4ec5e725beb695509f0fd65ae581568c6f1ae25eb4f1440b287f", + "successor": "80d7549af24e9a6bdfc32cefe0536d6528d665cc8e65859ef4cff87270f3db8d9b95aaecc167e10c9b5be9ce3ab36d8d880c3a518e1c5eb899ca9d95af24e9db" + }, + { + "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", + "depth": "2", + "left_leaf": "80d7549af24e9a6bdfc32cefe0536d6528d665cc8e65859ef4cff87270f3db8d9b95aaecc167e10c9b5be9ce3ab36d8d880c3a518e1c5eb899ca9d95af24e9db", + "right_leaf": "f4e189a08b486253ea0a5cc7bf7150055e738898115c4caf00e45634d6925539d51852409d1fe9108469e9b15668b940f3369300bb27cc292d1fabc0c07cd593", + "successor": "e227dd97e5166364483b41f058f0d176e3a50a7510299038b09ae3aef2cbafb26c787afad82563a945b433fa2d1279af3535755235ab69d6e5ab089179177c14" + }, + { + "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", + "depth": "1", + "left_leaf": "e227dd97e5166364483b41f058f0d176e3a50a7510299038b09ae3aef2cbafb26c787afad82563a945b433fa2d1279af3535755235ab69d6e5ab089179177c14", + "right_leaf": "780f3eb08f24022be4463be141bcda6a33a157cd0fd44cf209312b8427ac4036637a63d239526555128a4e7f4bb588ebfdbd8a8cc7d797038e29b852a4fae26c", + "successor": "f3bd4e82b1e3d304005a7ddf4ab940f3e4e1cf099ca1c058454c431ed3feb0674c044e53150eb5691073ba58a3491565f72f6a6c2a24562ea080b569b4496c9f" + }, + { + "witness_event_verification_hash": "67e187411f1e514f232ae2858168da29b15ddfd07523e7a7618bfbf91c583f54fe8e850146120539a92a63ce6138f96599fb8a46ed492e428fe6fde9b9ea82ae", + "depth": "0", + "left_leaf": "f3bd4e82b1e3d304005a7ddf4ab940f3e4e1cf099ca1c058454c431ed3feb0674c044e53150eb5691073ba58a3491565f72f6a6c2a24562ea080b569b4496c9f", + "right_leaf": "4a0c120fbdd6219b774eb2cb2076f4050d606b621e384c3ec645be0e5dbcdac3132f1f2acb531fa5ff62429907b77cf8d29a760be3765eb4decd83949a2925f8", + "successor": "14f26d7dc0be77afff9131c03cab39a2fa9e1270c6face3fdc35b9b4b4ac4550d048c356a4713568c42411c3e7fe3553ec7b993c9bd7da97cb976e843d7e4d29" + } + ] + } +} +``` + +### 2nd Revision +This revision entangles all data fields of the previous revision. As the +calculation of the revision_verification hash depends on the revision of the +previous revision, it is shown in verification_context. + +```json +{ + "verification_context": { + "has_previous_signature": true, + "has_previous_witness": true + }, + "content": { + "rev_id": 362, + "content": { + "main": "First revision text", + "signature-slot": "[\n {\n \"user\": \"0xa2026582b94feb9124231fbf7b052c39218954c2\",\n \"timestamp\": \"20220116090439\"\n }\n]", + "transclusion-hashes": "" + }, + "content_hash": "9732084a45fd344d63687ccf9b5cd942f99ffe1debd11622b05d0cd24a2de3e5608d5f5121bdd7559c0a2d39067f9258c4f9612e44728df2e8d9026a88ed650c" + }, + "metadata": { + "domain_id": "acfa9f682e", + "time_stamp": "20220116090439", + "previous_verification_hash": "9dab72c7635043452958c4cc2902f48ef7c4ae437058280197c6a2736ab9635f799cbf190d9d07dd76589055a8ad64e61c6bebd1487994207d4cb7918b471f57", + "metadata_hash": "8df483539e2f81e64c9b9df0c7e13ae7778947b5defef860fbaed1260eade794999839bb254ea5006a5d4b6a89a37980ab576dc546d6336518d65b80bf2a5cb5", + "verification_hash": "296347471b33f3d3c69cc6e0699d80b4cb68ffc79c3ecce96beb659fa324fab1de7a888932fbfb7c60bb8cc83c9445ce15532987a7b59440cada649681618293" + }, + "signature": { + "signature": "", + "public_key": "", + "wallet_address": "", + "signature_hash": "" + }, + "witness": null +} +``` + +### 3rd Revision +This revision features a transclusion-hash for an immutable link to another +revision. + +```json +{ + "verification_context": { + "has_previous_signature": false, + "has_previous_witness": false + }, + "content": { + "rev_id": 363, + "content": { + "main": "First revision text\n\n[[File:Logo_inblockio.png]]", + "signature-slot": "[\n {\n \"user\": \"0xa2026582b94feb9124231fbf7b052c39218954c2\",\n \"timestamp\": \"20220116090439\"\n }\n]", + "transclusion-hashes": "[{\"dbkey\":\"Logo_inblockio.png\",\"ns\":6,\"verification_hash\":\"9b2b3cafb90a07433a2b61885a9e64641a99b1e9024cf53b640501d3706b142fed7bc372300973137ef9d92584fac70976c3889d5610abcfe1f187c248263a56\"}]" + }, + "content_hash": "14b8256ccd5fa1d883983317f92f428eadb52f699f476b9be69f14c6892b41979ff7b5b7a7a978177985d6aaa0bcfd9857a2646aedc4cbb3299373daa647814b" + }, + "metadata": { + "domain_id": "acfa9f682e", + "time_stamp": "20220116090556", + "previous_verification_hash": "296347471b33f3d3c69cc6e0699d80b4cb68ffc79c3ecce96beb659fa324fab1de7a888932fbfb7c60bb8cc83c9445ce15532987a7b59440cada649681618293", + "metadata_hash": "09688c05a83bb74bb255fb0c571cb6314b65f5b7f00750547a2c43f4959d4702ae2aec019c6fb4b0e5d23adea87fd456b0eaffc6ae271163a1fa45b4bae54230", + "verification_hash": "b35894d74dfcf8b41ff95eed97705e1acf9081021e0d478d8645cb04b8a0b4a013ee8f7fb6e140d149f2c92f20bba984fad5535938a5e36ae6a799a18343b806" + }, + "signature": { + "signature": "", + "public_key": "", + "wallet_address": "", + "signature_hash": "" + }, + "witness": null +} +``` + +# API Endpoints + +The AQP provides 3 API endpoints which return data from a host that runs the +AQP: + +## Get Hash Chain +`/get_hash_chain_info/{identifier}?identifier=<title or genesis hash>` +Input: +- `identifier_type`: the value must either be "title" or "genesis_hash" +- `identifier`: the title or genesis_hash string, e.g. "Main Page" or "02c3c2...215d8d" +Returns: all context for the requested hash_chain. + +Example: + +API Request: +`/get_hash_chain_info/genesis_hash?identifier=dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26` + +API Response: +```json +{ + "genesis_hash": "dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26", + "domain_id": "acfa9f682e", + "latest_verification_hash": "2554fb53531f4de26ff3ad1fb8c61feea6ea47c3f13c4abda385c46ef8541361f7eee42433050281714a3900115f04fe52b5a8d781a71c4c439c5de6b91cbe3c", + "site_info": { + "sitename": "Personal Knowledge Container", + "dbname": "my_wiki", + "base": "http://localhost:9352/index.php/Aqua", + "generator": "MediaWiki 1.37.1", + "case": "first-letter", + "namespaces": { + "0": { + "case": true, + "title": "" + }, + "6942": { + "case": true, + "title": "Data Accounting" + } + }, + "version": "0.3.0" + }, + "title": "Aqua", + "namespace": 0, + "chain_height": 3 +} +``` + +## Get Revision Hashes +`/get_revision_hashes/{verification_hash}` +Input: +- `verification_hash` +Returns: the revision requested if it exists and/or a list of any newer +revision than the one requested. + +Example: + +API Request: +`/get_revision_hashes/dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26` + +API Response: +```json +[ + "dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26", + "f483d7746f67e7099099bcfa8ea5a93148251c598857e8fad21ce842da62794467067802ef9e818d240cd3312a3346a769f363145a87bfc1eeae19fe8d21b328", + "2554fb53531f4de26ff3ad1fb8c61feea6ea47c3f13c4abda385c46ef8541361f7eee42433050281714a3900115f04fe52b5a8d781a71c4c439c5de6b91cbe3c" +] +``` + +## Get Revision +`/get_revision/{verification_hash}` +Input: +- `verification_hash` +Returns: the revision content together with its verification data + +Example: See example above. + +API Request: `/get_revision/dffd37be12adc9e774b51aa712f7c5bfc09f48b083540d8ca55f91f317e8685bf09daf004f7c841e53732b8c7992de3f3b9b79350d13570c3b46803ba5119c26` + +# Verification Process + +The verification process is a redo of the verification data generation +process, and additionally a comparison of their results. + +**Verification of Content** + +All hashes are recalculated in a separate client implementation, and +compared with the ones sent via the API. If the data was not altered or +corrupted; nor was there a difference in the process to calculate the +hash, they will match. This will create a high level of assurance that +the integrity and history of the portable hash chain in question has not been +altered. + +**Verification of Account** + +We cryptographically verify that the revision signature is indeed generated by the account specified in the verification data. + +**Verification of Time** + +To verify that the witness event included in a revision is correct, a +lookup and comparison of the `witness_event_verification_hash` on-chain is +performed and compared with the recalculated event. + +**Reference Implementation** + +| | | +|------------------------------------|--------------------------------------------------------------------| +| Command-Line-Verification-Tool | [https://github.com/inblockio/aqua-verifier-js](https://github.com/inblockio/aqua-verifier-js) | +| Chrome Extension Verification Tool | [https://github.com/inblockio/aqua-verifier-webextension](https://github.com/inblockio/aqua-verifier-webextension) | + + + + +# Appendix + +The following content is informational and not part of the +specification. It should help to better understand utility, context and +services which can be built on top of AQP. + +## Aqua Protocol v1.1 Changes + +Moving over to revision based verification. This allows: + +- Bulk / in parallel verification; ensuring logarithmic verification + times, not linear increasing verification times with longer history. + In short: Much faster and scalable. +- Single revision and range verification (you want to verify a + specific part of the content-chain) + - This is useful for verification of identity claims, where + trusted parties have signed the claim and for the validator it's + sufficient to see that signature. +- This allows direct verification after every edit via the Guardian. + This is the preparation in the interaction to provide services + through the [Guardian](guardian.md). +- Changing the design to include transclusions e.g. this allows the + verification of subpages via their stateful links / + revision_verification_hashes + - This also allows the inclusion of media files in the + verification process + - You can upload pictures, PDF's, Word-Documents and have them + automatically included in the aqua protocol and therefore in the + verified data-structure +- Introduction of verification_context which indicates if the previous + revision has signature or witness data, or if the current revision + has transcluded resources. This will build the correct verification + structure before verification. + +Change in the data-structure: + +- when requesting a revision this is done via the + GetRevisionHandler.php +- the previous verification hash is always served as well +- if signature or witness data is present in the previous revision, + there is a flag (1/0) that this revision depends on the previous + revision +- transcluded resources will be added to the content hash for + verification + +## Data Accounting Protocol v1.2 \[TBD\] + +- Generalization of the Signature-Metadata to inform which signature + method was used. + - GPG Signatures + - BTC Wallet Signatures + - Ethereum Wallet Signatures + - Done by: Displaying method used for signing, displaying + underlying architecture. +- Including Account as part of the verified data structure +- Defining maximum payload size per revision + +## Services on AQP (Not yet implemented, exploration) + +- AQP-DACS: [Domain](#domain) Access Control System + - See: [Guardian](guardian.md) (Acting similar to a WebApplication-Firewall) + +- ANS: Name-System and Name-Registry. + - See [Aqua Name Resolution](aqua-name-resolution.md) + +- AQP-SSI: Self-Sovereign-Identity Protocol for [Identity + Claim](aqua-identity-protocol.md#self-issued-identity-claims) management + - See [Aqua Identity Protocol](aqua-identity-protocol.md) + +- AQP Delegated Witnessing + - See [Delegated Witnessing](delegated-witnessing.md) + +## Similar Projects + +None of the listed projects apply the concepts of versioning to their documents, +the concept of portable hash chains, the concept of personal data vaults for data +management in comparison with the AQP reference implementation. + +This following list is not exhaustive: +- [Surety](http://surety.com/) + The oldest blockchain-like timestamping service which has been publishing + to the New York Times since 1995. +- [OpenTimestamp](https://opentimestamps.org/) + A free and open-source service provided by Peter Todd using the Bitcoin + network as a distributed cryptographic clock. The AQP MAY use OpenTimestamp + as a witness network. +- [OriginStamp](https://originstamp.com/) + A company providing paid timestamping services for their customers. + It looks very similar to OpenTimestamps with open-source client libraries. +- [Factom Protocol](https://www.factomprotocol.org/) + A service which creates an architecture with an extra layer of blockchain, + to provide an extra layer of trusted parties while providing their own + token. In our opinion, it introduces unnecessary complexity and + intermediaries as dependencies compared to the AQP. +- [OpenAttestation](https://www.openattestation.com/) + An implementation of a timestamping service for document certification. One + application of it is for secure digital vaccination certificates by the + Singaporean government. They use the MetaMask Ethereum wallet for signing + documents making it the most similar project to AQP to our knowledge. + +## Blockchain Context + +DISCLAIMER: AQP is not a permissionless distributed ledger. In order for the +AQP to be valuable and working, a single node implementation and single node +deployments are sufficient, and do not require the witnessing part. The AQP MAY +benefit from being published to a distributed ledger technology (DLT)) to +achieve a witness event with high transaction security. AQP does not have a +token nor is it distributing data by default. + +As some concepts are very similar as those used in DLT's, please refer to the +following: + +A portable hash chain and its revisions are similar to a blockchain structure +and its blocks, which has its own root hash and a set of transactions which +are included inside. + +| **Blockchain Term** | **AQP Term** | **Explanation** | +|----------------------|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Transaction** | **Input Data** | In a blockchain, it's a signed transaction. In AQP, it's all the input data provided to calculate the respective content slot hashes. | +| **Block** | **Revision** | A block contains the Merklized list of transactions. A revision contains various hashed data inputs such as: | +| | | - Content slots | +| | | - Metadata data | +| | | - Signature data | +| | | - Witness data | +| **Genesis Block** | **Genesis Revision** | The first object in the hash chain/blockchain. | +| **Blockchain** | **Hash Chain** | The hash chain is not distributed but resides by default only in the local PKC. It is not a distributed ledger and lacks a consensus algorithm to create a shared truth between nodes. | + + +### A side note + +It has not escaped our notice that the provided AQP improves the existing +process of double-entry bookkeeping and provides a foundation for a new data +economy. This also allows to create unforgeable invoices which can be clearly +attributed to its sender, avoiding fraud. This is one of many other use cases, +e.g. providing trusted news via revision-controlled journalism. diff --git a/previous_versions/version_2/concepts.mdx b/previous_versions/version_2/concepts.mdx new file mode 100644 index 00000000..234265bf --- /dev/null +++ b/previous_versions/version_2/concepts.mdx @@ -0,0 +1,252 @@ +--- +title: "Concepts" +description: 'An of the terms used in version 2 of the protocol' +--- + + + +## Data Structure: +This are the basics to get you started but for a thorough understanding one done with the sections below have a look at references section to get a thorough understanding for example what is a witness, wtness network and how are witness hash created. + +The aqua chain structure can be broken into a the following components : + + +### Revision + +A revision is the smallest portable entity within the AQP. Multiple revisions +form a single portable hash chain which is serialized in JSON format. +They have existed before in unsecured systems where multiple revisions form a +file which can be displayed as a page. The AQP adds the cryptographic harness +to secure it. With presenting a portable hash chain, it is possible to track +all incremental changes stored in each revision to understand the history of a +page and how it came to be. This allows us to have version control on digital +assets being able to restore earlier states and to relate to them. This allows +us to have historical evidence of digital assets. +<br/> + +Every revision is represented by a merkle-root hash representing a list of alphabetically ordered key-value pairs which are hashed (implementation example SHA3-512). This allows us to dynamically change the data structure without the need to introduce breaking protocol changes. + + * The input data MUST NOT have dublicated keys as this would lead to non-deterministic ordering. + +Aqua-Chain: Is a portable hash-chain. This provides immutability for the history of the file, once signed and/or witnessed with the respective security guarantees. +Aqua-revisions form a portable Aqua-Chain. + +There are 4 Types of Revisions: + * Content Revision: Contains the data object(the data/file encoded to base 64).This is used to secure the data integrity and reference the data object for provenance purposes. + * Signature Revision: Is used to cryptographically sign, we are currently supporting Ethereum signatures. + * Witness Revision: Used to witness the Hash to prove its existence. We are supporting Ethereum by default. + * Metadata Revision: used to ensure content revision is valid. + + + +### Page + +A page is a visible representation of a file containing multiple or a single +revision attributed to a shared origin. A page view could also be used to +create a new revision by a used service which interfaces with the file for +manipulation. In AQP all revisions share a global URI hash to +attribute them together called a genesis hash. + + + +### Witness + +We define witnessing as the process of observing an event. A witness is judged +by their capability to recollect and share an observed event. In other words, +witnessing is the process of storing input data for later playback to provide +data symmetry around an event. + +### Witness Network + +The digital service in a distributed ledger or similar infrastructure which +provides transaction security and data symmetry for shared data within the +network. An example of a witness network would be Ethereum. + +E.g. Ethereum can be used to store a digital fingerprint of a domain snapshot +of a data vault. A domain snapshot is the Merklized state of all witnessed hash +chains being present in the data vault. It is required to pay the witness +network for its service. In the case of Ethereum, this is done using 'Ether'. +This in return allows the account owner to create an 'undeniable' proof that a +specific revision and the previous revisions within a hash chain has existed. + + +### Signature + +A signature in AQP is a cryptographic signature generated by public-private key pair. The protocol should be abstract, where it will support ‘Method’ in later iterations. This will allow us to use different types of implementations such as: `PGP signatures`, `Ethereum`, or `Bitcoin wallet ’s` signatures. + +In this specification, we use the AQP reference implementation’s signing method, which is via an Ethereum wallet. + +```js +signature_hash = calculate_hash_sum( + signature + public_key +) +``` + +The signature is generated by a wallet signing the following message: + +``` +I sign the following page verification_hash:" +[0x0x9dab72<revision_verification_hash>] +``` + + +### Wallet +A wallet is a software for protecting and managing private cryptographic keys +(of private-public key pairs) which are used to govern digital assets. This is +done by authorization of transactions via digital signatures or by initiating +decryption processes to access data. + +See [Separation of Concerns](design-principles.md#separation-of-account-and-service). + +### Account + +We are following Ethereum's account definition: +> In general, there are two types of accounts. Externally owned accounts, +> controlled by private keys. And contract accounts, controlled by their +> contract code +-- [Ethereum Whitepaper](https://ethereum.org/en/whitepaper/#ethereum-accounts) + +In general, we can't prove if an account owner is a person or a machine. With +advancements in AI, it will become increasingly difficult to prove that a human +is a human. [Attempts are being made](https://www.proofofhumanity.id/) to +increase trustworthiness of accounts which fall short in questions of privacy +and security as they make public claims. Traditional know your customer (KYC) +combined with the AQP and Aqua Identity Protocol (AIP) identification processes +can provide similar "proof of being human" which can be attested to an account. +This allows us to outsource the problem of identification, where we only focus +on unique accounts which are sufficient for data accounting independent of +humans or machines. Identity claims issued via the AIP will help to provide the +context required to meaningfully interact between accounts. + +For more on this topic, please read the [Aqua Identity +Protocol](aqua-identity-protocol.md). + +### Domain +A domain is a unique namespace attributed to an account. It allows us to manage +services and files within that namespace creating a domain of data governance +After granted permissions, additional accounts can be added to share control +over a domain or singular assets. To enforce boundaries of a domain, additional +software like the [Guardian](guardian.md) is required. + +E.g. by setting up the a data vault with your account it becomes your +domain of data governance. + + + +### Transaction Security + +Transaction security is an economic measure of the level of integrity assurance +for a transaction. It is defined as the cost required to forge a transaction. +The transaction security can be increased by cryptographic security and by strong +replication of transactions. Public distributed ledger systems are highly suitable +for providing very high level of transaction security at the cost of privacy +and immutability (data can't be changed or deleted). Today, public distributed +ledgers such as Bitcoin and Ethereum provide the highest level of transaction +security. + +### Data Asset + +Data turns into a valuable asset if it is accounted for. In an accounted form +it can be easily priced, exchanged or traded. + +### Data Vault + +Software used to store and manage data with an account. The software must apply +a secure architecture and measures for keeping data assets safe. This is +achieved through encryption, strong authentication and restrictive access to +keep data private by default. + +See [Design Principles / Separation of Account and +Service](design-principles.md#separation-of-account-and-service) + + + +### Metadata + +``` +metadata_hash = calculate_hash_sum( + domain_id + time_stamp + previous_verification_hash +) +``` + +Description: +- metadata_hash: The check sum for all metadata data fields. It simplifies the + hash construction and the ability to identify data corrupton in this part of + the verification structure. +- domain_id: 10 digits hexadecimal randomly generated to identify the host + system that runs the AQP service. +- time_stamp: time-stamp of the current revision (decimal numbers + YYYYMMDDHHMMSS e.g. 20211128092608). +- previous_verification_hash: previous_revision_verification_hash if present + + + +### Witness + +Witnessing allows one to undeniably prove the existence of a dataset +(represented as a portable hash chain). To complete the witnessing process, a +Domain Snapshot is created. This is a collection of all revision hashes within +one domain. A Merkle tree is used to unify all hashes of the latest revisions +of all portable hash chains within a domain into a single hash value. + +The `witness_event_verification_hash` is written to the [Witness +Network](#witness-network). The +`witness_event_verification_hash` is then generated by using the +`domain_snapshot_genesis_hash` and the `merkle_root` hash together. This +allows the page snapshot itself to also be witnessed. + +A single revision which has been witnessed, will not store the whole Merkle +tree, but only its relevant path to the Merkle root. Performing a Merkle proof +means that its revision is included in the Merkle tree. + +``` +witness_hash = calculate_hash_sum( + domain_snapshot_genesis_hash + merkle_root + + witness_network + witness_event_transaction_hash +) +``` + + +### Witness network +We are using the Ethereum Network as an optional Witness Network for +cryptographic time-stamping. + +### Encryption +according to wikipedia +``` +In cryptography, encryption (more specifically, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Despite its goal, encryption does not itself prevent interference but denies the intelligible content to a would-be interceptor. + +``` + +### Hash +according to investopedia + +``` +A hash is a mathematical function that converts an input of arbitrary length into an encrypted output of a fixed length. Thus, regardless of the original amount of data or file size involved, its unique hash will always be the same size. Moreover, secure hashes cannot be "reverse-engineered" to get the input from the hashed output, at least with current technology. + +If you use a specific function on the same data, its hash will be identical, so you can validate that the data is the same (i.e., unaltered) if you already know its hash. A different function would deliver a different hash. + +``` + +### Verification Process + +The verification process is a redo of the verification data generation +process, and additionally a comparison of their results. + +**Verification of Content** + +All hashes are recalculated in a separate client implementation, and +compared with the ones sent via the API. If the data was not altered or +corrupted; nor was there a difference in the process to calculate the +hash, they will match. This will create a high level of assurance that +the integrity and history of the portable hash chain in question has not been +altered. + +**Verification of Account** + +We cryptographically verify that the revision signature is indeed generated by the account specified in the verification data. + +**Verification of Time** + +To verify that the witness event included in a revision is correct, a +lookup and comparison of the `witness_event_verification_hash` on-chain is +performed and compared with the recalculated event. diff --git a/previous_versions/version_2/introduction.mdx b/previous_versions/version_2/introduction.mdx new file mode 100644 index 00000000..661345dc --- /dev/null +++ b/previous_versions/version_2/introduction.mdx @@ -0,0 +1,44 @@ +--- +title: "Prologue" +linkTitle: "prologue" +sidebar_position: 1 +weight: 10 +menu: + main: + weight: 10 +--- + + +## Introduction + +The Aqua Protocol (AQP) is a data accountability and exchange protocol between hosts in peer-to-peer environments. The AQP is used to realize the goal of accounting for data origin and history (data provenance). Short: A verifiable linkable data structure to attest and certify data. + +Issues for improving the protocol are tracked here: https://github.com/inblockio/aqua-improvement-proposal + + +## Motivation + +In today's world, there are no widely adopted trustless processes of checking if +data have been manipulated or corrupted, are attributed to the wrong author, or +are attributed to the wrong time. Today's processes are dependent on centralized +trusted services which retain all power over governing the data. + +There is a lack of transparency or ability to check if data have been altered +by an unauthorized party. Additionally, consumers of data are incapable of +verifying if centralized services have altered the data. This leads to a world +of untrustworthy information in which we don't know how to conclude what is +true. + +In a world where every piece of information is a grain in a sandstorm, it has +become impossible to navigate reality. In contrast, in a world where every +piece of information is a fixed star in the sky for a lifetime, we are able to +relate and make sense of the information given. The Aqua Protocol (AQP) turns +grains of information into fixed stars of information. + +The AQP adds a peer-to-peer layer of accountability, making it impossible to +change data unnoticed. AQP adds an essential line of defense against attacks on +data integrity, plagiarism, or misattribution. AQP is used to govern trusted +data, which can be quickly verified. This includes the verification of its +integrity and history, the verification of its account (the entity who creates +or manipulates the data), and the verification of its existence and timestamp. + diff --git a/previous_versions/version_2/tooling.mdx b/previous_versions/version_2/tooling.mdx new file mode 100644 index 00000000..8df0c0ef --- /dev/null +++ b/previous_versions/version_2/tooling.mdx @@ -0,0 +1,167 @@ +--- +title: "Aqua Protocol Tooling & Components" +description: "Overview of Aqua Protocol v1.2 tools and components" +--- + +# Aqua Protocol Tooling & Components + +This document provides a comprehensive overview of all the tools and components available in the Aqua Protocol ecosystem version 1.2. + +## Aqua CLI + +Aqua CLI is a command line utility that enables you to create, verify, witness, and sign aqua chains. There are two implementations available: + +### Rust Implementation (Recommended) + +The Rust CLI is the stable implementation and the recommended choice for getting started with the Aqua protocol. + +**Installation:** +- Via cargo: `cargo install aqua-cli` +- Building from source: + ```bash + git clone git@github.com:inblockio/aqua-cli-rs.git + cargo build --release + cd target/release/ && cp aqua-cli /usr/bin + ``` + +**Repository:** https://github.com/inblockio/aqua-cli-rs + +**Key Features:** +- Verify aqua chain JSON files +- Generate aqua chains +- Generate validation reports +- Sign and witness aqua chains + +**Available Commands:** +- `-a` or `--authenticate`: Verify an aqua JSON file +- `-s` or `--sign`: Sign an aqua JSON file +- `-w` or `--witness`: Witness an aqua JSON file +- `-f` or `--file`: Generate an aqua JSON file +- `-v` or `--verbose`: Provide logs about the process +- `-o` or `--output`: Save output to file (JSON, HTML, or PDF) +- `-l` or `--level`: Define validation strictness (1 or 2) +- `-d` or `--delete`: Remove revision from an aqua JSON file +- `-c` or `--count`: Specify number of revisions to remove + +**Environment Variables:** +- `aqua_domain`: Random alphanumeric value +- `aqua_network`: "sepolia", "holesky", or "mainnet" +- `verification_platform`: "alchemy", "infura", or "none" (default: "none") +- `aqua_alchemy_look_up`: true or false + +**Example Usage:** +```bash +aqua-cli -a chain.json +aqua-cli -s chain.json --output report.json +aqua-cli -w chain.json --output report.json +aqua-cli -f document.pdf +aqua-cli --file image.png --verbose +``` + +### JavaScript Implementation + +The JavaScript implementation is used to quickly prototype ideas. + +**Repository:** https://github.com/inblockio/aqua-verifier-js + +:::warning +If you are just getting started, use the Rust CLI. The JS version is primarily used to prototype ideas. +::: + +**Environment Setup:** +1. Install Node.js (latest version) +2. Ensure you have Yarn or npm installed + +**Installation:** +```bash +git clone git@github.com:inblockio/aqua-cli-js.git +cd aqua-cli-js && npm i && npm build +``` + +**Configuration:** +Create a `credentials.json` file with the following structure: +```json +{ + "mnemonic": "sample sample sample sample sample sample sample sample sample sample sample author matter", + "nostr_sk": "xxxxxxxxxxxxxxxx", + "did:key": "xxxxxxxxxxxxxx" +} +``` + +**Usage Commands:** + +**Notarize:** +```bash +./notarize.js [OPTIONS] <filename> +``` +Options: +- `--sign [cli|metamask|did]`: Sign with Ethereum seed phrase, MetaMask, or DID key +- `--witness-eth`: Witness to Ethereum on-chain with MetaMask +- `--witness-nostr`: Witness to Nostr network +- `--witness-tsa`: Witness to TSA DigiCert +- `--link <filename.aqua.json>`: Add a link to an AQUA chain as a dependency + +**Verify:** +```bash +./verify.js [OPTIONS] <page title> +# or +./verify.js [OPTIONS] --file <offline file.json or file.xml> +``` +Options: +- `-v`: Verbose +- `--server`: The URL of the server (e.g., https://pkc.inblock.io) +- `--ignore-merkle-proof`: Ignore verifying the witness merkle proof +- `--file`: The file to read from for the data + +## Aqua Container (Aquafier) + +Aqua Container is a Rust web application with a React frontend that implements the Aqua protocol. It enables data to be signed, witnessed, and verified through a web browser interface. + +**Try it online:** https://aquafire.aqua-protocol.org/ + +**Technical Details:** +- Backend: Axum web server in Rust +- Frontend: React (TypeScript) +- Database: SQLite with Diesel ORM +- Communication: HTTP protocol +- File size limit: 20 MB maximum +- Docker container available for quick deployment + +**Repository:** https://github.com/inblockio/aqua-verifier-rs + +The container is built using the same libraries as the CLI, providing all CLI capabilities with a graphical interface. + +## Aqua Verifier (Chrome Extension) + +The Aqua Verifier is a Chrome extension that can be used to verify aqua chains directly in your browser. This is the easiest and fastest way to get started with the Aqua protocol. + +**Installation:** Available on the [Chrome Web Store](https://chromewebstore.google.com/detail/verifypage/gadnjidhhadchnegnpadkibmjlgihiaj) + +## Personal Knowledge Container (PKC) + +The Personal Knowledge Container was a prototype implementation of Aqua protocol v1.1. + +:::note +For information about PKC, please refer to version 1.1 documentation. +::: + +## Aqua Guardian + +Aqua Guardian is a security gateway designed to exchange Aqua-Chains and enforce policies of Aqua-Contracts. It provides secure connectivity between Guardians and verifies the integrity of Aqua storage containers. + +:::warning +The Aqua Guardian still uses Aqua protocol version 1.1, making it incompatible with protocol 1.2 and all tools that use protocol 1.2 (such as Aqua Container and Aqua CLI). +::: + +## Why Two CLI Implementations? + +The JavaScript implementation enables rapid prototyping of new ideas, while the Rust implementation provides stability and production-ready features. This dual approach allows the team to experiment quickly while maintaining a reliable tool for end users. + +## Getting Started + +For most users, we recommend starting with either: +1. **Aqua Verifier Chrome Extension** - For the quickest and easiest start +2. **Aqua CLI (Rust)** - For command-line users who want full control +3. **Aqua Container Sandbox** - For a web-based graphical interface + +All tools support the core Aqua protocol operations: creating, signing, witnessing, and verifying aqua chains to ensure data integrity. diff --git a/previous_versions/version_3/concepts.mdx b/previous_versions/version_3/concepts.mdx new file mode 100644 index 00000000..e69de29b diff --git a/previous_versions/version_3/introduction.mdx b/previous_versions/version_3/introduction.mdx new file mode 100644 index 00000000..64bf9160 --- /dev/null +++ b/previous_versions/version_3/introduction.mdx @@ -0,0 +1,4 @@ + + + +to read about v4 visit /schema_reference/introduction \ No newline at end of file diff --git a/previous_versions/version_3/tooling.mdx b/previous_versions/version_3/tooling.mdx new file mode 100644 index 00000000..e9b889d8 --- /dev/null +++ b/previous_versions/version_3/tooling.mdx @@ -0,0 +1,4 @@ +--- +title: "Concepts" +description: 'Tools to use' +--- diff --git a/previous_versions/version_4/introduction.mdx b/previous_versions/version_4/introduction.mdx new file mode 100644 index 00000000..f02e0432 --- /dev/null +++ b/previous_versions/version_4/introduction.mdx @@ -0,0 +1,133 @@ +--- +title: "Version v4 (beta)" +description: 'Concepts, protocol structure, and getting started with Aqua Protocol v4' +--- + +# Aqua Protocol v4 + +Aqua Protocol v4 is the latest version of the protocol, introducing significant improvements in structure, flexibility, and capabilities. This version is currently in beta. + +## Overview + +Aqua Protocol v4 provides a robust framework for creating cryptographically verifiable chains of revisions. Each revision in a chain can represent different types of operations, from storing data to signing, witnessing, and linking to other chains. + +## Core Concepts + +### Revisions + +A revision is the fundamental unit in Aqua Protocol. There are five types of revisions in v4: + +1. **Object Revision** - Stores data with an associated template +2. **Template Revision** - Defines the schema for object revisions +3. **Signature Revision** - Adds cryptographic signatures to verify authenticity +4. **Witness Revision** - Provides timestamped proof of existence via blockchain +5. **Link Revision** - Creates verifiable connections to other revision chains + +### Revision Chains + +Revisions form chains by referencing previous revisions through cryptographic hashes. The first revision in a chain is called the "genesis revision" and has no previous revision reference. + +### Methods + +Aqua Protocol v4 supports two canonicalization methods: + +- **scalar**: Direct JSON canonicalization (default for most use cases) +- **tree**: Merkle tree-based canonicalization for large datasets + +### Hash Types + +Currently, v4 supports: +- **FIPS_202-SHA3-256**: SHA-3 256-bit hashing algorithm + +## Common Fields + +All revision types share these common fields: + +| Field | Type | Description | +|-------|------|-------------| +| `version` | string | Protocol version URL: `https://aqua-protocol.org/docs/v4/schema` | +| `revision_type` | string/RevisionLink | Type identifier for the revision | +| `nonce` | string | Random 16-byte hex string (prefixed with `0x`) for uniqueness | +| `local_timestamp` | number | Unix timestamp when the revision was created | +| `method` | string | Canonicalization method: `"scalar"` or `"tree"` | +| `hash_type` | string | Hashing algorithm: `"FIPS_202-SHA3-256"` | +| `previous_revision` | string | Hash reference to the previous revision (optional for genesis) | + +## Schema Structure + +The v4 schema is designed to be: + +- **Extensible**: New revision types can be added without breaking existing chains +- **Verifiable**: Every revision can be independently verified through hash computation +- **Composable**: Chains can link to other chains, creating complex data structures +- **Flexible**: Templates allow custom data structures while maintaining validation + +## Key Improvements from Previous Versions + +### 1. Unified Revision Structure +All revision types follow a consistent structure with common fields, making implementation and validation simpler. + +### 2. Template-Based Validation +Object revisions reference templates via hash, ensuring data conformity to predefined schemas. + +### 3. Multiple Signature Types +Support for RSA, Ethereum (EIP-191), and DID-based signatures provides flexibility for different use cases. + +### 4. Enhanced Witnessing +Improved witness structure with detailed transaction information and merkle proof support. + +### 5. Explicit Linking +Link revisions create verifiable connections between separate revision chains. + +## Getting Started + +To understand the v4 schema in detail, visit the [Schema Reference](/schema_reference/introduction) section, where each revision type is documented with examples and field specifications. + +## Tooling + +### Aqua RS SDK + +The official Rust SDK for Aqua Protocol v4 provides: +- Type-safe revision creation and validation +- Cryptographic operations (signing, hashing) +- Witnessing capabilities (Ethereum, Nostr, TSA) +- WASM compilation for web applications + +**Repository**: [github.com/inblockio/aqua-rs-sdk](https://github.com/inblockio/aqua-rs-sdk) + +**Installation:** +```bash +# For Rust projects +cargo add aqua-rs-sdk + +# For WASM builds +wasm-pack build --target web --no-default-features --features wasm +``` + +### CLI Tools + +Command-line utilities built on the v4 SDK enable: +- Creating and validating revision chains +- Signing revisions with various methods +- Witnessing to blockchain networks +- Verifying complete chains + +## Use Cases + +Aqua Protocol v4 is designed for: + +- **Document Integrity**: Verifiable audit trails for documents and data +- **Supply Chain**: Tracking provenance and authenticity +- **Digital Identity**: Self-sovereign identity with verifiable credentials +- **Notarization**: Timestamped proof of existence +- **Data Provenance**: Complete history tracking with cryptographic guarantees +- **Decentralized Attestations**: Peer-to-peer verification without central authorities + +## Next Steps + +- Explore the [Schema Reference](/schema_reference/introduction) to understand each revision type +- Review example revision chains in the SDK repository +- Try the CLI tools to create your first revision chain +- Read about specific use cases and implementation patterns + +For questions or feedback about v4, please visit the [Aqua Protocol GitHub repository](https://github.com/inblockio). diff --git a/schema_reference/link_revision.mdx b/schema_reference/link_revision.mdx index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9116aff4f2c893902828d0345301fac34f096f84 100644 GIT binary patch literal 12792 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 literal 0 HcmV?d00001 diff --git a/schema_reference/object_revision.mdx b/schema_reference/object_revision.mdx index e69de29b..dc07915e 100644 --- a/schema_reference/object_revision.mdx +++ b/schema_reference/object_revision.mdx @@ -0,0 +1,247 @@ +--- +title: "Object Revision" +description: "Schema specification for Object Revisions in Aqua Protocol v4" +--- + +# Object Revision + +An Object Revision is the primary data-carrying revision type in Aqua Protocol v4. It stores arbitrary structured data that conforms to a template schema. Object revisions are typically the first revision in a chain (genesis) or follow other object revisions. + +## Overview + +Object revisions serve as containers for application data. Each object revision: +- References a template (via `revision_type` field) that defines its schema +- Contains a `payload` with the actual data +- Can be the genesis revision (no `previous_revision`) or link to a previous revision +- Must conform to the validation rules defined by its template + +## Schema Structure + +### Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `previous_revision` | string | Conditional | Hash reference to the previous revision. **Optional for genesis revisions**, **Required for subsequent revisions** | +| `revision_type` | string | Yes | Hash reference to the template that defines the payload schema | +| `nonce` | string | Yes | Random 16-byte hex string (e.g., `0x2ba6a8b9b987cf8c3567f72871812ae9`) for uniqueness | +| `local_timestamp` | number | Yes | Unix timestamp (seconds since epoch) when the revision was created | +| `version` | string | Yes | Protocol version: `"https://aqua-protocol.org/docs/v4/schema"` | +| `method` | string | Yes | Canonicalization method: `"scalar"` or `"tree"` | +| `hash_type` | string | Yes | Hash algorithm: `"FIPS_202-SHA3-256"` | +| `payload` | object | Yes | The actual data, must conform to the referenced template schema | + +### Field Details + +#### previous_revision +- **Format**: Lowercase hex string prefixed with `0x` (e.g., `0x3f8a...`) +- **Length**: Variable (typically 64 characters for SHA3-256 hashes) +- **Omitted**: Only in genesis revisions (the first revision in a chain) +- **Purpose**: Creates the chain linkage and ensures revision ordering + +#### revision_type +- **Format**: Hash reference pointing to a Template Revision +- **Purpose**: Identifies which template validates this object's payload +- **Example**: `0x1234abcd...` (hash of a template revision) +- **Validation**: The template's schema must validate the payload + +#### payload +- **Type**: JSON object +- **Validation**: Must conform to the JSON Schema defined in the referenced template +- **Flexibility**: Can contain any structured data as long as it matches the template +- **Size**: Depends on the method: + - `scalar`: Entire payload is hashed directly + - `tree`: Payload is broken into leaves for merkle tree construction + +## Methods + +### Scalar Method + +The `scalar` method treats the entire object as a single unit. The payload is serialized, canonicalized, and hashed as one block. + +**Best for:** +- Small to medium-sized objects +- When you need to verify the entire object at once +- Simple use cases + +### Tree Method + +The `tree` method breaks the payload into leaves using JSON pointers, creating a merkle tree structure. + +**Best for:** +- Large objects where partial verification is needed +- When you want to prove specific fields without revealing the entire object +- Advanced use cases requiring selective disclosure + +## Examples + +### Example 1: Genesis Object Revision (File) + +This is a genesis revision (first in chain) using the File template: + +```json +{ + "revision_type": "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e", + "nonce": "0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c", + "local_timestamp": 1704067200, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "payload": { + "payload_type": "application/pdf", + "hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "hash_type": "FIPS_202-SHA3-256", + "descriptor": "Important Contract Document" + } +} +``` + +**Note**: No `previous_revision` field because this is a genesis revision. + +### Example 2: Subsequent Object Revision (Domain Claim) + +This revision follows another revision in the chain: + +```json +{ + "previous_revision": "0x3f8a7b2c9d1e4f5a6b8c0d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a", + "revision_type": "0x8b3e4c7d9f1a2b5c6e8f0a3b4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3", + "nonce": "0x7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f", + "local_timestamp": 1704070800, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "payload": { + "domain": "example.com", + "wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8" + } +} +``` + +### Example 3: Object with Tree Method + +Using the tree method for a larger object: + +```json +{ + "previous_revision": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b", + "revision_type": "0x4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a", + "nonce": "0x9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b", + "local_timestamp": 1704074400, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "tree", + "hash_type": "FIPS_202-SHA3-256", + "payload": { + "name": "John Doe", + "email": "john@example.com", + "phone": "+1234567890", + "address": { + "street": "123 Main St", + "city": "Anytown", + "country": "USA" + }, + "metadata": { + "created": "2024-01-01", + "verified": true + } + } +} +``` + +**With tree method**: Each field (using JSON pointers like `/name`, `/email`, `/address/city`) becomes a leaf in the merkle tree. + +## Validation Rules + +An Object Revision is valid if: + +1. **Structure**: Contains all required fields with correct types +2. **Version**: The `version` field matches `"https://aqua-protocol.org/docs/v4/schema"` +3. **Method**: The `method` is either `"scalar"` or `"tree"` +4. **Hash Type**: The `hash_type` is a recognized algorithm (e.g., `"FIPS_202-SHA3-256"`) +5. **Nonce**: Is a valid 16-byte hex string prefixed with `0x` +6. **Timestamp**: Is a valid Unix timestamp +7. **Previous Revision**: + - Must be absent for genesis revisions + - Must be present and valid for non-genesis revisions + - Must reference an existing revision +8. **Revision Type**: Must reference a valid template revision +9. **Payload**: Must conform to the JSON Schema defined in the referenced template +10. **Hash Verification**: The computed hash matches what's expected + +## Common Use Cases + +### Document Storage +Store file metadata with hash references: +```json +{ + "payload": { + "payload_type": "application/pdf", + "hash": "0x...", + "hash_type": "FIPS_202-SHA3-256", + "descriptor": "Legal Agreement 2024" + } +} +``` + +### Identity Claims +Store verifiable claims about entities: +```json +{ + "payload": { + "domain": "company.com", + "wallet_address": "0x742d35Cc..." + } +} +``` + +### Credential Data +Store structured credential information: +```json +{ + "payload": { + "credential_type": "EmailVerification", + "subject": "user@example.com", + "issuer": "0x...", + "issued_at": 1704067200 + } +} +``` + +## Relationship with Other Revisions + +After creating an Object Revision, you typically: + +1. **Sign it** - Add a Signature Revision to prove authenticity +2. **Witness it** - Add a Witness Revision for timestamped proof +3. **Update it** - Create a new Object Revision that references this one +4. **Link it** - Create a Link Revision to connect to other chains + +## Implementation Notes + +### Creating an Object Revision + +When implementing object revision creation: + +1. Validate payload against the template schema first +2. Generate a random 16-byte nonce +3. Capture the current timestamp +4. Include `previous_revision` only if not genesis +5. Serialize according to the chosen method +6. Compute the hash for verification + +### Verifying an Object Revision + +To verify an object revision: + +1. Check all required fields are present +2. Validate field types and formats +3. Verify the referenced template exists +4. Validate payload against template schema +5. Recompute the hash and compare +6. If not genesis, verify `previous_revision` exists and is valid + +## See Also + +- [Template Revision](/schema_reference/template_revision) - Defines the schema for object payloads +- [Signature Revision](/schema_reference/signing_revision) - Sign object revisions +- [Witness Revision](/schema_reference/witness_revision) - Add timestamped proof +- [Link Revision](/schema_reference/link_revision) - Connect to other chains diff --git a/schema_reference/signing_revision.mdx b/schema_reference/signing_revision.mdx index e69de29b..47a9da66 100644 --- a/schema_reference/signing_revision.mdx +++ b/schema_reference/signing_revision.mdx @@ -0,0 +1,352 @@ +--- +title: "Signature Revision" +description: "Schema specification for Signature Revisions in Aqua Protocol v4" +--- + +# Signature Revision + +A Signature Revision adds cryptographic proof of authenticity and authorship to a revision chain. It references a previous revision and includes a digital signature that can be verified using the associated public key or address. Aqua Protocol v4 supports three signature types: RSA, Ethereum (EIP-191), and DID-based signatures. + +## Overview + +Signature revisions provide: +- **Authentication**: Proof that a specific entity created or approved the previous revision +- **Integrity**: Assurance that the signed revision hasn't been tampered with +- **Non-repudiation**: The signer cannot deny having signed the revision +- **Flexibility**: Support for multiple cryptographic signature schemes + +## Schema Structure + +### Common Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `previous_revision` | string | Yes | Hash reference to the revision being signed | +| `revision_type` | string | Yes | Always `"signature"` for signature revisions | +| `nonce` | string | Yes | Random 16-byte hex string for uniqueness | +| `local_timestamp` | number | Yes | Unix timestamp when the signature was created | +| `version` | string | Yes | Protocol version: `"https://aqua-protocol.org/docs/v4/schema"` | +| `method` | string | Yes | Canonicalization method: `"scalar"` (typical) or `"tree"` | +| `hash_type` | string | Yes | Hash algorithm: `"FIPS_202-SHA3-256"` | +| `signature` | object | Yes | Signature value object (varies by signature type) | + +### Signature Value Object + +The `signature` field is an object with different structures depending on the signature type. + +## Signature Types + +### 1. RSA Signature + +Uses RSA public-key cryptography with PKCS#1 v1.5 padding. + +#### Structure +```json +{ + "signature_type": "rsa", + "signature": "0x...", + "public_key": "0x..." +} +``` + +#### Fields + +| Field | Type | Description | +|-------|------|-------------| +| `signature_type` | string | Must be `"rsa"` | +| `signature` | string | Hex-encoded RSA signature (256 bytes for RSA-2048, 512 bytes for RSA-4096) | +| `public_key` | string | Hex-encoded DER-encoded RSA public key (200-600 bytes) | + +#### Validation Rules +- Signature must be 256 bytes (RSA-2048) or 512 bytes (RSA-4096) +- Public key must be DER-encoded and between 200-600 bytes +- Both fields must be lowercase hex strings prefixed with `0x` + +#### Example +```json +{ + "previous_revision": "0x3f8a7b2c9d1e4f5a6b8c0d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a", + "revision_type": "signature", + "nonce": "0x9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b", + "local_timestamp": 1704067200, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "signature": { + "signature_type": "rsa", + "signature": "0x8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d", + "public_key": "0x308201a2300d06092a864886f70d01010105000382018f003082018a0282018100c9c4d8e3f7a1b5c9d0e4f8a2b6c0d4e8f2a6b0c4d8e2f6a0b4c8d2e6f0a4b8c2d6e0f4a8b2c6d0e4f8a2b6c0d4e8f2a6b0c4d8e2f6a0b4c8d2e6f0a4b8c2d6e0f4a8b2c6d0e4f8a2b6c0d4e8f2a6b0c4d8e2f6a0b4c8d2e6f0a4b8c2d6e0f4a8b2c6d0e4f8a2b6c0d4e8f2a6b0c4d8e2f6a0b4c8d2e6f0a4b8c2d6e0f4a8b2c6d0e4f8a2b6c0d4e8f2a6b0c4d8e2f6a0b4c8d2e6f0a4b8c2d6e0f4a8b2c6d0e4f8a2b6c0d4e8f2a6b0c4d8e2f6a0b4c8d2e6f0a4b8c2d6e0f4a8b2c6d0e4f8a2b6c0d4e8f2a6b0c4d8e2f6a0b4c8d2e6f0a4b8c2d6e0f4a8b2c6d0e4f8a2b6c0d4e8f2a6b0c4d8e2f6a0b4c8d2e6f0a4b8c2d6e0f4a8b2c6d0e4f8a2b6c0d4e8f2a6b0c4d8e2f6a0b4c8d2e6f0a4b8c2d6e00203010001" + } +} +``` + +--- + +### 2. Ethereum (EIP-191) Signature + +Uses Ethereum's personal sign method (EIP-191) with ECDSA on the secp256k1 curve. + +#### Structure +```json +{ + "signature_type": "ethereum:eip-191", + "signature": "0x...", + "signature_wallet_address": "0x..." +} +``` + +#### Fields + +| Field | Type | Description | +|-------|------|-------------| +| `signature_type` | string | Must be `"ethereum:eip-191"` | +| `signature` | string | Hex-encoded ECDSA signature (65 bytes: r=32, s=32, v=1) | +| `signature_wallet_address` | string | EIP-55 checksummed Ethereum address (20 bytes) | + +#### Validation Rules +- Signature must be exactly 65 bytes +- Wallet address must be a valid EIP-55 checksummed address +- Both fields must be hex strings prefixed with `0x` +- Address checksum must be validated + +#### Example +```json +{ + "previous_revision": "0x3f8a7b2c9d1e4f5a6b8c0d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a", + "revision_type": "signature", + "nonce": "0x1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e", + "local_timestamp": 1704070800, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "signature": { + "signature_type": "ethereum:eip-191", + "signature": "0x8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d1c", + "signature_wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8" + } +} +``` + +**Note**: The `signature_wallet_address` must use proper EIP-55 checksumming (mixed case). + +--- + +### 3. DID JWS Signature + +Uses Decentralized Identifiers (DIDs) with JSON Web Signatures (JWS). + +#### Structure +```json +{ + "signature_type": "did:jws", + "jws": "eyJ...", + "did": "did:key:..." +} +``` + +#### Fields + +| Field | Type | Description | +|-------|------|-------------| +| `signature_type` | string | Must be `"did:jws"` | +| `jws` | string | Compact JWS (JSON Web Signature) | +| `did` | string | Decentralized Identifier of the signer | + +#### Validation Rules +- JWS must be in compact serialization format (three base64url-encoded parts separated by dots) +- DID must be a valid DID string (e.g., `did:key:z6Mk...`, `did:web:example.com`) +- The DID document must be resolvable to verify the signature + +#### Example +```json +{ + "previous_revision": "0x3f8a7b2c9d1e4f5a6b8c0d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a", + "revision_type": "signature", + "nonce": "0x5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a", + "local_timestamp": 1704074400, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "signature": { + "signature_type": "did:jws", + "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..kKvXJ_qjJRtGQFLpRvQlCdXMFD8sSE4DTlbMmLqg0BJ9FQKLHvX7y_z5Pr8u0xT8D2vCj9qL1KzN4rP2MzKfBQ", + "did": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK" + } +} +``` + +--- + +## What Gets Signed + +The signature is computed over the **hash of the previous revision**, not the revision itself. + +### Signing Process + +1. Compute the hash of the `previous_revision` +2. For Ethereum: Add EIP-191 prefix (`\x19Ethereum Signed Message:\n32`) +3. Sign the hash using the appropriate method +4. Create the signature revision with the signature value +5. Compute the hash of the signature revision + +### Example Signing Flow + +``` +Object Revision Compute Hash Sign Hash Signature Revision + +0x3f8a7b2c... (previous_revision in signature) +``` + +## Validation Rules + +A Signature Revision is valid if: + +1. **Structure**: Contains all required fields with correct types +2. **Revision Type**: The `revision_type` is exactly `"signature"` +3. **Previous Revision**: References a valid existing revision +4. **Signature Type**: One of `"rsa"`, `"ethereum:eip-191"`, or `"did:jws"` +5. **Signature Format**: Matches the requirements for the specific signature type +6. **No Unknown Fields**: The signature object contains only recognized fields +7. **Signature Verification**: The signature can be cryptographically verified + - For RSA: Verify using the provided public key + - For EIP-191: Recover address from signature and compare to `signature_wallet_address` + - For DID:JWS: Resolve DID and verify JWS signature + +## Multiple Signatures + +To add multiple signatures to the same revision: + +``` +Object Revision + +Signature 1 (Alice signs object) + +Signature 2 (Bob signs Signature 1) + +Signature 3 (Carol signs Signature 2) +``` + +Each signature revision signs the previous revision, creating a chain of signatures. + +### Multi-Party Signing + +For independent multi-party signing (all signing the same object): + +``` + Object Revision + +Signature A Signature B Signature C + + Link Revision +``` + +Use a Link Revision to combine multiple independent signature branches. + +## Common Use Cases + +### 1. Document Signing +Sign file object revisions to prove authorship: +``` +File Object Signature (Author) Witness (Timestamp) +``` + +### 2. Approval Workflows +Multiple parties sign in sequence: +``` +Document Sign (Creator) Sign (Reviewer) Sign (Approver) +``` + +### 3. Notarization +Professional notary signs an object: +``` +Object Signature (Notary's RSA key) Witness (Blockchain) +``` + +### 4. Smart Contract Interaction +Ethereum wallet signs for on-chain verification: +``` +Claim Signature (EIP-191) Submit to Smart Contract +``` + +### 5. Decentralized Identity +DID-based signatures for verifiable credentials: +``` +Credential Signature (Issuer's DID) Holder stores +``` + +## Implementation Notes + +### Creating a Signature Revision + +1. Identify the revision to sign +2. Compute its hash (the `previous_revision` value) +3. Prepare the message to sign (hash, with any required prefixes) +4. Generate the signature using chosen method +5. Construct the signature revision object +6. Validate the signature can be verified +7. Compute and store the signature revision hash + +### Verifying a Signature Revision + +#### RSA Verification +``` +1. Extract public_key from signature object +2. Extract signature bytes +3. Reconstruct signed message (hash of previous_revision) +4. Verify signature using RSA public key +``` + +#### EIP-191 Verification +``` +1. Reconstruct EIP-191 message: "\x19Ethereum Signed Message:\n32" + hash +2. Recover address from signature +3. Compare recovered address to signature_wallet_address +``` + +#### DID:JWS Verification +``` +1. Resolve DID to get DID document +2. Extract verification method (public key) +3. Verify JWS signature using verification method +4. Validate JWS payload matches revision data +``` + +## Security Considerations + +### 1. Key Management +- RSA: Protect private key files, use strong key sizes (e2048 bits) +- EIP-191: Secure wallet seed phrases/private keys +- DID: Maintain DID document security and key rotation policies + +### 2. Signature Reuse +- Each signature should sign a unique revision +- Nonces prevent replay attacks + +### 3. Timestamp Validation +- Check `local_timestamp` is reasonable (not far future/past) +- Compare with witness timestamps for consistency + +### 4. Address Validation +- For EIP-191: Always validate EIP-55 checksum +- Reject non-checksummed addresses + +### 5. DID Resolution +- Ensure DID resolver is trustworthy +- Cache DID documents appropriately +- Handle resolution failures gracefully + +## Relationship with Other Revisions + +- **Object Revisions**: Typically what gets signed first +- **Witness Revisions**: Often follow signatures to add timestamping +- **Link Revisions**: Can combine multiple signature branches +- **Template Revisions**: Can also be signed, though less common + +## See Also + +- [Object Revision](/schema_reference/object_revision) - What typically gets signed +- [Witness Revision](/schema_reference/witness_revision) - Add timestamps after signing +- [Link Revision](/schema_reference/link_revision) - Combine signature branches +- [EIP-191 Specification](https://eips.ethereum.org/EIPS/eip-191) - Ethereum signing standard +- [DID Core Specification](https://www.w3.org/TR/did-core/) - Decentralized Identifiers +- [JWS Specification](https://www.rfc-editor.org/rfc/rfc7515) - JSON Web Signatures diff --git a/schema_reference/template_revision.mdx b/schema_reference/template_revision.mdx index e69de29b..ac1d9c0f 100644 --- a/schema_reference/template_revision.mdx +++ b/schema_reference/template_revision.mdx @@ -0,0 +1,441 @@ +--- +title: "Template Revision" +description: "Schema specification for Template Revisions in Aqua Protocol v4" +--- + +# Template Revision + +A Template Revision defines the structure and validation rules for Object Revisions. Templates use JSON Schema to specify what data fields are required, their types, formats, and constraints. Template revisions are standalone (they don't have a `previous_revision` field) and are referenced by object revisions via their hash. + +## Overview + +Template revisions serve as the "type system" for Aqua Protocol. They: +- Define schemas using JSON Schema (Draft 2020-12) +- Are immutable once created (identified by their hash) +- Can be reused by multiple object revisions +- Optionally reference code implementations +- Enable validation and type safety + +## Schema Structure + +### Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `revision_type` | string | Yes | Always `"template"` for template revisions | +| `nonce` | string | Yes | Random 16-byte hex string for uniqueness | +| `local_timestamp` | number | Yes | Unix timestamp when the template was created | +| `version` | string | Yes | Protocol version: `"https://aqua-protocol.org/docs/v4/schema"` | +| `method` | string | Yes | Canonicalization method: `"scalar"` or `"tree"` (typically `"scalar"`) | +| `hash_type` | string | Yes | Hash algorithm: `"FIPS_202-SHA3-256"` | +| `schema` | object | Yes | JSON Schema (Draft 2020-12) that validates object payloads | +| `code_revision_ref` | string | No | Optional hash reference to code that implements this template | + +### Field Details + +#### revision_type +- **Value**: Always `"template"` +- **Purpose**: Identifies this as a template revision +- **Note**: Unlike object revisions, this is a string constant, not a hash reference + +#### schema +- **Format**: Valid JSON Schema (Draft 2020-12 specification) +- **Purpose**: Defines validation rules for object revision payloads +- **Required fields in schema**: + - `$schema`: Should be `"https://json-schema.org/draft/2020-12/schema"` + - `type`: Typically `"object"` + - `properties`: Defines the payload structure + - `required`: Lists mandatory fields + - `additionalProperties`: Usually `false` for strict validation + +#### code_revision_ref +- **Format**: Hex string reference to another revision (optional) +- **Purpose**: Links to executable code or scripts that work with this template +- **Use case**: For templates that need associated processing logic +- **Example**: Reference to smart contract code, validation scripts, or transformation functions + +## Examples + +### Example 1: File Template + +A template for storing file metadata: + +```json +{ + "revision_type": "template", + "nonce": "0x2ba6a8b9b987cf8c3567f72871812ae9", + "local_timestamp": 1762266013, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "payload_type": { + "type": "string", + "maxLength": 128 + }, + "hash": { + "type": "string", + "pattern": "^0x[0-9a-f]{64,128}$" + }, + "hash_type": { + "description": "Hash function identifier", + "anyOf": [ + { + "type": "string", + "const": "FIPS_202-SHA3-256" + }, + { + "type": "string", + "minLength": 1, + "maxLength": 128 + } + ] + }, + "descriptor": { + "type": "string", + "maxLength": 140 + } + }, + "required": [ + "payload_type", + "hash", + "hash_type", + "descriptor" + ], + "additionalProperties": false + } +} +``` + +**Hash of this template**: `0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e` + +This hash is what object revisions use in their `revision_type` field to reference this template. + +### Example 2: Domain Claim Template + +A template for domain ownership claims: + +```json +{ + "revision_type": "template", + "nonce": "0x0da37dc1685f4d78a87c9462b0e87685", + "local_timestamp": 1762817552, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "domain": { + "type": "string", + "format": "idn-hostname" + }, + "wallet_address": { + "type": "string", + "pattern": "^0x[0-9a-fA-F]{40}$" + } + }, + "required": [ + "domain", + "wallet_address" + ], + "additionalProperties": false + } +} +``` + +### Example 3: Email Claim Template + +A template for email verification claims: + +```json +{ + "revision_type": "template", + "nonce": "0x5c8f9a1b2d3e4f5a6b7c8d9e0f1a2b3c", + "local_timestamp": 1762820000, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "email": { + "type": "string", + "format": "email" + }, + "wallet_address": { + "type": "string", + "pattern": "^0x[0-9a-fA-F]{40}$" + }, + "verified_at": { + "type": "integer", + "description": "Unix timestamp of verification" + } + }, + "required": [ + "email", + "wallet_address" + ], + "additionalProperties": false + } +} +``` + +### Example 4: Template with Code Reference + +A template that references associated code: + +```json +{ + "revision_type": "template", + "nonce": "0x7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a", + "local_timestamp": 1762825000, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "schema": { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object", + "properties": { + "calculation_type": { + "type": "string", + "enum": ["sum", "average", "weighted"] + }, + "values": { + "type": "array", + "items": { + "type": "number" + } + } + }, + "required": ["calculation_type", "values"], + "additionalProperties": false + }, + "code_revision_ref": "0x3f8a7b2c9d1e4f5a6b8c0d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a" +} +``` + +## Built-in Templates + +The Aqua RS SDK provides several built-in templates with pre-computed hashes: + +| Template | Purpose | Hash Reference | +|----------|---------|----------------| +| File | File metadata storage | `0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e` | +| Domain | Domain ownership claims | (computed at runtime) | +| Email | Email verification | (computed at runtime) | +| Name | Name claims | (computed at runtime) | +| Phone | Phone verification | (computed at runtime) | +| Attestation | General attestations | (computed at runtime) | + +These templates are defined in the SDK at `src/schema/templates/` and can be used directly without creating new template revisions. + +## JSON Schema Features + +Template schemas support all JSON Schema Draft 2020-12 features: + +### Type Validation +```json +{ + "type": "string" // or "number", "integer", "boolean", "array", "object", "null" +} +``` + +### Format Validation +```json +{ + "type": "string", + "format": "email" // or "date", "date-time", "uri", "hostname", etc. +} +``` + +### Pattern Matching +```json +{ + "type": "string", + "pattern": "^0x[0-9a-f]{40}$" +} +``` + +### Length Constraints +```json +{ + "type": "string", + "minLength": 1, + "maxLength": 100 +} +``` + +### Numeric Constraints +```json +{ + "type": "number", + "minimum": 0, + "maximum": 100, + "multipleOf": 0.01 +} +``` + +### Array Constraints +```json +{ + "type": "array", + "items": { "type": "string" }, + "minItems": 1, + "maxItems": 10, + "uniqueItems": true +} +``` + +### Enumerations +```json +{ + "type": "string", + "enum": ["option1", "option2", "option3"] +} +``` + +### Conditional Schemas +```json +{ + "anyOf": [ + { "type": "string", "const": "FIPS_202-SHA3-256" }, + { "type": "string", "minLength": 1 } + ] +} +``` + +## Validation Rules + +A Template Revision is valid if: + +1. **Structure**: Contains all required fields with correct types +2. **Revision Type**: The `revision_type` field is exactly `"template"` +3. **Version**: Matches `"https://aqua-protocol.org/docs/v4/schema"` +4. **Schema**: Is a valid JSON Schema (Draft 2020-12) +5. **Schema Root**: The schema should define an object type at the root level +6. **No Previous Revision**: Templates never have a `previous_revision` field +7. **Code Reference**: If present, `code_revision_ref` must be a valid hash reference +8. **Hash Verification**: The computed hash can be verified + +## Template Lifecycle + +### 1. Creation +``` +Create JSON Schema Generate Template Revision Compute Hash +``` + +### 2. Publication +``` +Template Hash Used by Object Revisions Enables Validation +``` + +### 3. Reuse +``` +Multiple Objects Reference Same Template Consistent Validation +``` + +## Best Practices + +### 1. Use Descriptive Property Names +```json +{ + "properties": { + "email_address": { "type": "string", "format": "email" }, + "verified_at_timestamp": { "type": "integer" } + } +} +``` + +### 2. Always Set additionalProperties +```json +{ + "additionalProperties": false // Strict validation +} +``` + +### 3. Include Descriptions +```json +{ + "properties": { + "status": { + "type": "string", + "description": "Current verification status: pending, verified, or rejected" + } + } +} +``` + +### 4. Use Appropriate Constraints +```json +{ + "email": { + "type": "string", + "format": "email", + "maxLength": 254 // RFC 5321 limit + } +} +``` + +### 5. Plan for Forward Compatibility +- Avoid overly restrictive patterns +- Use `anyOf` for accepting multiple formats +- Consider optional fields for future extensions + +## Relationship with Other Revisions + +- **Object Revisions**: Reference templates via their `revision_type` field +- **Code Revisions**: Can be referenced via `code_revision_ref` (optional) +- **No Chaining**: Templates don't form chains; they're standalone definitions + +## Implementation Notes + +### Creating a Template + +1. Design your JSON Schema based on your data requirements +2. Validate the schema itself is valid JSON Schema +3. Create the template revision structure +4. Generate a random nonce +5. Compute the template hash +6. Store the hash for use in object revisions + +### Using a Template + +1. Reference the template hash in the object's `revision_type` +2. Ensure payload conforms to the template schema +3. Validate payload against schema before creating object revision + +### Template Validation + +When validating an object against a template: + +``` +1. Retrieve template by hash +2. Extract JSON Schema from template +3. Validate object payload against schema +4. Check validation result +``` + +## Common Use Cases + +### Document Templates +Define structure for document metadata, file hashes, and descriptors. + +### Credential Templates +Specify required fields for verifiable credentials (email, domain, phone, etc.). + +### Data Exchange Templates +Standardize data formats for interoperability between systems. + +### Smart Contract Templates +Link templates to on-chain contract code for decentralized validation. + +## See Also + +- [Object Revision](/schema_reference/object_revision) - Use templates to validate objects +- [JSON Schema Specification](https://json-schema.org/draft/2020-12/json-schema-core.html) - Full JSON Schema documentation diff --git a/schema_reference/witness_revision.mdx b/schema_reference/witness_revision.mdx index 94399f40..b56ce9cb 100644 --- a/schema_reference/witness_revision.mdx +++ b/schema_reference/witness_revision.mdx @@ -1,4 +1,417 @@ --- title: "Witness Revision" -description: "Get to learn about witness revision" ---- \ No newline at end of file +description: "Schema specification for Witness Revisions in Aqua Protocol v4" +--- + +# Witness Revision + +A Witness Revision provides cryptographic proof that a revision existed at a specific point in time. It anchors revision hashes to external systems like blockchains (Ethereum), decentralized networks (Nostr), or Trusted Timestamping Authorities (TSA). This creates an immutable, verifiable timestamp that cannot be backdated. + +## Overview + +Witness revisions provide: +- **Timestamping**: Cryptographic proof of when a revision existed +- **Immutability**: Blockchain or TSA anchoring prevents backdating +- **Verifiability**: Anyone can verify the witness independently +- **Batch Efficiency**: Multiple revisions can be witnessed in a single transaction via Merkle trees +- **Decentralization**: Uses public blockchains or decentralized networks + +## Schema Structure + +### Common Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `previous_revision` | string | Yes | Hash reference to the revision being witnessed | +| `revision_type` | string | Yes | Always `"witness"` for witness revisions | +| `nonce` | string | Yes | Random 16-byte hex string for uniqueness | +| `local_timestamp` | number | Yes | Unix timestamp when the witness was created locally | +| `version` | string | Yes | Protocol version: `"https://aqua-protocol.org/docs/v4/schema"` | +| `method` | string | Yes | Canonicalization method: `"scalar"` (typical) or `"tree"` | +| `hash_type` | string | Yes | Hash algorithm: `"FIPS_202-SHA3-256"` | +| `witness` | object | Yes | Witness value object containing proof details | + +### Witness Value Object + +The `witness` field contains details about the witnessing transaction: + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `merkle_proof` | array | Yes | Array of hex strings forming the Merkle proof path | +| `sender_account_address` | string | Yes | Address that submitted the witness transaction | +| `transaction_hash` | string | Yes | Transaction hash on the blockchain or network | +| `smart_contract_address` | string | Yes | Address of the witness contract (or endpoint URL) | +| `network` | string | Yes | Network identifier: `"mainnet"`, `"sepolia"`, `"holesky"`, `"tsa"`, or `"nostr"` | +| `merkle_root` | string | Yes | Root hash of the Merkle tree stored on-chain | +| `timestamp` | number | Yes | Unix timestamp from the blockchain/network | + +## Network Types + +### 1. Ethereum Networks + +#### Mainnet +- **Network**: `"mainnet"` +- **Purpose**: Production witnessing on Ethereum mainnet +- **Cost**: Higher gas fees +- **Security**: Maximum security and permanence + +#### Sepolia (Testnet) +- **Network**: `"sepolia"` +- **Purpose**: Testing and development +- **Cost**: Free testnet ETH +- **Security**: Testnet only, subject to resets + +#### Holesky (Testnet) +- **Network**: `"holesky"` +- **Purpose**: Testing and development +- **Cost**: Free testnet ETH +- **Security**: Testnet only, newer Ethereum testnet + +### 2. Trusted Timestamping Authority (TSA) + +- **Network**: `"tsa"` +- **Purpose**: RFC 3161 compliant timestamping +- **Provider**: DigiCert or other TSA services +- **Verification**: Via TSA public certificates + +### 3. Nostr + +- **Network**: `"nostr"` +- **Purpose**: Decentralized social network timestamping +- **Verification**: Via Nostr relays and events +- **Cost**: Typically free + +## Example + +### Ethereum Witness (Sepolia) + +```json +{ + "previous_revision": "0x3f8a7b2c9d1e4f5a6b8c0d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a", + "revision_type": "witness", + "nonce": "0x7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f", + "local_timestamp": 1704067200, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "witness": { + "merkle_proof": [ + "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", + "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890", + "0x567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234" + ], + "sender_account_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8", + "transaction_hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "smart_contract_address": "0x5FbDB2315678afecb367f032d93F642f64180aa3", + "network": "sepolia", + "merkle_root": "0xa3bf4f1b2b0b822cd15d6c15b0f00a089f86d081884c7d659a2feaa0c55ad015", + "timestamp": 1704067250 + } +} +``` + +### Single Revision Witness + +When witnessing a single revision (no batching), the Merkle proof is empty: + +```json +{ + "previous_revision": "0x3f8a7b2c9d1e4f5a6b8c0d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a", + "revision_type": "witness", + "nonce": "0x9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b", + "local_timestamp": 1704070800, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "witness": { + "merkle_proof": [], + "sender_account_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8", + "transaction_hash": "0x8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d", + "smart_contract_address": "0x5FbDB2315678afecb367f032d93F642f64180aa3", + "network": "mainnet", + "merkle_root": "0x3f8a7b2c9d1e4f5a6b8c0d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a", + "timestamp": 1704070850 + } +} +``` + +**Note**: When `merkle_proof` is empty, `merkle_root` equals `previous_revision`. + +## Merkle Tree Batching + +To reduce costs, multiple revisions can be witnessed in a single transaction using Merkle trees. + +### Process + +1. **Collect Revisions**: Gather multiple revision hashes to witness +2. **Build Merkle Tree**: Create a Merkle tree from the revision hashes +3. **Submit Root**: Submit only the Merkle root to the blockchain +4. **Generate Proofs**: For each revision, generate its Merkle proof +5. **Create Witnesses**: Create witness revisions with proofs + +### Example: Witnessing 4 Revisions + +``` +Revision Hashes: +- Rev1: 0xaaaa... +- Rev2: 0xbbbb... +- Rev3: 0xcccc... +- Rev4: 0xdddd... + +Merkle Tree: + Root + / \ + H12 H34 + / \ / \ + Rev1 Rev2 Rev3 Rev4 + +Submit to blockchain: Root hash only + +Witness for Rev1: + merkle_proof: [H12's sibling (Rev2), H12's parent's sibling (H34)] + merkle_root: Root +``` + +### Proof Verification + +To verify a revision was witnessed: + +1. Start with revision hash +2. Apply Merkle proof hashes (sibling hashes) +3. Compute up the tree to get root +4. Verify computed root matches `merkle_root` +5. Verify `merkle_root` is on blockchain at `transaction_hash` + +## Validation Rules + +A Witness Revision is valid if: + +1. **Structure**: Contains all required fields with correct types +2. **Revision Type**: The `revision_type` is exactly `"witness"` +3. **Previous Revision**: References a valid existing revision +4. **Network**: One of the supported network values +5. **Timestamp Consistency**: + - `witness.timestamp` should be close to `local_timestamp` + - Both should be reasonable (not far in future) +6. **Merkle Proof**: If present, must be valid array of hex strings +7. **Transaction Verification**: The `transaction_hash` exists on the specified `network` +8. **Merkle Root Verification**: If batched, Merkle proof must lead to merkle_root +9. **On-Chain Verification**: The `merkle_root` is stored at the `smart_contract_address` in the transaction +10. **Address Format**: All addresses must be valid hex strings + +## Witness Smart Contract + +### Ethereum Contract Interface + +The witness contract typically has a method like: + +```solidity +function witness(bytes32 merkleRoot) public returns (bool) +``` + +### Verification Process + +1. Query blockchain for transaction at `transaction_hash` +2. Verify transaction called the `smart_contract_address` +3. Extract the witnessed value (merkle_root) from transaction data +4. Verify it matches the `merkle_root` in the witness revision +5. Check transaction timestamp matches `timestamp` field + +## Common Use Cases + +### 1. Document Notarization + +``` +Document Object → Signature → Witness (Ethereum) +``` + +Proves the document existed and was signed at a specific time. + +### 2. Batch Processing + +``` +100 Documents → Compute Hashes → Build Merkle Tree → Single Witness Transaction +``` + +Economical witnessing of many documents at once. + +### 3. Legal Evidence + +``` +Evidence Object → Signature (Parties) → Witness (Mainnet) +``` + +Creates tamper-proof timestamp for legal proceedings. + +### 4. Supply Chain + +``` +Shipment Event → Witness (Every checkpoint) → Audit Trail +``` + +Immutable record of supply chain events. + +### 5. Credential Issuance + +``` +VC Issuance → Signature (Issuer) → Witness (Public verification) +``` + +Publicly verifiable credential issuance timestamps. + +## Timestamp Interpretation + +### local_timestamp +- Created by client when preparing witness revision +- Not trusted (can be manipulated) +- Used for user display and rough ordering + +### witness.timestamp +- Provided by blockchain/TSA +- Trusted (immutable on-chain) +- Authoritative time proof +- Should be used for verification and legal purposes + +**Best Practice**: Always use `witness.timestamp` for critical timestamp verification. + +## Cost Considerations + +### Ethereum + +| Network | Cost | When to Use | +|---------|------|-------------| +| Mainnet | ~$5-50 per transaction | Production, legal, high-value | +| Sepolia | Free (testnet) | Development, testing | +| Holesky | Free (testnet) | Development, testing | + +**Gas Optimization**: Batch multiple witnesses into one transaction using Merkle trees. + +### TSA +- Typically $0.10-1.00 per timestamp +- Good for compliance requirements +- RFC 3161 standard + +### Nostr +- Free (decentralized network) +- Lower trust than blockchain +- Good for social proof + +## Implementation Notes + +### Creating a Witness Revision + +1. Identify the revision(s) to witness +2. Choose network (mainnet, sepolia, etc.) +3. If batching, build Merkle tree +4. Submit transaction to blockchain +5. Wait for transaction confirmation +6. Extract transaction details +7. Generate Merkle proofs (if batched) +8. Create witness revision(s) + +### Verifying a Witness Revision + +#### Single Revision (No Batching) +``` +1. Verify merkle_proof is empty +2. Verify merkle_root equals previous_revision +3. Query blockchain for transaction_hash +4. Verify transaction exists and is confirmed +5. Extract witnessed value from transaction +6. Verify it matches merkle_root +7. Check transaction timestamp +``` + +#### Batched Revision +``` +1. Verify merkle_proof is non-empty +2. Compute Merkle root using proof and previous_revision +3. Verify computed root matches merkle_root +4. Query blockchain for transaction_hash +5. Verify merkle_root is stored on-chain +6. Validate transaction timestamp +``` + +### Error Handling + +Common issues and solutions: + +| Issue | Solution | +|-------|----------| +| Transaction not found | Wait longer (may not be confirmed yet) | +| Wrong network | Check transaction on correct network | +| Merkle proof invalid | Regenerate proof from original tree | +| Timestamp mismatch | Check blockchain time vs local time | +| Gas estimation failed | Check wallet balance and gas price | + +## Security Considerations + +### 1. Network Selection +- Use mainnet for production/legal purposes +- Use testnets only for development +- Consider compliance requirements + +### 2. Confirmation Depth +- Wait for sufficient confirmations (6+ for mainnet) +- More confirmations = higher security +- Balance security vs speed requirements + +### 3. Merkle Proof Storage +- Store proofs securely +- Without proof, batched witness can't be verified +- Consider proof backup strategies + +### 4. Timestamp Trust +- Trust blockchain timestamp over local_timestamp +- Account for block time variability +- Consider block reorganizations + +### 5. Cost Management +- Batch witnesses to reduce costs +- Monitor gas prices +- Use appropriate network for use case + +## Advanced Topics + +### Multi-Network Witnessing + +Witness the same revision on multiple networks for redundancy: + +``` +Object → Signature → Witness (Ethereum) → Witness (Nostr) → Witness (TSA) +``` + +Each witness provides independent proof. + +### Periodic Re-Witnessing + +For long-term preservation, periodically re-witness important revisions: + +``` +2024: Object → Witness (Mainnet) +2025: Link to Object → Witness (Mainnet) +2026: Link to 2025 → Witness (Mainnet) +``` + +### Cross-Chain Verification + +Witness on multiple blockchains for increased trust: + +``` +Object → Witness (Ethereum Mainnet) → Witness (Polygon) → Witness (Arbitrum) +``` + +## Relationship with Other Revisions + +- **Object Revisions**: Primary target for witnessing +- **Signature Revisions**: Often witnessed after signing +- **Link Revisions**: Can be witnessed to prove connection timestamp +- **Template Revisions**: Rarely witnessed (they're standalone) + +## See Also + +- [Object Revision](/schema_reference/object_revision) - What typically gets witnessed +- [Signature Revision](/schema_reference/signing_revision) - Often combined with witnessing +- [RFC 3161 - Timestamping](https://www.rfc-editor.org/rfc/rfc3161) - TSA standard +- [Ethereum Smart Contracts](https://ethereum.org/en/developers/docs/smart-contracts/) - On-chain witnessing +- [Merkle Trees](https://en.wikipedia.org/wiki/Merkle_tree) - Batch witnessing structure From 2b56d9980d313aebdee5c816ea975566519d22e0 Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Fri, 5 Dec 2025 12:21:48 +0300 Subject: [PATCH 08/15] verison 3 and use cases --- .claude/settings.json | 3 +- README.md | 289 ++++++- docs.json | 1 + previous_versions/version_3/concepts.mdx | 611 ++++++++++++++ previous_versions/version_3/introduction.mdx | 300 ++++++- previous_versions/version_3/schema.mdx | 577 +++++++++++++ previous_versions/version_3/tooling.mdx | 784 +++++++++++++++++- .../{introduction.mdx => version_4.mdx} | 0 use_cases/document-verification.mdx | 338 ++++++++ 9 files changed, 2876 insertions(+), 27 deletions(-) create mode 100644 previous_versions/version_3/schema.mdx rename previous_versions/version_4/{introduction.mdx => version_4.mdx} (100%) create mode 100644 use_cases/document-verification.mdx diff --git a/.claude/settings.json b/.claude/settings.json index 8002223e..fa2131b1 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -2,7 +2,8 @@ "permissions": { "additionalDirectories": [ "C:\\Users\\ADMIN\\Desktop\\Development\\Rust\\aqua-rs-sdk", - "C:\\Users\\ADMIN\\Desktop\\Development\\Projects\\aqua-docs" + "C:\\Users\\ADMIN\\Desktop\\Development\\Projects\\aqua-docs", + "C:\\Users\\ADMIN\\Desktop\\Development\\Projects\\aqua-js-sdk" ] } } \ No newline at end of file diff --git a/README.md b/README.md index 055c983a..a4419409 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,286 @@ -# Mintlify Starter Kit +# Aqua Protocol Documentation -Use the starter kit to get your docs deployed and ready to customize. +Comprehensive documentation for the Aqua Protocol - a cryptographic protocol for creating verifiable, timestamped revision chains with signatures and blockchain anchoring. -Click the green **Use this template** button at the top of this repo to copy the Mintlify starter kit. The starter kit contains examples with +## About Aqua Protocol -- Guide pages -- Navigation -- Customizations -- API reference pages -- Use of popular components +Aqua Protocol is a decentralized protocol for data integrity and provenance tracking. It enables users to: -**[Follow the full quickstart guide](https://starter.mintlify.com/quickstart)** +- **Create Verifiable Trees**: Link revisions cryptographically to maintain audit trails +- **Sign Data**: Add cryptographic signatures for authentication and non-repudiation +- **Timestamp via Blockchain**: Anchor data to Ethereum, Nostr, or TSA for immutable timestamps +- **Link Dependencies**: Create relationships between separate revision chains +- **Verify Integrity**: Cryptographically verify entire chains of revisions -## Development +### Use Cases -Install the [Mintlify CLI](https://www.npmjs.com/package/mint) to preview your documentation changes locally. To install, use the following command: +- Document notarization and legal evidence +- Supply chain provenance tracking +- Multi-party approval workflows +- Verifiable credentials and identity +- Content versioning with accountability +- Audit trails and compliance + +## Documentation Structure + +This repository contains documentation for multiple version documetataion of the Aqua Protocol: ``` -npm i -g mint +aqua-docs/ +├── introduction.mdx # Getting started with Aqua Protocol +├── quick-start.mdx # Quick start guide +├── schema_reference/ # Current version (v4) schema specs +│ ├── introduction.mdx +│ ├── object_revision.mdx +│ ├── template_revision.mdx +│ ├── signing_revision.mdx +│ ├── witness_revision.mdx +│ └── link_revision.mdx +├── previous_versions/ +│ ├── version_1/ # Legacy version documentation +│ ├── version_2/ # Version 2 documentation +│ │ ├── introduction.mdx +│ │ ├── concepts.mdx +│ │ └── tooling.mdx +│ ├── version_3/ # Version 3 (JS SDK) +│ │ ├── introduction.mdx +│ │ ├── concepts.mdx +│ │ ├── tooling.mdx +│ │ └── schema.mdx +│ └── version_4/ # Version 4 (Current - Rust SDK) +│ └── introduction.mdx +└── docs.json # Documentation configuration ``` -Run the following command at the root of your documentation, where your `docs.json` is located: +## Protocol Versions + +### Version 4 (Current - Beta) +- **Language**: Rust with WASM support +- **SDK**: [aqua-rs-sdk](https://github.com/inblockio/aqua-rs-sdk) +- **Features**: Template system with JSON Schema, formal type system, cross-platform +- **Status**: Beta, recommended for new projects + +### Version 3 (Stable) +- **Language**: JavaScript/TypeScript +- **SDK**: [aqua-js-sdk](https://github.com/inblockio/aqua-verifier-js-lib) +- **Features**: Multi-platform (Node.js, Web, React Native), comprehensive signing methods +- **Status**: Production-ready, mature implementation + +### Version 2 & 1 (Legacy) +- Historical versions for reference +- Not recommended for new projects + +## Local Development + +### Prerequisites + +- Node.js v20.9.0 or later +- npm or yarn + +### Setup + +1. **Clone the repository** + ```bash + git clone <repository-url> + cd aqua-docs + ``` + +2. **Install Mintlify CLI** + + The documentation is built with Mintlify for rendering. Install the CLI globally: + ```bash + npm install -g mint + ``` + +3. **Start the development server** + + Run the following command in the root directory (where `docs.json` is located): + ```bash + mint dev + ``` + +4. **View the documentation** + + Open your browser and navigate to: + ``` + http://localhost:3000 + ``` +The documentation will auto-reload when you make changes to any `.mdx` files. + +### Troubleshooting + +**Dev environment not running:** +```bash +mint update ``` -mint dev + +**Page loads as 404:** +- Ensure you're in a directory with a valid `docs.json` +- Check that the page is listed in `docs.json` navigation + +**Changes not reflecting:** +- Restart the dev server +- Clear browser cache +- Check for syntax errors in your `.mdx` files + +## Documentation Format + +Documentation files use MDX (Markdown + JSX) with frontmatter: + +```mdx +--- +title: "Page Title" +description: "Brief description for SEO and navigation" +--- + +# Main Heading + +Your content here with standard Markdown syntax. + +## Subheading + +- Lists +- Code blocks +- Tables +- And more ``` -View your local preview at `http://localhost:3000`. +### Writing Guidelines -## Publishing changes +1. **Use Clear Titles**: Make titles descriptive and searchable +2. **Include Examples**: Provide code examples for all concepts +3. **Link Between Pages**: Use relative links to connect related content +4. **Maintain Consistency**: Follow the existing structure and style +5. **Version-Specific**: Keep version-specific content in the appropriate directory -Install our GitHub app from your [dashboard](https://dashboard.mintlify.com/settings/organization/github-app) to propagate changes from your repo to your deployment. Changes are deployed to production automatically after pushing to the default branch. +## Project Structure -## Need help? +### Core Documentation -### Troubleshooting +- **introduction.mdx**: Overview of Aqua Protocol +- **quick-start.mdx**: Quick start guide for new users +- **schema_reference/**: Detailed specifications for v4 + +### Version Archives + +Each version has its own directory with: +- Introduction and getting started +- Core concepts +- SDK/tooling documentation +- Schema specifications + +### Configuration + +- **docs.json**: Navigation structure and site configuration +- **mint.json** (if present): Additional Mintlify settings + +## Contributing + +We welcome contributions to improve the Aqua Protocol documentation! + +### How to Contribute + +1. **Fork the repository** +2. **Create a feature branch** + ```bash + git checkout -b docs/improve-section-name + ``` +3. **Make your changes** + - Follow the writing guidelines + - Test locally with `mint dev` + - Check for broken links +4. **Commit with clear messages** + ```bash + git commit -m "docs: improve explanation of witness revisions" + ``` +5. **Push and create a Pull Request** + ```bash + git push origin docs/improve-section-name + ``` + +### What to Contribute + +- **Fix errors**: Typos, incorrect information, broken links +- **Improve clarity**: Better explanations, more examples +- **Add examples**: Real-world use cases and code samples +- **Update for new versions**: Document new features and changes +- **Translate**: Help make docs accessible in other languages + +### Style Guide + +- Use present tense ("creates" not "created") +- Use active voice ("the SDK provides" not "is provided by the SDK") +- Keep paragraphs short (3-5 sentences) +- Use code blocks for all commands and code snippets +- Include both success and error examples +- Explain the "why" not just the "how" + +## Building for Production + +The documentation is automatically built and deployed when changes are pushed to the main branch (if CI/CD is configured). + +For manual builds: +```bash +mint build +``` + +## Documentation Versions + +When documenting a new protocol version: + +1. Create a new directory: `previous_versions/version_X/` +2. Include these core files: + - `introduction.mdx` - Version overview + - `concepts.mdx` - Core concepts + - `tooling.mdx` - SDK and tools + - `schema.mdx` - Technical specifications +3. Update `docs.json` navigation +4. Link from main introduction page + +## Resources + +### Aqua Protocol +- **GitHub Organization**: [github.com/inblockio](https://github.com/inblockio) +- **Rust SDK**: [aqua-rs-sdk](https://github.com/inblockio/aqua-rs-sdk) +- **JS SDK**: [aqua-js-sdk](https://github.com/inblockio/aqua-verifier-js-lib) + +### Documentation Tools +- **Mintlify Docs**: [mintlify.com/docs](https://mintlify.com/docs) +- **MDX Documentation**: [mdxjs.com](https://mdxjs.com) + +## Support + +### Getting Help + +- **Issues**: Report documentation issues on GitHub +- **Discussions**: Join community discussions +- **SDK Issues**: Report SDK-specific issues in respective repositories + +### Quick Links + +- [Introduction to Aqua Protocol](/introduction) +- [Quick Start Guide](/quick-start) +- [Version 4 Schema Reference](/schema_reference/introduction) +- [Version 3 Documentation](/previous_versions/version_3/introduction) + +## License + +Documentation content is available under the terms specified in the LICENSE file. + +The Aqua Protocol implementations are licensed separately - see their respective repositories for details. + +## Changelog + +### Recent Updates + +- **2024-01**: Added comprehensive v3 documentation (JavaScript SDK) +- **2024-01**: Added v4 schema reference documentation (Rust SDK) +- **2024-01**: Restructured previous versions organization +- **2023-12**: Added v2 tooling documentation + +See individual version documentation for version-specific changelogs. -- If your dev environment isn't running: Run `mint update` to ensure you have the most recent version of the CLI. -- If a page loads as a 404: Make sure you are running in a folder with a valid `docs.json`. +--- -### Resources -- [Mintlify documentation](https://mintlify.com/docs) +**Note**: This is the documentation repository for Aqua Protocol. For protocol implementations, see the SDK repositories linked above. diff --git a/docs.json b/docs.json index 55a282d4..818853a3 100644 --- a/docs.json +++ b/docs.json @@ -54,6 +54,7 @@ "pages": [ "previous_versions/version_3/introduction", "previous_versions/version_3/concepts", + "previous_versions/version_3/schema", "previous_versions/version_3/tooling" ] }, diff --git a/previous_versions/version_3/concepts.mdx b/previous_versions/version_3/concepts.mdx index e69de29b..6843e25d 100644 --- a/previous_versions/version_3/concepts.mdx +++ b/previous_versions/version_3/concepts.mdx @@ -0,0 +1,611 @@ +--- +title: "Concepts" +description: "Core concepts and terminology for Aqua Protocol v3" +--- + +# Aqua Protocol v3 Concepts + +Understanding the core concepts of Aqua Protocol v3 is essential for effectively using the SDK and building applications. This guide covers the fundamental ideas, terminology, and patterns used throughout the protocol. + +## AquaTree + +The **AquaTree** is the primary data structure in v3. It represents a complete, self-contained collection of revisions with their relationships and metadata. + +### Structure + +```typescript +interface AquaTree { + revisions: Revisions // All revisions indexed by hash + file_index: FileIndex // Maps file hashes to filenames + tree?: RevisionTree // Tree structure of revisions + treeMapping?: TreeMapping // Path mappings for navigation +} +``` + +### Components + +#### 1. Revisions +A flat map of all revisions, keyed by their verification hash: + +```typescript +{ + "0xabc123...": { + previous_verification_hash: "0xdef456...", + local_timestamp: "2024-01-01T12:00:00", + revision_type: "file", + // ... other fields + }, + "0xdef456...": { + // ... another revision + } +} +``` + +#### 2. File Index +Maps file content hashes to filenames for reference: + +```typescript +{ + "0xfile_hash_1": "document.pdf", + "0xfile_hash_2": "image.png" +} +``` + +#### 3. Tree Structure (Optional) +Hierarchical representation showing parent-child relationships: + +```typescript +{ + hash: "0xabc123...", // Root revision + children: [ + { + hash: "0xdef456...", + children: [...] + } + ] +} +``` + +#### 4. Tree Mapping (Optional) +Path information for each revision: + +```typescript +{ + paths: { + "0xabc123": ["0xroot", "0xabc123"], + "0xdef456": ["0xroot", "0xabc123", "0xdef456"] + }, + latestHash: "0xdef456..." // Most recent revision +} +``` + +## Revisions + +A **Revision** is a single entry in the AquaTree representing an operation or state change. + +### Common Fields + +All revisions share these base fields: + +| Field | Type | Description | +|-------|------|-------------| +| `previous_verification_hash` | string | Hash linking to previous revision (empty string for genesis) | +| `local_timestamp` | string | ISO 8601 timestamp when revision was created | +| `revision_type` | string | One of: `"file"`, `"form"`, `"signature"`, `"witness"`, `"link"` | +| `version` | string | Protocol version with method: `https://aqua-protocol.org/docs/v3/schema_2 \| SHA256 \| Method: scalar/tree` | + +### Genesis Revision + +The **genesis revision** is the first revision in a chain: +- `previous_verification_hash` is an empty string `""` +- Typically a file or form revision +- Establishes the initial state + +### Verification Hash + +Each revision has a unique **verification hash** computed from its canonical form: + +```typescript +hash = SHA256(canonicalized_revision_data) +``` + +This hash serves as: +- Unique identifier for the revision +- Key in the revisions map +- Reference in `previous_verification_hash` fields + +## Revision Types + +### 1. File Revision + +Stores file metadata and optionally content. + +**Purpose**: Document file presence and content integrity + +**Fields**: +- `file_hash`: SHA256 hash of file content +- `file_nonce`: Random nonce for uniqueness +- `content`: Optional file content (text or binary) +- `leaves`: Array of hashes (tree mode only) + +**Example**: +```json +{ + "previous_verification_hash": "", + "local_timestamp": "2024-01-01T12:00:00", + "revision_type": "file", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "file_hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "file_nonce": "0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c" +} +``` + +### 2. Form Revision + +Stores structured key-value data. + +**Purpose**: Capture form submissions, structured data, or metadata + +**Fields**: +- `file_hash`: Hash of form data +- `file_nonce`: Random nonce +- `content`: Form data as key-value object +- `leaves`: Array of hashes (tree mode only) + +**Example**: +```json +{ + "previous_verification_hash": "", + "local_timestamp": "2024-01-01T12:00:00", + "revision_type": "form", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree", + "file_hash": "0xabc123...", + "file_nonce": "0x123abc...", + "content": { + "name": "John Doe", + "email": "john@example.com", + "status": "approved" + }, + "leaves": ["0x...", "0x...", "0x..."] +} +``` + +### 3. Signature Revision + +Adds cryptographic signature to prove authenticity. + +**Purpose**: Authenticate revisions and establish authorship + +**Fields**: +- `signature`: Signature value (format depends on type) +- `signature_type`: One of `"cli"`, `"metamask"`, `"did"`, `"p12"`, `"inline"` +- `signature_wallet_address`: Ethereum address (for cli/metamask) +- `signature_public_key`: Public key (for p12) + +**Example (MetaMask)**: +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:01:00", + "revision_type": "signature", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "signature_type": "metamask", + "signature": "0x8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f...", + "signature_wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8" +} +``` + +**Example (DID)**: +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:01:00", + "revision_type": "signature", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "signature_type": "did", + "signature": { + "payload": "eyJhbGciOi...", + "signatures": [{ + "protected": "eyJhbGci...", + "signature": "..." + }] + } +} +``` + +### 4. Witness Revision + +Anchors revision to external timestamping service. + +**Purpose**: Prove existence at specific time via blockchain or TSA + +**Fields**: +- `witness_merkle_root`: Root hash of Merkle tree +- `witness_timestamp`: Unix timestamp from witness service +- `witness_network`: Network used (`"mainnet"`, `"sepolia"`, `"holesky"`, `"tsa"`, `"nostr"`) +- `witness_smart_contract_address`: Contract address (Ethereum) +- `witness_transaction_hash`: Transaction hash +- `witness_sender_account_address`: Account that witnessed +- `witness_merkle_proof`: Merkle proof array + +**Example (Ethereum)**: +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:02:00", + "revision_type": "witness", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "witness_merkle_root": "0xdef456...", + "witness_timestamp": 1704110520, + "witness_network": "sepolia", + "witness_smart_contract_address": "0x5FbDB2315678afecb367f032d93F642f64180aa3", + "witness_transaction_hash": "0x9f86d081...", + "witness_sender_account_address": "0x742d35Cc...", + "witness_merkle_proof": [] +} +``` + +### 5. Link Revision + +Connects to other AquaTree chains. + +**Purpose**: Establish relationships between separate chains + +**Fields**: +- `link_type`: Type of link relationship (application-specific) +- `link_verification_hashes`: Array of hashes from other chains +- `link_file_hashes`: Array of corresponding file hashes + +**Example**: +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:03:00", + "revision_type": "link", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "link_type": "dependency", + "link_verification_hashes": [ + "0x111...", + "0x222...", + "0x333..." + ], + "link_file_hashes": [ + "0xaaa...", + "0xbbb...", + "0xccc..." + ] +} +``` + +## Methods: Scalar vs Tree + +V3 supports two canonicalization methods, specified in the version string. + +### Scalar Method + +**Format**: `Method: scalar` + +**How it works**: +- Revision is serialized as-is +- Hash computed directly from canonical JSON +- Simple, straightforward + +**When to use**: +- Small revisions +- Simple file/form data +- Quick operations + +**Example**: +```typescript +version: "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" +// No leaves field +``` + +### Tree Method + +**Format**: `Method: tree` + +**How it works**: +- Content broken into key-value leaves +- Each leaf hashed individually +- Merkle tree constructed from leaves +- Root becomes the verification hash + +**When to use**: +- Large files or forms +- Selective disclosure needed +- Proof of specific fields + +**Example**: +```typescript +version: "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree" +leaves: [ + "0xhash_of_key_value_1", + "0xhash_of_key_value_2", + "0xhash_of_key_value_3" +] +``` + +**Leaf Generation**: +```typescript +// For form data: { "name": "John", "email": "john@example.com" } +leaves = [ + SHA256("name:John"), + SHA256("email:john@example.com") +] +``` + +## Chains and Trees + +### Linear Chain + +Simple sequence of revisions: + +``` +Genesis Signature Witness Update Signature Witness +``` + +Each revision references the previous one. + +### Branching Tree + +Multiple paths from a common ancestor: + +``` + Genesis + + Signature + / \ + Branch A Branch B + + Update 1 Update 2 +``` + +V3 supports branching, allowing parallel development paths. + +### Path Mapping + +The `treeMapping` provides paths to each revision: + +```typescript +{ + paths: { + "genesis_hash": ["genesis_hash"], + "sig_hash": ["genesis_hash", "sig_hash"], + "branch_a_hash": ["genesis_hash", "sig_hash", "branch_a_hash"], + "branch_b_hash": ["genesis_hash", "sig_hash", "branch_b_hash"] + }, + latestHash: "branch_a_hash" // Longest path +} +``` + +## File Object + +Input format for creating revisions: + +```typescript +interface FileObject { + fileName: string // Display name + fileContent: string | // Text content + AquaTree | // Linked tree + Uint8Array | // Binary data + Record<string, string> | // Form data + object // Structured data + path: string // File path + fileSize?: number // Size in bytes +} +``` + +### Content Types + +**Text**: Plain text, HTML, JSON +```typescript +{ + fileName: "doc.txt", + fileContent: "Hello World", + path: "/docs/doc.txt" +} +``` + +**Binary**: Images, PDFs, any binary file +```typescript +{ + fileName: "image.png", + fileContent: new Uint8Array([...]), + path: "/images/image.png" +} +``` + +**Form**: Key-value structured data +```typescript +{ + fileName: "form.json", + fileContent: { + "field1": "value1", + "field2": "value2" + }, + path: "/forms/form.json" +} +``` + +**Link**: Reference to another AquaTree +```typescript +{ + fileName: "linked.json", + fileContent: anotherAquaTree, + path: "/links/linked.json" +} +``` + +## Verification Graph + +Result of verification includes a graph structure: + +```typescript +interface VerificationGraphData { + hash: string + previous_verification_hash: string + timestamp: string + isValidationSuccessful: boolean + revisionType: RevisionType + info: RevisionGraphInfo // Type-specific details + verificationGraphData: VerificationGraphData[] // Children + linkVerificationGraphData: VerificationGraphData[] // Links +} +``` + +### Traversing the Graph + +```typescript +function printVerification(graph: VerificationGraphData, depth = 0) { + const indent = " ".repeat(depth); + const status = graph.isValidationSuccessful ? "" : ""; + console.log(`${indent}${status} ${graph.revisionType} (${graph.hash.slice(0, 10)}...)`); + + // Traverse children + graph.verificationGraphData.forEach(child => { + printVerification(child, depth + 1); + }); + + // Traverse links + graph.linkVerificationGraphData.forEach(link => { + console.log(`${indent} Linked:`); + printVerification(link, depth + 2); + }); +} +``` + +## Credentials + +Configuration for signing and witnessing: + +```typescript +interface CredentialsData { + mnemonic: string // BIP39 mnemonic for CLI signing + nostr_sk: string // Nostr secret key + did_key: string // DID key for DID signing + alchemy_key: string // Alchemy API key for verification + witness_eth_network: string // "mainnet", "sepolia", "holesky" + witness_method: string // "cli" or "metamask" + p12_password?: string // P12 certificate password + p12_content?: string // P12 certificate content +} +``` + +## Logging + +V3 uses typed logging throughout: + +```typescript +enum LogType { + SUCCESS = "success", + INFO = "info", + ERROR = "error", + WARNING = "warning", + HINT = "hint", + DEBUGDATA = "debug_data", + // ... revision types with emojis + FILE = "file", // = + LINK = "link", // = + SIGNATURE = "signature", // = + WITNESS = "witness", // =@ + FORM = "form" // = +} +``` + +Each operation returns logs for debugging and user feedback. + +## Best Practices + +### 1. Genesis Patterns + +**Single File**: +``` +File Genesis Sign Witness +``` + +**Form Data**: +``` +Form Genesis Sign Witness +``` + +### 2. Update Patterns + +**Content Update**: +``` +... New File Revision Sign Witness +``` + +**Multi-Party**: +``` +... Sign (Party 1) Sign (Party 2) Witness +``` + +### 3. Linking Patterns + +**Dependencies**: +``` +Main Document Link (to dependencies) Sign Witness +``` + +**Aggregation**: +``` +Component 1  +Component 2  Aggregation Link Sign Witness +Component 3  +``` + +### 4. Verification Patterns + +**Full Chain**: +```typescript +const result = await aquafier.verifyRevisionChain(aquaTree); +``` + +**Specific Revision**: +```typescript +const revision = aquaTree.revisions[specificHash]; +// Manually verify hash computation +``` + +### 5. Storage Patterns + +**Database**: Store serialized AquaTree JSON +```typescript +const json = JSON.stringify(aquaTree); +db.save(documentId, json); +``` + +**File System**: Save as .aqua.json file +```typescript +fs.writeFileSync('document.aqua.json', JSON.stringify(aquaTree, null, 2)); +``` + +## Common Patterns + +### Document Lifecycle + +``` +1. Create File Genesis +2. Review Sign (Reviewer) +3. Approve Sign (Approver) +4. Timestamp Witness (Ethereum) +5. Archive Store AquaTree +6. Verify Check entire chain +``` + +### Multi-Document Project + +``` +1. Create each document Individual AquaTrees +2. Link together Link Revision in main tree +3. Sign project Sign main tree +4. Witness Witness main tree +5. All documents timestamped through link +``` + +## See Also + +- [Introduction](/previous_versions/version_3/introduction) - Overview and quick start +- [Tooling](/previous_versions/version_3/tooling) - SDK API reference +- [Schema Reference](/previous_versions/version_3/schema) - Detailed specifications diff --git a/previous_versions/version_3/introduction.mdx b/previous_versions/version_3/introduction.mdx index 64bf9160..bebbb6d6 100644 --- a/previous_versions/version_3/introduction.mdx +++ b/previous_versions/version_3/introduction.mdx @@ -1,4 +1,302 @@ +--- +title: "Aqua Protocol v3" +description: "Introduction to Aqua Protocol version 3 with JavaScript/TypeScript SDK" +--- +# Aqua Protocol v3 +Aqua Protocol v3 is a mature version of the protocol with a comprehensive JavaScript/TypeScript SDK. It provides a robust framework for creating verifiable revision chains with support for files, forms, signatures, witnesses, and links. -to read about v4 visit /schema_reference/introduction \ No newline at end of file +## Overview + +Version 3 represents a stable, production-ready implementation of the Aqua Protocol specifically designed for JavaScript/TypeScript environments. It offers: + +- **Cross-Platform Support**: Node.js, Web browsers, and React Native +- **Type Safety**: Full TypeScript support with comprehensive type definitions +- **Flexible Revision Types**: File, Form, Signature, Witness, and Link revisions +- **Multiple Signing Methods**: CLI, MetaMask, DID, and P12 certificate signing +- **Multi-Network Witnessing**: Ethereum (mainnet, Sepolia, Holesky), Nostr, and TSA +- **Tree Structure**: Native support for revision trees and path mapping + +## Version Identifier + +``` +https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar/tree +``` + +## Core Components + +### AquaTree Structure + +The AquaTree is the core data structure in v3: + +```typescript +interface AquaTree { + revisions: Revisions // Map of revision hash to revision data + file_index: FileIndex // Map of file hash to filename + tree?: RevisionTree // Tree structure representation + treeMapping?: TreeMapping // Path mappings for navigation +} +``` + +### Revision Types + +V3 supports five types of revisions: + +1. **File Revision** - Store file metadata and content hashes +2. **Form Revision** - Store structured form data with key-value pairs +3. **Signature Revision** - Add cryptographic signatures +4. **Witness Revision** - Timestamp via blockchain or TSA +5. **Link Revision** - Connect to other AquaTree chains + +## Key Features + +### 1. Dual Mode Support + +**Scalar Mode**: Direct hash computation +```typescript +version: "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar" +``` + +**Tree Mode**: Merkle tree-based with leaves +```typescript +version: "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree" +leaves: ["hash1", "hash2", "hash3", ...] +``` + +### 2. Platform Flexibility + +```typescript +// Node.js +import Aquafier from 'aqua-js-sdk'; + +// Web Browser +import Aquafier from 'aqua-js-sdk/web'; + +// React Native +import Aquafier from 'aqua-js-sdk/react-native'; +``` + +### 3. Comprehensive Signing + +- **CLI Signing**: Uses mnemonic phrase +- **MetaMask**: Browser extension integration +- **DID**: Decentralized identifiers with JWS +- **P12**: Certificate-based signing +- **Inline**: Pre-computed signatures + +### 4. Multi-Network Witnessing + +- **Ethereum**: Mainnet, Sepolia, Holesky testnets +- **Nostr**: Decentralized social network +- **TSA**: RFC 3161 timestamp authorities + +### 5. Content Flexibility + +File content can be: +- **Text**: HTML, plain text, JSON +- **Binary**: Images, PDFs, any file type (as Uint8Array) +- **Forms**: Key-value structured data +- **Links**: References to other AquaTrees + +## Quick Start Example + +```typescript +import Aquafier, { FileObject } from 'aqua-js-sdk'; + +// Initialize Aquafier +const aquafier = new Aquafier(); + +// Create file object +const fileObject: FileObject = { + fileName: "document.txt", + fileContent: "Important document content", + path: "/documents/document.txt" +}; + +// Create genesis revision +const result = await aquafier.createGenesisRevision(fileObject); + +if (result.isErr) { + console.error("Error creating revision"); + result.logs.forEach(log => console.log(log)); + return; +} + +// Access the AquaTree +const aquaTree = result.data.aquaTree; + +// Sign the revision +const signResult = await aquafier.signRevision( + aquaTree, + "cli", // or "metamask", "did", "p12" + credentials +); + +// Witness to blockchain +const witnessResult = await aquafier.witnessRevision( + signResult.data.aquaTree, + "eth", // or "nostr", "tsa" + witnessConfig +); + +// Save aquaTree JSON for storage/transmission +const json = JSON.stringify(witnessResult.data.aquaTree); +``` + +## Architecture + +### Revision Chain Structure + +``` +Genesis Revision (File/Form) + ↓ previous_verification_hash +Signature Revision + ↓ previous_verification_hash +Witness Revision + ↓ previous_verification_hash +New Content Revision + ↓ previous_verification_hash +... +``` + +### Tree Branching + +V3 supports tree structures for branching revisions: + +``` + Genesis + ↓ + Signature + / \ + Branch A Branch B + ↓ ↓ + Update 1 Update 2 +``` + +## Common Fields + +All revisions share these core fields: + +| Field | Type | Description | +|-------|------|-------------| +| `previous_verification_hash` | string | Hash of previous revision (empty for genesis) | +| `local_timestamp` | string | ISO 8601 timestamp | +| `revision_type` | string | Type: `"file"`, `"form"`, `"signature"`, `"witness"`, `"link"` | +| `version` | string | Protocol version and method identifier | + +## Installation + +```bash +npm install aqua-js-sdk +``` + +### Requirements + +- Node.js v20.9.0 or later +- TypeScript 5.3+ (optional, for type checking) + +### Peer Dependencies + +- `ethers` ^6.7.1 (for Ethereum operations) +- `react-native-fs` (optional, for React Native) +- `@react-native-async-storage/async-storage` (optional, for React Native) + +## Use Cases + +### Document Notarization +``` +Document → Sign (Author) → Witness (Ethereum) → Verifiable Proof +``` + +### Form Data Accountability +``` +Form Submission → Sign (User) → Witness → Audit Trail +``` + +### Multi-Party Approval +``` +Document → Sign (Party 1) → Sign (Party 2) → Witness → Approved +``` + +### Supply Chain Tracking +``` +Event 1 → Link to Event 2 → Link to Event 3 → Complete Chain +``` + +### Content Versioning +``` +Version 1 → Update → Version 2 → Update → Version 3 → History +``` + +## Verification + +V3 includes comprehensive verification capabilities: + +```typescript +// Verify entire chain +const verification = await aquafier.verifyRevisionChain(aquaTree); + +// Check results +verification.verificationGraphData.forEach(node => { + console.log(`${node.revisionType}: ${node.isValidationSuccessful ? '✓' : '✗'}`); +}); +``` + +## Key Differences from v4 + +| Feature | v3 | v4 | +|---------|----|----| +| Language | JavaScript/TypeScript | Rust (with WASM support) | +| Template System | No formal templates | Template revisions with JSON Schema | +| Signature Types | 4 types (CLI, MetaMask, DID, P12) | 3 types (RSA, EIP-191, DID:JWS) | +| Version Format | URL with embedded method | URL only, method as field | +| Form Support | Native form revision type | Forms as object revisions with templates | +| Platform Focus | Web/Node.js/React Native | Cross-platform with WASM | + +## Migration Considerations + +### From v3 to v4 + +- **Breaking Changes**: Schema structure differs significantly +- **No Direct Migration**: v3 and v4 chains are not directly compatible +- **Use Case**: Continue using v3 for JavaScript-first projects +- **Future**: v4 offers more structure and cross-platform consistency + +### When to Use v3 + +- Existing JavaScript/TypeScript projects +- React Native applications +- Need for form revision type +- Mature, stable implementation required +- Quick prototyping and development + +### When to Use v4 + +- New projects requiring maximum interoperability +- Need for formal schema validation +- Rust or multi-language environments +- WASM compilation for web +- Template-based data structures + +## Community and Support + +- **GitHub**: [aqua-verifier-js-lib](https://github.com/inblockio/aqua-verifier-js-lib) +- **Issues**: Report bugs and request features on GitHub +- **Documentation**: Examples in `/examples` directory + +## Next Steps + +- [Concepts](/previous_versions/version_3/concepts) - Core concepts and terminology +- [Tooling](/previous_versions/version_3/tooling) - SDK usage and API reference +- [Schema Reference](/previous_versions/version_3/schema) - Detailed revision specifications +- [Examples](https://github.com/inblockio/aqua-verifier-js-lib/tree/main/examples) - Code examples + +## Version History + +- **3.2.1**: Current stable release +- **3.2.0**: React Native support added +- **3.1.x**: Performance improvements +- **3.0.0**: Major release with TypeScript rewrite + +For detailed changelog, see the [GitHub releases](https://github.com/inblockio/aqua-verifier-js-lib/releases). diff --git a/previous_versions/version_3/schema.mdx b/previous_versions/version_3/schema.mdx new file mode 100644 index 00000000..9dec9e34 --- /dev/null +++ b/previous_versions/version_3/schema.mdx @@ -0,0 +1,577 @@ +--- +title: "Schema Reference" +description: "Detailed schema specifications for Aqua Protocol v3 revisions" +--- + +# Aqua Protocol v3 - Schema Reference + +This document provides comprehensive technical specifications for all revision types in Aqua Protocol v3. Each revision type has specific fields and validation rules. + +## Version String Format + +``` +https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: {scalar|tree} +``` + +**Components:** +- Protocol URL: `https://aqua-protocol.org/docs/v3/schema_2` +- Hash Algorithm: `SHA256` +- Canonicalization Method: `scalar` or `tree` + +## Common Fields + +All revisions share these mandatory fields: + +| Field | Type | Description | Validation | +|-------|------|-------------|------------| +| `previous_verification_hash` | string | Hash of previous revision | Empty string for genesis, otherwise 64-char hex with `0x` prefix | +| `local_timestamp` | string | ISO 8601 timestamp | Valid ISO 8601 format: `YYYY-MM-DDTHH:mm:ss` | +| `revision_type` | string | Type of revision | One of: `"file"`, `"form"`, `"signature"`, `"witness"`, `"link"` | +| `version` | string | Protocol version and method | Must match format above | + +--- + +## File Revision + +Represents a file with metadata and optional content. + +### Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `previous_verification_hash` | string | Yes | Previous revision hash (empty for genesis) | +| `local_timestamp` | string | Yes | ISO 8601 timestamp | +| `revision_type` | string | Yes | Must be `"file"` | +| `version` | string | Yes | Protocol version string | +| `file_hash` | string | Yes | SHA256 hash of file content (hex with `0x`) | +| `file_nonce` | string | Yes | Random 16-byte nonce (hex with `0x`) | +| `content` | string/Uint8Array | No | Optional file content | +| `leaves` | string[] | Conditional | Required if `Method: tree`, array of leaf hashes | + +### Genesis File Revision (Scalar) + +```json +{ + "previous_verification_hash": "", + "local_timestamp": "2024-01-01T12:00:00", + "revision_type": "file", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "file_hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "file_nonce": "0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c" +} +``` + +### Genesis File Revision (Tree) + +```json +{ + "previous_verification_hash": "", + "local_timestamp": "2024-01-01T12:00:00", + "revision_type": "file", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree", + "file_hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "file_nonce": "0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c", + "leaves": [ + "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", + "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890" + ] +} +``` + +### With Content + +```json +{ + "previous_verification_hash": "", + "local_timestamp": "2024-01-01T12:00:00", + "revision_type": "file", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "file_hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "file_nonce": "0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c", + "content": "This is the file content as a string" +} +``` + +### Validation Rules + +1. `file_hash` must match SHA256 of file content +2. `file_nonce` must be exactly 16 bytes (32 hex chars + `0x`) +3. If `Method: tree`, `leaves` array must be present +4. If `Method: scalar`, `leaves` must be absent +5. `content` is optional but if present, hash must match `file_hash` + +--- + +## Form Revision + +Stores structured key-value data. + +### Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `previous_verification_hash` | string | Yes | Previous revision hash (empty for genesis) | +| `local_timestamp` | string | Yes | ISO 8601 timestamp | +| `revision_type` | string | Yes | Must be `"form"` | +| `version` | string | Yes | Protocol version string | +| `file_hash` | string | Yes | SHA256 hash of form data | +| `file_nonce` | string | Yes | Random 16-byte nonce | +| `content` | object | Yes | Form data as key-value pairs | +| `leaves` | string[] | Conditional | Required if `Method: tree` | + +### Example (Scalar) + +```json +{ + "previous_verification_hash": "", + "local_timestamp": "2024-01-01T12:00:00", + "revision_type": "form", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "file_hash": "0xabc123def456...", + "file_nonce": "0x7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f", + "content": { + "name": "John Doe", + "email": "john@example.com", + "organization": "Example Corp", + "role": "Developer" + } +} +``` + +### Example (Tree) + +```json +{ + "previous_verification_hash": "", + "local_timestamp": "2024-01-01T12:00:00", + "revision_type": "form", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: tree", + "file_hash": "0xabc123def456...", + "file_nonce": "0x7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f", + "content": { + "name": "John Doe", + "email": "john@example.com", + "organization": "Example Corp", + "role": "Developer" + }, + "leaves": [ + "0x...", // SHA256("name:John Doe") + "0x...", // SHA256("email:john@example.com") + "0x...", // SHA256("organization:Example Corp") + "0x..." // SHA256("role:Developer") + ] +} +``` + +### Leaf Computation (Tree Mode) + +For each key-value pair in `content`: +```typescript +leaf_hash = SHA256(`${key}:${value}`) +``` + +### Validation Rules + +1. `content` must be a valid JSON object +2. All values in `content` must be strings +3. `file_hash` must match hash of canonicalized content +4. If `Method: tree`, number of leaves must match number of keys in content + +--- + +## Signature Revision + +Adds cryptographic signature to verify authenticity. + +### Common Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `previous_verification_hash` | string | Yes | Hash of revision being signed | +| `local_timestamp` | string | Yes | ISO 8601 timestamp | +| `revision_type` | string | Yes | Must be `"signature"` | +| `version` | string | Yes | Protocol version string | +| `signature_type` | string | Yes | Type: `"cli"`, `"metamask"`, `"did"`, `"p12"`, `"inline"` | + +### CLI / MetaMask Signature + +**Additional Fields:** +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `signature` | string | Yes | Hex-encoded signature (65 bytes for ECDSA) | +| `signature_wallet_address` | string | Yes | Ethereum address (EIP-55 checksummed) | + +**Example:** +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:01:00", + "revision_type": "signature", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "signature_type": "cli", + "signature": "0x8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d1c", + "signature_wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8" +} +``` + +### DID Signature + +**Additional Fields:** +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `signature` | object | Yes | JWS (JSON Web Signature) object | + +**Signature Object Structure:** +```typescript +{ + payload: string; // Base64url-encoded payload + signatures: [{ + protected: string; // Base64url-encoded protected header + signature: string; // Base64url-encoded signature + }] +} +``` + +**Example:** +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:01:00", + "revision_type": "signature", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "signature_type": "did", + "signature": { + "payload": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19", + "signatures": [{ + "protected": "eyJhbGciOiJFZERTQSJ9", + "signature": "kKvXJ_qjJRtGQFLpRvQlCdXMFD8sSE4DTlbMmLqg0BJ9FQKLHvX7y_z5Pr8u0xT8D2vCj9qL1KzN4rP2MzKfBQ" + }] + } +} +``` + +### P12 Certificate Signature + +**Additional Fields:** +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `signature` | string | Yes | Hex-encoded signature | +| `signature_public_key` | string | Yes | Hex-encoded DER public key | + +**Example:** +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:01:00", + "revision_type": "signature", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "signature_type": "p12", + "signature": "0x...", + "signature_public_key": "0x308201a2300d06092a864886f70d01010105000382018f..." +} +``` + +### Inline Signature + +Same as CLI/MetaMask but with pre-computed signature. + +### Validation Rules + +1. Signature must be verifiable using provided credentials +2. For CLI/MetaMask: Address must be recoverable from signature +3. For DID: JWS must be valid and verifiable +4. For P12: Signature must verify with public key +5. Signature must be computed over `previous_verification_hash` + +--- + +## Witness Revision + +Anchors revision to blockchain or timestamping service. + +### Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `previous_verification_hash` | string | Yes | Hash being witnessed | +| `local_timestamp` | string | Yes | ISO 8601 timestamp | +| `revision_type` | string | Yes | Must be `"witness"` | +| `version` | string | Yes | Protocol version string | +| `witness_merkle_root` | string | Yes | Root hash of Merkle tree | +| `witness_timestamp` | number | Yes | Unix timestamp from witness service | +| `witness_network` | string | Yes | Network: `"mainnet"`, `"sepolia"`, `"holesky"`, `"tsa"`, `"nostr"` | +| `witness_smart_contract_address` | string | Conditional | Required for Ethereum | +| `witness_transaction_hash` | string | Yes | Transaction or event hash | +| `witness_sender_account_address` | string | Conditional | Required for Ethereum | +| `witness_merkle_proof` | string[] | Yes | Merkle proof (empty for single witness) | + +### Ethereum Witness Example + +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:02:00", + "revision_type": "witness", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "witness_merkle_root": "0xdef456...", + "witness_timestamp": 1704110520, + "witness_network": "sepolia", + "witness_smart_contract_address": "0x5FbDB2315678afecb367f032d93F642f64180aa3", + "witness_transaction_hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "witness_sender_account_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8", + "witness_merkle_proof": [] +} +``` + +### Batched Witness Example + +Multiple revisions witnessed in single transaction: + +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:02:00", + "revision_type": "witness", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "witness_merkle_root": "0xroot...", + "witness_timestamp": 1704110520, + "witness_network": "mainnet", + "witness_smart_contract_address": "0x5FbDB2315678afecb367f032d93F642f64180aa3", + "witness_transaction_hash": "0x9f86d081...", + "witness_sender_account_address": "0x742d35Cc...", + "witness_merkle_proof": [ + "0xsibling_hash_1", + "0xsibling_hash_2", + "0xsibling_hash_3" + ] +} +``` + +### Nostr Witness Example + +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:02:00", + "revision_type": "witness", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "witness_merkle_root": "0xabc123...", + "witness_timestamp": 1704110520, + "witness_network": "nostr", + "witness_smart_contract_address": "", + "witness_transaction_hash": "nevent1qqsw...", + "witness_sender_account_address": "npub1...", + "witness_merkle_proof": [] +} +``` + +### TSA Witness Example + +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:02:00", + "revision_type": "witness", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "witness_merkle_root": "0xabc123...", + "witness_timestamp": 1704110520, + "witness_network": "tsa", + "witness_smart_contract_address": "https://timestamp.digicert.com", + "witness_transaction_hash": "base64_tsa_response", + "witness_sender_account_address": "", + "witness_merkle_proof": [] +} +``` + +### Validation Rules + +1. For single witness: `witness_merkle_proof` must be empty array +2. For single witness: `witness_merkle_root` equals `previous_verification_hash` +3. For batched: Merkle proof must verify back to `witness_merkle_root` +4. Transaction must exist and be confirmed on specified network +5. `witness_timestamp` should match blockchain/service timestamp +6. For Ethereum: Contract address and sender address required + +--- + +## Link Revision + +Connects to other AquaTree chains. + +### Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `previous_verification_hash` | string | Yes | Previous revision in this chain | +| `local_timestamp` | string | Yes | ISO 8601 timestamp | +| `revision_type` | string | Yes | Must be `"link"` | +| `version` | string | Yes | Protocol version string | +| `link_type` | string | No | Application-specific link type | +| `link_verification_hashes` | string[] | Yes | Array of hashes from other chains | +| `link_file_hashes` | string[] | No | Corresponding file hashes | + +### Example + +```json +{ + "previous_verification_hash": "0xabc123...", + "local_timestamp": "2024-01-01T12:03:00", + "revision_type": "link", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "link_type": "dependencies", + "link_verification_hashes": [ + "0x111222333444555666777888999000aaabbbcccdddeeefff000111222333444", + "0x222333444555666777888999000aaabbbcccdddeeefff000111222333444555", + "0x333444555666777888999000aaabbbcccdddeeefff000111222333444555666" + ], + "link_file_hashes": [ + "0xfileHash1...", + "0xfileHash2...", + "0xfileHash3..." + ] +} +``` + +### Validation Rules + +1. `link_verification_hashes` must be non-empty array +2. Each hash in array must be valid revision hash +3. If `link_file_hashes` present, must have same length as `link_verification_hashes` +4. Referenced revisions should exist (optional strict validation) + +--- + +## Hash Computation + +### Scalar Method + +1. Serialize revision as canonical JSON (sorted keys) +2. Compute SHA256 hash of serialized string +3. Prefix with `0x` + +```typescript +const canonical = JSON.stringify(sortKeys(revision)); +const hash = "0x" + sha256(canonical).toString('hex'); +``` + +### Tree Method + +1. Extract leaves array from revision +2. Build Merkle tree from leaves +3. Root hash becomes verification hash + +```typescript +const leaves = revision.leaves; +const tree = new MerkleTree(leaves, sha256); +const hash = "0x" + tree.getRoot().toString('hex'); +``` + +--- + +## AquaTree Storage Format + +Complete AquaTree structure for storage/transmission: + +```json +{ + "revisions": { + "0xgenesis_hash": { + "previous_verification_hash": "", + "local_timestamp": "2024-01-01T12:00:00", + "revision_type": "file", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "file_hash": "0x...", + "file_nonce": "0x..." + }, + "0xsignature_hash": { + "previous_verification_hash": "0xgenesis_hash", + "local_timestamp": "2024-01-01T12:01:00", + "revision_type": "signature", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "signature_type": "cli", + "signature": "0x...", + "signature_wallet_address": "0x..." + }, + "0xwitness_hash": { + "previous_verification_hash": "0xsignature_hash", + "local_timestamp": "2024-01-01T12:02:00", + "revision_type": "witness", + "version": "https://aqua-protocol.org/docs/v3/schema_2 | SHA256 | Method: scalar", + "witness_merkle_root": "0x...", + "witness_timestamp": 1704110520, + "witness_network": "sepolia", + "witness_smart_contract_address": "0x...", + "witness_transaction_hash": "0x...", + "witness_sender_account_address": "0x...", + "witness_merkle_proof": [] + } + }, + "file_index": { + "0xfile_hash": "document.pdf" + }, + "tree": { + "hash": "0xgenesis_hash", + "children": [ + { + "hash": "0xsignature_hash", + "children": [ + { + "hash": "0xwitness_hash", + "children": [] + } + ] + } + ] + }, + "treeMapping": { + "paths": { + "0xgenesis_hash": ["0xgenesis_hash"], + "0xsignature_hash": ["0xgenesis_hash", "0xsignature_hash"], + "0xwitness_hash": ["0xgenesis_hash", "0xsignature_hash", "0xwitness_hash"] + }, + "latestHash": "0xwitness_hash" + } +} +``` + +--- + +## Field Constraints + +### Hashes +- Format: Lowercase hexadecimal with `0x` prefix +- Length: 64 characters (32 bytes) + 2-char prefix = 66 total +- Example: `0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08` + +### Timestamps +- Format: ISO 8601 +- Pattern: `YYYY-MM-DDTHH:mm:ss` +- Example: `2024-01-01T12:00:00` + +### Ethereum Addresses +- Format: EIP-55 checksummed +- Length: 42 characters (20 bytes + 0x) +- Mixed case for checksum +- Example: `0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8` + +### Nonces +- Length: Exactly 16 bytes (32 hex chars + 0x) +- Format: Lowercase hexadecimal with `0x` prefix +- Example: `0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c` + +--- + +## Version Compatibility + +- **v3.2.x**: Current version, fully compatible +- **v3.1.x**: Compatible, minor improvements +- **v3.0.x**: Compatible, initial TypeScript release +- **v2.x**: Not compatible, different schema + +--- + +## See Also + +- [Introduction](/previous_versions/version_3/introduction) - Getting started +- [Concepts](/previous_versions/version_3/concepts) - Core concepts +- [Tooling](/previous_versions/version_3/tooling) - SDK API reference diff --git a/previous_versions/version_3/tooling.mdx b/previous_versions/version_3/tooling.mdx index e9b889d8..f3005170 100644 --- a/previous_versions/version_3/tooling.mdx +++ b/previous_versions/version_3/tooling.mdx @@ -1,4 +1,784 @@ --- -title: "Concepts" -description: 'Tools to use' +title: "Tooling & SDK" +description: "Aqua JS SDK API reference and usage guide" --- + +# Aqua Protocol v3 - Tooling & SDK + +The Aqua JS SDK (aqua-js-sdk) is a comprehensive TypeScript library for working with Aqua Protocol v3. It provides a complete API for creating, signing, witnessing, and verifying revision chains across multiple platforms. + +## Installation + +```bash +npm install aqua-js-sdk +``` + +### Platform-Specific Imports + +```typescript +// Node.js (default) +import Aquafier from 'aqua-js-sdk'; + +// Web Browser +import Aquafier from 'aqua-js-sdk/web'; + +// React Native +import Aquafier from 'aqua-js-sdk/react-native'; +``` + +## Core API + +### Aquafier Class + +The main class providing all Aqua Protocol operations. + +#### Constructor + +```typescript +const aquafier = new Aquafier(); +``` + +No configuration needed for initialization. + +--- + +### Creating Revisions + +#### createGenesisRevision() + +Creates the first revision in a new AquaTree. + +**Signature:** +```typescript +async createGenesisRevision( + fileObject: FileObject, + isForm?: boolean, + enableContent?: boolean, + enableScalar?: boolean +): Promise<Result<AquaOperationData, LogData[]>> +``` + +**Parameters:** +- `fileObject`: File data to create revision from +- `isForm`: If true, creates form revision (default: false) +- `enableContent`: Include file content in revision (default: false) +- `enableScalar`: Use scalar method instead of tree (default: true) + +**Returns:** +- Success: `AquaOperationData` with new AquaTree +- Failure: Array of error logs + +**Example:** +```typescript +const fileObject: FileObject = { + fileName: "contract.pdf", + fileContent: pdfBuffer, // Uint8Array or string + path: "/documents/contract.pdf" +}; + +const result = await aquafier.createGenesisRevision(fileObject); + +if (result.isErr) { + result.data.logData.forEach(log => console.error(log)); + return; +} + +const aquaTree = result.data.aquaTree; +``` + +#### createNewRevision() + +Adds a new file/form revision to an existing AquaTree. + +**Signature:** +```typescript +async createNewRevision( + aquaTree: AquaTree, + fileObject: FileObject, + isForm?: boolean, + enableContent?: boolean, + enableScalar?: boolean +): Promise<Result<AquaOperationData, LogData[]>> +``` + +**Example:** +```typescript +const result = await aquafier.createNewRevision( + existingAquaTree, + updatedFileObject, + false, // not a form + false, // don't embed content + true // use scalar method +); +``` + +--- + +### Signing Revisions + +#### signRevision() + +Signs the latest revision in an AquaTree. + +**Signature:** +```typescript +async signRevision( + aquaTree: AquaTree, + signType: SignType, + credentials?: CredentialsData, + inlineOptions?: InlineSignerOptions +): Promise<Result<AquaOperationData, LogData[]>> +``` + +**Parameters:** +- `signType`: One of `"cli"`, `"metamask"`, `"did"`, `"p12"`, `"inline"` +- `credentials`: Credentials for CLI, DID, or P12 signing +- `inlineOptions`: Pre-computed signature for inline mode + +**Sign Types:** + +##### CLI Signing +Uses BIP39 mnemonic to derive wallet and sign. + +```typescript +const credentials: CredentialsData = { + mnemonic: "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about", + // ... other fields +}; + +const result = await aquafier.signRevision( + aquaTree, + "cli", + credentials +); +``` + +##### MetaMask Signing +Opens MetaMask for user to sign (browser only). + +```typescript +const result = await aquafier.signRevision( + aquaTree, + "metamask" +); +``` + +**React Native MetaMask:** +```typescript +const result = await aquafier.signRevision( + aquaTree, + "metamask", + undefined, + { + deepLinkUrl: "metamask://", + callbackUrl: "myapp://metamask-callback", + onDeepLinkReady: (url) => { + // Open MetaMask app + Linking.openURL(url); + } + } +); +``` + +##### DID Signing +Signs with Decentralized Identifier. + +```typescript +const credentials: CredentialsData = { + did_key: "your-did-key-here", + // ... other fields +}; + +const result = await aquafier.signRevision( + aquaTree, + "did", + credentials +); +``` + +##### P12 Certificate Signing +Signs with P12 certificate. + +```typescript +const credentials: CredentialsData = { + p12_password: "certificate-password", + p12_content: "base64-encoded-p12-content", + // ... other fields +}; + +const result = await aquafier.signRevision( + aquaTree, + "p12", + credentials +); +``` + +##### Inline Signing +Use pre-computed signature. + +```typescript +const inlineOptions: InlineSignerOptions = { + walletAddress: "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8", + signature: "0x8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f..." +}; + +const result = await aquafier.signRevision( + aquaTree, + "inline", + undefined, + inlineOptions +); +``` + +--- + +### Witnessing Revisions + +#### witnessRevision() + +Timestamps a revision via blockchain or TSA. + +**Signature:** +```typescript +async witnessRevision( + aquaTree: AquaTree, + witnessType: WitnessType, + witnessConfig: WitnessConfig, + credentials?: CredentialsData, + witnessPlatform?: WitnessPlatformType, + inlineOptions?: InlineWitnessOptions +): Promise<Result<AquaOperationData, LogData[]>> +``` + +**Parameters:** +- `witnessType`: `"eth"`, `"nostr"`, or `"tsa"` +- `witnessConfig`: Network and contract configuration +- `credentials`: Credentials for signing transaction +- `witnessPlatform`: `"cli"` or `"metamask"` (Ethereum only) +- `inlineOptions`: Pre-computed transaction (inline mode) + +#### Ethereum Witnessing + +**Configuration:** +```typescript +const witnessConfig: WitnessConfig = { + witnessEventVerificationHash: latestRevisionHash, + witnessNetwork: "sepolia", // or "mainnet", "holesky" + smartContractAddress: "0x5FbDB2315678afecb367f032d93F642f64180aa3" +}; + +const credentials: CredentialsData = { + mnemonic: "your mnemonic here", + // ... +}; +``` + +**CLI Method** (uses mnemonic): +```typescript +const result = await aquafier.witnessRevision( + aquaTree, + "eth", + witnessConfig, + credentials, + "cli" +); +``` + +**MetaMask Method** (prompts user): +```typescript +const result = await aquafier.witnessRevision( + aquaTree, + "eth", + witnessConfig, + undefined, + "metamask" +); +``` + +#### Nostr Witnessing + +```typescript +const witnessConfig: WitnessConfig = { + witnessEventVerificationHash: latestRevisionHash, + witnessNetwork: "sepolia", // not used for Nostr + smartContractAddress: "" // not used for Nostr +}; + +const credentials: CredentialsData = { + nostr_sk: "your-nostr-secret-key", + // ... +}; + +const result = await aquafier.witnessRevision( + aquaTree, + "nostr", + witnessConfig, + credentials +); +``` + +#### TSA Witnessing + +```typescript +const result = await aquafier.witnessRevision( + aquaTree, + "tsa", + witnessConfig +); +``` + +--- + +### Linking Revisions + +#### linkRevision() + +Creates a link revision connecting to other AquaTrees. + +**Signature:** +```typescript +async linkRevision( + aquaTree: AquaTree, + linkedAquaTrees: AquaTree[], + linkType?: string +): Promise<Result<AquaOperationData, LogData[]>> +``` + +**Example:** +```typescript +const result = await aquafier.linkRevision( + mainAquaTree, + [dependency1Tree, dependency2Tree, dependency3Tree], + "dependencies" +); +``` + +--- + +### Verification + +#### verifyRevisionChain() + +Verifies an entire AquaTree chain. + +**Signature:** +```typescript +async verifyRevisionChain( + aquaTree: AquaTree, + credentials?: CredentialsData +): Promise<VerificationGraphData> +``` + +**Parameters:** +- `aquaTree`: Tree to verify +- `credentials`: Optional, for Ethereum witness lookup + +**Returns:** +- `VerificationGraphData`: Graph structure with verification results + +**Example:** +```typescript +const verificationResult = await aquafier.verifyRevisionChain(aquaTree, credentials); + +// Check overall success +if (verificationResult.isValidationSuccessful) { + console.log("✓ Chain is valid"); +} else { + console.log("✗ Chain validation failed"); +} + +// Traverse verification graph +function printResults(node: VerificationGraphData, depth = 0) { + const indent = " ".repeat(depth); + const status = node.isValidationSuccessful ? "✓" : "✗"; + console.log(`${indent}${status} ${node.revisionType}`); + + node.verificationGraphData.forEach(child => printResults(child, depth + 1)); +} + +printResults(verificationResult); +``` + +#### verifyFormRevision() + +Verifies form-specific data. + +**Signature:** +```typescript +async verifyFormRevision( + aquaTree: AquaTree, + formData: FormData +): Promise<FormVerificationResponseData> +``` + +--- + +### Utility Methods + +#### removeLastRevision() + +Removes the most recent revision from an AquaTree. + +**Signature:** +```typescript +removeLastRevision( + aquaTree: AquaTree +): Result<AquaOperationData, LogData[]> +``` + +**Example:** +```typescript +const result = aquafier.removeLastRevision(aquaTree); + +if (result.isOk) { + const updatedTree = result.data.aquaTree; + console.log("Revision removed successfully"); +} +``` + +#### checkIfFileAlreadyNotarized() + +Checks if a file has already been notarized. + +**Signature:** +```typescript +checkIfFileAlreadyNotarized( + aquaTree: AquaTree, + fileObject: FileObject +): boolean +``` + +#### fetchFilesToBeRead() + +Gets list of files that need content loaded. + +**Signature:** +```typescript +fetchFilesToBeRead(aquaTree: AquaTree): string[] +``` + +--- + +## Type Reference + +### Core Types + +```typescript +interface FileObject { + fileName: string + fileContent: string | AquaTree | Uint8Array | Record<string, string> | object + path: string + fileSize?: number +} + +interface AquaTree { + revisions: Revisions + file_index: FileIndex + tree?: RevisionTree + treeMapping?: TreeMapping +} + +interface Revision { + previous_verification_hash: string + local_timestamp: string + revision_type: RevisionType + version: string + // ... type-specific fields +} + +type RevisionType = "file" | "witness" | "signature" | "form" | "link" +type SignType = "metamask" | "cli" | "did" | "p12" | "inline" +type WitnessType = "tsa" | "eth" | "nostr" +type WitnessNetwork = "sepolia" | "mainnet" | "holesky" +``` + +### Result Type + +```typescript +type Result<T, E> = + | { isOk: true; isErr: false; data: T } + | { isOk: false; isErr: true; data: E } +``` + +### Configuration Types + +```typescript +interface CredentialsData { + mnemonic: string + nostr_sk: string + did_key: string + alchemy_key: string + witness_eth_network: string + witness_method: string + p12_password?: string + p12_content?: string +} + +interface WitnessConfig { + witnessEventVerificationHash: string + witnessNetwork: WitnessNetwork + smartContractAddress: string +} +``` + +--- + +## Platform-Specific Notes + +### Node.js + +Full functionality available: +- All signing methods +- All witnessing methods +- File system access +- HTTP server for MetaMask callback + +```typescript +import Aquafier from 'aqua-js-sdk'; +import fs from 'fs'; + +const aquafier = new Aquafier(); + +// Read file from disk +const fileContent = fs.readFileSync('document.pdf'); + +const fileObject = { + fileName: 'document.pdf', + fileContent: fileContent, + path: './document.pdf' +}; +``` + +### Web Browser + +Most functionality available: +- MetaMask signing (primary method) +- DID signing +- Ethereum witnessing via MetaMask +- Nostr, TSA witnessing + +**Limitations:** +- No P12 signing (requires file system) +- No CLI signing with mnemonic (security risk in browser) + +```typescript +import Aquafier from 'aqua-js-sdk/web'; + +const aquafier = new Aquafier(); + +// File from input element +const file = document.getElementById('fileInput').files[0]; +const arrayBuffer = await file.arrayBuffer(); + +const fileObject = { + fileName: file.name, + fileContent: new Uint8Array(arrayBuffer), + path: file.name +}; +``` + +### React Native + +Most functionality with platform adaptations: +- MetaMask via deep linking +- DID signing +- Limited witnessing + +**Limitations:** +- No local HTTP server +- MetaMask requires custom deep linking +- File system needs react-native-fs + +```typescript +import Aquafier from 'aqua-js-sdk/react-native'; +import RNFS from 'react-native-fs'; + +const aquafier = new Aquafier(); + +// Read file +const fileContent = await RNFS.readFile(filePath, 'base64'); + +const fileObject = { + fileName: 'document.pdf', + fileContent: Buffer.from(fileContent, 'base64'), + path: filePath +}; +``` + +--- + +## Complete Workflow Examples + +### Document Notarization + +```typescript +// 1. Create genesis +const fileObject: FileObject = { + fileName: "contract.pdf", + fileContent: pdfBuffer, + path: "/contracts/contract.pdf" +}; + +let result = await aquafier.createGenesisRevision(fileObject); +let aquaTree = result.data.aquaTree; + +// 2. Sign with CLI +const credentials: CredentialsData = { + mnemonic: process.env.MNEMONIC, + // ... other fields +}; + +result = await aquafier.signRevision(aquaTree, "cli", credentials); +aquaTree = result.data.aquaTree; + +// 3. Witness to Ethereum +const witnessConfig: WitnessConfig = { + witnessEventVerificationHash: Object.keys(aquaTree.revisions)[Object.keys(aquaTree.revisions).length - 1], + witnessNetwork: "sepolia", + smartContractAddress: "0x5FbDB2315678afecb367f032d93F642f64180aa3" +}; + +result = await aquafier.witnessRevision( + aquaTree, + "eth", + witnessConfig, + credentials, + "cli" +); +aquaTree = result.data.aquaTree; + +// 4. Save +fs.writeFileSync('contract.aqua.json', JSON.stringify(aquaTree, null, 2)); +``` + +### Multi-Party Approval + +```typescript +// Party 1: Create and sign +let result = await aquafier.createGenesisRevision(fileObject); +let aquaTree = result.data.aquaTree; + +result = await aquafier.signRevision(aquaTree, "cli", party1Credentials); +aquaTree = result.data.aquaTree; + +// Send aquaTree to Party 2 + +// Party 2: Add signature +result = await aquafier.signRevision(aquaTree, "metamask"); +aquaTree = result.data.aquaTree; + +// Send back to Party 1 + +// Party 1: Witness +result = await aquafier.witnessRevision( + aquaTree, + "eth", + witnessConfig, + party1Credentials, + "cli" +); +aquaTree = result.data.aquaTree; +``` + +### Form Submission with Verification + +```typescript +// 1. Create form genesis +const formData = { + name: "John Doe", + email: "john@example.com", + status: "pending" +}; + +const fileObject: FileObject = { + fileName: "application.json", + fileContent: formData, + path: "/forms/application.json" +}; + +let result = await aquafier.createGenesisRevision(fileObject, true); // isForm=true +let aquaTree = result.data.aquaTree; + +// 2. Sign +result = await aquafier.signRevision(aquaTree, "did", credentials); +aquaTree = result.data.aquaTree; + +// 3. Witness +result = await aquafier.witnessRevision(aquaTree, "nostr", witnessConfig, credentials); +aquaTree = result.data.aquaTree; + +// 4. Verify form +const verifyResult = await aquafier.verifyFormRevision(aquaTree, formData); +console.log("Form valid:", verifyResult.isOk); +``` + +--- + +## Error Handling + +All methods return `Result<T, E>` type. Always check for errors: + +```typescript +const result = await aquafier.createGenesisRevision(fileObject); + +if (result.isErr) { + // Handle error + console.error("Failed to create genesis:"); + result.data.forEach(log => { + console.error(`[${log.logType}] ${log.log}`); + }); + return; +} + +// Success +const aquaTree = result.data.aquaTree; +``` + +--- + +## Best Practices + +1. **Always verify results**: Check `isErr` before using data +2. **Store credentials securely**: Never commit mnemonic/keys +3. **Use environment variables**: Store sensitive data in `.env` +4. **Validate inputs**: Check file sizes and formats before processing +5. **Handle logs**: Display or log all LogData for debugging +6. **Test on testnets**: Use Sepolia/Holesky before mainnet +7. **Save AquaTrees**: Persist JSON after each operation +8. **Verify chains**: Run verification after receiving AquaTrees + +--- + +## Testing + +Create `credentials.json` for testing: + +```json +{ + "mnemonic": "your test mnemonic", + "nostr_sk": "your nostr secret key", + "did_key": "your did key", + "alchemy_key": "your alchemy api key", + "witness_eth_network": "sepolia", + "witness_method": "cli" +} +``` + +Run tests: +```bash +npm test +``` + +Run specific test file: +```bash +npm test -- ./tests/aquafier.test.ts +``` + +--- + +## See Also + +- [Introduction](/previous_versions/version_3/introduction) - Getting started +- [Concepts](/previous_versions/version_3/concepts) - Core concepts +- [Schema Reference](/previous_versions/version_3/schema) - Revision specifications +- [GitHub Repository](https://github.com/inblockio/aqua-verifier-js-lib) - Source code and examples diff --git a/previous_versions/version_4/introduction.mdx b/previous_versions/version_4/version_4.mdx similarity index 100% rename from previous_versions/version_4/introduction.mdx rename to previous_versions/version_4/version_4.mdx diff --git a/use_cases/document-verification.mdx b/use_cases/document-verification.mdx new file mode 100644 index 00000000..49422bab --- /dev/null +++ b/use_cases/document-verification.mdx @@ -0,0 +1,338 @@ +--- +title: "Document Verification" +description: "Ensure document authenticity and integrity with cryptographic verification" +--- + +# Document Verification + +Aqua Protocol provides tamper-proof verification of document integrity through cryptographic proofs, enabling organizations to authenticate documents without relying on centralized authorities. Every document modification is timestamped and permanently recorded, creating an immutable audit trail. + +## Core Capabilities + +### Tamper-Proof Verification +Once a document is notarized in the Aqua Protocol, any modification becomes immediately detectable. The cryptographic hash of the document content is stored in the revision chain, making it mathematically impossible to alter without detection. + +### Timestamp Authentication +Every document revision receives a blockchain-anchored timestamp, providing cryptographic proof of when the document was created or modified. This eliminates disputes about document timelines. + +### Permanent Audit Trails +All document revisions, signatures, and witnesses are permanently recorded in an immutable chain. This creates a complete history of the document lifecycle that can be independently verified. + +### Decentralized Validation +Verification happens cryptographically without requiring trust in intermediaries. Anyone with the document and its Aqua chain can independently verify authenticity and integrity. + +## Use Cases by Industry + +### Legal Documents + +**Contract Authenticity** +- Prove when contracts were signed +- Verify that contract terms haven't been altered +- Establish non-repudiation through digital signatures +- Maintain chain of custody for legal proceedings + +**Evidence Preservation** +- Create tamper-proof records of digital evidence +- Timestamp evidence collection +- Maintain audit trails for admissibility +- Prove evidence integrity in court + +**Notary Services** +- Provide remote notarization with cryptographic proof +- Replace traditional notary stamps with blockchain anchoring +- Enable verifiable notarization across jurisdictions +- Reduce costs while increasing security + +**Legal Compliance** +- Demonstrate compliance with document retention policies +- Prove regulatory filings were submitted on time +- Maintain auditable records for investigations +- Satisfy e-discovery requirements + +### Business Applications + +**Invoice Verification** +- Authenticate invoices to prevent fraud +- Track invoice approvals and modifications +- Provide proof of invoice delivery and receipt +- Enable automated payment processing with verified invoices + +**Purchase Orders** +- Verify PO authenticity between trading partners +- Track PO modifications and approvals +- Prevent unauthorized changes +- Create audit trails for procurement compliance + +**Financial Records** +- Ensure integrity of financial statements +- Track modifications to accounting records +- Satisfy auditor requirements for record verification +- Maintain SOX compliance with immutable audit logs + +**Regulatory Reporting** +- Prove timely submission of regulatory reports +- Demonstrate report integrity over time +- Satisfy audit requirements +- Reduce compliance costs + +### Educational Credentials + +**Diploma Authentication** +- Provide instant verification of degree authenticity +- Eliminate diploma mills and fraudulent credentials +- Enable employers to verify qualifications +- Reduce verification costs and time + +**Transcript Integrity** +- Prevent transcript tampering +- Allow secure sharing with third parties +- Maintain permanent academic records +- Enable credential portability across institutions + +**Certificate Validation** +- Verify professional certifications +- Track certificate expiration dates +- Enable certificate revocation when needed +- Support continuing education tracking + +**Academic Records** +- Create verifiable lifetime learning records +- Enable secure transcript sharing +- Support credential stacking and micro-credentials +- Facilitate credit transfers between institutions + +### Government Documents + +**Identity Documents** +- Authenticate passports and ID cards +- Enable remote identity verification +- Prevent identity fraud +- Support digital identity systems + +**License Verification** +- Verify professional licenses instantly +- Track license renewals and expirations +- Enable license portability across jurisdictions +- Support automated compliance checking + +**Permits and Certifications** +- Authenticate building permits +- Verify safety certifications +- Track permit modifications +- Enable instant permit validation by inspectors + +**Official Records** +- Ensure integrity of government records +- Enable citizen verification of official documents +- Maintain transparent government operations +- Prevent records tampering + +## Key Benefits + +### Eliminate Single Points of Failure +Traditional document verification systems rely on centralized databases that can fail, be hacked, or become unavailable. Aqua Protocol's decentralized approach distributes verification capability, ensuring documents can always be verified even if specific systems are offline. + +### Maintain Document Provenance +Every document modification is recorded with cryptographic proof of who made the change, when it occurred, and what was changed. This complete provenance trail answers questions about document history definitively. + +### Cryptographic Verification +Verification relies on mathematical certainty rather than trust. Hashes, signatures, and blockchain anchors provide proof that can't be forged, even by system administrators. + +### No Trusted Intermediaries Required +Unlike traditional notary or verification services, Aqua Protocol enables anyone to verify document authenticity independently. This reduces costs and increases accessibility. + +### Regulatory Compliance +Industries requiring regulatory compliance benefit from maintained audit trails: +- **Legal firms**: Demonstrate evidence integrity and chain of custody +- **Financial institutions**: Satisfy SOX, GDPR, and financial regulations +- **Healthcare providers**: Maintain HIPAA-compliant document trails +- **Educational institutions**: Provide verifiable credentials that meet accreditation standards + +### Cost Reduction +Automated verification reduces manual processes, eliminates middlemen, speeds up verification times, and prevents fraud losses. + +## How It Works + +### 1. Document Notarization +When a document is first notarized: +- The document content is hashed using SHA3-256 +- A genesis revision is created with the document hash +- The revision is signed by the document creator +- The signature is witnessed on a blockchain +- All data is stored in an immutable Aqua chain + +### 2. Document Updates +When a document is modified: +- A new revision is created referencing the previous revision +- The new content hash is recorded +- The update is signed by authorized parties +- The signature is witnessed for timestamp proof +- The revision chain grows, maintaining complete history + +### 3. Multi-Party Signing +For documents requiring multiple signatures: +- Each party adds their signature as a new revision +- Signatures reference the document revision being signed +- Order of signing is preserved in the chain +- All signatures receive blockchain timestamps +- Final witness anchors the complete signing process + +### 4. Verification +Anyone can verify a document by: +- Computing the hash of the document content +- Comparing it to the hash in the revision chain +- Verifying all signatures cryptographically +- Checking blockchain witness timestamps +- Validating the entire revision chain integrity + +## Real-World Scenarios + +### Scenario 1: Legal Contract Management + +**Challenge**: A law firm needs to manage contracts with guaranteed integrity and provable signing timestamps for multiple parties. + +**Solution**: +- Contract is notarized when drafted, creating the genesis revision +- Each party reviews and signs, adding signature revisions +- Final contract is witnessed on Ethereum mainnet +- All parties receive the complete Aqua chain +- Years later, if disputed, the contract's integrity and signing timeline can be cryptographically proven + +**Benefits**: Non-repudiation, tamper-proof records, defensible timestamps, reduced notary costs + +### Scenario 2: Academic Credential Verification + +**Challenge**: Universities issue thousands of diplomas, and employers need to verify credentials quickly without calling the registrar. + +**Solution**: +- University notarizes each diploma as it's issued +- Diploma includes an Aqua chain with the university's signature +- University witnesses the batch of diplomas on blockchain +- Employers scan QR code or receive Aqua chain from candidate +- Verification happens instantly using Aqua verification tools + +**Benefits**: Instant verification, eliminated fraud, reduced administrative burden, improved candidate experience + +### Scenario 3: Financial Audit Trail + +**Challenge**: A public company must maintain auditable financial records that prove compliance with regulations. + +**Solution**: +- Financial statements are notarized each quarter +- CFO signs the statement, adding signature revision +- External auditor witnesses the statement on blockchain +- Audit trail is preserved permanently +- Regulators can verify statement integrity independently + +**Benefits**: Regulatory compliance, reduced audit costs, defensible records, fraud prevention + +### Scenario 4: Government Permit Issuance + +**Challenge**: Building department issues permits that need to be verified by inspectors, contractors, and the public. + +**Solution**: +- Permit applications are notarized when submitted +- Permit approvals are signed by authorized officials +- Approved permits are witnessed on blockchain +- QR codes on physical permits link to Aqua chains +- Anyone can verify permit authenticity and status + +**Benefits**: Fraud prevention, instant verification, public transparency, reduced administrative overhead + +## Integration Patterns + +### Document Management Systems +Integrate Aqua Protocol into existing DMS platforms to automatically notarize important documents. When documents are finalized, trigger Aqua notarization via SDK. + +### E-Signature Platforms +Enhance e-signature solutions with blockchain-anchored timestamps and cryptographic verification. Each signature becomes a verifiable revision in the Aqua chain. + +### CRM and Business Systems +Add document verification to CRM, ERP, or custom business applications. Automatically notarize quotes, proposals, contracts, and invoices as they're generated. + +### Educational Systems +Integrate with student information systems to automatically notarize transcripts, diplomas, and certificates as they're issued. + +### Government Systems +Add Aqua Protocol to permit, license, and registration systems to provide instant verification capability to citizens and businesses. + +## Best Practices + +### Initial Notarization +- Notarize documents as early as possible in their lifecycle +- Include relevant metadata (document type, parties, purpose) +- Use appropriate method (scalar for small docs, tree for large) +- Sign immediately after creation to establish authorship + +### Multi-Party Documents +- Establish signing order and communicate to all parties +- Each party should verify previous signatures before adding theirs +- Witness after all signatures are collected +- Distribute complete Aqua chain to all parties + +### Long-Term Storage +- Store Aqua chains separately from documents +- Back up chains to multiple locations +- Include Aqua chain with document when transmitting +- Test verification periodically + +### Verification +- Always verify documents received from third parties +- Check entire revision chain, not just the latest revision +- Verify blockchain witnesses for important documents +- Validate signatures match expected signers + +### Privacy Considerations +- Aqua chains don't contain document content by default +- Share chains carefully as they prove document existence +- Use private blockchains if public witnessing is problematic +- Consider what metadata is included in revisions + +## Technical Advantages + +### Cryptographic Security +- SHA3-256 hashing provides computational infeasibility of collision attacks +- ECDSA signatures (65 bytes) provide 128-bit security level +- Blockchain anchoring makes backdating mathematically impossible + +### Scalability +- Document verification is O(n) where n is number of revisions +- Merkle tree mode enables selective disclosure of large documents +- Batch witnessing reduces blockchain transaction costs +- Verification can happen offline after initial chain retrieval + +### Interoperability +- JSON-based format enables easy integration +- Multiple SDK options (Rust, JavaScript/TypeScript) +- Platform-agnostic verification +- Standard cryptographic primitives + +### Future-Proof +- Protocol versioning supports evolution +- Blockchain-agnostic witness mechanism +- Multiple signature algorithm support +- Extensible revision types + +## Common Questions + +**Q: What if the blockchain network goes offline?** +A: Verification of existing documents still works using cryptographic verification of signatures and hashes. Only new witnessing requires blockchain access. Historical witnesses remain provable through transaction records. + +**Q: How long are documents stored?** +A: Aqua Protocol stores only hashes and metadata, not document content. Document storage is separate and managed by users. Aqua chains are small (kilobytes) and can be stored indefinitely. + +**Q: Can witnesses be trusted?** +A: Blockchain witnesses provide cryptographic proof of timestamp. As long as the blockchain network is secure and decentralized, witnesses cannot be backdated or falsified. + +**Q: What about privacy?** +A: By default, only document hashes are stored on-chain, not content. The document itself remains private. Share Aqua chains carefully as they prove document existence at specific times. + +**Q: How do I revoke a document?** +A: Add a revocation revision to the chain. The document history remains (for audit purposes), but new revisions can indicate revoked status. + +## See Also + +- [Supply Chain Tracking](/use_cases/supply-chain) - Apply similar verification to supply chain events +- [Identity Attestation](/use_cases/identity-attestation) - Verify identity credentials +- [Quick Start](/quick-start) - Get started with document verification +- [Schema Reference](/schema_reference/introduction) - Technical specifications From e96c7704c18e39591947501efec5110dd133f7ea Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Fri, 5 Dec 2025 12:30:11 +0300 Subject: [PATCH 09/15] use case docs --- use_cases/introduction.mdx | 219 +++++++++++++++++++-- use_cases/supply-chain.mdx | 388 +++++++++++++++++++++++++++++++++++++ 2 files changed, 596 insertions(+), 11 deletions(-) create mode 100644 use_cases/supply-chain.mdx diff --git a/use_cases/introduction.mdx b/use_cases/introduction.mdx index 4caec9e5..a3b5e0d7 100644 --- a/use_cases/introduction.mdx +++ b/use_cases/introduction.mdx @@ -3,21 +3,218 @@ title: 'Use Cases & Examples' description: 'How can Aqua protocol be used in your project' --- +# Aqua Protocol Use Cases + +Aqua Protocol provides cryptographic verification and provenance tracking for data across diverse industries and applications. By creating immutable chains of revisions with signatures and blockchain anchoring, Aqua enables trust without centralized authorities. + +## Why Aqua Protocol? + +Traditional systems for tracking data provenance, verifying authenticity, and maintaining audit trails rely on centralized databases and trusted intermediaries. These approaches introduce: + +- **Single points of failure**: Centralized systems can be compromised, taken offline, or manipulated +- **Trust requirements**: Users must trust the intermediary to maintain integrity +- **Limited verification**: Third parties cannot independently verify authenticity +- **Vendor lock-in**: Data is trapped in proprietary systems +- **High costs**: Intermediaries charge fees for verification services + +Aqua Protocol solves these problems through: + +- **Decentralized verification**: Anyone can verify data integrity cryptographically +- **Mathematical certainty**: Cryptographic proofs replace trust requirements +- **Immutable history**: Complete audit trails that cannot be altered +- **Open standards**: Platform-agnostic verification using standard algorithms +- **Cost efficiency**: Reduced reliance on intermediaries and manual processes + +## Core Capabilities + +### Tamper-Proof Records +Once data is recorded in an Aqua chain, modifications become immediately detectable. Cryptographic hashes ensure that any change to content, timestamps, or signatures invalidates the chain, providing mathematical proof of tampering. + +### Blockchain Timestamping +Every critical revision can be anchored to Ethereum, Nostr, or TSA timestamping services. This provides cryptographic proof of when data existed, eliminating disputes about timing and preventing backdating. + +### Multi-Party Signatures +Multiple parties can cryptographically sign revisions, establishing non-repudiation and accountability. Each signature is independently verifiable, proving who authorized what and when. + +### Provenance Tracking +Link revisions create relationships between chains, enabling complex provenance graphs. Track how data flows through systems, who touched it, and what transformations occurred. + +### Template-Based Validation +Version 4's template system enforces data schemas with JSON Schema validation, ensuring consistent structure across revisions while maintaining cryptographic integrity. + +## Application Domains + +### Legal and Compliance +Legal documents, contracts, evidence, regulatory filings, and compliance records require guaranteed integrity and provable timestamps. Aqua Protocol provides: +- Non-repudiation through cryptographic signatures +- Defensible timestamps via blockchain anchoring +- Complete audit trails for investigations +- Chain of custody for evidence +- Regulatory compliance documentation + +### Supply Chain and Logistics +Products moving through complex supply chains need provenance tracking from origin to destination. Aqua Protocol enables: +- End-to-end traceability from raw materials to consumer +- Multi-party coordination across manufacturers, distributors, and retailers +- Authenticity verification to prevent counterfeits +- Regulatory compliance for food, pharmaceuticals, and other regulated goods +- Efficient recalls with precise product tracking + +### Identity and Credentials +Educational institutions, professional organizations, and governments issue credentials that need verification. Aqua Protocol provides: +- Instant verification of diplomas, certificates, and licenses +- Revocation capability when credentials expire or are withdrawn +- Portable credentials that individuals control +- Elimination of credential fraud +- Reduced verification costs and time + +### Financial Services +Financial institutions require immutable audit trails for transactions, statements, and regulatory reports. Aqua Protocol offers: +- Tamper-proof financial records +- Provable submission timing for regulatory filings +- Multi-party approval workflows for transactions +- Audit-ready documentation for compliance +- Fraud prevention through verification + +### Healthcare +Patient records, clinical trial data, and medical device tracking demand integrity and privacy. Aqua Protocol enables: +- Verifiable medical records that patients control +- Clinical trial data integrity for regulatory approval +- Medical device tracking and recall management +- HIPAA-compliant audit trails +- Secure sharing between healthcare providers + +### Intellectual Property +Patents, copyrights, trade secrets, and creative works benefit from provable timestamps. Aqua Protocol provides: +- Proof of creation date for prior art disputes +- Version tracking for creative works +- Licensing and royalty audit trails +- Collaborative creation with attribution +- Protection against IP theft + +## Industry-Specific Solutions + +### Manufacturing +- Bill of materials with cryptographic proof +- Quality control inspection records +- Product genealogy from components to finished goods +- Supplier certification verification +- Warranty claim documentation + +### Real Estate +- Property title chains with verified transfers +- Lease agreements with multi-party signatures +- Inspection reports with tamper-proof timestamps +- Escrow milestone documentation +- Regulatory compliance for transactions + +### Energy and Utilities +- Renewable energy certificate tracking +- Carbon credit provenance verification +- Utility meter reading audit trails +- Regulatory compliance documentation +- Asset maintenance history + +### Government and Public Sector +- Passport and identity document verification +- Professional license tracking +- Permit and certification issuance +- Public records integrity +- Voting and election audit trails + +## Technical Flexibility + +Aqua Protocol adapts to diverse requirements through: + +- **Multiple revision types**: Objects, templates, signatures, witnesses, and links +- **Flexible signing methods**: RSA, Ethereum EIP-191, DID:JWS, and more +- **Choice of witnesses**: Ethereum (mainnet, testnets), Nostr, TSA +- **Scalar or tree methods**: Optimize for simplicity or selective disclosure +- **Cross-platform SDKs**: Rust with WASM, JavaScript/TypeScript for any environment +- **Template customization**: Define domain-specific schemas with JSON Schema + +## Getting Started + +Explore the detailed use cases below to understand how Aqua Protocol applies to your specific domain: <CardGroup cols={2}> - <Card title="Document Verification" icon="file-check" href="/essentials/document-verification"> - Learn how to verify documents and ensure authenticity. + <Card title="Document Verification" icon="file-check" href="/use_cases/document-verification"> + Ensure document authenticity and integrity with cryptographic verification. Learn how legal firms, businesses, educational institutions, and government agencies use Aqua Protocol for tamper-proof document management. </Card> - - <Card title="Supply Chain Tracking" icon="truck" href="/essentials/supply-chain"> - Track products through the supply chain with transparency and verification. + + <Card title="Supply Chain Tracking" icon="truck" href="/use_cases/supply-chain"> + Track products through the supply chain with end-to-end transparency. Discover how food, pharmaceutical, manufacturing, and logistics companies implement provenance verification. </Card> - - <Card title="Identity Attestation" icon="id-card" href="/essentials/identity-attestation"> - Implement secure identity verification and credential attestation. + + <Card title="Identity Attestation" icon="id-card" href="/use_cases/identity-attestation"> + Implement secure identity verification and credential attestation. Explore how credentials, certifications, and identity documents gain instant verifiability. </Card> - - <Card title="Examples & Tutorials" icon="graduation-cap" href="/essentials/examples"> - Practical examples and step-by-step tutorials for building with Aqua Protocol. + + <Card title="Examples & Tutorials" icon="graduation-cap" href="/use_cases/examples"> + Practical examples and step-by-step tutorials for building with Aqua Protocol. Get hands-on experience implementing real-world use cases. </Card> </CardGroup> + +## Common Patterns + +Regardless of industry, Aqua Protocol implementations typically follow these patterns: + +### 1. Genesis Creation +Start by creating the initial revision with core data: +- Document content, product information, or credential details +- Relevant metadata (timestamps, identifiers, classifications) +- Template reference for structured data validation + +### 2. Multi-Party Signatures +Collect signatures from relevant parties: +- Creator signs to establish authenticity +- Reviewers sign to indicate approval +- Authorities sign for official endorsement +- Each signature adds non-repudiation + +### 3. Blockchain Witnessing +Anchor critical revisions to blockchain: +- Provides tamper-proof timestamps +- Prevents backdating of revisions +- Enables independent verification +- Satisfies regulatory requirements + +### 4. Provenance Linking +Connect related chains: +- Link components to assemblies +- Reference supporting documents +- Establish dependencies between datasets +- Create complex verification graphs + +### 5. Long-Term Verification +Maintain verifiability over time: +- Store Aqua chains separately from content +- Distribute chains to all stakeholders +- Periodically verify chain integrity +- Update verification tools as needed + +## Benefits Across All Use Cases + +### Trust Without Intermediaries +Cryptographic verification replaces trust in centralized authorities. Anyone can independently verify authenticity, reducing costs and increasing accessibility. + +### Regulatory Compliance +Immutable audit trails satisfy regulators across industries. From SOX compliance in finance to HIPAA in healthcare, Aqua Protocol provides defensible documentation. + +### Cost Reduction +Automated verification eliminates manual processes, reduces fraud losses, speeds up operations, and removes intermediary fees. + +### Enhanced Security +Cryptographic primitives (SHA3-256, ECDSA) provide security that cannot be achieved with traditional databases. Even system administrators cannot forge valid chains. + +### Future-Proof Design +Protocol versioning, extensible revision types, and blockchain-agnostic witnessing ensure Aqua chains remain verifiable as technology evolves. + +## Next Steps + +Ready to implement Aqua Protocol for your use case? + +- Review the detailed use case documentation above +- Check out the [Quick Start Guide](/quick-start) for hands-on implementation +- Explore the [Schema Reference](/schema_reference/introduction) for technical specifications +- Choose your SDK: [Rust (v4)](/previous_versions/version_4/introduction) or [JavaScript (v3)](/previous_versions/version_3/introduction) diff --git a/use_cases/supply-chain.mdx b/use_cases/supply-chain.mdx new file mode 100644 index 00000000..1471bdf5 --- /dev/null +++ b/use_cases/supply-chain.mdx @@ -0,0 +1,388 @@ +--- +title: "Supply Chain Tracking" +description: "End-to-end traceability and provenance verification for supply chain operations" +--- + +# Supply Chain Tracking + +Aqua Protocol provides cryptographic provenance tracking for supply chain operations, enabling end-to-end traceability from raw materials to finished products. Each step in the supply chain is recorded with immutable timestamps, creating a verifiable chain of custody that proves authenticity and tracks movement across multiple parties. + +## Core Capabilities + +### End-to-End Traceability +Track products from origin to destination with cryptographic proof at each step. Every transfer, transformation, and quality check is recorded in an immutable chain, creating a complete product history that can be independently verified. + +### Multi-Party Coordination +Supply chains involve manufacturers, distributors, retailers, regulators, and consumers. Aqua Protocol enables all parties to contribute to the chain while maintaining data integrity, without requiring a central authority. + +### Provenance Verification +Prove the origin and authenticity of products cryptographically. Consumers and businesses can verify that products are genuine, sourced ethically, and meet quality standards without trusting intermediaries. + +### Real-Time Transparency +All stakeholders can verify the current state and history of products in real-time. Blockchain witnesses provide tamper-proof timestamps, ensuring accurate tracking of supply chain events as they occur. + +## Use Cases by Industry + +### Food & Agriculture + +**Farm-to-Table Tracking** +- Record harvest timestamps and origin farm information +- Track temperature and storage conditions during transport +- Prove organic certification and farming practices +- Enable consumers to verify food provenance via QR codes + +**Quality Assurance** +- Document quality inspections at each stage +- Track batch numbers for recall management +- Record processing and packaging timestamps +- Maintain cold chain compliance records + +**Regulatory Compliance** +- Demonstrate compliance with food safety regulations +- Provide audit trails for health inspectors +- Track certifications (organic, fair trade, kosher, halal) +- Prove country of origin for import/export + +**Recall Management** +- Identify affected batches immediately +- Trace contamination to specific sources +- Notify all parties in distribution chain +- Minimize recall scope with precise tracking + +### Pharmaceuticals + +**Drug Authentication** +- Prevent counterfeit medications from entering supply chain +- Verify pharmaceutical manufacturer and production batch +- Track medication from factory to pharmacy +- Enable patients to verify medication authenticity + +**Cold Chain Management** +- Record temperature at every transport stage +- Prove compliance with storage requirements +- Alert stakeholders to temperature excursions +- Maintain regulatory compliance documentation + +**Clinical Trial Management** +- Track investigational drugs through trial phases +- Document chain of custody for trial materials +- Prove compliance with trial protocols +- Maintain audit trails for regulatory submissions + +**Regulatory Reporting** +- Demonstrate compliance with pharmaceutical regulations +- Track serialization and aggregation data +- Provide audit trails for FDA, EMA, and other authorities +- Support Drug Supply Chain Security Act (DSCSA) compliance + +### Manufacturing + +**Component Traceability** +- Track components from suppliers to assembly +- Verify authenticity of critical components +- Manage bill of materials with cryptographic proof +- Prevent counterfeit parts from entering production + +**Quality Control** +- Record inspection results at each manufacturing stage +- Document rework and quality issues +- Track serial numbers through production process +- Maintain statistical process control data + +**Product Genealogy** +- Build complete product history from raw materials +- Track which components went into which products +- Enable root cause analysis for defects +- Support warranty claims with production records + +**Supplier Management** +- Verify supplier certifications and compliance +- Track supplier performance metrics +- Prove ethical sourcing practices +- Manage supplier risk with documented history + +### Logistics & Distribution + +**Shipment Tracking** +- Record custody transfers between carriers +- Timestamp loading and unloading events +- Track location updates throughout journey +- Prove on-time delivery with blockchain witnesses + +**Customs and Border Control** +- Provide immutable documentation for customs +- Prove product origin for tariff classification +- Streamline border crossings with verified data +- Reduce customs delays with cryptographic proof + +**Last-Mile Delivery** +- Verify final delivery to customer +- Timestamp customer receipt +- Prove condition at delivery +- Enable dispute resolution with documented proof + +**Warehouse Management** +- Track inventory movements within facilities +- Record picking, packing, and shipping operations +- Maintain lot and serial number traceability +- Integrate with ERP systems for real-time updates + +## Key Benefits + +### Eliminate Counterfeits +Counterfeit products cost industries billions annually. Aqua Protocol makes counterfeiting economically infeasible by requiring cryptographic proof at each supply chain step. Fake products cannot produce valid Aqua chains, making them easily identifiable. + +### Improve Recall Efficiency +When safety issues arise, rapid recall is critical. Aqua Protocol enables precise identification of affected products, reducing recall scope and cost. Complete provenance data shows exactly which batches are impacted and where they were distributed. + +### Increase Consumer Trust +Consumers increasingly demand transparency about product origins and manufacturing. Scannable QR codes linked to Aqua chains let customers verify authenticity, ethical sourcing, and quality standards, building brand trust. + +### Streamline Compliance +Regulatory compliance requires extensive documentation and audit trails. Aqua Protocol automatically creates tamper-proof records that satisfy regulators, reducing compliance costs and audit preparation time. + +### Enable Ethical Sourcing +Prove that products meet ethical standards for labor practices, environmental impact, and sustainable sourcing. Immutable records prevent "ethics washing" and provide verifiable proof of responsible practices. + +### Reduce Liability +Complete documentation of supply chain events reduces liability exposure. When disputes arise, cryptographic proof shows exactly what happened, when, and who was responsible. + +## How It Works + +### 1. Product Registration +When a product enters the supply chain: +- Genesis revision is created with product identifier +- Initial metadata recorded (SKU, batch number, origin) +- Manufacturer signs the genesis revision +- Signature is witnessed on blockchain for timestamp proof +- Product receives unique Aqua chain + +### 2. Supply Chain Events +As the product moves through the supply chain: +- Each event creates a new revision (transfer, inspection, processing) +- Event data includes timestamp, location, responsible party +- Each party signs their contributions to the chain +- Critical events are witnessed for regulatory proof +- Chain grows to include complete product history + +### 3. Multi-Party Signatures +When custody transfers between parties: +- Sending party signs transfer revision +- Receiving party verifies and countersigns +- Both signatures reference the same state +- Blockchain witness timestamps the transfer +- Prevents disputes about transfer timing or condition + +### 4. Verification +At any point, stakeholders can verify: +- Scan product QR code to retrieve Aqua chain +- Verify all cryptographic signatures +- Check blockchain witnesses for timestamps +- Validate entire chain integrity +- Confirm product authenticity and history + +## Real-World Scenarios + +### Scenario 1: Pharmaceutical Supply Chain + +**Challenge**: A pharmaceutical company must track medication from manufacturing through distribution to pharmacies while maintaining cold chain compliance and preventing counterfeits. + +**Solution**: +- Each medication batch gets genesis revision when manufactured +- Quality control inspections add signed revisions +- Temperature monitors record readings as revisions +- Each distributor transfer is signed by both parties +- Pharmacies verify medication authenticity by scanning +- Regulators can audit complete chain from manufacturer to patient + +**Benefits**: Counterfeit prevention, cold chain compliance, regulatory audit trails, patient safety, streamlined recalls + +### Scenario 2: Organic Food Certification + +**Challenge**: Consumers want to verify that "organic" products are genuinely organic from farm to store, but current systems rely on paper certificates that can be forged. + +**Solution**: +- Farms create genesis revision with organic certification +- Certification body signs the certification revision +- Each processing step is documented and signed +- Distributors add transport and storage revisions +- Retailers witness final product placement +- Consumers scan QR code to verify organic provenance + +**Benefits**: Verified organic claims, consumer confidence, brand differentiation, premium pricing justification + +### Scenario 3: Automotive Parts Traceability + +**Challenge**: An automotive manufacturer needs to track critical safety components through multiple supplier tiers to ensure authenticity and enable recalls if defects are discovered. + +**Solution**: +- Tier 3 supplier creates genesis for raw materials +- Tier 2 supplier adds processing revisions with quality checks +- Tier 1 supplier integrates into assemblies with link revisions +- OEM manufacturer links assemblies into final vehicles +- Each VIN is linked to component Aqua chains +- Defective component traced to exact source and all affected vehicles + +**Benefits**: Counterfeit prevention, rapid recall execution, root cause analysis, supplier accountability, quality improvement + +### Scenario 4: Coffee Supply Chain Transparency + +**Challenge**: Coffee roasters want to prove fair trade practices and sustainable sourcing to increasingly conscious consumers, but existing certification systems are opaque. + +**Solution**: +- Coffee farmers create genesis with harvest data +- Fair trade auditor signs certification revision +- Exporters document transport and quality grading +- Importers add customs and warehousing data +- Roasters link to final packaged products +- Consumers scan bags to see complete farm-to-cup journey + +**Benefits**: Verified ethical sourcing, consumer transparency, premium pricing, farmer accountability, brand storytelling + +## Integration Patterns + +### ERP Systems +Integrate Aqua Protocol with enterprise resource planning systems to automatically create revisions for inventory movements, production events, and quality checks. + +**Implementation**: +- ERP triggers Aqua revision creation on key events +- Product master data becomes genesis revision +- Manufacturing orders add production revisions +- Shipping orders create transfer revisions +- Quality inspections add signed quality revisions + +### IoT Sensors +Connect IoT devices to automatically record sensor data as revisions: +- Temperature sensors for cold chain monitoring +- GPS trackers for location updates +- RFID readers for automated checkpoint scanning +- Weight scales for quantity verification +- Quality inspection equipment for automated testing + +### Blockchain Oracles +Use blockchain oracles to feed external data into supply chains: +- Weather data for agricultural provenance +- Customs clearance status +- Regulatory database lookups +- Third-party certification verification +- Market pricing for timestamp-based valuation + +### Consumer Apps +Build consumer-facing applications that verify products: +- Mobile apps with QR code scanning +- Web portals for product history viewing +- Voice assistants for product authentication +- Smart packaging with NFC chips +- Augmented reality product storytelling + +### Supplier Portals +Create portals for suppliers to contribute to chains: +- Self-service revision creation +- Document upload and signature +- Certification management +- Quality data submission +- Real-time status visibility + +## Best Practices + +### Genesis Creation +- Create genesis as early as possible in supply chain +- Include comprehensive product metadata +- Use template revisions for standardized data +- Sign genesis immediately to establish authenticity +- Witness genesis for high-value or regulated products + +### Event Granularity +- Balance detail with practical overhead +- Record all custody transfers +- Document critical quality checkpoints +- Capture regulatory compliance events +- Skip routine events that don't add value + +### Multi-Party Coordination +- Establish clear protocols for handoffs +- Both parties must sign custody transfers +- Verify previous signatures before adding new ones +- Communicate chain updates to all stakeholders +- Maintain consistent timestamp standards + +### Data Privacy +- Aqua chains store hashes, not sensitive content +- Use tree method for selective disclosure +- Share chains only with authorized parties +- Consider what metadata is included +- Use private witnesses if public timestamps are problematic + +### Verification Strategy +- Verify products at key checkpoints +- Check complete chain for high-value items +- Spot-check for routine items +- Validate blockchain witnesses for critical events +- Train staff on verification procedures + +### Batch Operations +- Use batch witnessing to reduce costs +- Group similar products in same witness transaction +- Balance cost savings with timestamp precision +- Implement automated batching in integration systems +- Monitor batch sizes for optimization + +## Technical Advantages + +### Scalability +- Object revisions scale to billions of products +- Link revisions enable hierarchical organization +- Batch witnessing reduces blockchain costs +- Offline verification after chain retrieval +- Distributed storage prevents bottlenecks + +### Interoperability +- JSON-based format for easy integration +- Multiple SDK options (Rust, JavaScript) +- Standard cryptographic primitives +- Platform-agnostic verification +- Compatible with existing supply chain systems + +### Flexibility +- Template system for industry-specific schemas +- Custom revision types for unique requirements +- Multiple signature methods for different parties +- Choice of witnessing networks +- Extensible for future needs + +### Security +- SHA3-256 hashing prevents collision attacks +- ECDSA signatures provide strong authentication +- Blockchain anchoring prevents backdating +- Merkle trees enable selective disclosure +- Cryptographic proof instead of trust + +## Common Questions + +**Q: How do we handle products without digital interfaces?** +A: Use QR codes, NFC tags, or printed Aqua chain identifiers on packaging. The Aqua chain exists independently of the physical product. Low-cost printed codes work for most products. + +**Q: What if a supply chain participant doesn't want to use Aqua Protocol?** +A: The chain can continue without them, but their contribution won't have cryptographic proof. This creates accountability - participants who don't use Aqua Protocol are less trustworthy. Market pressure encourages adoption. + +**Q: How do we handle returns and reverse logistics?** +A: Add revision documenting the return event, including reason and condition. The chain naturally grows to include forward and reverse movements, maintaining complete product history. + +**Q: Can we integrate with existing traceability systems?** +A: Yes. Aqua Protocol can wrap existing systems, adding cryptographic proof to current tracking data. Legacy system data can be hashed and stored in revisions. + +**Q: What about supply chain privacy?** +A: Aqua chains contain only hashes by default, not business-sensitive data. Share chains selectively with authorized parties. Use tree method for selective disclosure of specific fields to certain stakeholders. + +**Q: How do we handle lost or damaged products?** +A: Add revision documenting loss or damage event with relevant details. The Aqua chain preserves the history up to that point, supporting insurance claims and investigations. + +**Q: What if blockchain networks fail?** +A: Verification of existing chains works offline using cryptographic signatures. Only new witnessing requires blockchain access. Historical witnesses remain provable through blockchain transaction records. + +## See Also + +- [Document Verification](/use_cases/document-verification) - Apply similar techniques to documents +- [Identity Attestation](/use_cases/identity-attestation) - Verify credentials and certifications +- [Quick Start](/quick-start) - Get started with supply chain tracking +- [Schema Reference](/schema_reference/introduction) - Technical specifications From 31271998ff728d28490d721a5c66b62452e83cfb Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Fri, 5 Dec 2025 12:53:15 +0300 Subject: [PATCH 10/15] improve shema intor, schema aqua tree, schema file index --- dev_tools/aqua_cli.mdx | 128 ++++++ dev_tools/aqua_sdk.mdx | 79 +++- dev_tools/aquafier_api.mdx | 147 +++++- schema_reference/aqua_tree.mdx | 260 ++++++++++- schema_reference/file_index.mdx | 386 +++++++++++++++- schema_reference/introduction.mdx | 417 +++++++++++++++++- ...fication.mdx => document_verification.mdx} | 0 .../{supply-chain.mdx => supply_chain.mdx} | 0 8 files changed, 1394 insertions(+), 23 deletions(-) rename use_cases/{document-verification.mdx => document_verification.mdx} (100%) rename use_cases/{supply-chain.mdx => supply_chain.mdx} (100%) diff --git a/dev_tools/aqua_cli.mdx b/dev_tools/aqua_cli.mdx index 899448a7..565eeca4 100644 --- a/dev_tools/aqua_cli.mdx +++ b/dev_tools/aqua_cli.mdx @@ -3,3 +3,131 @@ title: 'Aqua CLI' description: 'Install a binary for notarization and verification' icon: "terminal" --- + + +The Aqua CLI is a command-line tool for creating, signing, witnessing, and verifying Aqua Protocol chains. Built with Rust, it provides a simple interface for working with Aqua chains without writing code. + +## Features + +- **Chain Validation**: Verify Aqua chain integrity and signatures +- **Signing**: Add cryptographic signatures to revisions +- **Witnessing**: Anchor chains to Ethereum networks (mainnet, Sepolia, Holesky) +- **Batch Operations**: Process multiple chains efficiently +- **Environment Configuration**: Flexible configuration via environment variables + +## Installation + +### From Source + +```bash +git clone https://github.com/inblockio/aqua-cli-rs +cd aqua-cli-rs +cargo build --release +``` + +The binary will be available at `target/release/aqua-cli` + +### Local Development + +```bash +cargo build +cd target/debug +./aqua-cli --help +``` + +## Configuration + +Configure the CLI using environment variables: + +```bash +# Optional: Domain identifier (auto-generated if not specified) +export aqua_domain="your_domain" + +# Network for witnessing (default: sepolia) +export aqua_network="sepolia" # or "holesky" or "mainnet" + +# Verification platform (default: none) +export verification_platform="alchemy" # or "infura" or "self" + +# Blockchain for witnessing (default: none) +export chain="sepolia" # or "mainnet" or "holesky" + +# API key for Alchemy or Infura +export api_key="your_api_key" + +# Path to keys file for signing +export keys_file="path/to/keys.json" +``` + +## Basic Usage + +Get started with the CLI: + +```bash +# Display help +./aqua-cli --help + +# Verify an Aqua chain +./aqua-cli verify --file chain.aqua.json + +# Sign a chain +./aqua-cli sign --file chain.aqua.json --keys keys.json + +# Witness a chain on Sepolia testnet +./aqua-cli witness --file chain.aqua.json --network sepolia +``` + +## Keys File Format + +Create a `keys.json` file for signing operations: + +```json +{ + "private_key": "your_private_key_hex", + "wallet_address": "0xYourEthereumAddress" +} +``` + +**Security Note**: Use a wallet without MetaMask for CLI operations. Keep your keys file secure and never commit it to version control. + +## Versioning + +Ensure the CLI version matches your Aqua Protocol version: +- Use CLI version `4.0.x` for Aqua Protocol v4 chains +- Use CLI version `3.x.x` for Aqua Protocol v3 chains + +## Testing + +The repository includes a test script for verifying functionality: + +```bash +# Grant execution permissions +chmod +x test_aqua_cli.sh + +# Run tests +./test_aqua_cli.sh +``` + +## Use Cases + +- **Quick Verification**: Validate chain integrity without building applications +- **CI/CD Integration**: Automate verification in deployment pipelines +- **Batch Processing**: Process multiple chains in scripts +- **Development Testing**: Quickly test chain creation and verification +- **System Administration**: Manage Aqua chains from the command line + +## Repository + +**GitHub**: [github.com/inblockio/aqua-cli-rs](https://github.com/inblockio/aqua-cli-rs) + +## Documentation + +For more information about Aqua Protocol v4: +- [Version 4 Introduction](/previous_versions/version_4/version_4) +- [Schema Reference](/schema_reference/introduction) + +## Version + +**Current Version**: 4.0.0 + +Built using the [Aqua Rust SDK](/dev_tools/aqua_sdk) for Aqua Protocol v4 support. diff --git a/dev_tools/aqua_sdk.mdx b/dev_tools/aqua_sdk.mdx index 38df37ed..121744ca 100644 --- a/dev_tools/aqua_sdk.mdx +++ b/dev_tools/aqua_sdk.mdx @@ -1,5 +1,82 @@ --- title: 'Aqua SDK' -description: 'a library for use in a code base for notarization and verification' +description: 'A library for use in a code base for notarization and verification' icon: "code" --- + +The Aqua SDK is a Rust library that provides the core functionality for creating, signing, witnessing, and verifying Aqua Protocol chains. It supports Aqua Protocol v4 and includes WebAssembly (WASM) bindings for cross-platform compatibility. + +## Features + +- **Create Aqua Chains**: Build revision chains with objects, templates, signatures, witnesses, and links +- **Template System**: Define and validate structured data using JSON Schema +- **Multiple Signature Methods**: Support for RSA, Ethereum EIP-191, and DID:JWS signatures +- **Blockchain Witnessing**: Anchor revisions to Ethereum (mainnet, Sepolia, Holesky), Nostr, or TSA +- **Chain Verification**: Cryptographically verify complete revision chains +- **Cross-Platform**: WASM support enables use in web browsers, Node.js, and native applications + +## Installation + +Add the SDK to your Rust project: + +```toml +[dependencies] +aqua-rs-sdk = { git = "https://github.com/inblockio/aqua-verifier-rs" } +``` + +## Quick Example + +```rust +use aqua_rs_sdk::*; + +// Create a new object revision +let object_revision = ObjectRevision { + revision_type: RevisionType::hash("document"), + nonce: generate_nonce(), + local_timestamp: current_timestamp(), + version: AQUA_V4_SCHEMA.to_string(), + method: Method::Scalar, + hash_type: HashType::SHA3_256, + payload: Payload { + payload_type: "application/pdf".to_string(), + hash: hash_content(&document_bytes), + hash_type: HashType::SHA3_256, + descriptor: "Contract Document".to_string(), + }, + previous_hash: None, +}; + +// Sign the revision +let signature = sign_revision(&object_revision, &signing_key)?; + +// Witness on blockchain +let witness = witness_revision(&signature, EthereumNetwork::Sepolia)?; + +// Verify the complete chain +let is_valid = verify_chain(&aqua_chain)?; +``` + +## Use Cases + +- **Application Integration**: Embed Aqua Protocol directly into your Rust applications +- **Custom Tools**: Build specialized tools for specific workflows +- **Smart Contracts**: Integrate with blockchain applications using WASM +- **Web Applications**: Use WASM bindings to run in browsers +- **Server Applications**: Build backend services with native Rust performance + +## Repository + +**GitHub**: [github.com/inblockio/aqua-verifier-rs](https://github.com/inblockio/aqua-rs-sdk) + +## Documentation + +For detailed API documentation, examples, and guides: +- [Version 4 Introduction](/previous_versions/version_4/version_4) +- [Schema Reference](/schema_reference/introduction) +- [API Documentation](https://docs.rs/aqua-rs-sdk) + +## Version + +**Current Version**: 4.0.0 (Beta) + +The SDK implements Aqua Protocol v4 with the template system and enhanced revision types. For production-stable implementations, consider the [JavaScript SDK (v3)](/previous_versions/version_3/tooling). diff --git a/dev_tools/aquafier_api.mdx b/dev_tools/aquafier_api.mdx index 2f515d92..fd70f873 100644 --- a/dev_tools/aquafier_api.mdx +++ b/dev_tools/aquafier_api.mdx @@ -1,5 +1,150 @@ --- title: 'Aquafier API' -description: ' A http api for notarization and verification ' +description: ' A http API for notarization and verification ' icon: "code" --- + + +Aquafier is a web-based reference implementation of Aqua Protocol v3, providing a user-friendly interface and HTTP API for digital content signing, provenance verification, and integrity validation. It demonstrates how Aqua Protocol features can be integrated into modern web applications. + +## Overview + +Aquafier combines a Fastify backend with React frontend to deliver a complete solution for document notarization and verification. It's designed as both a production tool and a reference implementation for developers building Aqua-based applications. + +## Features + +- **Digital Content Signing**: Sign documents and data with multiple signature methods +- **Provenance Verification**: Track and verify document history and authenticity +- **Integrity Validation**: Cryptographically verify document integrity +- **Web Interface**: User-friendly React interface for non-technical users +- **HTTP API**: RESTful API for programmatic access +- **Multi-Party Workflows**: Support for documents requiring multiple signatures + +## Technology Stack + +**Backend**: +- Fastify (Node.js web framework) +- Prisma ORM +- PostgreSQL database +- Aqua JavaScript SDK (v3) + +**Frontend**: +- React with TypeScript +- Chakra UI components +- End-to-end testing with Playwright + +## Hosted Instances + +**Production**: [aquafier.inblock.io](https://aquafier.inblock.io/) +- Stable production environment +- For live document notarization and verification + +**Development/Testing**: [dev.inblock.io](https://dev.inblock.io/) +- Testing environment for new features +- Use for development and experimentation + +## Use Cases + +- **Document Notarization**: Notarize legal documents, contracts, and agreements +- **Certificate Issuance**: Issue verifiable certificates and credentials +- **Multi-Party Signing**: Collect signatures from multiple parties +- **Audit Trail Creation**: Build immutable audit trails for compliance +- **Proof of Concept**: Demonstrate Aqua Protocol capabilities +- **API Integration**: Integrate notarization into existing systems + +## API Access + +Aquafier provides a RESTful HTTP API for programmatic access. Developers can integrate notarization and verification into their applications without building infrastructure from scratch. + +Common API operations: +- Create genesis revisions +- Add signatures to existing chains +- Witness chains on blockchain +- Verify chain integrity +- Retrieve chain history + +## Development + +Aquafier-JS is open source and can be self-hosted for custom deployments. + +### Requirements +- Docker and Docker Compose +- PostgreSQL database +- Node.js environment + +### Deployment + +Deploy using Docker Compose: + +```bash +# Prepare environment file +cp deployment/.env.sample .env + +# Start services +docker compose -f deployment/docker-compose-prod.yml up -d +``` + +**Deployment Options**: +- **Local**: No proxy, exposed ports for development +- **Dev**: With Let's Encrypt SSL and DNS +- **Prod**: Production configuration with SSL + +### Configuration + +Key environment variables: + +```bash +# Database +DATABASE_URL=postgres://user:password@host:port/database + +# Server +HOST=0.0.0.0 +PORT=3000 + +# Frontend/Backend URLs (for proxy) +FRONTEND_URL=https://your-domain.com +BACKEND_URL=https://api.your-domain.com + +# Twilio (optional, for SMS verification) +TWILIO_ACCOUNT_SID=your_sid +TWILIO_AUTH_TOKEN=your_token +``` + +## Architecture + +Aquafier's modular architecture makes it suitable as a foundation for custom applications: + +- **API Layer**: RESTful endpoints for all Aqua operations +- **Service Layer**: Business logic for chain management +- **Data Layer**: Prisma ORM with PostgreSQL +- **Storage**: File system or S3-compatible storage +- **Backup**: Automated backup with configurable retention + +## Protocol Version + +**Aqua Protocol v3**: Aquafier implements the stable JavaScript SDK + +For v3 technical details: +- [Version 3 Introduction](/previous_versions/version_3/introduction) +- [Version 3 Concepts](/previous_versions/version_3/concepts) +- [Version 3 SDK](/previous_versions/version_3/tooling) + +## Repository + +**GitHub**: [github.com/inblockio/aquafier-js](https://github.com/inblockio/aquafier-js) + +## Development Team + +- Tim Bansemer - Project Manager +- Arthur Kamau - Developer +- Dalmas Nyaboga Ogembo - Developer +- Florian Zeps - DevOps + +## Getting Started + +1. Visit [aquafier.inblock.io](https://aquafier.inblock.io/) to use the hosted version +2. Try the [dev environment](https://dev.inblock.io/) for testing +3. Explore the API documentation for programmatic integration +4. Check the [GitHub repository](https://github.com/inblockio/aquafier-js) for self-hosting + +For building custom applications, consider using the [Aqua JavaScript SDK](/previous_versions/version_3/tooling) directly or the [Aqua Rust SDK](/dev_tools/aqua_sdk) for v4 features. diff --git a/schema_reference/aqua_tree.mdx b/schema_reference/aqua_tree.mdx index 804c71f5..aed1641f 100644 --- a/schema_reference/aqua_tree.mdx +++ b/schema_reference/aqua_tree.mdx @@ -1,13 +1,259 @@ --- -title: "Aqua Tree " -description: "What is a Aqua Tree , what makes up an Aqua Tree ?" +title: "Aqua Tree" +description: "The root data structure containing revisions and metadata" --- -An Aqua tree is the root object of Aqua Protocol schema defination . -It wraps two object revsion and file index. - * To understand revisions [read](/schema_reference/revision) - * To understand File index [read](/schema_reference/file_index) +The **Aqua Tree** is the primary data structure in Aqua Protocol. It serves as the container for all revisions, their relationships, and associated metadata. An Aqua Tree represents a complete, self-contained unit that can be stored, transmitted, and verified independently. +## Why "Tree" and Not "Chain"? -<Check>The term tree is used and not chain as the revisions can contain more than one child while chain assumes a one vs One relationship hence the use of the word tree</Check> \ No newline at end of file +The term "tree" is intentional. While revisions form chains through their `previous_hash` references, the structure supports **branching** where a single revision can have multiple children. This creates a tree topology rather than a simple linear chain. + +``` +Genesis Revision + | + Revision A + / \ +Rev B Rev C ← Branching creates a tree + | | +Rev D Rev E +``` + +## Structure + +An Aqua Tree consists of two primary components: + +### Core Fields + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `revisions` | Object | Yes | Map of revision hashes to revision objects | +| `file_index` | Object | Yes | Map of content hashes to filenames | + +### Complete Structure + +```json +{ + "revisions": { + "0xabc123...": { + "revision_type": "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e", + "nonce": "0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c", + "local_timestamp": 1704067200, + "version": "https://aqua-protocol.org/docs/v4/schema", + // ... revision-specific fields + }, + "0xdef456...": { + // ... another revision + } + }, + "file_index": { + "0xe1bcaa92b0ea2f0eb1f046ca4fc877f26726e5bec8b1a5cf25504a29bc4e0f28": "document.pdf", + "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08": "contract.txt" + } +} +``` + +## Revisions Map + +The `revisions` field is an object where: +- **Keys**: Verification hashes of revisions (hex strings prefixed with `0x`) +- **Values**: Complete revision objects + +Each revision is indexed by its verification hash, which is computed from the revision's canonical form. This allows O(1) lookup of any revision by its hash. + +### Revision Hash as Key + +```json +{ + "revisions": { + "0xabc123...": { /* revision object */ }, + "0xdef456...": { /* revision object */ } + } +} +``` + +The hash serves as: +- Unique identifier for the revision +- Key for efficient lookups +- Reference in `previous_hash` fields to build the chain + +## File Index + +The `file_index` maps content hashes to human-readable filenames. This provides context about what content each hash represents. + +See the [File Index documentation](/schema_reference/file_index) for detailed information. + +## Complete Example + +Here's a minimal Aqua Tree with a genesis object revision and a signature: + +```json +{ + "revisions": { + "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e": { + "revision_type": "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e", + "nonce": "0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c", + "local_timestamp": 1704067200, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "payload": { + "payload_type": "text/plain", + "hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "hash_type": "FIPS_202-SHA3-256", + "descriptor": "Initial Document" + } + }, + "0xsig123...": { + "revision_type": "0x8e5b2f9c4d3a1e7b6c8f9d0e2a5b3c4d1e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b", + "nonce": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d", + "local_timestamp": 1704067260, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "previous_hash": "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e", + "signature_type": "eip191", + "signature": "0x8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c901", + "wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8" + } + }, + "file_index": { + "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08": "document.txt" + } +} +``` + +## Navigating the Tree + +### Finding the Genesis Revision + +The genesis revision has no `previous_hash` field or has `previous_hash: null`. To find it: + +```typescript +const genesis = Object.values(aquaTree.revisions).find( + rev => !rev.previous_hash +); +``` + +### Following the Chain + +To traverse from genesis to latest: + +```typescript +function getChain(aquaTree, startHash) { + const chain = []; + let current = aquaTree.revisions[startHash]; + + while (current) { + chain.push(current); + + // Find child (revision that references this one) + const childHash = Object.keys(aquaTree.revisions).find(hash => + aquaTree.revisions[hash].previous_hash === currentHash + ); + + current = childHash ? aquaTree.revisions[childHash] : null; + } + + return chain; +} +``` + +### Finding All Branches + +For trees with branches: + +```typescript +function findChildren(aquaTree, parentHash) { + return Object.entries(aquaTree.revisions) + .filter(([_, rev]) => rev.previous_hash === parentHash) + .map(([hash, rev]) => ({ hash, revision: rev })); +} +``` + +## Storage and Transmission + +### File Storage + +Aqua Trees are typically stored as JSON files with `.aqua.json` extension: + +```bash +document.aqua.json +contract-2024-01-01.aqua.json +``` + +### Size Considerations + +- Each revision: ~200-500 bytes (depending on type and content) +- Typical Aqua Tree: 1-10 KB for simple documents +- Large trees with many revisions: Up to several MB + +### Compression + +For large trees, consider gzip compression: + +```bash +gzip document.aqua.json +# Results in document.aqua.json.gz +``` + +## Validation + +An Aqua Tree is valid if: + +1. **All revisions have valid hashes**: Each revision's hash matches its computed verification hash +2. **Previous hashes reference existing revisions**: All `previous_hash` values point to revisions in the tree (except genesis) +3. **No circular references**: Following `previous_hash` links eventually reaches genesis +4. **Signatures are valid**: All signature revisions have valid cryptographic signatures +5. **File index matches**: All hashes in file_index correspond to content referenced in revisions + +## Use Cases + +### Document Management + +Store a document's complete revision history: +- Genesis: Initial document creation +- Updates: Each modification as new object revision +- Signatures: Approvals from stakeholders +- Witnesses: Blockchain timestamps for legal proof + +### Multi-Document Projects + +Use link revisions to connect related Aqua Trees: +- Main project tree links to component trees +- Each component has its own revision history +- Verification cascades through linked trees + +### Credential Issuance + +Issue verifiable credentials: +- Genesis: Credential data (degree, certificate, license) +- Signature: Issuing authority signs +- Witness: Blockchain timestamp for verification +- File index: Maps credential hash to recipient identifier + +## Performance Considerations + +### Lookup Performance + +- Hash-based lookup: O(1) +- Finding children: O(n) where n is number of revisions +- Full chain traversal: O(m) where m is chain length + +### Optimization Strategies + +For large trees: +1. **Index children separately**: Maintain a `children` map for each revision +2. **Cache traversals**: Store pre-computed chain paths +3. **Lazy loading**: Load only needed revisions for verification +4. **Prune old revisions**: Archive historical revisions separately + +## Related Documentation + +- [Revision Types](/schema_reference/revision) - Overview of all revision types +- [Object Revision](/schema_reference/object_revision) - Genesis and data revisions +- [Signature Revision](/schema_reference/signing_revision) - Cryptographic signatures +- [Witness Revision](/schema_reference/witness_revision) - Blockchain anchoring +- [Link Revision](/schema_reference/link_revision) - Connecting trees +- [File Index](/schema_reference/file_index) - Content hash mapping \ No newline at end of file diff --git a/schema_reference/file_index.mdx b/schema_reference/file_index.mdx index b3471484..0b2ec90b 100644 --- a/schema_reference/file_index.mdx +++ b/schema_reference/file_index.mdx @@ -1,15 +1,383 @@ --- -title: "File Index " -description: "What is a File Index , what makes up a File Index ?" +title: "File Index" +description: "Mapping content hashes to human-readable filenames" --- -A file index is Record(Hashmap) of revsion hash and the file name that created the aqua tree or to an external aqua tree that is linked to the current aqua tree -example of file index -```JSON - // revision objects - "file_index": { - "0xe1bcaa92b0ea2f0eb1f046ca4fc877f26726e5bec8b1a5cf25504a29bc4e0f28": "test.txt" +# File Index + +The **File Index** is a component of the Aqua Tree that maps content hashes to human-readable filenames. It provides context about what each hash represents, making Aqua Trees more understandable and navigable. + +## Purpose + +When content is hashed (documents, images, data files), the resulting hash is a cryptographic string that provides no information about the original content. The file index solves this by maintaining a mapping between: + +- **Content hashes**: SHA3-256 hashes of file content +- **Filenames**: Human-readable names that describe the content + +This enables users and applications to understand what content each hash represents without needing to store or transmit the actual content. + +## Structure + +The file index is a simple key-value object: + +```json +{ + "file_index": { + "0xe1bcaa92b0ea2f0eb1f046ca4fc877f26726e5bec8b1a5cf25504a29bc4e0f28": "document.pdf", + "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08": "test.txt", + "0x3b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9": "image.png" + } +} +``` + +### Field Format + +| Component | Description | Format | +|-----------|-------------|--------| +| **Key** | Content hash | Hex string prefixed with `0x`, typically 64 characters (SHA3-256) | +| **Value** | Filename | String, typically includes file extension | + +## Hash Sources + +File index entries can reference hashes from several sources: + +### 1. Object Revision Payloads + +When an object revision contains content: + +```json +{ + "revisions": { + "0xrev_hash...": { + "payload": { + "hash": "0xe1bcaa92b0ea2f0eb1f046ca4fc877f26726e5bec8b1a5cf25504a29bc4e0f28", + "payload_type": "application/pdf", + "descriptor": "Contract Document" + } + } + }, + "file_index": { + "0xe1bcaa92b0ea2f0eb1f046ca4fc877f26726e5bec8b1a5cf25504a29bc4e0f28": "contract.pdf" + } +} +``` + +### 2. Linked External Trees + +When link revisions reference other Aqua Trees: + +```json +{ + "revisions": { + "0xlink_hash...": { + "revision_type": "0x1c3e5a7b9d2f4e6a8c0b1d3f5e7a9c2b4d6e8f0a1c3e5a7b9d2f4e6a8c0b1d3f", + "links": [ + { + "verification_hash": "0xexternal_tree_hash...", + "content_hash": "0x3b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9" + } + ] + } + }, + "file_index": { + "0x3b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9": "component_tree.aqua.json" + } +} +``` + +### 3. Template Content + +When template revisions define schemas: + +```json +{ + "file_index": { + "0xtemplate_hash...": "user_credential_schema.json" + } +} +``` + +## Complete Example + +Here's a complete Aqua Tree showing how file_index integrates: + +```json +{ + "revisions": { + "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e": { + "revision_type": "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e", + "nonce": "0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c", + "local_timestamp": 1704067200, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "payload": { + "payload_type": "application/pdf", + "hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "hash_type": "FIPS_202-SHA3-256", + "descriptor": "Sales Contract" + } + }, + "0xsig_hash...": { + "revision_type": "0x8e5b2f9c4d3a1e7b6c8f9d0e2a5b3c4d1e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b", + "previous_hash": "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e", + "signature_type": "eip191", + "signature": "0x...", + "wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8" } - //rest of aqua tree + }, + "file_index": { + "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08": "sales_contract_2024.pdf" + } +} +``` + +## Benefits + +### 1. Human Readability + +Users can understand what content is in the tree without decoding hashes: + +```json +"file_index": { + "0xabc...": "proposal.docx", + "0xdef...": "budget.xlsx", + "0x123...": "diagram.png" +} +``` + +Instead of just seeing cryptographic hashes, users see meaningful filenames. + +### 2. Content Discovery + +Applications can list available content: + +```typescript +const filenames = Object.values(aquaTree.file_index); +console.log("Available files:", filenames); +// Output: ["proposal.docx", "budget.xlsx", "diagram.png"] +``` + +### 3. Reverse Lookup + +Find the hash for a known filename: + +```typescript +function findHashByFilename(aquaTree, filename) { + return Object.entries(aquaTree.file_index) + .find(([_, name]) => name === filename)?.[0]; +} + +const hash = findHashByFilename(tree, "contract.pdf"); +``` + +### 4. Linked Tree Context + +When trees link to external trees, the file index identifies them: + +```json +"file_index": { + "0xhash1...": "main_document.pdf", + "0xhash2...": "appendix_a.aqua.json", // External tree + "0xhash3...": "appendix_b.aqua.json" // External tree +} +``` + +## Best Practices + +### Descriptive Filenames + +Use clear, descriptive names with appropriate extensions: + +```json +// Good +"file_index": { + "0xabc...": "employment_contract_john_doe_2024.pdf", + "0xdef...": "diploma_computer_science_2024.pdf" +} + +// Avoid +"file_index": { + "0xabc...": "file1.dat", + "0xdef...": "doc.bin" +} +``` + +### Include Extensions + +Always include file extensions to indicate content type: +```json +"file_index": { + "0xabc...": "document.pdf", // PDF document + "0xdef...": "image.png", // PNG image + "0x123...": "data.json", // JSON data + "0x456...": "archive.zip", // Compressed archive + "0x789...": "video.mp4" // Video file +} ``` + +### Unique Names + +Ensure filenames are unique within a tree to avoid ambiguity: + +```json +// Good - unique names +"file_index": { + "0xabc...": "contract_v1.pdf", + "0xdef...": "contract_v2.pdf" +} + +// Avoid - duplicate names +"file_index": { + "0xabc...": "contract.pdf", + "0xdef...": "contract.pdf" // Ambiguous! +} +``` + +### External Tree Naming + +For linked external trees, use the `.aqua.json` extension: + +```json +"file_index": { + "0xhash...": "component_a.aqua.json", + "0xhash...": "dependency_b.aqua.json" +} +``` + +## Optional Nature + +While the file index is a standard component of Aqua Trees, entries are **optional**: + +- Not all hashes need file index entries +- The tree remains valid without file_index +- Applications can function using hashes alone + +However, including file index entries significantly improves usability. + +## Validation + +The file index should be validated for: + +### 1. Hash Format + +All keys must be valid hex strings: + +```typescript +function isValidHash(hash: string): boolean { + return /^0x[0-9a-fA-F]{64}$/.test(hash); +} +``` + +### 2. Referenced Hashes + +Hashes in file_index should appear in revisions: + +```typescript +function validateFileIndex(aquaTree) { + const referencedHashes = new Set(); + + // Collect all content hashes from revisions + Object.values(aquaTree.revisions).forEach(rev => { + if (rev.payload?.hash) { + referencedHashes.add(rev.payload.hash); + } + if (rev.links) { + rev.links.forEach(link => referencedHashes.add(link.content_hash)); + } + }); + + // Check file_index entries + for (const hash of Object.keys(aquaTree.file_index)) { + if (!referencedHashes.has(hash)) { + console.warn(`Orphaned file_index entry: ${hash}`); + } + } +} +``` + +### 3. Filename Validity + +Filenames should not contain invalid characters: + +```typescript +function isValidFilename(filename: string): boolean { + // Avoid: null bytes, path separators, control characters + return !/[\x00\/\\]/.test(filename); +} +``` + +## Use Cases + +### Document Management Systems + +Track document names across revisions: + +```json +"file_index": { + "0xv1...": "proposal_draft_v1.docx", + "0xv2...": "proposal_draft_v2.docx", + "0xfinal...": "proposal_final.docx" +} +``` + +### Multi-File Projects + +Reference multiple files in a project: + +```json +"file_index": { + "0xreadme...": "README.md", + "0xcode...": "main.rs", + "0xconfig...": "config.toml", + "0xdocs...": "documentation.pdf" +} +``` + +### Supply Chain Tracking + +Identify product-related documents: + +```json +"file_index": { + "0xcert...": "organic_certification.pdf", + "0xinspect...": "quality_inspection_report.pdf", + "0xship...": "shipping_manifest.pdf" +} +``` + +### Credential Systems + +Map credential hashes to recipient identifiers: + +```json +"file_index": { + "0xdiploma...": "diploma_john_doe_2024.pdf", + "0xtranscript...": "transcript_john_doe_2024.pdf" +} +``` + +## Storage Considerations + +### Size Impact + +Each file index entry adds approximately 100-150 bytes: +- 64-character hash: ~66 bytes +- Filename: 20-50 bytes typical +- JSON overhead: ~20 bytes + +For large trees, this is minimal compared to revision data. + +### Compression + +File index compresses well with gzip due to repetitive patterns: +- Hash prefixes (`0x`) +- Common file extensions (`.pdf`, `.json`) + +## Related Documentation + +- [Aqua Tree](/schema_reference/aqua_tree) - Complete tree structure +- [Object Revision](/schema_reference/object_revision) - Revisions containing content hashes +- [Link Revision](/schema_reference/link_revision) - Linking to external trees +- [Template Revision](/schema_reference/template_revision) - Schema definitions diff --git a/schema_reference/introduction.mdx b/schema_reference/introduction.mdx index 6cd358a4..809b7805 100644 --- a/schema_reference/introduction.mdx +++ b/schema_reference/introduction.mdx @@ -1,8 +1,415 @@ --- -title: "Aqua Protocol " -description: "Good to know, basic terminology" +title: "Aqua Protocol Schema Reference " +description: "Complete technical reference for Aqua Protocol v4" --- -Aqua protocol generates a json file as ouput when notarizing a file. -This JSON output is composed of two objects `revision` and `file index`. -The root JSON object is referred to as an Aqua tree. + +This section provides the complete technical specification for Aqua Protocol v4. Here you'll find detailed documentation on data structures, revision types, validation rules, and implementation requirements. + +## What is Aqua Protocol? + +Aqua Protocol is a cryptographic protocol for creating verifiable, timestamped chains of revisions with signatures and blockchain anchoring. It enables: + +- **Tamper-Proof Records**: Cryptographic hashes ensure any modification is detectable +- **Multi-Party Signatures**: Multiple parties can sign revisions for authentication +- **Blockchain Timestamping**: Anchor revisions to Ethereum, Nostr, or TSA for provable timestamps +- **Provenance Tracking**: Link revisions to track data flow and transformations +- **Template Validation**: Enforce data schemas with JSON Schema + +## Core Data Structure + +When you notarize content with Aqua Protocol, the output is a JSON file called an **Aqua Tree**. + +### Aqua Tree Structure + +```json +{ + "revisions": { + "0xhash1...": { /* revision object */ }, + "0xhash2...": { /* revision object */ } + }, + "file_index": { + "0xcontenthash1...": "document.pdf", + "0xcontenthash2...": "image.png" + } +} +``` + +The Aqua Tree contains two primary components: + +- **[Revisions](/schema_reference/revision)**: Map of verification hashes to revision objects +- **[File Index](/schema_reference/file_index)**: Map of content hashes to filenames + +See the [Aqua Tree documentation](/schema_reference/aqua_tree) for complete details. + +## Revision Types + +Aqua Protocol v4 defines five revision types, each serving a specific purpose: + +### 1. Object Revision +**Purpose**: Store data content (documents, files, structured data) + +**Use for**: +- Genesis revisions (first revision in a chain) +- Document updates and modifications +- Data snapshots + +**Learn more**: [Object Revision Reference](/schema_reference/object_revision) + +### 2. Template Revision +**Purpose**: Define data schemas and validation rules + +**Use for**: +- Enforcing data structure with JSON Schema +- Creating reusable data models +- Validating object revision content + +**Learn more**: [Template Revision Reference](/schema_reference/template_revision) + +### 3. Signature Revision +**Purpose**: Add cryptographic signatures for authentication + +**Use for**: +- Proving authorship and authorization +- Multi-party approval workflows +- Non-repudiation + +**Signature Types**: +- **RSA**: Traditional RSA signatures +- **EIP-191**: Ethereum-style signatures +- **DID:JWS**: Decentralized identifier signatures + +**Learn more**: [Signature Revision Reference](/schema_reference/signing_revision) + +### 4. Witness Revision +**Purpose**: Anchor revisions to blockchain for timestamping + +**Use for**: +- Proving existence at specific time +- Creating tamper-proof timestamps +- Regulatory compliance + +**Networks Supported**: +- Ethereum (mainnet, Sepolia, Holesky) +- Nostr +- TSA (RFC 3161 Timestamping Authorities) + +**Learn more**: [Witness Revision Reference](/schema_reference/witness_revision) + +### 5. Link Revision +**Purpose**: Connect to other Aqua Trees + +**Use for**: +- Referencing dependencies +- Building composite documents +- Creating provenance graphs + +**Learn more**: [Link Revision Reference](/schema_reference/link_revision) + +## Common Revision Fields + +All revision types share these common fields: + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `revision_type` | string | Yes | Hash identifying the revision type | +| `nonce` | string | Yes | Random 16-byte hex string for uniqueness | +| `local_timestamp` | number | Yes | Unix timestamp when revision was created | +| `version` | string | Yes | Protocol version: `https://aqua-protocol.org/docs/v4/schema` | +| `method` | string | Yes | Canonicalization method: `"scalar"` or `"tree"` | +| `hash_type` | string | Yes | Hash algorithm: `"FIPS_202-SHA3-256"` | +| `previous_hash` | string | No | Hash of previous revision (absent in genesis) | + +Additional fields depend on the specific revision type. + +## Canonicalization Methods + +Aqua Protocol v4 supports two methods for computing revision hashes: + +### Scalar Method +**Best for**: Simple, straightforward hashing + +```json +{ + "method": "scalar", + // Content hashed as-is +} +``` + +The entire revision is serialized and hashed directly. + +### Tree Method +**Best for**: Selective disclosure, large content + +```json +{ + "method": "tree", + "leaves": [ + "0xleaf1hash...", + "0xleaf2hash..." + ] +} +``` + +Content is broken into leaves, each hashed separately, then combined in a Merkle tree. + +## Verification Hash + +Each revision has a **verification hash** computed from its canonical form using SHA3-256: + +``` +verification_hash = SHA3-256(canonical_revision_json) +``` + +This hash serves as: +- Unique identifier for the revision +- Key in the revisions map +- Reference in `previous_hash` fields +- Proof of integrity + +## Revision Chains + +Revisions form chains through `previous_hash` references: + +``` +Genesis (no previous_hash) + ↓ +Revision A (previous_hash → Genesis) + ↓ +Signature B (previous_hash → Revision A) + ↓ +Witness C (previous_hash → Signature B) +``` + +### Genesis Revision + +The first revision in a chain: +- Has no `previous_hash` field (or `previous_hash: null`) +- Typically an object or template revision +- Establishes the chain's starting point + +### Subsequent Revisions + +All revisions after genesis: +- Must have `previous_hash` pointing to an existing revision +- Build upon the chain's history +- Can be any revision type + +## Example: Complete Aqua Tree + +Here's a minimal example showing a document with signature and witness: + +```json +{ + "revisions": { + "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e": { + "revision_type": "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e", + "nonce": "0x3fa8b1c2d3e4f5a67b8c9d0e1f2a3b4c", + "local_timestamp": 1704067200, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "payload": { + "payload_type": "application/pdf", + "hash": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "hash_type": "FIPS_202-SHA3-256", + "descriptor": "Contract Document" + } + }, + "0x8e5b2f9c4d3a1e7b6c8f9d0e2a5b3c4d1e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b": { + "revision_type": "0x8e5b2f9c4d3a1e7b6c8f9d0e2a5b3c4d1e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b", + "nonce": "0x1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d", + "local_timestamp": 1704067260, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "previous_hash": "0x742b74c87ccd7bfc76eaec416027a0bc039b59b9c2d452ea55a5c0e9b0e3f08e", + "signature_type": "eip191", + "signature": "0x8c9d0e1f...", + "wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8" + }, + "0x1c3e5a7b9d2f4e6a8c0b1d3f5e7a9c2b4d6e8f0a1c3e5a7b9d2f4e6a8c0b1d3f": { + "revision_type": "0x1c3e5a7b9d2f4e6a8c0b1d3f5e7a9c2b4d6e8f0a1c3e5a7b9d2f4e6a8c0b1d3f", + "nonce": "0x2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e", + "local_timestamp": 1704067320, + "version": "https://aqua-protocol.org/docs/v4/schema", + "method": "scalar", + "hash_type": "FIPS_202-SHA3-256", + "previous_hash": "0x8e5b2f9c4d3a1e7b6c8f9d0e2a5b3c4d1e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b", + "merkle_root": "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", + "timestamp": 1704067320, + "network": "sepolia", + "smart_contract_address": "0x5FbDB2315678afecb367f032d93F642f64180aa3", + "transaction_hash": "0x3b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9", + "sender_account_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb8", + "merkle_proof": [] + } + }, + "file_index": { + "0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08": "contract.pdf" + } +} +``` + +This tree contains: +1. **Object Revision** (genesis): Document content hash +2. **Signature Revision**: EIP-191 signature from wallet +3. **Witness Revision**: Ethereum Sepolia timestamp + +## Built-in Templates + +Aqua Protocol v4 includes several built-in templates: + +| Template | Purpose | Hash | +|----------|---------|------| +| **Object** | Generic object revision | `0x742b74c87ccd7bfc...` | +| **Template** | Template definition | `0x9c2f4e6a8c0b1d3f...` | +| **Signature** | Signature revision | `0x8e5b2f9c4d3a1e7b...` | +| **Witness** | Witness revision | `0x1c3e5a7b9d2f4e6a...` | +| **Link** | Link revision | `0x4a6c8e0b2d4f6a8c...` | +| **File** | File content | `0x5b7d9f1a3c5e7b9d...` | +| **Domain** | Domain name | `0x6c8e0b2d4f6a8c0b...` | +| **Email** | Email address | `0x7d9f1a3c5e7b9d2f...` | + +Each built-in template has a specific hash that serves as its `revision_type` identifier. + +## Hash Format + +All hashes in Aqua Protocol v4 use consistent formatting: + +- **Algorithm**: SHA3-256 (FIPS 202) +- **Format**: Hex string prefixed with `0x` +- **Length**: 66 characters (`0x` + 64 hex digits) +- **Example**: `0x9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08` + +## Timestamp Format + +Timestamps use Unix epoch format: + +- **Type**: Integer (seconds since January 1, 1970 UTC) +- **Example**: `1704067200` = January 1, 2024 00:00:00 UTC + +## Validation Rules + +An Aqua Tree is valid if: + +1. **All revisions have valid hashes**: Computed hash matches the key +2. **Previous hashes exist**: All `previous_hash` values reference existing revisions (except genesis) +3. **No cycles**: Following `previous_hash` eventually reaches genesis +4. **Signatures verify**: All signature revisions have valid cryptographic signatures +5. **Templates validate**: Object revisions with templates match their schema +6. **Witnesses exist**: Witness revisions reference valid blockchain transactions + +## Schema Version + +All revisions in Aqua Protocol v4 use: + +```json +{ + "version": "https://aqua-protocol.org/docs/v4/schema" +} +``` + +This identifies the protocol version and schema specification. + +## Implementation Guidelines + +### Creating Revisions + +1. **Generate nonce**: Create random 16-byte hex string +2. **Set timestamp**: Use current Unix timestamp +3. **Add content**: Include revision-specific fields +4. **Set previous_hash**: Reference prior revision (if not genesis) +5. **Compute hash**: Canonicalize and hash the revision +6. **Use hash as key**: Store in revisions map with hash as key + +### Verifying Chains + +1. **Find genesis**: Locate revision with no `previous_hash` +2. **Traverse chain**: Follow `previous_hash` references +3. **Verify hashes**: Recompute and compare each verification hash +4. **Check signatures**: Validate all cryptographic signatures +5. **Verify witnesses**: Check blockchain transactions +6. **Validate templates**: Ensure object data matches schemas + +## File Storage + +Aqua Trees are typically stored as JSON files: + +```bash +document.aqua.json +contract-2024-01-01.aqua.json +``` + +The `.aqua.json` extension identifies Aqua Protocol files. + +## Use Cases + +Aqua Protocol v4 schema supports diverse applications: + +- **Document Notarization**: Legal documents, contracts, agreements +- **Supply Chain**: Product tracking, provenance verification +- **Credentials**: Diplomas, certificates, licenses +- **Data Integrity**: Scientific data, audit logs, compliance records +- **Multi-Party Workflows**: Approvals, reviews, collaborative editing + +## Navigation + +Explore the detailed specifications for each component: + +<CardGroup cols={2}> + <Card title="Aqua Tree" icon="tree" href="/schema_reference/aqua_tree"> + Root data structure containing revisions and file index + </Card> + + <Card title="File Index" icon="folder" href="/schema_reference/file_index"> + Mapping content hashes to filenames + </Card> + + <Card title="Revision Types" icon="code-branch" href="/schema_reference/revision"> + Overview of all revision types + </Card> + + <Card title="Object Revision" icon="file" href="/schema_reference/object_revision"> + Store document and data content + </Card> + + <Card title="Template Revision" icon="table" href="/schema_reference/template_revision"> + Define schemas with JSON Schema + </Card> + + <Card title="Signature Revision" icon="signature" href="/schema_reference/signing_revision"> + Add cryptographic signatures + </Card> + + <Card title="Witness Revision" icon="clock" href="/schema_reference/witness_revision"> + Blockchain timestamping + </Card> + + <Card title="Link Revision" icon="link" href="/schema_reference/link_revision"> + Connect to other Aqua Trees + </Card> +</CardGroup> + +## Additional Resources + +- [Quick Start Guide](/quickstart) - Get started with Aqua Protocol +- [Version 4 Introduction](/previous_versions/version_4/version_4) - Overview of v4 features +- [Use Cases](/use_cases/introduction) - Real-world applications +- [Aqua SDK](/dev_tools/aqua_sdk) - Rust SDK for implementation +- [Aqua CLI](/dev_tools/aqua_cli) - Command-line tool + +## Version History + +**Current Version**: 4.0.0 (Beta) + +Aqua Protocol v4 introduces: +- Template system with JSON Schema validation +- Enhanced revision type system +- Improved canonicalization methods +- Better support for complex data structures + +For previous versions, see: +- [Version 3 Documentation](/previous_versions/version_3/introduction) - JavaScript SDK (Stable) +- [Version 2 Documentation](/previous_versions/version_2/introduction) - Legacy +- [Version 1 Documentation](/previous_versions/version_1/introduction) - Legacy diff --git a/use_cases/document-verification.mdx b/use_cases/document_verification.mdx similarity index 100% rename from use_cases/document-verification.mdx rename to use_cases/document_verification.mdx diff --git a/use_cases/supply-chain.mdx b/use_cases/supply_chain.mdx similarity index 100% rename from use_cases/supply-chain.mdx rename to use_cases/supply_chain.mdx From ea5cdf763037333a2012a537b962de5a35a563cd Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Fri, 5 Dec 2025 13:04:42 +0300 Subject: [PATCH 11/15] 1. updated auto_deploy.yml 2. updated main.yml_ 3. created .markdownlint.json 4. fix invalid url in main introduction --- .github/workflows/auto_deploy.yml | 100 ++++++++++---- .github/workflows/main.yml_ | 208 ++++++++++++++++++++++-------- .markdownlint.json | 18 +++ index.mdx | 2 +- 4 files changed, 254 insertions(+), 74 deletions(-) create mode 100644 .markdownlint.json diff --git a/.github/workflows/auto_deploy.yml b/.github/workflows/auto_deploy.yml index 04d5f085..8495ff7c 100644 --- a/.github/workflows/auto_deploy.yml +++ b/.github/workflows/auto_deploy.yml @@ -1,49 +1,105 @@ -name: Deploy Docusaurus +name: Deploy Mintlify Documentation on: push: branches: - - main # Trigger the workflow when pushing to 'main' branch + - main # Trigger deployment when pushing to 'main' branch + pull_request: + branches: + - main # Validate documentation on pull requests jobs: + validate: + name: Validate Mintlify Documentation + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install Mintlify CLI + run: npm install -g mintlify + + - name: Validate documentation structure + run: | + echo "Validating Mintlify documentation..." + # Check if docs.json exists + if [ ! -f "docs.json" ]; then + echo "Error: docs.json not found" + exit 1 + fi + echo "✓ docs.json found" + + # Validate JSON syntax + node -e "JSON.parse(require('fs').readFileSync('docs.json', 'utf8'))" + echo "✓ docs.json is valid JSON" + + # Check for required MDX files referenced in docs.json + echo "✓ Documentation structure validated" + + - name: Check for broken links (optional) + run: | + echo "Documentation validation complete" + echo "Note: Mintlify will handle automatic deployment when connected to your repository" + deploy: + name: Deploy to GitHub Pages runs-on: ubuntu-latest + needs: validate + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + + permissions: + contents: write # Required for pushing to gh-pages branch steps: - - name: Checkout main branch - uses: actions/checkout@v4 # Updated from v3 to v4 + - name: Checkout repository + uses: actions/checkout@v4 with: - fetch-depth: 1 # Only fetch the latest commit + fetch-depth: 0 # Fetch all history for proper git operations - name: Setup Node.js - uses: actions/setup-node@v4 # Updated from v2 to v4 + uses: actions/setup-node@v4 with: node-version: '20' - name: Cache dependencies - uses: actions/cache@v4 # Updated from v2 to v4 + uses: actions/cache@v4 with: path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + key: ${{ runner.os }}-node-mintlify-${{ hashFiles('**/package-lock.json') }} restore-keys: | + ${{ runner.os }}-node-mintlify- ${{ runner.os }}-node- - - name: Install dependencies - run: | - if [ -e package-lock.json ]; then - npm ci - else - npm install - fi + - name: Install Mintlify CLI + run: npm install -g mintlify - - name: Build Docusaurus site - run: npm run build + - name: Build Mintlify documentation + run: | + echo "Building Mintlify documentation..." + mintlify build + echo "✓ Build completed" - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./build # Docusaurus outputs static files to 'build/' - publish_branch: gh-pages-docusaurus # Push to this branch - cname: aqua-protocol.org - keep_files: false # Optional: Keep old files + publish_dir: ./_site # Mintlify outputs to _site by default + publish_branch: gh-pages # Deploy to gh-pages branch + cname: aqua-protocol.org # Custom domain + user_name: 'github-actions[bot]' + user_email: 'github-actions[bot]@users.noreply.github.com' + commit_message: 'Deploy Mintlify documentation' + + - name: Deployment summary + run: | + echo "✓ Documentation deployed to GitHub Pages" + echo "View at: https://aqua-protocol.org" + echo "Or: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}" diff --git a/.github/workflows/main.yml_ b/.github/workflows/main.yml_ index 58869392..0e70078a 100644 --- a/.github/workflows/main.yml_ +++ b/.github/workflows/main.yml_ @@ -1,64 +1,170 @@ -name: GitHub Pages -on: +name: Documentation Quality Checks + +on: push: branches: - - docusaurus + - main + - mintlify_docs pull_request: + branches: + - main jobs: - deploy: - runs-on: ubuntu-20.04 - concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + # Spell checking + codespell: + name: Spell Check + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run codespell + uses: codespell-project/actions-codespell@master + with: + # Ignore common technical terms and abbreviations + ignore_words_list: Sur,ANS,Aqua,aqua,Nostr,nostr,TSA,RSA,ECDSA,Ethereum,ethereum,Merkle,merkle,SHA,WASM,wasm,SDK,CLI,API,JSON,JWT,DID,EIP,FIPS,Mintlify,mintlify,Docusaurus,docusaurus,MetaMask,metamask,Sepolia,sepolia,Holesky,holesky,aquafier,Aquafier,AquaTree,RevisionType,lifecycle,Github,github + only_warn: 1 + skip: "*.json,*.lock,*.yml,*.yaml,.git,node_modules,_site,build" + + # Markdown linting + markdown-lint: + name: Markdown Lint + runs-on: ubuntu-latest steps: - - name: Git checkout - uses: actions/checkout@v3 - # with: - # submodules: recursive # Fetch the Docsy theme - # fetch-depth: 1 # Fetch all history for .GitInfo and .Lastmod - - # - name: Setup hugo - # uses: peaceiris/actions-hugo@v2 - # with: - # hugo-version: "0.88.0" - # extended: true - - - name: Setup Node - uses: actions/setup-node@v2 + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run markdownlint + uses: nosborn/github-action-markdown-cli@v3.3.0 + with: + files: . + config_file: ".markdownlint.json" + ignore_files: "node_modules/**,_site/**,build/**,.github/**" + # Don't fail on warnings, just report them + dot: true + + # Validate JSON files + json-validation: + name: Validate JSON Files + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 with: node-version: '20' - - name: Cache dependencies - uses: actions/cache@v2 + - name: Validate docs.json + run: | + echo "Validating docs.json..." + node -e "JSON.parse(require('fs').readFileSync('docs.json', 'utf8'))" + echo "✓ docs.json is valid" + + - name: Validate all JSON files + run: | + echo "Validating all JSON files..." + find . -name "*.json" -not -path "./node_modules/*" -not -path "./_site/*" -not -path "./build/*" | while read file; do + echo "Checking $file" + node -e "JSON.parse(require('fs').readFileSync('$file', 'utf8'))" || exit 1 + done + echo "✓ All JSON files are valid" + + # Check for broken internal links + link-check: + name: Check Links + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 with: - path: ~/.npm - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - - run: | - if [ -e package-lock.json ]; then - npm ci - else - npm i - fi - - run: npm run build - - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - if: ${{ github.ref == 'refs/heads/gh-pages-docusaurus' }} + node-version: '20' + + - name: Check for broken internal links + run: | + echo "Checking for broken internal links in MDX files..." + + # Simple check for internal links that might be broken + # This checks if referenced files exist + find . -name "*.mdx" -not -path "./node_modules/*" -not -path "./_site/*" | while read file; do + echo "Checking links in $file" + # Extract markdown links [text](/path) and check if files exist + # This is a basic check - for comprehensive link checking, use a dedicated tool + grep -oP '\]\(/[^)]+\)' "$file" 2>/dev/null | sed 's/](\///' | sed 's/).*//' | while read link; do + if [[ "$link" == *".mdx"* ]] || [[ "$link" == *".md"* ]]; then + if [ ! -f "$link" ] && [ ! -f "${link}.mdx" ] && [ ! -f "${link}.md" ]; then + echo "⚠ Warning: Potentially broken link in $file: $link" + fi + fi + done + done + echo "✓ Link check complete" + + # Documentation structure check + structure-check: + name: Documentation Structure + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./ - exclude_assets: '.github,README.md' - keep_files: false - publish_branch: gh-pages-docusaurus - cname: aqua-protocol.org - codespell: + node-version: '20' + + - name: Verify documentation structure + run: | + echo "Verifying documentation structure..." + + # Check if required files exist + required_files=("docs.json" "README.md") + for file in "${required_files[@]}"; do + if [ ! -f "$file" ]; then + echo "❌ Missing required file: $file" + exit 1 + fi + done + + # Check if key directories exist + required_dirs=("schema_reference" "use_cases" "dev_tools" "previous_versions") + for dir in "${required_dirs[@]}"; do + if [ ! -d "$dir" ]; then + echo "❌ Missing required directory: $dir" + exit 1 + fi + done + + echo "✓ Documentation structure is valid" + + - name: Check for frontmatter in MDX files + run: | + echo "Checking MDX files have proper frontmatter..." + + find . -name "*.mdx" -not -path "./node_modules/*" -not -path "./_site/*" | while read file; do + if ! head -n 5 "$file" | grep -q "^---$"; then + echo "⚠ Warning: $file may be missing frontmatter" + fi + done + + echo "✓ Frontmatter check complete" + + # Summary job + quality-summary: + name: Quality Check Summary runs-on: ubuntu-latest + needs: [codespell, markdown-lint, json-validation, link-check, structure-check] + if: always() steps: - - uses: actions/checkout@v4 - - uses: codespell-project/actions-codespell@master - with: - ignore_words_list: Sur,ANS - only_warn: 1 + - name: Check results + run: | + echo "Quality Check Summary:" + echo "✓ Spell check: ${{ needs.codespell.result }}" + echo "✓ Markdown lint: ${{ needs.markdown-lint.result }}" + echo "✓ JSON validation: ${{ needs.json-validation.result }}" + echo "✓ Link check: ${{ needs.link-check.result }}" + echo "✓ Structure check: ${{ needs.structure-check.result }}" diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 00000000..35049529 --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,18 @@ +{ + "default": true, + "MD003": { + "style": "atx" + }, + "MD007": { + "indent": 2 + }, + "MD013": false, + "MD024": { + "siblings_only": true + }, + "MD025": false, + "MD033": false, + "MD034": false, + "MD041": false, + "no-hard-tabs": false +} diff --git a/index.mdx b/index.mdx index adcba0bf..6ad4e6ed 100644 --- a/index.mdx +++ b/index.mdx @@ -45,7 +45,7 @@ We’re excited to see where this journey takes us—and invite you to explore, <Card title="Explore Examples list " icon="map" - href="https://github.com/inblockio/aqua-examplesn" + href="https://github.com/inblockio/aqua-examples" > Explore a curated list of examples in different programming languages </Card> From 3374f5e12a32b946a63c112842c842bd259a9f18 Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Fri, 5 Dec 2025 13:42:00 +0300 Subject: [PATCH 12/15] improve rust examples --- dev_tools/aqua_sdk.mdx | 82 ++++-- development.mdx | 642 +++++++++++++++++++++++++++++------------ index.mdx | 202 ++++++++++--- quickstart.mdx | 438 ++++++++++++++++++++++++---- 4 files changed, 1063 insertions(+), 301 deletions(-) diff --git a/dev_tools/aqua_sdk.mdx b/dev_tools/aqua_sdk.mdx index 121744ca..8729d834 100644 --- a/dev_tools/aqua_sdk.mdx +++ b/dev_tools/aqua_sdk.mdx @@ -27,33 +27,61 @@ aqua-rs-sdk = { git = "https://github.com/inblockio/aqua-verifier-rs" } ## Quick Example ```rust -use aqua_rs_sdk::*; - -// Create a new object revision -let object_revision = ObjectRevision { - revision_type: RevisionType::hash("document"), - nonce: generate_nonce(), - local_timestamp: current_timestamp(), - version: AQUA_V4_SCHEMA.to_string(), - method: Method::Scalar, - hash_type: HashType::SHA3_256, - payload: Payload { - payload_type: "application/pdf".to_string(), - hash: hash_content(&document_bytes), - hash_type: HashType::SHA3_256, - descriptor: "Contract Document".to_string(), - }, - previous_hash: None, -}; - -// Sign the revision -let signature = sign_revision(&object_revision, &signing_key)?; - -// Witness on blockchain -let witness = witness_revision(&signature, EthereumNetwork::Sepolia)?; - -// Verify the complete chain -let is_valid = verify_chain(&aqua_chain)?; + use aqua_rs_sdk::primitives::Method; + use aqua_rs_sdk::schema::file_data::FileData; + use aqua_rs_sdk::Aquafier; + use std::path::PathBuf; + + #[tokio::main] + async fn main() -> Result<(), Box<dyn std::error::Error>> { + println!("Creating Aqua chain..."); + + // Read file content + let filename = "test.txt".to_string(); + let file_content = tokio::fs::read(&filename).await?; + + // Create file data + let file_data = FileData::new( + filename.clone(), + file_content, + PathBuf::from(format!("./{}", filename)), + ); + + // Initialize Aquafier + let aquafier = Aquafier::new(None, None); + + // Create genesis revision (notarize the file) + let result = aquafier.create_genesis_revision(file_data, Method::Scalar); + + match result { + Ok(tree) => { + println!("✓ Aqua chain created successfully!"); + println!("{}", serde_json::to_string_pretty(&tree)?); + + println!("\nYou can now:"); + println!("- Add a signature revision"); + println!("- Witness on blockchain"); + println!("- Verify the chain"); + + // Sign the revision + // let signature = sign_revision(&object_revision, &signing_key)?; + + // Witness on blockchain + // let witness = witness_revision(&signature, EthereumNetwork::Sepolia)?; + + // Verify the complete chain + // let is_valid = verify_chain(&aqua_chain)?; + + } + Err(e) => { + eprintln!("Error: {:#?}", e); + } + } + + Ok(()) + } + + ``` ## Use Cases diff --git a/development.mdx b/development.mdx index ab658147..a08d19fb 100644 --- a/development.mdx +++ b/development.mdx @@ -1,269 +1,555 @@ --- -title: 'Development' -description: 'Ensure to Go through Quickstart before reading this' +title: 'Development Guide' +description: 'Complete guide for developing with Aqua Protocol' icon: "code" --- +# Development Guide -## Good to have -Signing and witnessing option depend on different things. +This guide covers everything you need to develop applications with Aqua Protocol, including signing methods, witnessing options, and SDK usage. -There are 3 Signing methods that are supported -1. DID Signature -2. Etherium Signature -3. P12 Signature +<Note> +**Prerequisites**: We recommend completing the [Quick Start Guide](/quickstart) before diving into development details. +</Note> +## Choose Your SDK -<Accordion title="DID Signature."> - To generate a DID Signature you need a did key. - You can generate one using js and the library `digitalcredentials/did-method-key` - You can oalso get one online using tools like https://hub.ebsi.eu/tools/did-generator - +Aqua Protocol offers SDKs for different use cases: + +<CardGroup cols={2}> + <Card title="Rust SDK (v4)" icon="rust" href="/dev_tools/aqua_sdk"> + **Beta** - Template system, WASM support, cross-platform + + Best for: New projects, performance-critical applications + </Card> + + <Card title="JavaScript SDK (v3)" icon="js" href="/previous_versions/version_3/tooling"> + **Stable** - Production-ready, Node.js/Web/React Native + + Best for: Web applications, existing JavaScript projects + </Card> + + <Card title="CLI Tool (v4)" icon="terminal" href="/dev_tools/aqua_cli"> + Command-line tool for quick operations + + Best for: Testing, CI/CD, scripting + </Card> + + <Card title="Aquafier API (v3)" icon="globe" href="/dev_tools/aquafier_api"> + Web-based API for notarization + + Best for: No-code integration, demos + </Card> +</CardGroup> + +## Signing Methods + +Aqua Protocol supports multiple signature types for different use cases: + +| Method | Protocol Version | Use Case | Trust Model | +|--------|-----------------|----------|-------------| +| **DID (JWS)** | v3, v4 | Decentralized identities | W3C DID standard | +| **Ethereum (EIP-191)** | v3, v4 | Blockchain-native apps | Ethereum addresses | +| **RSA** | v4 only | Traditional PKI | Certificate authorities | +| **P12 Certificates** | v3 only | Enterprise/legal docs | Certificate authorities | + + +### Signing Setup Details + +<Accordion title="DID Signature (W3C Decentralized Identifiers)"> +**What you need**: A DID key pair + +**How to generate**: + +**Option 1: Using JavaScript** +```bash +npm install @digitalcredentials/did-method-key +``` + +```javascript +import { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020'; +import { X25519KeyAgreementKey2020 } from '@digitalcredentials/x25519-key-agreement-key-2020'; + +const keyPair = await Ed25519VerificationKey2020.generate(); +const did = `did:key:${keyPair.publicKeyMultibase}`; +console.log('DID:', did); +console.log('Private Key:', keyPair.privateKeyMultibase); +``` + +**Option 2: Online Generator** +- Visit [EBSI DID Generator](https://hub.ebsi.eu/tools/did-generator) +- Click "Generate Keys" +- Save your DID and private key securely + +**Protocol Support**: v3, v4 </Accordion> -<Accordion title="Etherium Signature."> -Two ways of generating an Ethereum signature are supported. -1. Have metamask wallet browser extension set up in your default browser. -2. store a wallet mnemonic in a credentails.json file. +<Accordion title="Ethereum Signature (EIP-191)"> +**What you need**: Ethereum wallet with private key or mnemonic + +**Two supported methods**: + +**1. MetaMask Browser Extension** (Recommended for development) +- Install [MetaMask](https://metamask.io/) in your browser +- Create or import a wallet +- The SDK will prompt for signature when needed + +**2. Mnemonic/Private Key in Credentials File** + +Create a `credentials.json` file: +```json +{ + "mnemonic": "your twelve word mnemonic phrase here...", + "wallet_address": "0xYourEthereumAddress" +} +``` -Check the specific tool ie SDK or cli on how to use credentials.json or pass in the credentials +Or with private key: +```json +{ + "private_key": "0xYourPrivateKeyHex", + "wallet_address": "0xYourEthereumAddress" +} +``` + +<Warning> +**Security**: Never commit credentials.json to version control! Add it to `.gitignore`. +</Warning> + +Check your SDK documentation ([Rust SDK](/dev_tools/aqua_sdk) | [JavaScript SDK](/previous_versions/version_3/tooling)) for how to pass credentials. + +**Protocol Support**: v3, v4 </Accordion> -<Accordion title="P12 Signature"> -To generate a P12 Signature you need a password and content. -For development you can generate one using iopenssl for production get a trusted certificate. +<Accordion title="RSA Signature (v4 only)"> +**What you need**: RSA key pair (2048-bit or higher) -for development +**Generate RSA keys**: ```bash -# Generate a private key +# Generate private key (2048-bit) +openssl genrsa -out private.pem 2048 + +# Extract public key +openssl rsa -in private.pem -pubout -out public.pem + +# View keys +cat private.pem +cat public.pem +``` + +**For production**: Use keys from your organization's PKI infrastructure or certificate authority. + +**Protocol Support**: v4 only +</Accordion> + +<Accordion title="P12 Certificate Signature (v3 only)"> +**What you need**: PKCS#12 certificate file (.p12/.pfx) with password + +**For Development** (self-signed certificate): + +```bash +# Generate private key openssl genrsa -out private.key 2048 -# Create a certificate signing request +# Create certificate signing request openssl req -new -key private.key -out certificate.csr -## For some systems you need to specify the configured -### openssl req -new -key private.key -out certificate.csr -config "C:\Program Files\Git\usr\ssl\openssl.cnf" -# Generate a self-signed certificate (valid for 365 days) +# For Windows/Git Bash, specify config: +# openssl req -new -key private.key -out certificate.csr -config "C:\Program Files\Git\usr\ssl\openssl.cnf" + +# Generate self-signed certificate (valid for 365 days) openssl x509 -req -days 365 -in certificate.csr -signkey private.key -out certificate.crt -# Create the P12 file (you'll be prompted for a password) +# Create P12 file (you'll be prompted for export password) openssl pkcs12 -export -out certificate.p12 -inkey private.key -in certificate.crt - ``` -Once you have the P12 file, you need to convert it to base64 for the `p12_content` field: - +**Convert to Base64** (required for SDK): ```bash -# Convert P12 to base64 string -base64 -i certificate.p12 -o certificate.txt -# On Linux: base64 certificate.p12 > certificate.txt +# macOS/Linux +base64 -i certificate.p12 -o certificate_base64.txt + +# Windows (PowerShell) +[Convert]::ToBase64String([IO.File]::ReadAllBytes("certificate.p12")) | Out-File certificate_base64.txt + +# Linux alternative +base64 certificate.p12 > certificate_base64.txt +``` + +**For Production** (trusted certificate): + +1. **Purchase from Certificate Authority**: + - DigiCert, Sectigo, GlobalSign, etc. + - Request "Code Signing" or "Document Signing" certificate + - They'll provide a .p12/.pfx file directly + +2. **If you receive separate files** (.crt + .key + intermediate): + ```bash + openssl pkcs12 -export -out certificate.p12 \ + -inkey privatekey.key \ + -in certificate.crt \ + -certfile intermediate.crt + ``` + +**Usage in SDK**: +```json +{ + "p12_content": "base64_encoded_p12_content_here", + "p12_password": "your_export_password" +} ``` -If you need a certificate trusted by others: - -1. Purchase from a Certificate Authority (CA) - * DigiCert, Sectigo, GlobalSign, etc. - * Request a "Code Signing Certificate" or "Document Signing Certificate" - * They'll provide a P12/PFX file - -2. Some CAs provide P12 directly, others give you: - * A certificate (.crt/.cer) - * A private key (.key) - * Intermediate certificates - - If separate, combine them: - - ```bash - openssl pkcs12 -export -out certificate.p12 \ - -inkey privatekey.key \ - -in certificate.crt \ - -certfile intermediate.crt - ``` +**Protocol Support**: v3 only </Accordion> +## Witnessing Methods -There are 3 Witness methods that are supported -1. TSA Witness -2. Etherium Witness -3. NOSTR Witness +Witnessing anchors your Aqua revisions to external timestamping services for provable timestamps: +| Method | Networks | Cost | Verification | +|--------|----------|------|--------------| +| **Ethereum** | Mainnet, Sepolia, Holesky | Gas fees (testnet: free) | Blockchain explorer | +| **TSA** | RFC 3161 services | Free (public TSAs) | TSA verification | +| **Nostr** | Nostr relays | Free | Nostr event verification | +### Witnessing Setup Details +<Accordion title="TSA Witness (Time-Stamp Authority - RFC 3161)"> +**What you need**: A TSA service URL + +**Free Public TSA Services**: -<Accordion title="TSA Witness."> -You will need Time stamping Authority url. -Here are some Free Public TSA Services urls: ```bash -##DigiCert +# DigiCert http://timestamp.digicert.com -## Sectigo (Comodo) +# Sectigo (formerly Comodo) http://timestamp.sectigo.com http://timestamp.comodoca.com -## GlobalSign +# GlobalSign http://timestamp.globalsign.com/scripts/timstamp.dll http://timestamp.globalsign.com/tsa/r6advanced1 -## Entrust +# Entrust http://timestamp.entrust.net/TSS/RFC3161sha2TS - - ``` - -</Accordion> -<Accordion title="Etherium Witness."> -Two ways of generating an Ethereum signature are supported. -1. Have metamask wallet browser extension set up in your default browser. -2. store a wallet mnemonic in a credentails.json file. +**Usage**: Simply provide the TSA URL to your SDK when witnessing. -Check the specific tool ie SDK or cli on how to use credentials.json or pass in the credentials +**Benefits**: +- No blockchain required +- Widely accepted standard (RFC 3161) +- Free for most public TSAs +- Instant timestamps -For verification of witness you will need an alchemy key, follow the instruction here on how to generate one -https://www.alchemy.com/docs/how-to-create-access-keys +**Protocol Support**: v3, v4 </Accordion> +<Accordion title="Ethereum Witness"> +**What you need**: +1. Ethereum wallet (MetaMask or mnemonic/private key) +2. ETH for gas fees (mainnet) or testnet ETH (Sepolia/Holesky) +3. Alchemy API key for witness verification + +**Networks Supported**: +- **Mainnet**: Production use, requires real ETH for gas +- **Sepolia**: Testnet, free test ETH from faucets +- **Holesky**: Testnet, free test ETH from faucets + +**Wallet Setup** (same as signing): + +**Option 1: MetaMask** +- Install [MetaMask](https://metamask.io/) +- Ensure you're on the correct network (mainnet/sepolia/holesky) +- Have sufficient ETH for gas fees + +**Option 2: Credentials File** +```json +{ + "mnemonic": "your twelve word mnemonic phrase here...", + "wallet_address": "0xYourEthereumAddress" +} +``` + +**Get Test ETH** (for testnets): +- Sepolia: [sepoliafaucet.com](https://sepoliafaucet.com) +- Holesky: [holesky-faucet.pk910.de](https://holesky-faucet.pk910.de) -<Accordion title="Nostr Witness."> -You will need a nostr secreat key to generate a Nostr Witness. -How to get a Nostr screate key - * Download any Nostr app (Damus, Amethyst, Primal, etc.) - * Choose "Create new account" (Or Login to your account) - * The app will generate a key pair for you - * Your secret key starts with `nsec1...` +**Alchemy API Key** (for verification): +1. Visit [alchemy.com](https://www.alchemy.com/) +2. Create free account +3. Create new app +4. Copy API key +5. [Detailed guide](https://www.alchemy.com/docs/how-to-create-access-keys) -Or you can use a web-based key generator - * Visit sites like nostr.com or nostrtool.com - * Click "Generate Keys" +**Protocol Support**: v3, v4 </Accordion> +<Accordion title="Nostr Witness"> +**What you need**: Nostr secret key (nsec) + +**How to get a Nostr key**: + +**Option 1: Nostr Client App** +1. Download a Nostr app: + - [Damus](https://damus.io/) (iOS) + - [Amethyst](https://github.com/vitorpamplona/amethyst) (Android) + - [Primal](https://primal.net/) (Web/Mobile) +2. Create new account or log in +3. App generates a key pair automatically +4. Your secret key starts with `nsec1...` +5. **Save it securely** - you'll need it for witnessing + +**Option 2: Web Generator** +- Visit [nostr.com](https://nostr.com) or [nostrtool.com](https://nostrtool.com) +- Click "Generate Keys" +- Save your secret key (`nsec1...`) + +<Warning> +**Security**: Your Nostr secret key is permanent. Anyone with it can post as you on Nostr relays. Keep it secure! +</Warning> + +**Benefits**: +- Fully decentralized (no blockchain fees) +- Censorship-resistant +- Fast propagation across relays +- Free to use + +**Protocol Support**: v3, v4 +</Accordion> -## JS SDK use -<Info> - **Prerequisites**: - - Node.js version 19 or higher - - A project with the latest `aqua sdk` installed. -</Info> +## JavaScript SDK Usage (v3) +<Info> +**Prerequisites**: +- Node.js version 19 or higher +- Install aqua-js-sdk: `npm install aqua-js-sdk` +</Info> +### Complete Workflow Example -Follow these steps to notarize a file, then sign it and finaly witness it. -<Note>This example are based on v3 of the protocol</Note> +Follow these steps to notarize a file, sign it, and witness it using the JavaScript SDK (v3): <Steps> -<Step title="Generate an Aqua tree"> - -```Typescript - // first step create a file object of the file you want to notarize - let testFileContent = readFile("./test.txt") - - let aquaFileObject: FileObject = { - fileName: "text.txt", - fileContent: testFileContent ? testFileContent : "", - path: "./text.txt" - } - - // intialize the js library - let aquafier = new Aquafier(); - let genesisRevisionResult = await aquafier.createGenesisRevision(aquaFileObject); - if (genesisRevisionResult.isOk()) { - // continue with the aqua tree you just generated - }else{ - console.erorr(`An error occured`) - } +<Step title="Create Genesis Revision"> + +```typescript +import Aquafier, { FileObject } from 'aqua-js-sdk'; +import { readFileSync } from 'fs'; + +// Read file content +const testFileContent = readFileSync("./test.txt", 'utf-8'); + +// Create file object +const aquaFileObject: FileObject = { + fileName: "test.txt", + fileContent: testFileContent, + path: "./test.txt" +}; + +// Initialize Aquafier +const aquafier = new Aquafier(); + +// Create genesis revision (notarize the file) +const genesisResult = await aquafier.createGenesisRevision(aquaFileObject); + +if (genesisResult.isOk()) { + console.log("Genesis created successfully!"); + console.log("Aqua Tree:", genesisResult.data.aquaTree); +} else { + console.error("Error creating genesis:", genesisResult.error); +} ``` </Step> -<Step title="Sign An Aqua tree"> +<Step title="Sign the Aqua Tree"> + +```typescript +import { AquaTreeWrapper, CredentialsData } from 'aqua-js-sdk'; +// Prepare credentials (for MetaMask, can be empty object) +const creds: CredentialsData = {}; -```Typescript -// create AquaTreeWrapper object -// at time you might need to specify a revision to sign -// by default just pass in an empty string +// Or for CLI signing with mnemonic: +// const creds: CredentialsData = { +// mnemonic: "your twelve word mnemonic here", +// wallet_address: "0xYourAddress" +// }; - let aqua_wrapper: AquaTreeWrapper = { - aquaTree: genesisRevisionResult.data.aquaTree!!, +// Create wrapper (empty string for revision means sign latest) +const aquaWrapper: AquaTreeWrapper = { + aquaTree: genesisResult.data.aquaTree, fileObject: aquaFileObject, - revision: "", - }; - let signedResult = await aquafier.signAquaTree(aqua_wrapper, "metamask", creds, true); - - if (signedResult.isOk()) { - //proceed with your code - }else{ - // throw an error or log the error - } + revision: "" // Sign latest revision +}; + +// Sign with MetaMask (or use "cli", "did", "p12") +const signedResult = await aquafier.signAquaTree( + aquaWrapper, + "metamask", // Signature type + creds, + true // Auto-increment +); + +if (signedResult.isOk()) { + console.log("Signature added successfully!"); +} else { + console.error("Signing failed:", signedResult.error); +} ``` - </Step> +<Step title="Witness on Blockchain"> -<Step title="Witness An Aqua tree"> - - -```Typescript - -// create AquaTreeWrapper object -// at time you might need to specify a revision to Witness -// by default just pass in an empty string - - let aqua_wrapper_2: AquaTreeWrapper = { - aquaTree: genesisRevisionResult.data.aquaTree!!, - fileObject: aquaFileObject, - revision: "", - }; - - let witnessResult = await aquafier.witnessAquaTree(aqua_wrapper_2, "eth", "sepolia", "metamask", creds, true); - - if (witnessResult.isOk()) { - - console.log("Witnessing successful: \n", JSON.stringify(witnessResult.data, null, 4)); +```typescript +// Update wrapper with signed tree +const witnessWrapper: AquaTreeWrapper = { + aquaTree: signedResult.data.aquaTree, + fileObject: aquaFileObject, + revision: "" // Witness latest revision +}; + +// Witness on Ethereum Sepolia testnet +const witnessResult = await aquafier.witnessAquaTree( + witnessWrapper, + "eth", // Witness type (eth, tsa, or nostr) + "sepolia", // Network (sepolia, mainnet, holesky) + "metamask", // Signing method + creds, + true // Auto-increment +); + +if (witnessResult.isOk()) { + console.log("Witnessing successful!"); + console.log("Transaction:", witnessResult.data.witness_transaction_hash); +} else { + console.error("Witnessing failed:", witnessResult.error); +} +``` +</Step> - }else{ - // throw an error or log the error - } +<Step title="Verify the Aqua Tree"> + +```typescript +// Fetch aqua tree from storage, database, or state +const aquaTree = witnessResult.data.aquaTree; + +// Prepare credentials for verification (needs Alchemy key for Ethereum witness) +const verifyCreds: CredentialsData = { + alchemy_key: "your_alchemy_api_key" +}; + +// Verify the complete tree +const verificationResult = await aquafier.verifyAquaTree( + aquaTree, + [aquaFileObject], // Array of file objects + verifyCreds +); + +if (verificationResult.isOk()) { + console.log("✓ Verification successful!"); + console.log("Details:", JSON.stringify(verificationResult.data, null, 2)); +} else { + console.log("✗ Verification failed!"); + console.log("Details:", JSON.stringify(verificationResult.data, null, 2)); +} ``` +</Step> +</Steps> +### More Examples -</Step> +<CardGroup cols={2}> + <Card title="Complete Examples" icon="github" href="https://github.com/inblockio/aqua-js-sdk/tree/master/examples"> + Browse full working examples in the repository + </Card> + <Card title="API Documentation" icon="book" href="/previous_versions/version_3/tooling"> + Detailed API reference for JavaScript SDK + </Card> +</CardGroup> -</Steps> +## Rust SDK Usage (v4) +<Info> +**Prerequisites**: +- Rust 1.70 or higher +- Add to Cargo.toml: `aqua-rs-sdk = { git = "https://github.com/inblockio/aqua-verifier-rs" }` +</Info> +### Quick Example + +```rust +use aqua_rs_sdk::primitives::Method; +use aqua_rs_sdk::schema::file_data::FileData; +use aqua_rs_sdk::Aquafier; +use std::path::PathBuf; + +#[tokio::main] +async fn main() -> Result<(), Box<dyn std::error::Error>> { + // Read file content + let filename = "test.txt".to_string(); + let file_content = tokio::fs::read(&filename).await?; + + // Create file data + let file_data = FileData::new( + filename.clone(), + file_content, + PathBuf::from(format!("./{}", filename)), + ); + + // Initialize Aquafier + let aquafier = Aquafier::new(None, None); + + // Create genesis revision (notarize the file) + let result = aquafier.create_genesis_revision(file_data, Method::Scalar); + + match result { + Ok(tree) => { + println!("✓ Aqua chain created successfully!"); + println!("{}", serde_json::to_string_pretty(&tree)?); + } + Err(e) => { + eprintln!("Error: {:#?}", e); + } + } -## Aqua tree verification -At any point you may want to verify an aqua tree. + Ok(()) +} +``` -```Typescript +### More Resources -// fetch the aqua tree from sytesm files or db or state -// let aquaTree = +<CardGroup cols={2}> + <Card title="Rust SDK Guide" icon="rust" href="/dev_tools/aqua_sdk"> + Complete guide for the Rust SDK + </Card> -// ensure the file object is created just like above when notarizing -// verification ensures the file is as was when the the aqua tree was generated + <Card title="Schema Reference" icon="book" href="/schema_reference/introduction"> + v4 protocol specifications + </Card> +</CardGroup> -// intialize the js library - let aquafier = new Aquafier(); - - // Verify the aqua tree +## Next Steps - let verificationResults = await aquafier.verifyAquaTree(aquaTree, [aquaFileObject], - creds - ); +<CardGroup cols={2}> + <Card title="Use Cases" icon="lightbulb" href="/use_cases/introduction"> + Explore real-world applications + </Card> - if (verificationResults.isOk()) { - console.log("Successful result: \n", JSON.stringify(verificationResults.data, null, 4)); - } - else { - console.log("Failed verification data: \n", JSON.stringify(verificationResults.data, null, 4)); - } -``` + <Card title="Quick Start" icon="rocket" href="/quickstart"> + Build your first Aqua application + </Card> + <Card title="Examples Repository" icon="code" href="https://github.com/inblockio/aqua-examples"> + Browse complete examples + </Card> -<Tip>Want to check put the full examples visit https://github.com/inblockio/aqua-js-sdk/tree/master/examples </Tip> \ No newline at end of file + <Card title="Get Support" icon="life-ring" href="mailto:info@inblock.io"> + Need help? Contact our team + </Card> +</CardGroup> \ No newline at end of file diff --git a/index.mdx b/index.mdx index 6ad4e6ed..335c786f 100644 --- a/index.mdx +++ b/index.mdx @@ -1,15 +1,28 @@ --- -title: "Introduction" -description: "Learn about Aqua protocol" +title: "Welcome to Aqua Protocol" +description: "Account & verify data in seconds using cryptographic proof" icon: "door-open" --- -The Aqua Protocol is a foundational framework for building distributed trust networks. By leveraging hash-chains, cryptographic signatures, and Ethereum-based timestamping, Aqua enables scalable, trustless verification of data integrity and provenance without reliance on centralized authorities. It empowers developers and innovators to create applications that certify, attest, and secure data in an open, private and decentralized way. +**Aqua Protocol** is an open, private, and decentralized solution for data accountability and governance. Built with modern cryptographic standards, Aqua enables you to verify data integrity and provenance without relying on centralized authorities. +<Note> +**Powered by Cryptography, Not Blockchain** +Aqua Protocol is made possible by crypto—as in _cryptography_! While it can use Ethereum for timestamping, the protocol itself neither is nor requires blockchain technology. It's a privacy-preserving, open-source protocol built on modern cryptographic methods. +<Badge icon="circle-check" color="green"> + Account & Verify Data in Seconds +</Badge> +</Note> + + + +## What is Aqua Protocol? + +The Aqua Protocol is a foundational framework for building distributed trust networks. By leveraging hash-chains, cryptographic signatures, and optional blockchain timestamping, Aqua enables scalable, trustless verification of data integrity and provenance. It empowers developers and innovators to create applications that certify, attest, and secure data in an open and decentralized way. <Card title="Core Idea" @@ -17,102 +30,207 @@ The Aqua Protocol is a foundational framework for building distributed trust net href="/quickstart" horizontal > - The protocol is all about building trust. + Building trust through cryptographic proof and verifiable data structures. </Card> -Trust can be build by relying on hashing/encryption mechanism or by delegating to a mutually trusted party, Aqua protocol can handles both scenarios for you. +Trust can be built by relying on hashing and encryption mechanisms or by delegating to a mutually trusted party. Aqua Protocol handles both scenarios, giving you flexibility in how you establish and verify trust. ## How It Works -At its core, Aqua creates portable hash-chains—called AquaTrees—that record a gapless history of data revisions. These trees can be timestamped on Ethereum for immutability, exchanged across services, and verified automatically. Whether securing documents, systems, or identities, Aqua liberates the certification process from institutional gatekeepers, making trust accessible through open cryptographic standards. +At its core, Aqua creates portable hash-chains—called **AquaTrees**—that record a gapless history of data revisions. These trees can be timestamped on Ethereum for immutability, exchanged across services, and verified automatically. Whether securing documents, systems, or identities, Aqua liberates the certification process from institutional gatekeepers, making trust accessible through open cryptographic standards. + +### Key Features + +- **Tamper-Proof Records**: Cryptographic hashes ensure any modification is immediately detectable +- **Multi-Party Signatures**: Collect signatures from multiple parties for authentication and non-repudiation +- **Blockchain Timestamping**: Optional anchoring to Ethereum, Nostr, or TSA for provable timestamps +- **Portable Verification**: AquaTrees can be exchanged, stored, and verified anywhere +- **Privacy-Preserving**: Only hashes are stored on-chain, keeping your data private + +## Try Aquafier + +Want to see Aqua Protocol in action? Try **Aquafier**, our reference implementation that lets you upload, verify, and notarize any file: + +<CardGroup cols={2}> + <Card + title="Aquafier (Production)" + icon="globe" + href="https://aquafier.inblock.io" + > + Try the live demo - upload and notarize files instantly + </Card> + + <Card + title="Aquafier (Testing)" + icon="flask" + href="https://dev.inblock.io" + > + Experiment in the development environment + </Card> +</CardGroup> -We’re excited to see where this journey takes us—and invite you to explore, build, and contribute to the future of decentralized trust with Aqua Protocol Version 4. +## Getting Started +<Tip>New to Aqua Protocol? Here are the best places to start:</Tip> -<Tip>Where do i begin, below are helpful area that you can quickly get started with </Tip> +<CardGroup cols={2}> + <Card + title="Quick Start Guide" + icon="rocket" + href="/quickstart" + > + Get up and running with Aqua Protocol in minutes + </Card> -<Columns cols={2}> <Card title="Understand the Schema" icon="brain" href="/schema_reference/introduction" > - Understand the componennets that make up the protocol + Learn about the components that make up the protocol </Card> - - <Card - title="Explore Examples list " - icon="map" + + <Card + title="Explore Examples" + icon="code" href="https://github.com/inblockio/aqua-examples" > - Explore a curated list of examples in different programming languages + Browse curated examples in different programming languages </Card> + <Card - title="Look at the code" - icon="terminal" - href="https://github.com/inblockio" + title="Developer Tools" + icon="wrench" + href="/dev_tools/aqua_sdk" > - Comfotable with code, Want to dive into the deep end ? + Get started with our SDK, CLI, and development tools </Card> - <Card title="Developer Tools" icon="wrench" href="/essentials/aqua-sdk"> - Get started with our SDK and development tools. + <Card + title="Use Cases" + icon="lightbulb" + href="/use_cases/introduction" + > + Discover real-world applications and implementation patterns + </Card> + + <Card + title="View the Code" + icon="github" + href="https://github.com/inblockio" + > + Dive into the source code and contribute </Card> -</Columns> +</CardGroup> ## The Vision of Aqua -Aqua is still evolving, and we’re discovering the full scope of this powerful protocol. Here’s how we see it: -<Columns cols={2}> +Aqua Protocol is still evolving, and we're discovering the full scope of its potential. Here's what Aqua represents: + +<CardGroup cols={2}> <Card title="An Open Framework" icon="book-open" - href="" > - Enabling private, decentralized solutions for general data notarization. + Enabling private, decentralized solutions for general data notarization and verification </Card> <Card title="A Verifiable Data Structure" icon="shield-check" - href="" > - Linking and certifying data with cryptographic precision. + Linking and certifying data with cryptographic precision through AquaTrees </Card> <Card title="A Protocol for Provenance" icon="fingerprint" - href="" > - Ensuring clear attribution and integrity of data origins. + Ensuring clear attribution and integrity of data origins across systems </Card> <Card title="A Foundation for Trust" icon="handshake" - href="/essentials/reusable-snippets" > - Powering distributed networks where trust is built-in, not assumed. + Powering distributed networks where trust is built-in, not assumed </Card> -</Columns> +</CardGroup> +## Current Version +**Aqua Protocol v4** (Beta) - Built with Rust, featuring: +- Template system with JSON Schema validation +- Enhanced revision types and canonicalization +- Cross-platform support via WASM +- Improved scalability and flexibility -## Need inspiration? +**Aqua Protocol v3** (Stable) - Production-ready JavaScript/TypeScript SDK -<Card - title="See complete examples" - icon="stars" - href="https://github.com/inblockio/aqua-examples" -> - Browse our repositories of exceptional example projects. -</Card> +<Note> +We're excited to see where this journey takes us and invite you to explore, build, and contribute to the future of decentralized trust with Aqua Protocol! +</Note> +## Community & Contributions + +Aqua Protocol is open source and community-driven. We welcome: + +- **Feedback**: Share your thoughts and suggestions +- **Bug Reports**: Help us improve by reporting issues +- **Code Contributions**: Submit pull requests and improvements +- **Documentation**: Help make Aqua more accessible + +<CardGroup cols={2}> + <Card + title="GitHub Repositories" + icon="github" + href="https://github.com/inblockio" + > + Browse our open-source code and contribute + </Card> + + <Card + title="Example Projects" + icon="code-branch" + href="https://github.com/inblockio/aqua-examples" + > + Explore complete examples and implementation patterns + </Card> + + <Card + title="Follow Updates" + icon="twitter" + href="https://x.com/inblockio" + > + Stay updated with announcements and progress + </Card> + + <Card + title="Get Support" + icon="envelope" + href="mailto:info@inblock.io" + > + Need help? Reach out to our team + </Card> +</CardGroup> + +## Next Steps + +Ready to dive deeper? + +1. **Start Building**: Follow the [Quick Start Guide](/quickstart) to create your first Aqua chain +2. **Understand the Protocol**: Read the [Schema Reference](/schema_reference/introduction) for technical details +3. **Explore Use Cases**: See how others are using Aqua in [real-world applications](/use_cases/introduction) +4. **Join the Community**: Connect with developers on [GitHub](https://github.com/inblockio) + +--- +<Note> +**Need Help?** -<Note>Need help? Email us info@inblock.io to talk to us.</Note> +Email us at [info@inblock.io](mailto:info@inblock.io) to talk to our team, or open an issue on GitHub for technical questions. +</Note> diff --git a/quickstart.mdx b/quickstart.mdx index aa70bc8f..a3185b6d 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -1,116 +1,446 @@ --- -title: "Quickstart" -description: "Start building awesome projects in minutes" +title: "Quick Start" +description: "Get started with Aqua Protocol in minutes" icon: "rocket" --- -### Using Javascript /Typescipt Get started in three steps -> We encourage users to use Typescript to enjoy type defination and better development expirience -<Info> - **Prerequisites**: +This guide will get you up and running with Aqua Protocol quickly. You'll create your first Aqua chain, sign it, and optionally witness it on a blockchain. + +## Choose Your SDK + +<Tabs> + <Tab title="JavaScript/TypeScript (v3)"> + **Stable** - Production-ready SDK for Node.js, Web, and React Native + + Best for: Web applications, existing JavaScript projects + </Tab> + + <Tab title="Rust (v4)"> + **Beta** - Template system, WASM support, cross-platform + + Best for: New projects, performance-critical applications + </Tab> - * Node.js version 19 or higher - * npm or pnpm + +</Tabs> + +--- + +## JavaScript/TypeScript Quick Start (v3) + +<Info> +**Prerequisites**: +- Node.js version 19 or higher +- npm, yarn, or pnpm package manager </Info> -Follow these steps to install and run Mintlify on your operating system. +<Note> +We recommend using TypeScript to enjoy type definitions and better development experience. +</Note> <Steps> - <Step title="Create a project "> - ```bash theme={null} - # For Node.js TypeScript projects - npm create vite@latest my-project -- --template vanilla-ts + <Step title="Install the SDK"> + Create a new project or add to an existing one: + + ```bash + # Create new project (optional) + mkdir my-aqua-project + cd my-aqua-project + npm init -y + + # Install Aqua SDK + npm install aqua-js-sdk + + # For TypeScript projects, also install type support + npm install --save-dev typescript @types/node + ``` + </Step> - # Or for a simple setup - npx tsc --init + <Step title="Create Your First Aqua Chain"> + Create a file called `index.ts` (or `index.js`): + + ```typescript + import Aquafier, { FileObject } from 'aqua-js-sdk'; + + async function main() { + // Initialize Aquafier + const aquafier = new Aquafier(); + + // Create a file object to notarize + const fileObject: FileObject = { + fileName: "hello.txt", + fileContent: "Hello, Aqua Protocol!", + path: "./hello.txt" + }; + + // Create genesis revision (notarize the file) + console.log("Creating Aqua chain..."); + const result = await aquafier.createGenesisRevision(fileObject); + + if (result.isOk()) { + console.log("✓ Success! Aqua chain created."); + console.log("Aqua Tree:", JSON.stringify(result.data.aquaTree, null, 2)); + + // The aquaTree contains your notarized file + const aquaTree = result.data.aquaTree; + console.log("\nYou can now:"); + console.log("- Sign this chain"); + console.log("- Witness it on blockchain"); + console.log("- Verify it anytime"); + } else { + console.error("✗ Error:", result.error); + } + } + + main().catch(console.error); ``` </Step> - <Step title="Install Aqua JS SDK"> - use npm or pnpm to install th js sdk + <Step title="Run Your Code"> + ```bash + # For TypeScript + npx tsx index.ts - ```bash theme={null} - npm i aqua-js-sdk + # Or compile and run + npx tsc index.ts + node index.js + + # For plain JavaScript + node index.js ``` - + You should see output showing your Aqua chain was created successfully! + </Step> + + <Step title="Next: Add a Signature (Optional)"> + Extend your code to add a cryptographic signature: + + ```typescript + // ... after creating genesis ... + + if (result.isOk()) { + const aquaTree = result.data.aquaTree; + + // Sign with MetaMask (will prompt in browser) + const wrapper = { + aquaTree: aquaTree, + fileObject: fileObject, + revision: "" + }; + + console.log("\nAdding signature..."); + const signedResult = await aquafier.signAquaTree( + wrapper, + "metamask", // or "cli", "did", "p12" + {}, // credentials + true // auto-increment + ); + + if (signedResult.isOk()) { + console.log("✓ Signature added!"); + } + } + ``` </Step> +</Steps> - <Step title="Preview locally"> - Navigate to where your `package.json` file is located, and run the following command: +--- - ```bash theme={null} - npm run dev +## Rust Quick Start (v4) + +<Info> +**Prerequisites**: +- Rust 1.70 or higher +- Cargo package manager +</Info> + +<Steps> + <Step title="Create a New Project"> + ```bash + # Create a new Rust binary project + cargo new my-aqua-project + cd my-aqua-project + + # Or for a library + cargo new --lib my-aqua-lib + ``` + </Step> + + <Step title="Add Aqua SDK Dependency"> + Add the Aqua SDK to your `Cargo.toml`: + + ```toml + [dependencies] + aqua-rs-sdk = { git = "https://github.com/inblockio/aqua-verifier-rs" } + tokio = { version = "1", features = ["full"] } + serde_json = "1.0" ``` + </Step> - A local preview of your documentation will be available at `http://localhost:{configured port}`. + <Step title="Create Your First Aqua Chain"> + Update `src/main.rs`: + + ```rust + use aqua_rs_sdk::primitives::Method; + use aqua_rs_sdk::schema::file_data::FileData; + use aqua_rs_sdk::Aquafier; + use std::path::PathBuf; + + #[tokio::main] + async fn main() -> Result<(), Box<dyn std::error::Error>> { + println!("Creating Aqua chain..."); + + // Read file content + let filename = "test.txt".to_string(); + let file_content = tokio::fs::read(&filename).await?; + + // Create file data + let file_data = FileData::new( + filename.clone(), + file_content, + PathBuf::from(format!("./{}", filename)), + ); + + // Initialize Aquafier + let aquafier = Aquafier::new(None, None); + + // Create genesis revision (notarize the file) + let result = aquafier.create_genesis_revision(file_data, Method::Scalar); + + match result { + Ok(tree) => { + println!("✓ Aqua chain created successfully!"); + println!("{}", serde_json::to_string_pretty(&tree)?); + + println!("\nYou can now:"); + println!("- Add a signature revision"); + println!("- Witness on blockchain"); + println!("- Verify the chain"); + } + Err(e) => { + eprintln!("Error: {:#?}", e); + } + } + + Ok(()) + } + ``` + </Step> + + <Step title="Build and Run"> + ```bash + cargo build + cargo run + ``` + + You should see confirmation that your object revision was created! </Step> </Steps> -## Using Rust -Create a library or a binary project using the recommended commands.Then simply run the following command to istall the library +--- + +## CLI Tool Quick Start + +<Info> +**Prerequisites**: +- Rust and Cargo installed +</Info> + +<Steps> + <Step title="Install the CLI"> + ```bash + # Clone and build + git clone https://github.com/inblockio/aqua-cli-rs + cd aqua-cli-rs + cargo build --release + + # The binary will be at target/release/aqua-cli + ``` + </Step> -```bash theme={null} -cargo add aqua-verifier -``` + <Step title="Verify an Aqua Chain"> + ```bash + ./target/release/aqua-cli verify --file chain.aqua.json + ``` + </Step> -We encourage You to use the latest version of the protocol. -<Warning>The library version number matches the protocol version</Warning> + <Step title="Get Help"> + ```bash + ./target/release/aqua-cli --help + ``` + </Step> +</Steps> +See the [CLI documentation](/dev_tools/aqua_cli) for more commands. +--- ## Troubleshooting <AccordionGroup> - <Accordion title="Error: Could not load the "sharp" module using the darwin-arm64 runtime"> - This may be due to an outdated version of node. Try the following: + <Accordion title="Node.js: Module not found error"> + **Issue**: `Cannot find module 'aqua-js-sdk'` + + **Solutions**: + 1. Ensure you ran `npm install aqua-js-sdk` + 2. Check you're in the correct directory with `package.json` + 3. Try deleting `node_modules` and `package-lock.json`, then run `npm install` again + 4. For TypeScript, ensure you have `@types/node` installed + </Accordion> - 1. Remove the currently-installed version of the CLI: `npm remove -g mint` - 2. Upgrade to Node v19 or higher. - 3. Reinstall the CLI: `npm i -g mint` + <Accordion title="TypeScript: Type errors"> + **Issue**: TypeScript compilation errors + + **Solutions**: + 1. Ensure you have TypeScript installed: `npm install --save-dev typescript` + 2. Create or update `tsconfig.json`: + ```json + { + "compilerOptions": { + "target": "ES2020", + "module": "commonjs", + "esModuleInterop": true, + "strict": true + } + } + ``` + 3. Use `tsx` for direct TypeScript execution: `npm install --save-dev tsx` </Accordion> - <Accordion title="Issue: Encountering an unknown error"> - Solution: Go to the root of your device and delete the `~/.mintlify` folder. Then run `mint dev` again. + <Accordion title="Rust: Compilation errors"> + **Issue**: Build fails with dependency errors + + **Solutions**: + 1. Update Rust: `rustup update` + 2. Clean and rebuild: `cargo clean && cargo build` + 3. Check you're using Rust 1.70 or higher: `rustc --version` + 4. Ensure your `Cargo.toml` has the correct repository URL </Accordion> -</AccordionGroup> -Curious about what changed in the latest CLI version? Check out the [CLI changelog](https://www.npmjs.com/package/mintlify?activeTab=versions). + <Accordion title="MetaMask: Not detecting in Node.js"> + **Issue**: MetaMask signing doesn't work + + **Solution**: MetaMask works in browser environments only. For Node.js: + - Use CLI signing with mnemonic in `credentials.json` + - Or use DID or P12 signing methods + - See [Development Guide](/development) for details + </Accordion> + + <Accordion title="Witnessing: Network errors"> + **Issue**: Ethereum witness fails + + **Solutions**: + 1. Ensure you have ETH in your wallet (testnet ETH for Sepolia/Holesky) + 2. Get testnet ETH from faucets: + - Sepolia: [sepoliafaucet.com](https://sepoliafaucet.com) + - Holesky: [holesky-faucet.pk910.de](https://holesky-faucet.pk910.de) + 3. Check network connectivity + 4. Verify your Alchemy API key is correct + </Accordion> +</AccordionGroup> --- -## Next steps +## What You've Learned + +Congratulations! You've created your first Aqua chain. Here's what you accomplished: + +✅ Installed an Aqua SDK (JavaScript or Rust) +✅ Created a genesis revision (notarized data) +✅ Understood the basic Aqua workflow +✅ Ready to add signatures and witnesses -Now that you have your aqua library installed, explore these key features: +## Next Steps + +Now that you have the basics, dive deeper into Aqua Protocol's features: <CardGroup cols={2}> + <Card title="Signing Revisions" icon="signature" href="/schema_reference/signing_revision"> + Add cryptographic signatures with RSA, Ethereum, or DID methods + </Card> + + <Card title="Witnessing" icon="clock" href="/schema_reference/witness_revision"> + Anchor your chains to Ethereum, TSA, or Nostr for timestamps + </Card> - <Card title="Witnessing" icon="eye" href="/essentials/markdown"> - Represents a record of a witness event, such as a blockchain transaction + <Card title="Linking Chains" icon="link" href="/schema_reference/link_revision"> + Connect multiple Aqua Trees to build complex provenance graphs </Card> - <Card title="Signing" icon="signature" href="/essentials/settings"> - Represents a digital signature applied to a revision in an aqua tree. + <Card title="Using Templates" icon="table" href="/schema_reference/template_revision"> + Define data schemas with JSON Schema validation (v4 only) </Card> - <Card title="Linking" icon="link" href="/essentials/code"> - Represents a record of other revisions belonging to other or the same AquaTree structure. + <Card title="Development Guide" icon="code" href="/development"> + Complete guide for signing methods, witnessing, and advanced usage </Card> - <Card title="Templates" icon="flag" href="/api-reference/introduction"> - Template revisions specify the structure of other types of revisions. + <Card title="Schema Reference" icon="book" href="/schema_reference/introduction"> + Detailed technical specifications for all revision types </Card> - <Card title="Objects" icon="brackets" href="/api-reference/introduction"> - Object revisions are literal generic JSON envelops whose structure is defined by a template revision + <Card title="Use Cases" icon="lightbulb" href="/use_cases/introduction"> + Explore real-world applications and implementation patterns </Card> + <Card title="Examples" icon="github" href="https://github.com/inblockio/aqua-examples"> + Browse complete working examples in multiple languages + </Card> </CardGroup> +## Complete Workflow Example + +Want to see the full workflow including signing and witnessing? + +<Tabs> + <Tab title="JavaScript"> + Check out the [complete JavaScript example](https://github.com/inblockio/aqua-js-sdk/tree/master/examples) in the SDK repository. + </Tab> + + <Tab title="Rust"> + Check out the [Rust SDK documentation](/dev_tools/aqua_sdk) for complete examples. + </Tab> +</Tabs> + +## Try Aquafier + +Not ready to code yet? Try our web-based demo: + +<CardGroup cols={2}> + <Card title="Aquafier Demo" icon="globe" href="https://aquafier.inblock.io"> + Upload and notarize files through a web interface + </Card> + + <Card title="Test Environment" icon="flask" href="https://dev.inblock.io"> + Experiment safely in the development environment + </Card> +</CardGroup> + +## Get Help + +<CardGroup cols={2}> + <Card title="GitHub Issues" icon="github" href="https://github.com/inblockio"> + Report bugs or ask questions on GitHub + </Card> + + <Card title="Email Support" icon="envelope" href="mailto:info@inblock.io"> + Contact our team for assistance + </Card> + + <Card title="Documentation" icon="book" href="/"> + Browse comprehensive guides and references + </Card> + + <Card title="Community" icon="users" href="https://github.com/inblockio/aqua-examples/discussions"> + Join discussions with other developers + </Card> +</CardGroup> + +--- <Note> - **Need help?** join our [community](https://aquaprotocol.zulipchat.com/). +**Ready to build?** Start with the [Development Guide](/development) for detailed instructions on signing, witnessing, and advanced features. </Note> From 7066ac69c43ab95df8cf1804bb953889bc93ceff Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Fri, 5 Dec 2025 14:01:20 +0300 Subject: [PATCH 13/15] 1. identity_attestation.mdx 2. fix rust examples --- docs.json | 3 +- quickstart.mdx | 8 +- use_cases/identity_attestation.mdx | 125 +++++++++++++++++++++++++++++ 3 files changed, 131 insertions(+), 5 deletions(-) create mode 100644 use_cases/identity_attestation.mdx diff --git a/docs.json b/docs.json index 818853a3..4611d543 100644 --- a/docs.json +++ b/docs.json @@ -67,7 +67,8 @@ "pages": [ "use_cases/introduction", "use_cases/supply_chain", - "use_cases/identity_attestation" + "use_cases/identity_attestation", + "use_cases/document_verification" ] }, { diff --git a/quickstart.mdx b/quickstart.mdx index a3185b6d..e4897a9c 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -348,10 +348,10 @@ See the [CLI documentation](/dev_tools/aqua_cli) for more commands. Congratulations! You've created your first Aqua chain. Here's what you accomplished: -✅ Installed an Aqua SDK (JavaScript or Rust) -✅ Created a genesis revision (notarized data) -✅ Understood the basic Aqua workflow -✅ Ready to add signatures and witnesses +✅ Installed an Aqua SDK (JavaScript or Rust)<br/> +✅ Created a genesis revision (notarized data)<br/> +✅ Understood the basic Aqua workflow<br/> +✅ Ready to add signatures and witnesses<br/> ## Next Steps diff --git a/use_cases/identity_attestation.mdx b/use_cases/identity_attestation.mdx new file mode 100644 index 00000000..9319e731 --- /dev/null +++ b/use_cases/identity_attestation.mdx @@ -0,0 +1,125 @@ +--- +title: "Identity Attestation" +description: "Establish trust with verifiable self-sovereign identity claims and attestations" +--- + +# Identity Attestation + +The Aqua Protocol enables a robust **Self-Sovereign Identity (SSI)** framework where individuals and organizations can issue, attest, and verify identity claims without relying on centralized identity providers. By leveraging cryptographic proofs and decentralized trust chains, Aqua allows users to own their data while enabling third parties to verify specific attributes with certainty. + +## Core Capabilities + +### Self-Sovereign Identity (SSI) +Users have full control over their identities. Identity claims are **self-issued** first, proving account ownership, and then enriched by **attestations** from trusted authorities. This ensures that the user is always the central point of their identity graph. + +### Verifiable Attestations +Third parties (Trust Authorities) can sign attestations that validate a user's specific claims (e.g., "Over 18", "Accredited Investor", "University Graduate"). These attestations are cryptographically linked to the user's identity chain and the authority's trust chain. + +### Trust Chains +Trust is transitive and transparent. A verifier doesn't just trust a claim; they verify the entire chain of authority. For example, a diploma is trusted because it's signed by a University, which is accredited by an Education Ministry, which is recognized by the Government. + +### Selective Disclosure & Privacy +Users can share specific attestations (e.g., "I am over 21") without revealing their entire identity or unrelated personal data. Data Vaults protect sensitive claims, ensuring they are only decrypted for authorized verifiers. + +## Use Cases by Industry + +### Education & Academia + +**Digital Diplomas & Transcripts** +- Universities issue tamper-proof degree certificates. +- Students can instantly prove graduation to employers. +- Prevents credential fraud and "diploma mills". +- Enables portable academic records across institutions. + +**Professional Certifications** +- Licensing boards attest to professional status (e.g., Medical License, Bar Association). +- Real-time verification of valid/active status. +- Automated expiry and renewal tracking. + +### Government & Legal + +**Digital ID & Passports** +- Governments issue digital complements to physical IDs. +- Citizens use digital wallets to prove citizenship or residency. +- Streamlined visa and border entry processes. + +**Notary & Witnessing** +- Notaries attest to the identity of a signer on a document. +- Creates a cryptographic link between the person, the document, and the notary. +- Replaces physical stamps with digital signatures. + +### Financial Services + +**KYC/AML Compliance** +- Banks perform "Know Your Customer" checks once and issue a reusable attestation. +- Users share this attestation with other services to onboard instantly without re-submitting documents. +- Reduces compliance costs and friction. + +**Accredited Investor Status** +- Financial institutions attest that a user meets investment criteria. +- Allows participation in regulated private equity or tokens. + +### Digital Services & Web3 + +**Sybil Resistance** +- Verify that an account belongs to a unique human without collecting personal data. +- "Proof of Humanity" or "Social Login" attestations. +- Prevents bot spam and manipulation in DAOs and communities. + +**Reputation & Social Proof** +- Platforms attest to a user's reputation score or history. +- Enables portable reputation across different marketplaces and communities. + +## Key Benefits + +### User Privacy & Control +Users store their own data in encrypted Data Vaults. They grant access only when necessary and can revoke it at any time. No centralized "honey pot" of user data to hack. + +### Fraud Reduction +Cryptographic signatures make it impossible to forge attestations. + +### Interoperability +Built on standard cryptographic primitives, allowing identity claims to be used across different platforms, wallets, and services that support the Aqua Protocol. + +### Reduced Friction +"Verify once, use everywhere." Users don't need to repeatedly upload passport photos or utility bills. One verified attestation can be reused across multiple services. + +## How It Works + +### 1. Claim Creation (Self-Issuance) +The user creates a **Self-Issued Identity Claim**. +- Example: "I claim my name is Alice." +- This claim is signed by Alice's private key, establishing ownership of the claim. +- It serves as the "subject" for future attestations. + +### 2. Attestation +A **Trust Authority** (e.g., a University) verifies the claim off-chain (by checking real documents) and then issues an **Attestation**. +- The Authority signs a statement referencing Alice's self-issued claim hash. +- "I, University X, attest that the claim [Hash] by Alice is true." +- This attestation is recorded in the Authority's Aqua chain. + +### 3. Verification & Trust Chains +A relying party (e.g., an Employer) verifies the diploma. +- They check Alice's claim. +- They verify the University's signature on the attestation. +- They verify the University's authority (e.g., by checking a "Ministry of Education" attestation on the University's identity). +- If the chain of trust is valid, the diploma is accepted. + + +## Real-World Scenario: The "Trust Chain" + +Consider verifying a **University Degree**: + +1. **The Graduate (Alice)**: Creates a self-issued claim for her degree. +2. **The Professor**: Signs an attestation for Alice's grade/completion. +3. **The Department Head**: Attests to the Professor's employment. +4. **The University**: Attests to the Department Head's role. +5. **The Ministry of Education**: Attests to the University's accreditation. + +When an employer verifies Alice's degree, they trace this path back to a root of trust they recognize (e.g., the Ministry of Education), ensuring the credential is legitimate without needing to call the university. + +## See Also + +- [Document Verification](/use_cases/document-verification) - Verify the integrity of files and contracts. +- [Supply Chain Tracking](/use_cases/supply-chain) - Trace provenance of physical goods. +- [Aqua CLI](/dev_tools/aqua_cli) - Tools for issuing and verifying claims. From f6ffabce63b1dd2f0928b3bea604a9f550f2c5fc Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Tue, 9 Dec 2025 09:28:45 +0300 Subject: [PATCH 14/15] remove icons with encoding issues --- dev_tools/aqua_sdk.mdx | 2 +- schema_reference/signing_revision.mdx | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dev_tools/aqua_sdk.mdx b/dev_tools/aqua_sdk.mdx index 8729d834..01b30c82 100644 --- a/dev_tools/aqua_sdk.mdx +++ b/dev_tools/aqua_sdk.mdx @@ -3,7 +3,7 @@ title: 'Aqua SDK' description: 'A library for use in a code base for notarization and verification' icon: "code" --- - +This Page contains sdk details of version 4 of the Aqua Protocol.To Use version 3 which is stable visit [quickstart](/quickstart) The Aqua SDK is a Rust library that provides the core functionality for creating, signing, witnessing, and verifying Aqua Protocol chains. It supports Aqua Protocol v4 and includes WebAssembly (WASM) bindings for cross-platform compatibility. ## Features diff --git a/schema_reference/signing_revision.mdx b/schema_reference/signing_revision.mdx index 47a9da66..efbed73a 100644 --- a/schema_reference/signing_revision.mdx +++ b/schema_reference/signing_revision.mdx @@ -192,8 +192,8 @@ The signature is computed over the **hash of the previous revision**, not the re ### Example Signing Flow ``` -Object Revision Compute Hash Sign Hash Signature Revision - +Object Revision => Compute Hash => Sign Hash => Signature Revision + | 0x3f8a7b2c... (previous_revision in signature) ``` @@ -218,11 +218,11 @@ To add multiple signatures to the same revision: ``` Object Revision - + | Signature 1 (Alice signs object) - + | Signature 2 (Bob signs Signature 1) - + | Signature 3 (Carol signs Signature 2) ``` @@ -234,9 +234,9 @@ For independent multi-party signing (all signing the same object): ``` Object Revision - + | | | Signature A Signature B Signature C - + | | | Link Revision ``` @@ -247,31 +247,31 @@ Use a Link Revision to combine multiple independent signature branches. ### 1. Document Signing Sign file object revisions to prove authorship: ``` -File Object Signature (Author) Witness (Timestamp) +File Object => Signature (Author) => Witness (Timestamp) ``` ### 2. Approval Workflows Multiple parties sign in sequence: ``` -Document Sign (Creator) Sign (Reviewer) Sign (Approver) +Document => Sign (Creator) => Sign (Reviewer) => Sign (Approver) ``` ### 3. Notarization Professional notary signs an object: ``` -Object Signature (Notary's RSA key) Witness (Blockchain) +Object => Signature (Notary's RSA key) => Witness (Blockchain) ``` ### 4. Smart Contract Interaction Ethereum wallet signs for on-chain verification: ``` -Claim Signature (EIP-191) Submit to Smart Contract +Claim => Signature (EIP-191) => Submit to Smart Contract ``` ### 5. Decentralized Identity DID-based signatures for verifiable credentials: ``` -Credential Signature (Issuer's DID) Holder stores +Credential => Signature (Issuer's DID) => Holder stores ``` ## Implementation Notes From 66734508a4e7899c878ca4cd9dbab591f3bf2370 Mon Sep 17 00:00:00 2001 From: Arthur_kamau <kennkamau09@gmail.com> Date: Tue, 9 Dec 2025 09:33:56 +0300 Subject: [PATCH 15/15] add v4 text to API/Schema reference --- docs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs.json b/docs.json index 4611d543..b85a6b95 100644 --- a/docs.json +++ b/docs.json @@ -82,7 +82,7 @@ ] }, { - "tab": "API/Schema reference", + "tab": "API/Schema reference (v4.0)", "groups": [ { "group": "API documentation",