Golang smart contracts with GNO

155 views
Skip to first unread message

Jae Kwon

unread,
Mar 29, 2022, 7:25:22 PM3/29/22
to golang-nuts
Hello gophers,

Long time lurker and Go user here. I am the creator of Tendermint (and the CosmosSDK) for blockchain programming.

I love Go and the relative simplicity of its spec, and have always wanted a smart-contract-like scripting platform for blockchains that can run Go.  The CosmosSDK is a framework for building blockchain applications in Go, but it isn't a suitable substitute for Ethereum/Solidity-like scripting.  Enter GNO.

GNO is a subset of Go, but with some unique "fascinating" features that make it suitable as a smart contract programming language. Besides op-code counting and memory allocation restrictions, and full determinism, it also supports auto-persistence (and Merkle-ization) of allocated data. This lets the smart-contract programmer implement applications without an external database or ORM, much like Ethereum contract state (but unlike say, the Cosmos SDK).

I couldn't find any suitable implementations of any Go interpreter (a simple stack-based VM) that was necessary to create an ideal smart contract programming platform, so I built my own virtual machine. It interprets the AST directly, which makes the entire stack a lot more intuitive in my opinion.

Here is a more recent example that implements the NFT interface:

Please visit github.com/gnolang/gno for more information, and https://gno.land to play with the testnet.

- Jae Kwon

p.s. recruiting peers and partners, if you can grok this.
Reply all
Reply to author
Forward
0 new messages