Skip to content

Commit 52ed9db

Browse files
committed
feat: add scaling quiz
1 parent aa09c70 commit 52ed9db

File tree

5 files changed

+154
-1
lines changed

5 files changed

+154
-1
lines changed

public/content/roadmap/scaling/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,5 @@ This second step is known as [“Danksharding”](/roadmap/danksharding/). It is
4545
## Current progress {#current-progress}
4646

4747
Proto-Danksharding is likely to be one of the earlier roadmap items to be implemented. The decentralized computation steps required to set it up are already underway and several clients have implemented prototypes for handling blob data. Full Danksharding is likely several years away, as it relies upon several other roadmap items being completed first. Decentralizing rollup infrastructure is likely to be a gradual process - there are many different rollups that are building slightly different systems and will fully decentralize at different rates.
48+
49+
<QuizWidget quizKey="scaling" />

src/data/quizzes/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ const quizzes: RawQuizzes = {
4040
title: "solo",
4141
questions: ["j001", "j002", "j004", "j005", "j006", "j007", "j008"],
4242
},
43+
scaling: {
44+
title: "scaling",
45+
questions: ["k001", "k002", "k003", "k004"],
46+
},
4347
}
4448

4549
export const ethereumBasicsQuizzes: QuizzesSection[] = [
@@ -78,6 +82,11 @@ export const usingEthereumQuizzes: QuizzesSection[] = [
7882
{
7983
id: "nfts",
8084
level: "beginner",
85+
next: "scaling",
86+
},
87+
{
88+
id: "scaling",
89+
level: "intermediate",
8190
next: "layer-2",
8291
},
8392
{

src/data/quizzes/questionBank.ts

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1096,6 +1096,111 @@ const questionBank: QuestionBank = {
10961096
],
10971097
correctAnswerId: "j008-d",
10981098
},
1099+
// Scaling
1100+
k001: {
1101+
prompt: "k001-prompt",
1102+
answers: [
1103+
{
1104+
id: "k001-a",
1105+
label: "k001-a-label",
1106+
explanation: "k001-a-explanation",
1107+
},
1108+
{
1109+
id: "k001-b",
1110+
label: "k001-b-label",
1111+
explanation: "k001-b-explanation",
1112+
},
1113+
{
1114+
id: "k001-c",
1115+
label: "k001-c-label",
1116+
explanation: "k001-c-explanation",
1117+
},
1118+
{
1119+
id: "k001-d",
1120+
label: "k001-d-label",
1121+
explanation: "k001-d-explanation",
1122+
},
1123+
],
1124+
correctAnswerId: "k001-d",
1125+
},
1126+
k002: {
1127+
prompt: "k002-prompt",
1128+
answers: [
1129+
{
1130+
id: "k002-a",
1131+
label: "k002-a-label",
1132+
explanation: "k002-a-explanation",
1133+
},
1134+
{
1135+
id: "k002-b",
1136+
label: "k002-b-label",
1137+
explanation: "k002-b-explanation",
1138+
},
1139+
{
1140+
id: "k002-c",
1141+
label: "k002-c-label",
1142+
explanation: "k002-c-explanation",
1143+
},
1144+
{
1145+
id: "k002-d",
1146+
label: "k002-d-label",
1147+
explanation: "k002-d-explanation",
1148+
},
1149+
],
1150+
correctAnswerId: "k002-c",
1151+
},
1152+
k003: {
1153+
prompt: "k003-prompt",
1154+
answers: [
1155+
{
1156+
id: "k003-a",
1157+
label: "k003-a-label",
1158+
explanation: "k003-a-explanation",
1159+
},
1160+
{
1161+
id: "k003-b",
1162+
label: "k003-b-label",
1163+
explanation: "k003-b-explanation",
1164+
},
1165+
{
1166+
id: "k003-c",
1167+
label: "k003-c-label",
1168+
explanation: "k003-c-explanation",
1169+
},
1170+
{
1171+
id: "k003-d",
1172+
label: "k003-d-label",
1173+
explanation: "k003-d-explanation",
1174+
},
1175+
],
1176+
correctAnswerId: "k003-d",
1177+
},
1178+
k004: {
1179+
prompt: "k004-prompt",
1180+
answers: [
1181+
{
1182+
id: "k004-a",
1183+
label: "k004-a-label",
1184+
explanation: "k004-a-explanation",
1185+
},
1186+
{
1187+
id: "k004-b",
1188+
label: "k004-b-label",
1189+
explanation: "k004-b-explanation",
1190+
},
1191+
{
1192+
id: "k004-c",
1193+
label: "k004-c-label",
1194+
explanation: "k004-c-explanation",
1195+
},
1196+
{
1197+
id: "k004-d",
1198+
label: "k004-d-label",
1199+
explanation: "k004-d-explanation",
1200+
},
1201+
],
1202+
correctAnswerId: "k004-b",
1203+
}
10991204
}
11001205

11011206
export default questionBank

src/intl/en/learn-quizzes.json

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,5 +395,41 @@
395395
"j008-c-label": "Having a total balance over 32 ETH",
396396
"j008-c-explanation": "Your total balance must have rewards above 32 ETH for any partial withdrawals to trigger.",
397397
"j008-d-label": "Submitting requested withdrawal amount with gas payment",
398-
"j008-d-explanation": "Once the other criteria are met, reward payments are automatic. Recipients do not need to submit a transaction or pay gas. Amount withdrawn is equal to validator's balance in excess of 32. Custom amounts cannot be requested."
398+
"j008-d-explanation": "Once the other criteria are met, reward payments are automatic. Recipients do not need to submit a transaction or pay gas. Amount withdrawn is equal to validator's balance in excess of 32. Custom amounts cannot be requested.",
399+
"k001-prompt": "Which of the following is Ethereum using to scale?",
400+
"k001-a-label": "Layer 2 rollups",
401+
"k001-a-explanation": "These help Ethereum scale by bundling transactions, executing them, and then posting the results to Ethereum for validation and securing. Examples or rollups include Arbitrum or Optimism. This is not the only way Ethereum is scaling.",
402+
"k001-b-label": "Proto-Danksharding",
403+
"k001-b-explanation": "This provides a temporary and inexpensive storage option for saving rollup data to Mainnet, which currently is responsible for approximately 90% of the cost a user encounters on a rollup. This is not the only way Ethereum is scaling.",
404+
"k001-c-label": "Danksharding",
405+
"k001-c-explanation": "This removes the need for every validator and node on the network from being required to store 100% of the data for all rollups, reducing hardware requirements for node operators. This is not the only way Ethereum is scaling.",
406+
"k001-d-label": "All of the above",
407+
"k001-d-explanation": "Layer 2 rollups bundle transactions, Proto-Danksharding creates cheap temporary storage for this data, and Danksharding shares the storage burden across all validators—all helping Ethereum scale.",
408+
"k002-prompt": "After bundling transactions and executing them, what do layer 2 rollups do next?",
409+
"k002-a-label": "Store the data on a private server",
410+
"k002-a-explanation": "Results are posted to Mainnet for transparency and public availability, and are not reliant on private servers.",
411+
"k002-b-label": "Sends the proof to the user for storage",
412+
"k002-b-explanation": "Users are not expected to hold onto the results of their transaction. This information is posted to Mainnet.",
413+
"k002-c-label": "Submit the results to Ethereum",
414+
"k002-c-explanation": "Layer 2 rollups post the results of their transaction execution to Mainnet, securing it in Ethereum's history",
415+
"k002-d-label": "Delete the result to reduce costs",
416+
"k002-d-explanation": "Layer 2 rollups post the results of their transaction execution to Mainnet. The cost savings achieved with this approach is by bundling and compressing transaction data, and ultimately storing it in cheap storage that expires once made available to those who need it.",
417+
"k003-prompt": "How does Proto-Danksharding reduce rollup transaction costs on rollups?",
418+
"k003-a-label": "Directly increasing the block size",
419+
"k003-a-explanation": "Proto-Danksharding does not directly increase the gas limit, but does make the storage of rollup data less expensive by making temporary storage available",
420+
"k003-b-label": "Splitting up which validators are required to store the data",
421+
"k003-b-explanation": "Although full Danksharding is expected to reduce the need for all validators to store all of the data, this is preceded by Proto-Danksharding which forms a less-expensive, temporary storage option for the data produced by rollups.",
422+
"k003-c-label": "Significantly increasing hardware requirements for node operators",
423+
"k003-c-explanation": "This is generally not considered an acceptable option for scaling Ethereum. Great efforts are taken to minimize hardware requirements for operating a node to keep it as accessible as possible.",
424+
"k003-d-label": "Storing its data in cheaper, temporary 'blob' storage",
425+
"k003-d-explanation": "Proto-Danksharding introduces a temporary data storage option for rollups to allow them to more cheaply post its results to Mainnet",
426+
"k004-prompt": "What is a critical next step for rollups to scale Ethereum?",
427+
"k004-a-label": "Incentivize entities with powerful computers to handle all of the sequencing",
428+
"k004-a-explanation": "One of the problems with current rollups is the centralized nature of those running the sequencers (those who decide the inclusion and ordering of transactions within a rollup). The goal is to allow anyone to participate, and not rely on a single group or entity in any way.",
429+
"k004-b-label": "Distribute responsibility for running sequencers and provers across more people",
430+
"k004-b-explanation": "Control over a rollup typically starts off centralized, which helps get things started, but leaves the network prone to censorship. Decentralizing the process of including transactions so anyone can participate is essential to prevent the possibility of network compromise.",
431+
"k004-c-label": "Make all rollups conform to the same method of security",
432+
"k004-c-explanation": "Ethereum benefits from having a wide range of approaches to security within its rollup ecosystem as a form of resiliency.",
433+
"k004-d-label": "Data oracles to confirm storage of transaction data on private servers",
434+
"k004-d-explanation": "Rollup data is stored on Ethereum, and does not rely on private servers or databases."
399435
}

src/lib/utils/translations.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ const getRequiredNamespacesForPath = (path: string) => {
188188
path.startsWith("/layer-2") ||
189189
path.startsWith("/nft") ||
190190
path.startsWith("/roadmap/merge") ||
191+
path.startsWith("/roadmap/scaling") ||
191192
path.startsWith("/security") ||
192193
path.startsWith("/staking/solo") ||
193194
path.startsWith("/wallets") ||

0 commit comments

Comments
 (0)