github.com/gnolang/gno@v0.0.0-20240520182011-228e9d0192ce/gnovm/README.md (about)

     1  # GnoVM -- Gnolang Virtual Machine
     2  
     3  GnoVM is a virtual machine that interprets Gnolang, a custom version of Golang optimized for blockchains, featuring automatic state management, full determinism, and idiomatic Go.
     4  It works with Tendermint2 and enables smarter, more modular, and transparent appchains with embedded smart-contracts.
     5  It can be used in TendermintCore, forks, and non-Cosmos blockchains.
     6  
     7  Read the ["Intro to Gnoland"](https://test3.gno.land/r/gnoland/blog:p/intro) blogpost.
     8  
     9  This folder focuses on the VM, language, stdlibs, tests, and tools, independent of the blockchain.
    10  This enables non-web3 developers to contribute without requiring an understanding of the broader context.
    11  
    12  ## Language Features
    13  
    14  * Like interpreted Go, but more ambitious.
    15  * Completely deterministic, for complete accountability.
    16  * Transactional persistence across data realms.
    17  * Designed for concurrent blockchain smart contracts systems.
    18  
    19  ## Getting started
    20  
    21  Install [`gno`](./cmd/gno) and refer to the [`examples`](../examples) folder to start developing contracts.
    22  
    23  Check the [Makefile](./Makefile) to enhance GnoVM, Gnolang, and stdlibs.