Skip to content

berty/gno

 
 

Repository files navigation

Gno

At first, there was Bitcoin, out of entropy soup of the greater All. Then, there was Ethereum, which was created in the likeness of Bitcoin, but made Turing complete.

Among these were Tendermint and Cosmos to engineer robust PoS and IBC. Then came Gno upon Cosmos and there spring forth Gnoland, simulated by the Gnomes of the Greater Resistance.

Gno is an interpreted and fully-deterministic implementation of the Go programming language, designed to build succinct and composable smart contracts. The first blockchain to use it is Gno.land, a Proof of Contribution-based chain, backed by a variation of the Tendermint consensus engine.

Getting started

If you haven't already, take a moment to check out our website.

The website is a deployment of our gnoweb frontend; you can use it to check out some example contracts.

Use the [source] button in the header to inspect the program's source; use the [help] button to view how you can use gnokey to interact with the chain from your command line.

If you have already played around with the website, use our Getting Started guide to learn how to write and deploy your first smart contract. No local set-up required!

Once you're done, learn how to set up your local environment with the quickstart guide and the contributing guide.

You can find out more existing tools & documentation for Gno on our awesome-gno repository. We look forward to seeing your first PR!

Repository structure

  • examples - smart-contract examples and guides for new Gno developers.
  • gnovm - GnoVM and Gnolang.
  • gno.land - Gno.land blockchain and tools.
  • tm2 - Tendermint2.

Socials & Contact

  • Discord: good for general chat-based conversations, as well as for asking support on developing with Gno.
  • Reddit: more "permanent" and forum-style discussions. Feel free to post anything Gno-related, as well as any question related to Gno programming!
  • Telegram: unofficial Telegram group.
  • Twitter: official Twitter account. Follow us to know about new developments, events & official announcements about Gno!
  • YouTube: here we post all of our video content, like workshops, talks and public development calls. Follow along on our development journey!
Short doc about all the commands

User commands:

  • gnokey - key manipulation, also general interaction with gnoland
  • gnoland - runs the blockchain node
  • gnoweb - serves gno website, along with user-defined content
  • logos - intended to be used as a browser

Developer commands:

  • gno - handy tool for developing gno packages & realms
  • gnotxsync - importing/exporting transactions from local blockchain node storage
  • goscan - dumps imports from specified file’s AST
  • genproto - helper for generating .proto implementations
  • gnofaucet - serves GNOT faucet
CI/CD/Tools badges and links

GitHub Actions:

  • gno.land
  • gnovm
  • tm2
  • examples
  • docker

Codecov:

  • General: codecov
  • tm2: codecov
  • gnovm: codecov
  • gno.land: codecov
  • examples: TODO

Go Report Card:

  • Go Report Card
  • tm2, gnovm, gno.land: TODO (blocked by tm2 split, because we need go mod workspaces)

Pkg.go.dev

  • Go Reference
    (pkg.go.dev will not show our repository as it has a license it doesn't recognise)

Packages

No packages published

Languages

  • Go 87.3%
  • C 9.5%
  • JavaScript 0.7%
  • Java 0.4%
  • Sage 0.4%
  • Assembly 0.4%
  • Other 1.3%