From 62a6d023ccaf4af85f54f7d88fc5a60b1cd640a7 Mon Sep 17 00:00:00 2001 From: Antonio Navarro Perez Date: Fri, 7 Jul 2023 12:02:34 +0200 Subject: [PATCH 1/2] Docs: Add first documentation archetype. Adding different concepts linked between them as a first iteration to keep adding new and deeper ones to our documentation. Signed-off-by: Antonio Navarro Perez --- docs/daos.md | 9 +++++++++ docs/evaluation-dao.md | 10 ++++++++++ docs/gno.land.md | 3 +++ docs/gnode.md | 12 ++++++++++++ docs/gnovm.md | 7 +++++++ docs/gnoweb.md | 9 +++++++++ docs/ibc-protocol.md | 12 ++++++++++++ docs/new-tendermint.md | 7 +++++++ docs/realm-state.md | 11 +++++++++++ docs/realm.md | 9 +++++++++ 10 files changed, 89 insertions(+) create mode 100644 docs/daos.md create mode 100644 docs/evaluation-dao.md create mode 100644 docs/gno.land.md create mode 100644 docs/gnode.md create mode 100644 docs/gnovm.md create mode 100644 docs/gnoweb.md create mode 100644 docs/ibc-protocol.md create mode 100644 docs/new-tendermint.md create mode 100644 docs/realm-state.md create mode 100644 docs/realm.md diff --git a/docs/daos.md b/docs/daos.md new file mode 100644 index 00000000000..42b3cbb684e --- /dev/null +++ b/docs/daos.md @@ -0,0 +1,9 @@ +--- +state: design # Nothing implemented yet, figuring out the best way to do it. +--- + +# DAOs +Decentralized Autonomous Organizations are represented as a group of [Realm](./realm.md)s or/and [package](.)s that can manage decisions using the blockchain. We have several DAOs that will be in charge of: + +- [OP Values prize DAO](.): It will define the prize per VM Op. +- [Evaluation DAO](evaluation-dao.md): It will be in charge of making [Proof of Contribution](.) works. \ No newline at end of file diff --git a/docs/evaluation-dao.md b/docs/evaluation-dao.md new file mode 100644 index 00000000000..46f757f49d4 --- /dev/null +++ b/docs/evaluation-dao.md @@ -0,0 +1,10 @@ +--- +state: design # Nothing implemented yet, figuring out the best way to do it. +--- + +# Evaluation DAO + +It is a smart contract framework for reviewing, measuring, and accepting contributions. It is not the consensus mechanism but rather a platform. + +It scales itself -> managed by its members; serving as an entry point to become a new member. +V1 is currently being developed as a [GoR](.) (Game of Realms) task. \ No newline at end of file diff --git a/docs/gno.land.md b/docs/gno.land.md new file mode 100644 index 00000000000..444c7212539 --- /dev/null +++ b/docs/gno.land.md @@ -0,0 +1,3 @@ +# gno.land + +gno.land is a reference to all applications included in the ecosystem, from [Tendermint V2](./new-tendermint.md) to [Gnovm](./gnovm.md), also including [Gnoweb](./gnoweb.md) and others. \ No newline at end of file diff --git a/docs/gnode.md b/docs/gnode.md new file mode 100644 index 00000000000..9a5c70317a7 --- /dev/null +++ b/docs/gnode.md @@ -0,0 +1,12 @@ +--- +state: design # Nothing implemented yet, figuring out the best way to do it. +--- + +# Gnodes + +Gnodes are interconnected [DAOs](./daos.md) for scaling and specialized communities. They enable secure collaboration and seamless integration, facilitating transparent ecosystem management at scale. + +Layers and overlays for different perspectives: +- first layer: entities, people, and connections to projects and teams. +- second layer: relationships between entities, burn rate, payments (the "basic income" layer) +- third layer: conflicts of interest, ownership stakes (privacy-preserving) \ No newline at end of file diff --git a/docs/gnovm.md b/docs/gnovm.md new file mode 100644 index 00000000000..e8df1e36d31 --- /dev/null +++ b/docs/gnovm.md @@ -0,0 +1,7 @@ +--- +state: improvements-needed # The final PoC is working well, but it must evolve performance-wise. +--- + +# Gnovm + +Gnovm is in charge to run [Gno](.) code. It interprets directly the source code and parses it to an AST. After that, it emulates CPU instructions to execute the AST instead of executing it directly. It is able to store the state of a [Realm](./realm.md) and retrieve it on the next execution. \ No newline at end of file diff --git a/docs/gnoweb.md b/docs/gnoweb.md new file mode 100644 index 00000000000..59d4bace137 --- /dev/null +++ b/docs/gnoweb.md @@ -0,0 +1,9 @@ +--- +state: improvements-needed # The final PoC is working well, but it must evolve performance-wise. +--- + +# Gnoweb + +gnoweb is an application that can call a special method on a [realm](./realm.md) that returns markdown as the output. This can be used to create any kind of web interface, like social networks, blog systems, forums, or standard status pages. + +The method that it calls is `Render(string)`string` where the input string is a path, and the output string is markdown. \ No newline at end of file diff --git a/docs/ibc-protocol.md b/docs/ibc-protocol.md new file mode 100644 index 00000000000..f93c6fc59b0 --- /dev/null +++ b/docs/ibc-protocol.md @@ -0,0 +1,12 @@ +--- +state: improvements-needed # The final PoC is working well, but it must evolve performance-wise. +--- + +# IBC Protocol + +The Inter-Blockchain Communication Protocol (IBC) allows independent blockchains to directly communicate and trade assets. + +- The Inter‐Blockchain Communication Protocol (IBC), an open‐source protocol for relaying messages between independently distributed ledgers, was created to connect independent blockchains. +- IBC allows heterogeneous chains to trustlessly communicate with each other and exchange value, particularly tokens, which makes them interoperable. +- A key feature of IBC is that the connected blockchains do not need to communicate with each other directly. Instead, they can send packets of information via dedicated channels using smart contracts to connect to the chains. +- The Tendermint‐based decentralized exchange [Osmosis](https://www.coinbase.com/cloud/discover/protocol-guides/guide-to-osmosis) allows token holders to directly benefit from what IBC offers by enabling seamless swaps of tokens from different chains. \ No newline at end of file diff --git a/docs/new-tendermint.md b/docs/new-tendermint.md new file mode 100644 index 00000000000..5f8715d8ab2 --- /dev/null +++ b/docs/new-tendermint.md @@ -0,0 +1,7 @@ +--- +state: improvements-needed # The final PoC is working well, but it must evolve performance-wise. +--- + +# New Tendermint + +Tendermint is a consensus algorithm based on the Byzantine-Fault Tolerance algorithm. In gno.land, it is in charge of replicating the Gno VM machine state among all the nodes on the network. \ No newline at end of file diff --git a/docs/realm-state.md b/docs/realm-state.md new file mode 100644 index 00000000000..aefc0f6990b --- /dev/null +++ b/docs/realm-state.md @@ -0,0 +1,11 @@ +--- +state: improvements-needed # The final PoC is working well, but it must evolve performance-wise. +--- + +# Realm State + +State stores the state of a Realm. It stores all the Realm public variables as a Merkle tree. + +## Format + +TODO \ No newline at end of file diff --git a/docs/realm.md b/docs/realm.md new file mode 100644 index 00000000000..bf752252ad9 --- /dev/null +++ b/docs/realm.md @@ -0,0 +1,9 @@ +--- +state: improvements-needed # The final PoC is working well, but it must evolve performance-wise. +--- + +# Realm + +A realm is the equivalent of a smart contract. It is a program that cannot be powered off. + +All public methods of a Realm can be accessed by anyone, and all the global variables will be stored between executions as the [State](./realm-state.md) \ No newline at end of file From 7ba8cfcd241014af17a4b88f2f9959c68a3fac18 Mon Sep 17 00:00:00 2001 From: Antonio Navarro Perez Date: Mon, 10 Jul 2023 10:51:56 +0200 Subject: [PATCH 2/2] Requested changes Signed-off-by: Antonio Navarro Perez --- docs/daos.md | 2 +- docs/gno.land.md | 2 +- docs/gnode.md | 4 ++-- docs/gnovm.md | 6 +++++- docs/gnoweb.md | 5 +++-- docs/ibc-protocol.md | 2 +- docs/new-tendermint.md | 7 ------- docs/realm.md | 2 +- docs/tendermint2.md | 8 ++++++++ 9 files changed, 22 insertions(+), 16 deletions(-) delete mode 100644 docs/new-tendermint.md create mode 100644 docs/tendermint2.md diff --git a/docs/daos.md b/docs/daos.md index 42b3cbb684e..29760cc3a90 100644 --- a/docs/daos.md +++ b/docs/daos.md @@ -3,7 +3,7 @@ state: design # Nothing implemented yet, figuring out the best way to do it. --- # DAOs -Decentralized Autonomous Organizations are represented as a group of [Realm](./realm.md)s or/and [package](.)s that can manage decisions using the blockchain. We have several DAOs that will be in charge of: +Decentralized Autonomous Organizations are represented as a group of people that can manage decisions using the blockchain through [Realm](./realm.md)s or/and [package](.)s. We have several DAOs that will be in charge of: - [OP Values prize DAO](.): It will define the prize per VM Op. - [Evaluation DAO](evaluation-dao.md): It will be in charge of making [Proof of Contribution](.) works. \ No newline at end of file diff --git a/docs/gno.land.md b/docs/gno.land.md index 444c7212539..f73b7b8352b 100644 --- a/docs/gno.land.md +++ b/docs/gno.land.md @@ -1,3 +1,3 @@ # gno.land -gno.land is a reference to all applications included in the ecosystem, from [Tendermint V2](./new-tendermint.md) to [Gnovm](./gnovm.md), also including [Gnoweb](./gnoweb.md) and others. \ No newline at end of file +gno.land is a reference to all applications included in the ecosystem, from [Tendermint V2](./tendermint2.md) to [Gnovm](./gnovm.md), also including [Gnoweb](./gnoweb.md) and others. \ No newline at end of file diff --git a/docs/gnode.md b/docs/gnode.md index 9a5c70317a7..26d3457e5c5 100644 --- a/docs/gnode.md +++ b/docs/gnode.md @@ -8,5 +8,5 @@ Gnodes are interconnected [DAOs](./daos.md) for scaling and specialized communit Layers and overlays for different perspectives: - first layer: entities, people, and connections to projects and teams. -- second layer: relationships between entities, burn rate, payments (the "basic income" layer) -- third layer: conflicts of interest, ownership stakes (privacy-preserving) \ No newline at end of file +- second layer: relationships between entities, burn rate, and payments (the "basic income" layer). +- third layer: conflicts of interest, ownership stakes (privacy-preserving). \ No newline at end of file diff --git a/docs/gnovm.md b/docs/gnovm.md index e8df1e36d31..c0baddfe4a2 100644 --- a/docs/gnovm.md +++ b/docs/gnovm.md @@ -4,4 +4,8 @@ state: improvements-needed # The final PoC is working well, but it must evolve p # Gnovm -Gnovm is in charge to run [Gno](.) code. It interprets directly the source code and parses it to an AST. After that, it emulates CPU instructions to execute the AST instead of executing it directly. It is able to store the state of a [Realm](./realm.md) and retrieve it on the next execution. \ No newline at end of file +Gnovm is in charge to run [Gno](.) code. +Firstly, [Gno](.) source code is parsed into an Abstract Syntax Tree (AST). +Then, [Gnovm](./gnovm.md) interprets the AST to execute the code. +After that, it emulates CPU instructions to execute the AST instead of executing it directly. +It can store the state of a [Realm](./realm.md) and retrieve it on the next execution. \ No newline at end of file diff --git a/docs/gnoweb.md b/docs/gnoweb.md index 59d4bace137..36e5173ab45 100644 --- a/docs/gnoweb.md +++ b/docs/gnoweb.md @@ -4,6 +4,7 @@ state: improvements-needed # The final PoC is working well, but it must evolve p # Gnoweb -gnoweb is an application that can call a special method on a [realm](./realm.md) that returns markdown as the output. This can be used to create any kind of web interface, like social networks, blog systems, forums, or standard status pages. +Gnoweb is an application that can call a special method on a [realm](./realm.md) that returns markdown as the output. +This can be used to create any kind of web interface, like social networks, blog systems, forums, or standard status pages. -The method that it calls is `Render(string)`string` where the input string is a path, and the output string is markdown. \ No newline at end of file +The method that it calls is `Render(string) string` where the input is a path (to discriminate different requests, and potentially handle them through a router), and the return value is normally markdown to be rendered, but it can be any `string` representation. \ No newline at end of file diff --git a/docs/ibc-protocol.md b/docs/ibc-protocol.md index f93c6fc59b0..2539b161f7c 100644 --- a/docs/ibc-protocol.md +++ b/docs/ibc-protocol.md @@ -1,5 +1,5 @@ --- -state: improvements-needed # The final PoC is working well, but it must evolve performance-wise. +state: design # Nothing implemented yet, figuring out the best way to do it. --- # IBC Protocol diff --git a/docs/new-tendermint.md b/docs/new-tendermint.md deleted file mode 100644 index 5f8715d8ab2..00000000000 --- a/docs/new-tendermint.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -state: improvements-needed # The final PoC is working well, but it must evolve performance-wise. ---- - -# New Tendermint - -Tendermint is a consensus algorithm based on the Byzantine-Fault Tolerance algorithm. In gno.land, it is in charge of replicating the Gno VM machine state among all the nodes on the network. \ No newline at end of file diff --git a/docs/realm.md b/docs/realm.md index bf752252ad9..6db5155ab24 100644 --- a/docs/realm.md +++ b/docs/realm.md @@ -6,4 +6,4 @@ state: improvements-needed # The final PoC is working well, but it must evolve p A realm is the equivalent of a smart contract. It is a program that cannot be powered off. -All public methods of a Realm can be accessed by anyone, and all the global variables will be stored between executions as the [State](./realm-state.md) \ No newline at end of file +All public methods of a Realm can be accessed by anyone, and all the global variables will be stored between executions as the [State](./realm-state.md). \ No newline at end of file diff --git a/docs/tendermint2.md b/docs/tendermint2.md new file mode 100644 index 00000000000..7b09b82c27c --- /dev/null +++ b/docs/tendermint2.md @@ -0,0 +1,8 @@ +--- +state: improvements-needed # The final PoC is working well, but it must evolve performance-wise. +--- + +# Tendermint 2 + +Tendermint is a consensus protocol that is Byzantine-Fault tolerant. +In [gno.land](./gno.land.md), it is in charge of orchestrating consensus between nodes on the network and replicating state. \ No newline at end of file