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 - Gnoverse
     / __ `/ __ \/ __ \     Networks:  Portal Loop - Test4 (latest)
    / /_/ / / / / /_/ /     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 Loading

  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 894 374

  2. getting-started getting-started Public

    Get started with your first Gnolang Realm easily with this repo

    Go 8 5

  3. workshops workshops Public

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

    TypeScript 8 6

  4. hackerspace hackerspace Public

    Tinker, build, explore Gno - without the monorepo!

    Python 11 8

  5. meetings meetings Public

    meeting organization, transcripts, and resource sharing

    4 2

Repositories

Showing 10 of 41 repositories
  • 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.

    gnolang/gno’s past year of commit activity
  • tx-indexer Public

    A minimal Tendermint2 indexer capable of serving chain data

    gnolang/tx-indexer’s past year of commit activity
    Go 9 Apache-2.0 13 5 7 Updated Nov 12, 2024
  • roadmap Public archive

    Gno roadmap. Issue-based automatic DAG.

    gnolang/roadmap’s past year of commit activity
    Go 6 2 16 1 Updated Nov 12, 2024
  • infrastructure Public

    One-stop-shop for all things related to Gno infra

    gnolang/infrastructure’s past year of commit activity
    HCL 0 0 0 0 Updated Nov 12, 2024
  • gnolang/benchmarks’s past year of commit activity
    3 0 2 0 Updated Nov 12, 2024
  • tx-exports Public

    Repo to keep archive data from Gno testnets.

    gnolang/tx-exports’s past year of commit activity
    Go 1 3 7 2 Updated Nov 12, 2024
  • gno-js-client Public

    Gnoland JS / TS Client (SDK)

    gnolang/gno-js-client’s past year of commit activity
    TypeScript 12 Apache-2.0 6 6 4 Updated Nov 11, 2024
  • tm2-js-client Public

    The Tendermint2 JS/TS client (SDK)

    gnolang/tm2-js-client’s past year of commit activity
    TypeScript 11 Apache-2.0 4 1 2 Updated Nov 11, 2024
  • gno-by-example Public

    Tutorials and snippets for learning Gno

    gnolang/gno-by-example’s past year of commit activity
    TypeScript 4 Apache-2.0 4 5 3 Updated Nov 11, 2024
  • supernova Public

    A small and simple stress testing tool for the Gno Tendermint2 blockchain ⚛️

    gnolang/supernova’s past year of commit activity
    Go 15 Apache-2.0 8 0 3 Updated Nov 11, 2024

Top languages

Loading…

Most used topics

Loading…