From 88a5725589ff9deaaf6556fcc2bc64822c676243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Kuras?= Date: Tue, 30 Jul 2024 16:40:44 +0200 Subject: [PATCH] The documentation landing --- src/pages/index.md | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/src/pages/index.md b/src/pages/index.md index ddebb3d7..5131763b 100644 --- a/src/pages/index.md +++ b/src/pages/index.md @@ -2,8 +2,43 @@ tags: ["intro"] --- -CosmWasm is a smart contract platform focusing on security, performance, and -interoperability. It is the only smart contracting platform for public -blockchains with heavy adoption outside of the EVM world. +The [Cosmos Wasm](https://github.com/CosmWasm/wasmd/tree/main/x/wasm), the root of CosmWasm, is a +[CosmosSDK](https://docs.cosmos.network/) module enabling Smart Contracts to execute on the Wasm virtual machine. +It is a bridge between Cosmos chain and the [WasmWM](https://github.com/CosmWasm/wasmvm) executing the Smart Contracts. +CosmWasm itself is the whole ecosystem built around it with a missing to make Smart Contracts development easy and reliable. +The focuses of the CosmWasm platform are security, performance, and interoperability. CosmWasm is the only Smart Contracts +platform for public blockchains that has been heavily adopted outside the EVM world. -Here you can find its documentation. +We chose to target a Rust programming language as a Smart Contract development stack, as it has the best Wasm compiler on the +market so far. As of today, we do not provide bindings to help write Smart Contracts in another stack that compiles to Wasm, +and we don't support that. + +Here is where to find CosmWasm in the whole Cosmos stack: + +```mermaid +erDiagram + CosmosSDK ||--|| BFT: Uses + CosmosSDK ||--|| "Wasm/WasmWM": Includes + CosmosSDK ||--o{ "Custom Module" : Includes + "Wasm/WasmWM" ||--o{ "Smart Contract": Executes + +``` + +The important thing about CosmWasm Smart Contracts is their transparency. Even though they are executed by the chain node application +using the WasmVM module, they are written to hide their dependency on it. Every Smart Contract has its unique address on the chain, +and it can act just like any other chain client. It is easy to implement communication between two Smart Contracts on the same chain. +CosmWasm standard library provides simple utilities to communicate with non-CosmWasm modules on the chain. That includes common Cosmos +modules like bank or staking and any custom module unique for a particular chain. Finally, CosmWasm is built around the +[IBC](https://www.ibcprotocol.dev/), and it +provides simple entities for communication with remote chains using IBC-based protocols and talk directly to Smart Contracts instantiated +on remote chains with the IBC packages. + +This documentation already covers most of the stack. Still, some parts are a work in progress. If there is something you remember +being here in the old documentation, you can find its content at https://github.com/CosmWasm/docs-deprecated. Remember that the +old documentation is deprecated, mostly outdated, and will not be maintained. We would appreciate any GitHub issues about missing +parts in the [documentation repository](https://github.com/CosmWasm/docs). + +It is worth noting about additional CosmWasm learning resources: + +* [CosmWasm book](https://book.cosmwasm.com/) +* [Sylvia book](https://cosmwasm.github.io/sylvia-book/index.html)