Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arweave 201 - lesson 2 #274

Merged
merged 14 commits into from
Aug 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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