Skip to content

Commit

Permalink
Arweave 201 - lesson 2 (#274)
Browse files Browse the repository at this point in the history
* feat: arweave lesson 5 init

* (chore) Clean up Arweave 101 - Lesson 5

* feat: adding meta image for dapp course

* feat: adding final quiz

* fix: updating correct meta image

* feat: Arweave 201 - Gateway Hosting

* feat: init arweave 201, L0&1

* chore: removing arweave 101 L1 and renaming arweave 201 L1

* chore: adding track index page and creating files for meta images

* feat: adding quiz component

* feat: updating quiz components for T1L5 and T2L1

* chore: adding figure for Arweave 201 L1

* chore: updating arweave 201 meta image

* chore: adding meta image for arweave T2L1

* chore: updating final quiz files

* chore: formatting the json in body

---------

Co-authored-by: wolovim <3621728+wolovim@users.noreply.github.com>

* chore: removing screenshot from AR quest text (#268)

* chore: updating arweave T2L1 quest link

* chore: updating arweave T1L5 quest link

* Arweave 201: Lesson 2 (#273)

* feat: init arweave 201, L2

* chore: arweave201 L2 formatting, figure upload

* chore: meta-image and quiz messaging

---------

Co-authored-by: wolovim <3621728+wolovim@users.noreply.github.com>
Co-authored-by: K <kay-is@users.noreply.github.com>
  • Loading branch information
3 people authored Aug 15, 2024
1 parent 2cfaf34 commit 388fde5
Show file tree
Hide file tree
Showing 34 changed files with 702 additions and 197 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 4 additions & 8 deletions apps/academy/src/data/questions/arweave-201/1/quiz-1/Q1.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
{
"question": "What is Arweave?",
"question": "What types of Arweave nodes exist?",
"options": [
{
"answer": "A layer 1 network",
"answer": "Miner nodes.",
"correct": true
},
{
"answer": "A layer 2 network"
},
{
"answer": "Like Bitcoin for storage",
"answer": "Gateway nodes.",
"correct": true
},
{
"answer": "Immutable object storage",
"correct": true
"answer": "Swap nodes."
}
]
}
12 changes: 4 additions & 8 deletions apps/academy/src/data/questions/arweave-201/1/quiz-1/Q2.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
{
"question": "What features does Arweave have?",
"question": "How are AR.IO gateway operators incentivized?",
"options": [
{
"answer": "Censorship resistance",
"answer": "With IO tokens generated from ArNS sales.",
"correct": true
},
{
"answer": "Global replication",
"correct": true
},
{
"answer": "Temporary storage"
"answer": "With Arweave's native AR token."
},
{
"answer": "Automatic encryption"
"answer": "They do it for the greater good."
}
]
}
13 changes: 4 additions & 9 deletions apps/academy/src/data/questions/arweave-201/1/quiz-1/Q3.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
{
"question": "What data can you store on Arweave?",
"question": "How are AR.IO gateways implemented?",
"options": [
{
"answer": "Music and videos",
"answer": "They are Node.js containers running on Docker Compose.",
"correct": true
},
{
"answer": "Images and text",
"correct": true
},
{
"answer": "Single page applications",
"correct": true
"answer": "They use Java Server Pages and Nginx."
},
{
"answer": "Server-side rendered websites"
"answer": "They are written in Rust."
}
]
}
10 changes: 5 additions & 5 deletions apps/academy/src/data/questions/arweave-201/1/quiz-2/Q1.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"question": "Where does Arweave store files?",
"question": "Which files do you need to start an AR.IO gateway?",
"options": [
{
"answer": "Everything is stored in the transaction object"
"answer": "The docker-compose.yaml.",
"correct": true
},
{
"answer": "The transaction object can contain files smaller than 12MiB",
"answer": "An .env file.",
"correct": true
},
{
"answer": "Files bigger than 12MiB have a separate storage location",
"correct": true
"answer": "A MAKE file."
}
]
}
9 changes: 4 additions & 5 deletions apps/academy/src/data/questions/arweave-201/1/quiz-2/Q2.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
{
"question": "How does Arweave’s consensus algorithm ensure permanent storage?",
"question": "Why should you not start the writer processes?",
"options": [
{
"answer": "By requiring miner nodes to prove access to random chunks of uploaded data",
"answer": "Because they will start indexing the whole chain, which can take weeks.",
"correct": true
},
{
"answer": "By incentivizing miner nodes to share data",
"correct": true
"answer": "Because you have to pay for each byte downloaded from Arweave."
},
{
"answer": "By encrypting transaction bodies before upload"
"answer": "Because they will mine Bitcoin on your machine."
}
]
}
11 changes: 4 additions & 7 deletions apps/academy/src/data/questions/arweave-201/1/quiz-2/Q3.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
{
"question": "What responsibilities do miner nodes have?",
"question": "Why do you need to set a trusted node?",
"options": [
{
"answer": "Data storage",
"answer": "The trusted node is your entry to the Arweave network.",
"correct": true
},
{
"answer": "Data replication",
"answer": "The trusted node will resolve all data your gateway hasn't indexed/cached yet.",
"correct": true
},
{
"answer": "Data access"
},
{
"answer": "Data encoding"
"answer": "The trusted node will help you encrypting uploaded data."
}
]
}
10 changes: 3 additions & 7 deletions apps/academy/src/data/questions/arweave-201/1/quiz-3/Q1.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
{
"question": "What are parts of the SPoRA consensus algorithm?",
"question": "Why do you need to stop the gateway explicitly?",
"options": [
{
"answer": "Computing a hash",
"answer": "Because Docker Compose will run the gateway in the background.",
"correct": true
},
{
"answer": "Proving access to random chunks of uploaded data",
"correct": true
},
{
"answer": "Locking sectors of a block storage"
"answer": "You don't have to stop it, it will stop automatically after 5 minutes."
}
]
}
8 changes: 4 additions & 4 deletions apps/academy/src/data/questions/arweave-201/1/quiz-3/Q2.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"question": "How can you remove data from Arweave?",
"question": "Why should you enable HTTPS for your server?",
"options": [
{
"answer": "By sending a do-not-store request",
"answer": "Because some browser APIs don't work without HTTPS.",
"correct": true
},
{
"answer": "You can’t enforce removal",
"answer": "To prevent third-parties from reading your users data.",
"correct": true
},
{
"answer": "By forking the chain"
"answer": "To save traffic."
}
]
}
12 changes: 4 additions & 8 deletions apps/academy/src/data/questions/arweave-201/1/quiz-3/Q3.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
{
"question": "How does Arweave ensure continuous payment for its storage?",
"question": "How do you disable sandboxing?",
"options": [
{
"answer": "It has a storage endowment to save tokens for later",
"answer": "By not setting a ARNS_ROOT_HOST in your .env file.",
"correct": true
},
{
"answer": "Its token economics are based on future storage cost estimates",
"correct": true
},
{
"answer": "It gives each miner node one Bitcoin"
"answer": "By setting SANDBOXING to false in your .env file."
},
{
"answer": "It requires continuous payments."
"answer": "By using a ?sandbox=false query parameter when opening a TX."
}
]
}
9 changes: 4 additions & 5 deletions apps/academy/src/data/questions/arweave-201/1/quiz-4/Q1.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
{
"question": "What are the Arweave transaction types?",
"question": "What do you have to remember when enbaling the writers?",
"options": [
{
"answer": "L1 transactions",
"answer": "To set a START_HEIGHT value so the writers don't index the whole chain.",
"correct": true
},
{
"answer": "Bundled transactions",
"correct": true
"answer": "To set a TIMEOUT value, so they don't wait for pending transacitons."
},
{
"answer": "Volatile transactions"
"answer": "Nothing, you can simply set START_WRITERS to true and acccess new transactions right away."
}
]
}
13 changes: 4 additions & 9 deletions apps/academy/src/data/questions/arweave-201/1/quiz-4/Q2.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
{
"question": "What are the properties of L1 transactions?",
"question": "Under which route are the admin features located?",
"options": [
{
"answer": "They are relatively slow",
"answer": "/ar-io/admin/...",
"correct": true
},
{
"answer": "They can transfer AR tokens",
"correct": true
},
{
"answer": "They can be paid with fiat currency"
"answer": "/admin"
},
{
"answer": "They can have custom tags",
"correct": true
"answer": "/gatetway/admin"
}
]
}
14 changes: 3 additions & 11 deletions apps/academy/src/data/questions/arweave-201/1/quiz-4/Q3.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
{
"question": "What are the properties of bundled transactions?",
"question": "Should you run an observer for your dev gateway?",
"options": [
{
"answer": "They are relatively fast",
"answer": "No, they're only for production gateways.",
"correct": true
},
{
"answer": "They can be paid with fiat currency",
"correct": true
},
{
"answer": "They can transfer AR tokens"
},
{
"answer": "They can have custom tags",
"correct": true
"answer": "Yes, they can improve performance."
}
]
}
11 changes: 4 additions & 7 deletions apps/academy/src/data/questions/arweave-201/1/quiz-5/Q1.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
{
"question": "What are Arweave's pros compared to cloud storage?",
"question": "Can multiple gateways reuse data?",
"options": [
{
"answer": "One-time payment",
"answer": "Yes, but only CHUNKS_DATA_PATH, CONTIGUOUS_DATA_PATH, and HEADERS_DATA_PATH.",
"correct": true
},
{
"answer": "Strong provenance guarantees",
"answer": "Yes, but only one gateway should have START_WRITERS.",
"correct": true
},
{
"answer": "Temporary storage"
},
{
"answer": "Cheap storage"
"answer": "No, all data is unique to a gateway."
}
]
}
12 changes: 4 additions & 8 deletions apps/academy/src/data/questions/arweave-201/1/quiz-5/Q2.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
{
"question": "What are Arweave’s pros compared to popular blockchain networks?",
"question": "Can you use webhooks without unbundling transactions?",
"options": [
{
"answer": "Cheap permanent storage",
"answer": "Yes, but only for layer 1 transactions and blocks.",
"correct": true
},
{
"answer": "The protocol handles storage and replication",
"correct": true
},
{
"answer": "Temporary storage"
"answer": "No, you need to activate it to use webhooks."
},
{
"answer": "Fast L1 transactions"
"answer": "Yes, they will trigger on all transactions."
}
]
}
8 changes: 4 additions & 4 deletions apps/academy/src/data/questions/arweave-201/2/quiz-1/Q1.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"question": "What types of Arweave nodes exist?",
"question": "Why does your gateway need a domain?",
"options": [
{
"answer": "Miner nodes.",
"answer": "To enable sandboxing via dynamic subdomains.",
"correct": true
},
{
"answer": "Gateway nodes.",
"answer": "To enable human-friendly ArNS names.",
"correct": true
},
{
"answer": "Swap nodes."
"answer": "To improve latency and reliability."
}
]
}
10 changes: 6 additions & 4 deletions apps/academy/src/data/questions/arweave-201/2/quiz-1/Q2.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
{
"question": "How are AR.IO gateway operators incentivized?",
"question": "Why does this setup include a load balancer?",
"options": [
{
"answer": "With IO tokens generated from ArNS sales.",
"answer": "To distribute the load between two EC2 instances.",
"correct": true
},
{
"answer": "With Arweave's native AR token."
"answer": "To protect the EC2 instances with a web application firewall.",
"correct": true
},
{
"answer": "They do it for the greater good."
"answer": "To improve reliability.",
"correct": true
}
]
}
8 changes: 4 additions & 4 deletions apps/academy/src/data/questions/arweave-201/2/quiz-1/Q3.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"question": "How are AR.IO gateways implemented?",
"question": "What is the job of CodeDeploy in this setup?",
"options": [
{
"answer": "They are Node.js containers running on Docker Compose.",
"answer": "It will update the gateway when a new version is released.",
"correct": true
},
{
"answer": "They use Java Server Pages and Nginx."
"answer": "It will deploy the gateway."
},
{
"answer": "They are written in Rust."
"answer": "It will check the health of the deployment."
}
]
}
Loading

0 comments on commit 388fde5

Please sign in to comment.