Skip to content
@gnolang

Gno & Gno.land

Gno: An interpreted, stack-based Go virtual machine to build succinct and composable apps + Gno.land: a blockchain for timeless code and fair open-source
      ____ _____  ____      Discover:  Homepage - Main repo
     / __ `/ __ \/ __ \     Networks:  Test3 (latest) - Staging
    / /_/ / / / / /_/ /     Learn:     Official Documentation - Gno by Example - Awesome Gno
    \__, /_/ /_/\____/      Social:    Twitter - Discord - Reddit - YouTube
   /____/                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Overview

Why Gno?
  • A better programming language for smart contracts: Gno.land utilizes the Gno programming language, which is an interpreted variation of Go. It is executed through a specialized virtual machine called the GnoVM, purpose-built for the Gno.land blockchain. There are some differences among the languages: Gno does not support Goroutines, channels and non-deterministic libraries like crypto/rand, and it supports additional features like automatic persistence of global variables for storing state.

  • Consensus Protocol: Gno.land achieves consensus between nodes using the Tendermint2 consensus algorithm. Tendermint2 is a variation on the well-established Tendermint consensus algorithm used in many Cosmos blockchains, which is Byzantine Fault Tolerant, has instant finality (Users can be sure their transactions are finalized as soon as a block is created, unlike Bitcoin) and can easily be extracted to create new interoperable TM2-based blockchains.

  • Inter-Blockchain Communication (IBC): In the future, Gno.land will be able to communicate and exchange data with other blockchain networks within the Cosmos ecosystem through the Inter-Blockchain Communication (IBC) protocol.

Why Go Based? The decision to base Gno.land's language on Go was influenced by the following factors:
  • An established language: using Go instead of creating a new programming language enables existing Go developers to bring over their knowledge to Gno, making adopting the language not an intrinsic time investment on the success of the blockchain. Gno re-uses the syntax and a majority of the standard libraries, adapts Go's package model and adapts it for the blockchain context.
  • Security through the package model: by leveraging Go's existing package model, which distinguishes between exported and unexported symbols, realms (smart contracts) are capable of simply discriminating what functionality, types and data should be available for consumption outside of the realm. By enforcing all on-chain published code to be open source and creating a public on-chain registry of published re-usable packages, Gno realms (smart contracts and packages can be easily audited and build upon each other's reputation.
Coming from other blockchains like Ethereum?

Gno.land offers a few distinct advantages to Ethereum:

  1. Transparent and Auditable Smart Contracts: Gno.land Smart Contracts are fully transparent and auditable by users because the actual source code is uploaded to the blockchain. In contrast, Ethereum uses Solidity, which requires precompilation into bytecode, leading to less transparency as bytecode is stored on the blockchain, not the human-readable source code.

  2. General-Purpose Language: Gno.land's Gno is a general-purpose language, similar to Go, extending its usability beyond the context of blockchain, and allowing Gno to tap into the already existing ecosystem of Go packages. In contrast, Solidity is designed specifically for Smart Contracts on the Ethereum platform.

Choose your path:

Build on Gno.land
Learn how to write Smart Contracts with Gno
Contributing

Resources

Developer Resources
Wallets
  • Adena: Currently, Gno has one main wallet to choose from that any developer can fork and extend to build their own.
Partners
Community

Pinned

  1. gno gno Public

    Gno: An interpreted, stack-based Go virtual machine to build succinct and composable apps + Gno.land: a blockchain for timeless code and fair open-source

    Go 826 330

  2. getting-started getting-started Public

    Get started with your first Gnolang Realm easily with this repo

    Go 7 4

  3. awesome-gno awesome-gno Public

    Curated list of great GNO resources by the community.

    53 25

  4. workshops workshops Public

    https://www.youtube.com/@_gnoland

    TypeScript 8 6

  5. hackerspace hackerspace Public

    Tinker, build, explore Gno - without the monorepo!

    Python 7 4

  6. meetings meetings Public

    meeting organization, transcripts, and resource sharing

    3 2

Repositories

Showing 10 of 49 repositories

Top languages

Loading…

Most used topics

Loading…