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

Add quiz: scaling #10477

Merged
merged 7 commits into from
Jul 19, 2023
Merged
Show file tree
Hide file tree
Changes from 3 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
2 changes: 2 additions & 0 deletions src/content/roadmap/scaling/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,5 @@ This second step is known as [“Danksharding”](/roadmap/danksharding/). It is
## Current progress {#current-progress}

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.

<QuizWidget quizKey="scaling" />
9 changes: 9 additions & 0 deletions src/data/quizzes/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ const quizzes: RawQuizzes = {
title: "page-assets-merge",
questions: ["h001", "h002", "h003", "h004", "h005"],
},
scaling: {
title: "scaling",
questions: ["k001", "k002", "k003", "k004"],
},
}

export const ethereumBasicsQuizzes: QuizzesSection[] = [
Expand Down Expand Up @@ -66,6 +70,11 @@ export const ethereumBasicsQuizzes: QuizzesSection[] = [
{
id: "merge",
level: "intermediate",
next: "scaling",
},
{
id: "scaling",
level: "intermediate",
},
]

Expand Down
104 changes: 104 additions & 0 deletions src/data/quizzes/questionBank.ts
Original file line number Diff line number Diff line change
Expand Up @@ -887,6 +887,110 @@ const questionBank: QuestionBank = {
],
correctAnswerId: "h005-b",
},
k001: {
prompt: "k001-prompt",
answers: [
{
id: "k001-a",
label: "k001-a-label",
explanation: "k001-a-explanation",
},
{
id: "k001-b",
label: "k001-b-label",
explanation: "k001-b-explanation",
},
{
id: "k001-c",
label: "k001-c-label",
explanation: "k001-c-explanation",
},
{
id: "k001-d",
label: "k001-d-label",
explanation: "k001-d-explanation",
},
],
correctAnswerId: "k001-d",
},
k002: {
prompt: "k002-prompt",
answers: [
{
id: "k002-a",
label: "k002-a-label",
explanation: "k002-a-explanation",
},
{
id: "k002-b",
label: "k002-b-label",
explanation: "k002-b-explanation",
},
{
id: "k002-c",
label: "k002-c-label",
explanation: "k002-c-explanation",
},
{
id: "k002-d",
label: "k002-d-label",
explanation: "k002-d-explanation",
},
],
correctAnswerId: "k002-c",
},
k003: {
prompt: "k003-prompt",
answers: [
{
id: "k003-a",
label: "k003-a-label",
explanation: "k003-a-explanation",
},
{
id: "k003-b",
label: "k003-b-label",
explanation: "k003-b-explanation",
},
{
id: "k003-c",
label: "k003-c-label",
explanation: "k003-c-explanation",
},
{
id: "k003-d",
label: "k003-d-label",
explanation: "k003-d-explanation",
},
],
correctAnswerId: "k003-d",
},
k004: {
prompt: "k004-prompt",
answers: [
{
id: "k004-a",
label: "k004-a-label",
explanation: "k004-a-explanation",
},
{
id: "k004-b",
label: "k004-b-label",
explanation: "k004-b-explanation",
},
{
id: "k004-c",
label: "k004-c-label",
explanation: "k004-c-explanation",
},
{
id: "k004-d",
label: "k004-d-label",
explanation: "k004-d-explanation",
},
],
correctAnswerId: "k004-b",
},
}

export default questionBank
38 changes: 37 additions & 1 deletion src/intl/en/learn-quizzes.json
Original file line number Diff line number Diff line change
Expand Up @@ -324,5 +324,41 @@
"h005-c-label": "Eth1",
"h005-c-explanation": "Eth1 was the original name given to the execution layer, not the consensus layer.",
"h005-d-label": "Staking",
"h005-d-explanation": "Staking is depositing ETH into a smart contract to help secure the chain."
"h005-d-explanation": "Staking is depositing ETH into a smart contract to help secure the chain.",
"k001-prompt": "Which of the following is Ethereum using to scale?",
"k001-a-label": "Layer 2 rollups",
"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.",
"k001-b-label": "Proto-Danksharding",
"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.",
"k001-c-label": "Danksharding",
"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.",
"k001-d-label": "All of the above",
"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.",
"k002-prompt": "After bundling transactions and executing them, what do layer 2 rollups do next?",
"k002-a-label": "Store the data on a private server",
"k002-a-explanation": "Results are posted to Mainnet for transparency and public availability, and are not reliant on private servers.",
"k002-b-label": "Sends the proof to the user for storage",
"k002-b-explanation": "Users are not expected to hold onto the results of their transaction. This information is posted to Mainnet.",
"k002-c-label": "Submit the results to Ethereum",
"k002-c-explanation": "Layer 2 rollups post the results of their transaction execution to Mainnet, securing it in Ethereum's history",
"k002-d-label": "Delete the result to reduce costs",
"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.",
"k003-prompt": "How does Proto-Danksharding reduce rollup transaction costs on rollups?",
"k003-a-label": "Directly increasing the gas limit per block",
"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",
"k003-b-label": "Splitting up which validators are required to store the data",
"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.",
"k003-c-label": "Significantly increasing hardware requirements for node operators",
"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.",
"k003-d-label": "Storing its data in cheaper, temporary 'blob' storage",
"k003-d-explanation": "Proto-Danksharding introduces a temporary data storage option for rollups to allow them to more cheaply post its results to Mainnet",
"k004-prompt": "What is a critical next step to scaling Ethereum with rollups?",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are the next steps to decentralising rollup scaling**

Suggested change
"k004-prompt": "What is a critical next step to scaling Ethereum with rollups?",
"k004-prompt": "What is a critical next step to scaling Ethereum with rollups?",

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose... but this kinda changes the question and makes some of the answers more obviously wrong since the root of the question is really "do you realize they need to decentralize still?"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me know if people feel firmly one way or the other about this... Like I said, the intent of this question was to test if users understand that rollups still need to be decentralized, so placing this in the question would change the whole question.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adjusted this question a little... think it's okay for a first run. Can certainly readdress if folks think it could be improved

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the pushed change addresses this confusion.

"k004-a-label": "Incentivize entities with powerful computers to handle all of the sequencing",
"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.",
"k004-b-label": "Distribute responsibility for running sequencers and provers across more people",
"k004-b-explanation": "Rollups were bootstrapped using centralized sequencers (software run by small groups that decides the inclusion and ordering of transactions within a rollup), but this leaves the network prone to censorship. To prevent the possibility of coercion, sanctioning or bribery, decentralizing the sequencer roll so anyone can participate is essential.",
"k004-c-label": "Make all rollups conform to the same method of security",
"k004-c-explanation": "Ethereum benefits from having a wide range of approaches to security within its rollup ecosystem as a form of resiliency.",
"k004-d-label": "Data oracles to confirm storage of transaction data on private servers",
"k004-d-explanation": "Rollup data is stored on Ethereum, and does not rely on private servers or databases."
}
7 changes: 6 additions & 1 deletion src/templates/roadmap.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import YouTube from "../components/YouTube"
import Breadcrumbs from "../components/Breadcrumbs"
import RoadmapActionCard from "../components/Roadmap/RoadmapActionCard"
import RoadmapImageContent from "../components/Roadmap/RoadmapImageContent"
import QuizWidget from "../components/Quiz/QuizWidget"
import {
Page,
InfoColumn,
Expand Down Expand Up @@ -145,6 +146,7 @@ const components = {
YouTube,
RoadmapActionCard,
RoadmapImageContent,
QuizWidget,
}

const RoadmapPage = ({
Expand Down Expand Up @@ -305,7 +307,10 @@ const RoadmapPage = ({
export const roadmapPageQuery = graphql`
query RoadmapPage($languagesToFetch: [String!]!, $relativePath: String) {
locales: allLocale(
filter: { language: { in: $languagesToFetch }, ns: { in: ["common"] } }
filter: {
language: { in: $languagesToFetch }
ns: { in: ["common", "learn-quizzes"] }
}
) {
edges {
node {
Expand Down