# GNO

By [Untitled](https://paragraph.com/@0x6444ce89fd193caafa8a3b15ecb5c7cd55464d98) · 2022-08-27

---

智能合约平台充当由不受信任的节点运行的分散虚拟机，这些节点在经济激励下验证交易或运行称为智能合约的开源应用程序。尽管领先的区块链已经部署了数千个服务于数百万用户的应用程序，但开发环境和用户体验仍有待优化。

Gnoland 采用了一种名为 Gnolang 的新语言，它是 Golang 的一个分支。在处理并发时，Golang 与其他语言相比具有明显的优势。虽然 C++ 或 Java 等大多数编程语言使用多线程来运行并发程序，但 Go 使用 Goroutines。

多线程是在单个进程中并行运行多个线程。这可能是您的浏览器同时播放音乐和运行搜索引擎，或者您的文字处理软件在检查语法时显示您的输入。多线程的问题在于它需要上下文切换，其中操作系统调度程序管理进程和线程之间的切换。这通常会导致开销并消耗过多的资源。另一方面，Goroutine 通过实现运行时本地调度程序 Go Scheduler 减轻了操作系统的负担。 Goroutines 的创建和销毁消耗的内存似乎更少（低至 0.2% 的线程），并充分利用了硬件的所有内核。

几乎所有现有的区块链都是单线程的，这意味着同时处理多个交易将导致双花或状态之间的冲突。

Gnoland 对此提供了最可行的解决方案，即通过支持 Golang 作为智能合约语言来集成 goroutine。

当前区块链开发环境中最常用的语言是适用于 EVM 兼容网络的 Solidity 和适用于 Solana 和 Cosmos SDK 网络的 Rust； Solidity 和 Rust 都受到 C++ 的启发。尽管以上都是优秀的语言，但 Gnolang 继承了 Golang 更快的编译速度、更简洁的语法和资源高效的并发性。

---

*Originally published on [Untitled](https://paragraph.com/@0x6444ce89fd193caafa8a3b15ecb5c7cd55464d98/gno)*
