From dbde42ddf2e4b73b312a2e581e5de0e62f91f376 Mon Sep 17 00:00:00 2001 From: Tobias Heindel Date: Thu, 10 Oct 2024 14:47:00 +0000 Subject: [PATCH 1/2] GitBook: No commit message --- .gitbook/assets/image (1).png | 0 .gitbook/assets/image.png | 0 SUMMARY.md | 12 ++++++++++-- learn/anoma-applications/README.md | 10 ++++++++++ .../what-is-an-anoma-application.md | 19 +++++++++++++++++++ .../what-is-application-state.md | 3 +++ learn/overview.md | 13 +++++++++++++ learn/what-is-anoma/README.md | 7 +++++++ .../what-is-anoma/what-is-a-resource-logic.md | 3 +++ learn/what-is-anoma/what-is-a-resource.md | 3 +++ learn/what-is-anoma/what-is-a-transaction.md | 4 ++++ learn/what-is-anoma/what-is-an-intent.md | 16 ++++++++++++++++ 12 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 .gitbook/assets/image (1).png create mode 100644 .gitbook/assets/image.png create mode 100644 learn/anoma-applications/README.md create mode 100644 learn/anoma-applications/what-is-an-anoma-application.md create mode 100644 learn/anoma-applications/what-is-application-state.md create mode 100644 learn/overview.md create mode 100644 learn/what-is-anoma/README.md create mode 100644 learn/what-is-anoma/what-is-a-resource-logic.md create mode 100644 learn/what-is-anoma/what-is-a-resource.md create mode 100644 learn/what-is-anoma/what-is-a-transaction.md create mode 100644 learn/what-is-anoma/what-is-an-intent.md diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png new file mode 100644 index 0000000..e69de29 diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png new file mode 100644 index 0000000..e69de29 diff --git a/SUMMARY.md b/SUMMARY.md index 5edaa28..09cabc6 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,10 +2,18 @@ * [Anoma Overview](README.md) -## Build - ## LEARN +* [Overview](learn/overview.md) +* [What is Anoma?](learn/what-is-anoma/README.md) + * [What is an intent?](learn/what-is-anoma/what-is-an-intent.md) + * [What is a resource?](learn/what-is-anoma/what-is-a-resource.md) + * [What is a resource logic?](learn/what-is-anoma/what-is-a-resource-logic.md) + * [What is a transaction?](learn/what-is-anoma/what-is-a-transaction.md) +* [Anoma Applications](learn/anoma-applications/README.md) + * [What is an Anoma application?](learn/anoma-applications/what-is-an-anoma-application.md) + * [What is application state?](learn/anoma-applications/what-is-application-state.md) + ## Advanced * [Advanced](advanced/advanced.md) diff --git a/learn/anoma-applications/README.md b/learn/anoma-applications/README.md new file mode 100644 index 0000000..a333e60 --- /dev/null +++ b/learn/anoma-applications/README.md @@ -0,0 +1,10 @@ +--- +description: >- + From an end-user perspective, applications are what makes the intent-machine + run. The space of applications is wide open and here we mainly focus on + applications as a general concept. +icon: hammer-brush +--- + +# Anoma Applications + diff --git a/learn/anoma-applications/what-is-an-anoma-application.md b/learn/anoma-applications/what-is-an-anoma-application.md new file mode 100644 index 0000000..c8a2c9f --- /dev/null +++ b/learn/anoma-applications/what-is-an-anoma-application.md @@ -0,0 +1,19 @@ +# What is an Anoma application? + +An Anoma _application_ is a set of resource kinds and solvers. Resource kinds allow to narrow down the fragments of state that are of interest to an application; then, the solvers of an application operate on (this fragment of) state, which typically involves combining user intents into transaction objects. Thus, solvers are what makes the intent-machine work for all users. In fact, there is potentially a whole system of applications as applications may interact (directly) with each other whenever they operate on resources of the same kind. + +### Resource kind + +The resource kind fixes the resource logic and additional information that every resource of this kind carries; in this way, set of standard resource logics can be re-used for different resource kinds with similar behaviour. + +### Solver + +A solver is a specific user that is fabricating transaction objects from user intents such that the preferences for state (change) of intents are effected by state updates. + +### Application read interface: projection functions + +Projection functions constitute the application read interface: solvers use projection functions to read relevant fragments of state kept by the Anoma instance. + +### Application write interface: transaction functions + +Transaction functions constitute the application write interface: solvers use transaction functions to update the state that is maintained by the Anoma instance. diff --git a/learn/anoma-applications/what-is-application-state.md b/learn/anoma-applications/what-is-application-state.md new file mode 100644 index 0000000..0dcdb72 --- /dev/null +++ b/learn/anoma-applications/what-is-application-state.md @@ -0,0 +1,3 @@ +# What is application state? + +For applications, the core fragment of state are all resources that are known to exist and information about which ones are still spendable. Each application typically uses only a small number of resource kinds. diff --git a/learn/overview.md b/learn/overview.md new file mode 100644 index 0000000..99add2a --- /dev/null +++ b/learn/overview.md @@ -0,0 +1,13 @@ +--- +icon: globe +--- + +# Overview + +There are several perspectives on Anoma. We start by looking from the perspective of the end-user and then move progressively to the perspective of application development. + +
+ +
+ +
diff --git a/learn/what-is-anoma/README.md b/learn/what-is-anoma/README.md new file mode 100644 index 0000000..780349c --- /dev/null +++ b/learn/what-is-anoma/README.md @@ -0,0 +1,7 @@ +--- +icon: wand-magic-sparkles +--- + +# What is Anoma? + +Anoma is an [intent-machine](https://anoma.net/research/abstract-intent-machines): in short, an intent-machine takes user intents and turns them into transactions that are settled so that the state actually changes according to user preferences expressed by intents. But what is an intent? diff --git a/learn/what-is-anoma/what-is-a-resource-logic.md b/learn/what-is-anoma/what-is-a-resource-logic.md new file mode 100644 index 0000000..27b183b --- /dev/null +++ b/learn/what-is-anoma/what-is-a-resource-logic.md @@ -0,0 +1,3 @@ +# What is a resource logic? + +A _resource logic_ describes the ways in which a resource can be used, in Anoma at large; it fixes precise conditions for creation and destruction of resources that carry it. Resource logics can be programmed in Juvix as Boolean valued functions. diff --git a/learn/what-is-anoma/what-is-a-resource.md b/learn/what-is-anoma/what-is-a-resource.md new file mode 100644 index 0000000..1b7f10a --- /dev/null +++ b/learn/what-is-anoma/what-is-a-resource.md @@ -0,0 +1,3 @@ +# What is a resource? + +A _resource_ is an atomic unit of state. Resources are similar to [unspent transaction outputs](https://en.wikipedia.org/wiki/Unspent\_transaction\_output), but much more versatile. In particular, each resource carries a generic resource logic, which describes the ways in which the resource may be used. diff --git a/learn/what-is-anoma/what-is-a-transaction.md b/learn/what-is-anoma/what-is-a-transaction.md new file mode 100644 index 0000000..91bfdb5 --- /dev/null +++ b/learn/what-is-anoma/what-is-a-transaction.md @@ -0,0 +1,4 @@ +# What is a transaction? + +A transaction object is data that enables a state update that is acceptable according to the [Anoma resource machine](https://anoma.net/research/rise-of-the-resource-machines); each state update amounts to execution of one or several transaction objects. While it is possible to directly create and submit transaction objects to an Anoma instance, the main idea to consider Anoma as an intent-machine is that transactions are composed of user intents. One way in which intents are turned into transactions is in the context of Anoma applications. + diff --git a/learn/what-is-anoma/what-is-an-intent.md b/learn/what-is-anoma/what-is-an-intent.md new file mode 100644 index 0000000..d872c83 --- /dev/null +++ b/learn/what-is-anoma/what-is-an-intent.md @@ -0,0 +1,16 @@ +# What is an intent? + +An _intent_ is a machine-readable message concerning user preferences about state. Thus, users can send intents to spread information about how they would like to change (certain aspects of) the "world". The "world" of an application is the application's _state._ + +*** + +Note that + +> intents only care about the “what” and don’t care about the “how.” + +The above quote is taken from the medium article [WTF is intents?](https://medium.com/@wunderlichvalentin/wtf-is-intents-anoma-th-ccb05fa1beef) + + + + + From cb51d635ae6148d48eb226a9e80abc3862fac0c9 Mon Sep 17 00:00:00 2001 From: Tobias Heindel Date: Thu, 10 Oct 2024 17:43:21 +0200 Subject: [PATCH 2/2] Update overview.md add emphasis---just testing --- learn/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learn/overview.md b/learn/overview.md index 99add2a..aced517 100644 --- a/learn/overview.md +++ b/learn/overview.md @@ -4,7 +4,7 @@ icon: globe # Overview -There are several perspectives on Anoma. We start by looking from the perspective of the end-user and then move progressively to the perspective of application development. +There are several perspectives on Anoma. We start by looking from the perspective of the _end-user_ and then move progressively to the perspective of application development.