How does Grin work? learn me a GRIN

I would like to open some rewards: a sort of clone of but for grin. It could be called learnmeagrin, and it will be a centralized place where documentation is placed around grin, but this one is particularly different.

The documentation is also provided with code included, a bunch of little scripts to see concepts in action. The website is also structured in a way that people can follow how Bitcoin works from creating a wallet to mining. Furthermore, everything is written in plain English, aimed not only at beginners, but also at people already introduced to blockchain-related concepts.

You can argue that we already have which is true and fine, but apart from the introductory part, the writing doesn’t say much for the regular user. As a developer, the first step should always be the basic one: read the documentation, then go and read the code. That’s fine, but very often it’s not enough, then you have to rely on another developer for questions and guidance.

Another basic example. Think about Interactivity. For the regular user, what does this means? how is this different? how does looks like in practice? and what advantage it brings, what the challenges are and what is the potential. For those of us who have been around for a while is kind of clear, but at the same time, I recognize that, for regular users it is still not that clear. I think that is a topic worth writing, not for nerds but for regular users.

These writing must always stick to reality and technicality but oriented to show how everything is seen in practice and also code wise.

More examples: What is a Slatepack address? What is a Slatepack message? Why using addresses is important? What is a listener? Why do we use listeners? All of this can be found by reading the RFCs, but what does it all of this mean for the regular user. What happens when the parties sign a transaction? That’s something I’ve also noticed that people don’t fully understand.

We, right now, already have Grin for Bitcoiners - Grin Documentation which is very good, but how and where can we notice the scalability, for example, what the emission rate means for regular people and for miners, etc., etc., etc., I think you got the idea.

IMO this could be a good starting point for new comers and for people wanting to develop things around Grin or contribute to any of the repositories.


Topics for a MPV that could be implementing github pages:

  • What is GRIN. (for 420 ツ)
    • A bit of history.
    • What a wallet is?
    • Why Mimblewimble is so revolutionary?
    • How Grin is different from others implementations of Mimblewimble.
    • What is an input?
  • Transaction building process. (for 420 ツ)
    • Slatepack explained for dummies.
      • How to create an address and the onion url.
    • Grin’s Interactivity.
    • Potential of interactiviy.
    • How Slatepack addresses looks like.
  • Grin economics. (for 420 ツ)
    • Emission explained for miners
    • Advantages.
  • Grin’s cryptography. (for 420 ツ)
    • Elliptic Curves explained.
    • Blind signatures explained.
    • Confidential Transactions explained.
  • Grin’s scalability. (for 420 ツ)
    • How a block looks like.
    • Reading a block.
    • Mining a block.
  • Grin’s chain. (for 420 ツ)
    • Scalability.
    • Pruning.
    • Cut-trough.
    • Merkle Trees and Proof.
    • What a commitment is?
  • Grin’s network. (for 420 ツ)
    • How a node is synchronized.
      • What happens and what does this means?
    • Dandelion explained.
    • P2P network.
    • How to query P2P messages?
    • Understanding importance of public nodes.
  • Miscellaneous. (for 420 ツ)
    • Grin vs Bitcoin.
    • Grin vs Monero.
    • Grin vs Beam.
    • Grin vs Zcash.
    • What is wrong with MWC.
    • Meme party.
  • Grin blockachin explorer. (for 420 ツ)
    • Understanding the explorer.
    • What to look for?
    • What does the fields means?
    • How Explorers are useful.
  • Mining Grin in Real life. (for 420 ツ)

There are a bunch of technical documentation all around so use it and cite them. The difference is that is meant to be written to understand how is this seen in a practical level. I am sure I am missing a lot, feel free of suggest the topics here. Also if you think it is needed a better wording. The idea if this list is to have an starting point.

Remember that it is not necessary to write all this from scratch, the objective is to bring all these concepts to a practical level including images, memes and/or code whenever is possible.


I love the idea.
All languages are allowed, personal preference would be Python though being one of the best languages for education and the most easy to understand programming language in general.

1 Like

I also like this idea. I believe this is a good opportunity to collaborate between this project and the Telegram tipping bot project.

Maybe we could add a blurb at the end of this project’s documentation that states, “get your first Grin coin on us!”. Or something along those lines to encourage user interactivity in the Grin community.

1 Like

I’d like to see tutorials in practice with very basic functionalities:

  1. Build a grin wallet from scratch.
  2. Build a grin miner form scratch.
1 Like