New Tutorial: drand - The Distributed Randomness Beacon
What networking protocol would this tutorial address?
drand: The Distributed Randomness Beacon - https://drand.love (not a networking protocol strictly speaking)
What will the user know how to do after completing this tutorial?
Be specific, eg "Upload files using the JS IPFS file API"
- How to consume randomness from the drand network.
- How to build a simple application that gets randomness input from drand.
Describe the content of the tutorial.
Describe the tutorial in more detail. Do you have ideas for the APIs or methods to be taught, format to be used, or real-world examples to be included?
- What is randomness and why it's important (text lesson).
- What are the main concepts that drand builds upon, e.g., signatures, BLS, DKG, Threshold Cryptography etc. (multiple-choice lesson, might need to be more than one lesson).
- Randomness generation and the beacon chain (simple coding tutorial)
- The different phases of the process (multiple-choice lesson).
- The drand HTTP API: https://drand.love/developer/http-api/#http-api-reference and how to use it (simple coding tutorial).
- Consume randomness through the API and through gossipsub (coding lesson).
- Build a simple application that gets the drand randomness as input and produces an output (coding lesson).
What potential challenges do you forsee in building this tutorial?
For example, does the format you have in mind not fit the current capabilities of the site?
Current capabilities should be fine.
Additional context (optional)
Would this ProtoSchool tutorial fit into a broader initiative to reach a certain user or use case? Did you get the idea because of a gap you saw while exploring a current tutorial?
This tutorial targets increasing awareness, visibility and development skills around drand - a central component of the Web3.0 stack. This tutorial is not related to any existing tutorial.
Would you like to build this tutorial yourself?
Do you have the time and skills to build this tutorial yourself, after some group brainstorming, or do you hope that someone else might have the bandwidth to do so?
Sourcing candidates atm. Happy to give a small dev grant for this.
How to build a simple application that gets randomness input from drand.
A lottery to choose an index among n would be the best - doing that safely is potentially trivial in regular language but in Solidity (smart contract) may not be as easy - would be nice to show a standard way to do this.
Great idea! But will we need Solidity support from within the tutorial to validate the answer? I don't think the current protoschool infra can support such functionality (and would probably be tricky to add?)
Hey @yiannisbot is there still an interest in this?
I had an idea for this: https://pokemon.alexonsager.net allows generation of (hilarious) combinations of pokemon avatars. In the tutorial, a user could pull randomness from drand that seeds which pokemon combination to create their 'drand powered pokemon' à la an NFT.
It would teach users:
- how to consume randomness from drand
- how to transform that randomness into a usable form (without introducing any bias)
- how randomness is useful in other areas of the web3