diff --git a/docs/02-getting-started/02-build-from-source.mdx b/docs/02-getting-started/02-build-from-source.mdx index 9a362fa3..53a5447b 100644 --- a/docs/02-getting-started/02-build-from-source.mdx +++ b/docs/02-getting-started/02-build-from-source.mdx @@ -3,6 +3,8 @@ id: build-from-source title: Build From Source --- +import InitNode from '../shared/node-init-source.mdx'; + ## Setup For Contributors If you want to contribute to the Calimero framework or customize its @@ -86,63 +88,7 @@ minutes but can vary depending on your internet connection. #### 1. Initialize node - - - -```bash title="Terminal" - cargo run -p merod -- --node-name node1 init --server-port 2428 --swarm-port 2528 -``` - - -```bash title="Terminal" - cargo run -p merod -- --node-name node1 init --server-port 2428 --swarm-port 2528 --protocol starknet -``` - - -```bash title="Terminal" - cargo run -p merod -- --node-name node1 init --server-port 2428 --swarm-port 2528 --protocol icp -``` - - - -:::tip - -A `--protocol` flag defines protocol for the node contexts. - -::: - -Node configuration file contains protocol defined metada. Node file is located -under `data` folder. - - - - -![NearConfig](/init/near-config.png) - - - -![SnConfig](/init/sn-config.png) - - - -![ICPConfig](/init/icp-config.png) - - - + #### 2. Run node diff --git a/docs/03-core-concepts/06-blockchains-integration/01-blockchain-integration-general.mdx b/docs/03-core-concepts/06-blockchain-integration.mdx similarity index 81% rename from docs/03-core-concepts/06-blockchains-integration/01-blockchain-integration-general.mdx rename to docs/03-core-concepts/06-blockchain-integration.mdx index b9e90a05..e1f31172 100644 --- a/docs/03-core-concepts/06-blockchains-integration/01-blockchain-integration-general.mdx +++ b/docs/03-core-concepts/06-blockchain-integration.mdx @@ -1,8 +1,10 @@ --- -id: blockchain-integrations -title: Blockchain Integrations +id: blockchains-integration +title: Blockchains Integration --- +import InitNode from '../shared/node-init-binary.mdx'; + # Blockchain Integrations Calimero offers integration with multiple blockchain protocols, allowing users @@ -16,7 +18,7 @@ Calimero currently supports the following blockchain protocols: - Starknet - Internet Computer (ICP) -
+
```mermaid graph TD @@ -130,7 +132,7 @@ context. Each context has its own Proxy Contract instance which is deployed during the context creation. -
+
```mermaid graph TD @@ -143,6 +145,9 @@ D -->|No| F[Store Vote Count]
+Tutorial on how to use proxy contract functionalities is available in +[tutorials section](../../tutorials/proxy-contract-interaction) + ### Deployment of Contracts #### Context Contract @@ -153,7 +158,7 @@ Context Contract is predeployed on each blockchain by the Calimero team. Proxy Contract is deployed during the context creation. -
+
```mermaid graph TD @@ -164,12 +169,24 @@ C -->|Unique Instance| D[Context-specific Proxy]
+:::info + +Proxy Contract is deployed on the same blockchain as the Context Contract. + +::: + +:::warning + +Users are responsible for funding the Proxy Contract. + +::: + ### Example Application We have an example application that connects to Calimero Proxy Contract and allows creating proposals, voting on them, and executing the approved proposals. -
+
```mermaid graph TD A[Application] -->|Connects to| B[Calimero Proxy Contract] @@ -184,5 +201,12 @@ F -->|No| I[Store Vote Count] ```
-Application code can be found -[here](https://github.com/calimero-network/demo-blockchain-integrations). +Application showcases all the actions that can be done on the Proxy Contract. + +To create context on specific blockchain user will need to add the --protocol +when initializing the node + + + +Full source code is available in our GitHub +[repository](https://github.com/calimero-network/demo-blockchain-integrations). diff --git a/docs/03-core-concepts/06-blockchains-integration/02-context-contract.mdx b/docs/03-core-concepts/06-blockchains-integration/02-context-contract.mdx deleted file mode 100644 index 874cc66d..00000000 --- a/docs/03-core-concepts/06-blockchains-integration/02-context-contract.mdx +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: context-contract -title: Context Contract ---- - -# Context Contract - -Calimero Context Contract is used to manage the context on the blockchain. It is -predeployed on each blockchain by the Calimero team. It is used to create the -context, add members to the context, and configure the context. - -## Setup - -To create context on specific blockchain user will need to add the `--protocol` -flag to the `calimero-cli` when initializing the node as explained in the -[Setup](/getting-started/setup) section. - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - - - ```bash title="Start node with Starknet protocol" - cargo run -p merod -- --node-name node1 init --server-port 2428 --swarm-port 2528 --protocol starknet - ``` - - - ```bash title="Start node with Internet Computer (ICP)" - cargo run -p merod -- --node-name node1 init --server-port 2428 --swarm-port 2528 --protocol icp - ``` - - - - -**Note**: NEAR protocol is set by default, so if user wants to use NEAR -protocol, he doesn't need to specify the `--protocol` flag. - -After the node is initialized, user can see the Context Contract address in the -`config.toml` file located in the node folder. - -After initialization, user needs to start the node by running the following -command: - -```bash title="Start node" -cargo run -p merod -- --node-name node1 run -``` - -Before creating the context, user needs to compile the -demo-blockchain-integrations application. To compile the application, please -clone the -[demo-blockchain-integrations](https://github.com/calimero-network/demo-blockchain-integrations) -repository and follow the instructions in the -[README](https://github.com/calimero-network/demo-blockchain-integrations/blob/main/README.md). - -After the application is compiled, user needs to install the application on the -node and then create the context with the application. To create the context and -install the application, please follow the -[Create Context](/tutorials/create-context) tutorial. diff --git a/docs/03-core-concepts/06-blockchains-integration/03-proxy-contract.mdx b/docs/03-core-concepts/06-blockchains-integration/03-proxy-contract.mdx deleted file mode 100644 index 750b583b..00000000 --- a/docs/03-core-concepts/06-blockchains-integration/03-proxy-contract.mdx +++ /dev/null @@ -1,25 +0,0 @@ ---- -id: proxy-contract -title: Proxy Contract ---- - -# Proxy Contract - -Proxy Contract is used to enable users to do actions on the blockchain. Proxy -Contract is deployed during the context creation. - -**Note**: Proxy Contract is deployed on the same blockchain as the Context -Contract. **Note**: Users are responsible for funding the Proxy Contract. - -## Setup - -Since Proxy Contract is deployed during the context creation, user needs to -create a context. Please follow the [Setup](./context-contract#setup) section to -learn how create install the demo application and create the context. - -After the context is created, user needs to connect with Application frontend to -the node. After connection is established, user can start interacting with the -Proxy Contract. - -Demo application enables user to create proposals and vote on them. Application -showcases all the actions that can be done on the Proxy Contract. diff --git a/docs/03-core-concepts/06-blockchains-integration/_category_.json b/docs/03-core-concepts/06-blockchains-integration/_category_.json deleted file mode 100644 index 314f361e..00000000 --- a/docs/03-core-concepts/06-blockchains-integration/_category_.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "label": "Blockchains Integration" -} \ No newline at end of file diff --git a/docs/05-developer-tools/01-CLI/01-merod.mdx b/docs/05-developer-tools/01-CLI/01-merod.mdx index 9768ba56..9ab95119 100644 --- a/docs/05-developer-tools/01-CLI/01-merod.mdx +++ b/docs/05-developer-tools/01-CLI/01-merod.mdx @@ -5,7 +5,8 @@ title: Merod import MerodInstallation from '../../shared/install-merod.mdx'; -Merod is a command-line tool that allows you to initialize, configure and run Calimero nodes. +Merod is a command-line tool that allows you to initialize, configure and run +Calimero nodes.
Installation diff --git a/docs/05-developer-tools/01-CLI/02-meroctl.mdx b/docs/05-developer-tools/01-CLI/02-meroctl.mdx index feb2ebf8..d6b54f89 100644 --- a/docs/05-developer-tools/01-CLI/02-meroctl.mdx +++ b/docs/05-developer-tools/01-CLI/02-meroctl.mdx @@ -5,7 +5,8 @@ title: Meroctl import MeroctlInstallation from '../../shared/install-meroctl.mdx'; -Meroctl is a command-line tool that enables you to interact with your Calimero node directly from the shell. +Meroctl is a command-line tool that enables you to interact with your Calimero +node directly from the shell.
Installation @@ -64,13 +65,13 @@ your nodes private key. ### Examples: -| **Command** | **Description** | -| ------------------------------------------------------------------------------------- | --------------------------------------- | -| `meroctl --node-name app ` | Command for managing applications | -| `meroctl --node-name context ` | Command for managing contexts | -| `meroctl --node-name identity ` | Command for managing identities | -| `meroctl --node-name proxy ` | Command for managing proxy contract | -| `meroctl --node-name call [OPTIONS] --as ` | Executing read and write RPC calls | +| **Command** | **Description** | +| --------------------------------------------------------------------------------- | ----------------------------------- | +| `meroctl --node-name app ` | Command for managing applications | +| `meroctl --node-name context ` | Command for managing contexts | +| `meroctl --node-name identity ` | Command for managing identities | +| `meroctl --node-name proxy ` | Command for managing proxy contract | +| `meroctl --node-name call [OPTIONS] --as ` | Executing read and write RPC calls | ### Manage Applications diff --git a/docs/06-tutorials/00-overview.mdx b/docs/06-tutorials/00-overview.mdx index be777f2c..e6a61657 100644 --- a/docs/06-tutorials/00-overview.mdx +++ b/docs/06-tutorials/00-overview.mdx @@ -1,6 +1,6 @@ --- id: overview -title: Tutorials +title: Overview --- Welcome to the Tutorials section of the Calimero Network documentation! Here, diff --git a/docs/03-core-concepts/06-blockchains-integration/04-proxy-contract-interaction.mdx b/docs/06-tutorials/07-proxy-contract-interaction.mdx similarity index 95% rename from docs/03-core-concepts/06-blockchains-integration/04-proxy-contract-interaction.mdx rename to docs/06-tutorials/07-proxy-contract-interaction.mdx index 7f962702..9d9466dd 100644 --- a/docs/03-core-concepts/06-blockchains-integration/04-proxy-contract-interaction.mdx +++ b/docs/06-tutorials/07-proxy-contract-interaction.mdx @@ -1,4 +1,7 @@ -# Proxy Contract Interaction Guide +--- +id: proxy-contract-interaction +title: Blockchain interaction with Proxy Contract +--- ## Overview @@ -8,6 +11,13 @@ proposal-based system. The integration consists of: 1. Backend Application (Rust) 2. Frontend Application (TypeScript/React) +:::tip + +More info on blockchain integrations can be found in the +[Blockchains Integration](../core-concepts/blockchains-integration) section. + +::: + ## Backend Implementation The backend contract handles proposal creation and management. Here's the core diff --git a/docs/shared/node-init-binary.mdx b/docs/shared/node-init-binary.mdx new file mode 100644 index 00000000..a6b83516 --- /dev/null +++ b/docs/shared/node-init-binary.mdx @@ -0,0 +1,63 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + ```bash title="Terminal" + merod --node-name node1 init --server-port 2428 --swarm-port 2528 + ``` + + + ```bash title="Terminal" + merod --node-name node1 init --server-port 2428 --swarm-port 2528 --protocol starknet + ``` + + + ```bash title="Terminal" + merod --node-name node1 init --server-port 2428 --swarm-port 2528 --protocol icp + ``` + + + + +:::tip + +A `--protocol` flag defines which chain will be used in the node context. NEAR +is default protocol so it doesn't need to be specified. List of supported +protocols can be found in the +[Blockchains integration](../core-concepts/blockchains-integration) + +::: + +Node configuration file contains protocol defined metada. + + + + +![NearConfig](/init/near-config.png) + + + +![SnConfig](/init/sn-config.png) + + + +![ICPConfig](/init/icp-config.png) + + + diff --git a/docs/shared/node-init-source.mdx b/docs/shared/node-init-source.mdx new file mode 100644 index 00000000..e7bd996b --- /dev/null +++ b/docs/shared/node-init-source.mdx @@ -0,0 +1,62 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + +```bash title="Terminal" + cargo run -p merod -- --node-name node1 init --server-port 2428 --swarm-port 2528 +``` + + +```bash title="Terminal" + cargo run -p merod -- --node-name node1 init --server-port 2428 --swarm-port 2528 --protocol starknet +``` + + +```bash title="Terminal" + cargo run -p merod -- --node-name node1 init --server-port 2428 --swarm-port 2528 --protocol icp +``` + + + +:::tip + +A `--protocol` flag defines which chain will be used in the node context. NEAR +is default protocol so it doesn't need to be specified. List of supported +protocols can be found in the +[Blockchains integration](../core-concepts/blockchains-integration) + +::: + +Node configuration file contains protocol defined metada. + + + + +![NearConfig](/init/near-config.png) + + + +![SnConfig](/init/sn-config.png) + + + +![ICPConfig](/init/icp-config.png) + + +