Gno.land: The Key To Perpetual Transparency

11 September 2023

Manfred Touron

VP Eng., Gno.land

Bonjour, dAppcon!

 
       ++
       ++++
        ++++
      ++++++++++
     +++       |
     ++         |               Hello! I'm Manfred.
     +  -==   ==|               As you might deduce from my accent,
    (   <*>   <*>               I hail from France. πŸ‡«πŸ‡·πŸ₯–
     |           |
     |         __|              A Quick Note:
     |      +++                 In this presentation, when I mention 'GitHub' or
      \      =+                 'Open-Source', keep in mind that the same ideas
       \      +                 apply to platforms like 'GitLab' and encompass
       |\++++++                 concepts like 'free software'.
       |  ++++      ||//        Please take these terms broadly.
   ____|   |____   _||/__
  /     ---     \  \|  |||
 /  _ _  _     / \   \ /
 | / / //_//_//  |   | |
 
 
2

Intro to Gno

3

Intro to Gno: a new era in smart sontracting, and open-source

  +----------+      +----------+-------+----------------+
  |          |      |          |       |    Gnolang     |
  | Wallets  |----->|          | GnoVM +----------------+
  |          |      |          |       |Execution State |
  +----------+      |          +-------+-----+----------+
                    | Gno.land |             |   BFT    |
  +----------+      |          | Tendermint2 +----------+
  |          |      |          |             |   IBC    |--interchain-->  ...
  |  Gnoweb  |----->|          +-------------+----------+
  |          |      |          | Proof-of-Contribution  |
  +----------+      +----------+------------------------+
4

Gnolang, a multi-user programming language

Contracts start standalone, then grow interconnected for better reusability.

                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚                            β”‚
                        β”‚                            β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”       β”Œβ”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”
    β”‚   E   │──────▢│   C   │──────▢│   A   β”‚    β”‚   B   β”‚     β”‚   D   β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”˜       β””β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                               β–²            β–²             β”‚
        β”‚                               β”‚            β”‚             β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
5

Multi-User programming, deep contract interactions

package foobar

import (
    "gno.land/r/foo20" // a grc20 token
    "gno.land/r/users" // equivalent of ENS
)

func TransferToUsername(username string, amount int) {
    user := users.Lookup(username)
    foo20.Transfer(user.Addr(), amount)
}
6

Multi-user programming: transparency, readability, audibility

                                                                     +--------------+
                +---------+    Uploads     +-------+     Runs        |   Contract   |
 GnoVM          |Developer|--source code-->| GnoVM |--Source Code--->|  Execution   |
                +---------+                +-------+                 +--------------+


                +---------+                 +-----+       Runs       +--------------+
                |Developer|           +---->| EVM |-----Bytecode---->|   Contract   |
                +---------+           |     +-----+                  |  Execution   |
 EVM                 |                |                              +--------------+
                  Writes           Uploads
                source code        Bytecode
                     |  +-------+     |
                     +->|Compile|-----+
                        +-------+
7

Gno.land: GitHub for smart contracts

8

Gno.land: GitHub for smart contracts

package hello

func Greetings() string {
    return "Hello World!"
}
9

Gno.land: simplifying smart contract development

10

Gno.land: applying the GitHub effect to contract execution

$> import "gno.land/r/forum"
$> print(forum.Debug())
{
  ...
  ...
11

Gno.land: proof-of-contribution, rewarding good code

                                                              +------------------+
+-----------+                        +-----------+     +-X%-->|   contributors   |
|           |                        |chain fees |     |      +------------------+
|   users   |---------$GNOT--------->|  bucket   |-----+-Y%-->|    validators    |
|           |                        |           |     |      +------------------+
+-----------+                        +-----------+     +-Z%-->| contract authors |
                                                              +------------------+
12

New Open-Source paradigm

13

Beyond the langage, a new open-source paradigm

14

Amplifying Open-Source

 
                              Open-Source Ethos


               1. Freedom to Run          7. Meritocracy
               2. Freedom to Study        8. Community-Centric
               3. Freedom to Modify       9. Open Standards
               4. Freedom to Distribute   10. License Integrity
               5. Collaboration           11. Inclusivity
               6. Transparency            12. Sustainability

 
15

The GitHub Revolution

Before GitHub:

After GitHub:

16

Gno.land's Ambition

 
                          +----------+           +--------------+
                          |          |           | Read, Audit, |
                          | Explore  |---------->|  Debug, Use  |
 Loop, for perpetual      |          |           +--------------+
       transparency.      +----------+                   |
                                ^  +-----------------+   |
                                |  | Import, Extend, |   |
                                +--|  Compose, Fork  |<--+
                                   +-----------------+

 

Join us in our testnet phase to co-create the future.

17

What is Game of realms?

Β 
     ______                              ____   ____             __
    / ____/___ _____ ___  ___     ____  / __/  / __ \___  ____ _/ /___ ___  _____
   / / __/ __ `/ __ `__ \/ _ \   / __ \/ /_   / /_/ / _ \/ __ `/ / __ `__ \/ ___/
  / /_/ / /_/ / / / / / /  __/  / /_/ / __/  / _, _/  __/ /_/ / / / / / / (__  )
  \____/\__,_/_/ /_/ /_/\___/   \____/_/    /_/ |_|\___/\__,_/_/_/ /_/ /_/____/
Β 
Β 
18

Action Items

19

Thank you

Manfred Touron

VP Eng., Gno.land

Use the left and right arrow keys or click the left and right edges of the page to navigate between slides.
(Press 'H' or navigate to hide this message.)