forked from solana-foundation/developer-content
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Migrate remaining Unboxed repo modules into courses (solana-foundatio…
…n#250) * Migrate Unboxed repo modules into courses - Moved course-structure from Unboxed-Software/solana-course#384 to this repo using metadata.yml files - The "extending-solana-functionality" section was split into "connecting to offchain data" course and a separate "solana pay" single-lesson course. - 'versioned-transaction' was renamed to 'lookup-tables' - 'env-variables' was renamed to 'program configuration' - Tweak the Anchor CPI text to avoid assuming people have read the native CPI lesson. - Re-add burning and delegation exercises in a new lesson and lab - Fix internal relative links to the other lessons - Added images and fixed image links - Changed any link text that includes '//' to work around an apparent bug in https://github.com/remarkjs/remark-gfm - Add descriptions for all lessons - Use <Callout> for tips - Remove a few remaining instances of old airtable form - Remove some Phantom favoritism (replace with Ecosystem wallets page) - Add prerequisites lessons where necessary * Workaround a Callout bug. TODO: investigate and fix. * Fix bad description * Add image for unboxed * Minor fixes * Add course priority, so popular courses are shown first * More native-specific frontend parts into Native Development course * grammarly * Update ContentLayer to fix errors See contentlayerdev/contentlayer#495 * Lint * Get callouts working * Remove weird comment inside copy * Move this back to unboxed now we have 'with updates from...' * Avoid specific oracle recommendation and use ecosystem page for oracles * Fix: ensure course descriptions for within UI area * Tighten more descriptions to fit in UI size limit. * Fix a markdown table that was choking the parser * fix: use contentlayer2 * fix: broken pages * Change relative links to absolute links * Fix typo * Update content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md Co-authored-by: Nick Frostbutter <[email protected]> * Update content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md Co-authored-by: Nick Frostbutter <[email protected]> * Update content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md Co-authored-by: Nick Frostbutter <[email protected]> * Update content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md Co-authored-by: Nick Frostbutter <[email protected]> * Update content/courses/mint-extensions/metadata.yml Co-authored-by: Nick Frostbutter <[email protected]> * Rename mint-extensions -> token-extensions-for-mints * Rename native-development -> native-onchain-development * Mention Anchor in metadata for onchain-development * Fix missing headings on program-security, add link to repo, use 'course' instead of module * Wrap 'completed the lab' in a callout --------- Co-authored-by: nickfrosty <[email protected]>
- Loading branch information
1 parent
97e334f
commit 783e6ba
Showing
99 changed files
with
40,475 additions
and
1,222 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# (optional) organization association | ||
organization: solana-foundation | ||
# display name or actual name | ||
title: Mike MacCana | ||
# avatar image for this user (inside the `/public/assets/authors` folder) | ||
image: mikemaccana.jpg | ||
# github username | ||
github: mikemaccana | ||
# twitter / x username | ||
twitter: mikemaccana | ||
# website | ||
website: https://mikemaccana.com | ||
# brief description of this author (normally < 50 characters) | ||
description: Developer Education at the Solana Foundation |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,10 @@ | ||
# display name | ||
title: Unboxed Software | ||
title: Unboxed Software with updates from the Solana Foundation | ||
# github username / organization | ||
github: Unboxed-Software | ||
# twitter / x username | ||
twitter: unboxedsoftware | ||
# website | ||
website: https://www.beunboxed.com/ | ||
# avatar image for this user (inside the `/public/assets/authors` folder) | ||
image: unboxed.png |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
author: unboxed | ||
title: Connecting to offchain data | ||
description: Connect to offchain data from inside your Anchor programs. | ||
lessons: | ||
- oracles | ||
- verifiable-randomness-functions | ||
priority: 20 |
1,402 changes: 1,402 additions & 0 deletions
1,402
content/courses/connecting-to-offchain-data/oracles.md
Large diffs are not rendered by default.
Oops, something went wrong.
1,642 changes: 1,642 additions & 0 deletions
1,642
content/courses/connecting-to-offchain-data/verifiable-randomness-functions.md
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
--- | ||
title: Course Guide | ||
objectives: | ||
- understand what web3 is | ||
- understand what Solana is | ||
- learn how this course is structured | ||
- know how to get the most from this course | ||
description: "Understand what web3, blockchains, and Solana are." | ||
--- | ||
|
||
## Welcome! | ||
|
||
Welcome to the best starting point for developers looking to learn web3 and | ||
blockchain! | ||
|
||
## What is web 3? | ||
|
||
Typically, in older systems, people interact with each other through third-party | ||
platforms: | ||
|
||
- User accounts are stored on large platforms like Google, X (formerly known as | ||
Twitter), and Meta (Facebook, Instagram). These accounts can be removed at | ||
will by the companies, and items 'owned' by these accounts may be lost | ||
forever. | ||
|
||
- Accounts that store and transfer value - like payment cards, bank accounts, | ||
and stock trading accounts - are handled by large platforms like credit card | ||
companies, money transfer organizations, and stock exchanges. In many cases, | ||
these companies take a piece (around 1% - 3%) of every transaction that occurs | ||
on their platforms. They may often slow transaction settlement down, to | ||
benefit the organization. In some cases the item being transferred may not | ||
belong to the recipient at all but is rather held on the recipient's behalf. | ||
|
||
Web3 is an evolution of the internet that allows people to **transact directly | ||
with each other**: | ||
|
||
- Users own their accounts, represented by their wallet. | ||
|
||
- Transfers of value can occur directly between users. | ||
|
||
- Tokens - representing currencies, digital art, event tickets, real estate, or | ||
whatever else - are fully under the custody of the user. | ||
|
||
Common uses of web3 include: | ||
|
||
- Selling goods and services online with near-zero fees and instant settlement. | ||
|
||
- Selling digital or physical items, ensuring that each item is genuine and that | ||
copies are distinguishable from original items. | ||
|
||
- Instant global payments, without the time and expense of traditional money | ||
transfer companies. | ||
|
||
## What is Solana? | ||
|
||
Solana allows people to **transact directly with each other instantly at almost | ||
no cost**. | ||
|
||
Compared to older platforms like Bitcoin and Ethereum, Solana is: | ||
|
||
- Significantly faster - most transactions complete in a second or two. | ||
|
||
- Massively cheaper - transaction fees (referred to as 'gas fees' in older | ||
networks) are typically $0.00025 (much less than one penny) regardless of the | ||
value of what's being transferred. | ||
|
||
- Highly decentralized, having one of the highest Nakamoto coefficients | ||
(decentralization score) of any proof-of-stake network. | ||
|
||
Many of the common use cases on Solana are only possible on Solana, due to the | ||
high costs and slow translation times of older blockchains. | ||
|
||
## What do I need before I start? | ||
|
||
You **don't** need previous blockchain experience, or Rust knowledge, to follow | ||
this course! You do need: | ||
|
||
- A Linux, Mac or Windows computer. | ||
- Windows machines should have [Windows Terminal](https://aka.ms/terminal) and | ||
[WSL](https://learn.microsoft.com/en-us/windows/wsl/) installed. | ||
- Have [node.js](https://nodejs.org/en/download) 20 installed. Windows | ||
machines should install node.js inside WSL2. | ||
- Basic TypeScript programming experience. | ||
- Basic use of the command line | ||
- Basic use of git (either via the command line or your favorite GUI) | ||
|
||
## How do I use the course effectively? | ||
|
||
This course is broken down into individual lessons. Each lesson has three | ||
sections: | ||
|
||
- **Overview** - the overview contains explanatory text, examples, and code | ||
snippets. You are _not_ expected to code along with any of the examples shown | ||
here. The goal is to simply read through and get initial exposure to the | ||
lesson topics. | ||
|
||
- **Lab** - a practical project you _absolutely should_ code along with. This is | ||
your second exposure to the content as well as your first opportunity to dive | ||
in and _do the thing_. | ||
|
||
- **Challenge** - another project, with just a few simple prompts that you | ||
should take and implement independently. | ||
|
||
The lessons here are very effective, but everyone comes from different | ||
backgrounds and aptitudes that can't be taken into account by static content. | ||
With that in mind, here are three recommendations for how to get the most out of | ||
the course: | ||
|
||
1. **Be brutally honest with yourself** - this may sound a little vague, but | ||
being honest with yourself about how well you understand a certain topic is | ||
essential to mastering it. It's really easy to read a thing and think "yeah, | ||
yeah I get it," only to realize later that you actually didn't. Be honest | ||
with yourself while going through each lesson. Please don't hesitate to | ||
repeat sections if you need to or do outside research when the lesson | ||
phrasing doesn't quite work for you. | ||
|
||
2. **Do every lab and challenge** - this supports the first point. It's pretty | ||
tough to lie to yourself about how well you know something when you make | ||
yourself try to do it. Do every lab and every challenge to test where you're | ||
at and repeat them as needed. We provide solution code for every lab, but be | ||
sure to use it as a helpful resource rather than a crutch. | ||
|
||
3. **Go above and beyond** - this sounds cliche, but don't just stop at what the | ||
lab and challenges ask you to do. Get creative! Take the projects and make | ||
them your own. Build past them. The more you practice the better you get. | ||
|
||
Alright, that's it for the pep talk. Get after it! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,11 @@ | ||
author: unboxed | ||
title: Introduction to cryptography and Solana clients | ||
description: | ||
Learn the basics of how to interact with the Solana blockchain, including the | ||
basics of cryptography. | ||
description: Learn the basics of how to interact with the Solana blockchain. | ||
lessons: | ||
- getting-started | ||
- intro-to-cryptography | ||
- intro-to-reading-data | ||
- intro-to-writing-data | ||
- token-program | ||
- nfts-with-metaplex | ||
- intro-to-custom-on-chain-programs | ||
- intro-to-custom-onchain-programs | ||
- interact-with-wallets | ||
priority: 5 |
Oops, something went wrong.