# CosmWasm 宣布正式启动

**URL:** <https://forum.cosmos.network/t/cosmwasm/3068>\
**Category:** Chinese\
**Created:** [December 17, 2019, 3:53am UTC](https://forum.cosmos.network/t/cosmwasm/3068 "2019-12-17T03:53:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tina](https://yyz1.discourse-cdn.com/flex031/user_avatar/forum.cosmos.network/tina/32/66_2.png) [@Tina](https://forum.cosmos.network/u/Tina)\
**Post date:** [December 17, 2019, 3:53am UTC](https://forum.cosmos.network/t/cosmwasm/3068/1 "2019-12-17T03:53:44Z")

</div>

原文链接：[https://blog.cosmos.network/announcing-the-launch-of-cosmwasm-cc426ab88e12](https://blog.cosmos.network/announcing-the-launch-of-cosmwasm-cc426ab88e12)  
原文作者：Michelle Leech

Cosmos SDK是基于某些设计考虑用Golang编写以允许自定义模块。然而，扩展为多种编程语言对于提高被开发人员采用至关重要。其最终目的是让区块链互联网，即“跨链”，能够支持通过跨链通信协议（IBC）连接的大量实现和功能。

2019年6月，首个Cosmos HackAtom 在柏林召开，标志了CosmWasm的开始。此次黑客马拉松的目标是为有兴趣在Cosmos网络上构建的开发人员扩展工具。CosmWasm是一个在Cosmos SDK中启用WebAssembly（WASM）虚拟机（VM）的项目，是许多最终从Interchain基金会获得资助的开发工具类项目之一。

在Cosmos SDK中启用WASM虚拟机：

> **[Virtual Machines Take Off in the Cosmos](https://medium.com/@interchain_io/virtual-machines-take-off-in-the-cosmos-3d11bd6ae942)**
>
> The Cosmos Ecosystem is a complex adaptive system grounded in the joint philosophy of sovereignty and choice: where any group may build…

Confio的Ethan Frey（他也是Regen Network的首席工程师）设计了在Cosmos SDK应用程序之上运行的第一个WASM虚拟机实现。我们很高兴地宣布，它现已可用于Cosmos社区！如果你是Rust开发人员，则可以轻松编写智能合约，这些合约可以上传到任何包含CosmWasm模块的基于Cosmos SDK的链。你可以在以下链接中找到有关该技术的更多信息：

- 文档网站：[https://www.cosmwasm.com/](https://www.cosmwasm.com/)
- Github代码库：[https://github.com/confio/cosmwasm](https://github.com/confio/cosmwasm)
- 开发人员博客文章：[https://www.cosmwasm.com/blog/](https://www.cosmwasm.com/blog/)
- 即将推出：在CosmWasm上重建Cosmos名称服务应用程序的教程——访问Github代码库讨论和支持开发

将WebAssembly添加到Cosmos SDK可以让使用多种语言编写的软件在区块链上安全运行。WASM是一种中间语言，可将开发人员选择的语言编译为便携式虚拟机。这意味着你可以将一个简单，安全，快速的虚拟机设置为沙盒，或者对应用程序的操作进行分区，以实现更好的测试，安全性，性能和速度。

新的编程语言进入Cosmos网络对整个开发生态系统有许多好处：

首先，该产品允许开发人员使用Rust编写与Cosmos SDK无缝集成的模块，因此他们在开发主要基于Rust的自定义应用程序逻辑时，可以利用经过主网验证的Cosmos-SDK模块和BPoS Tendermint共识算法。

其次，能够在交易中上载代码而不是重新启动链，可以更快地部署新功能。仅仅在更改核心逻辑时，才需要Cosmos Hub升级。这使应用专有链可以冻结质押逻辑，并通过自定义智能合约快速迭代其核心价值定位。

尤其是，如果它们将合约部署限制在治理范围内，可以为链提供一种简便的方法来快速交付代码。如果我们启动了默认情况下无需许可上载智能合约的链，则可以在Tendermint上构建以太坊替代方案。

构建智能合约时，一个重要的性能考虑因素是数据包的大小。WebAssembly自然比Ethereum字节码大，因为它提供了更多通用性。Rust没有垃圾收集器，并且可以从构建中排除标准库，这意味着最小的简单托管合约需要大约50kB（压缩的为16kB）。Golang或Haskell是替代方案，但可能会产生数百kB的合约。基于这种考虑，以及Rust在区块链生态系统中的流行，促使Tendermint团队将其用作Cosmos SDK中WebAssembly合约的第一种实现语言。

虽然生态系统仍处于新生阶段，但CosmWasm中的智能合约环境已经图灵完备。这意味着你可以执行任何可以在以太坊中实现的逻辑，并可以在Cosmos SDK中执行它，而无需修改基础区块链。CosmWasm模块包括成熟的构建和测试环境，并由于Rust的原生编程功能而带有集成开发环境（IDE）。有关“CosmWasm入门”的详细指南，请访问产品的文档：

> **[Get started with multi-chain smart contracts! · CosmWasm Documentation](https://www.cosmwasm.com/)**
>
> CosmWasm Documentation

如果你是将Cosmos SDK结合进CosmWasm使用的Rust开发人员，则意味着：

- 你只需要极少的Golang知识。
- 你可以开始在Cosmos SDK上构建并轻松集成到现有Cosmos网络中。
- 可以以最小的开销将你现有的链或应用程序扩展到Cosmos链。

如果你是同时将CosmWasm结合进Cosmos SDK的Go开发人员，好处包括：

- 仅需极少的Rust知识，因为CosmWasm工具设计地很好。
- 在Cosmos SDK中添加Rust编程逻辑就可以进行实时升级或自定义合约，从而增强应用程序的自定义和执行能力。
- 你可以使用Rust的类型安全性和测试，以及Rust中相对常见的编码和加密签名——这对于开发在DeFi中使用的高度安全的区块链应用程序是非常理想的选择。

_本博客文章中表达的观点属于All In Bits Inc（dba Tendermint Inc），并不一定代表Interchain Foundation的观点或行为。_
