Skip to content

Commit 6b8904f

Browse files
committed
Merge remote-tracking branch 'upstream/dev' into feat/mergeinfographic-story
2 parents 1344315 + 4818c51 commit 6b8904f

File tree

9 files changed

+64
-24
lines changed

9 files changed

+64
-24
lines changed

.all-contributorsrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4810,7 +4810,8 @@
48104810
"profile": "http://www.technobunnies.com",
48114811
"contributions": [
48124812
"doc",
4813-
"maintenance"
4813+
"maintenance",
4814+
"content"
48144815
]
48154816
},
48164817
{

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -837,7 +837,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
837837
<td align="center" valign="top" width="14.28%"><a href="https://o.zgur.org"><img src="https://avatars.githubusercontent.com/u/375834?v=4?s=100" width="100px;" alt="Ozgur"/><br /><sub><b>Ozgur</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=rootqa" title="Documentation">📖</a></td>
838838
<td align="center" valign="top" width="14.28%"><a href="https://github.com/adilanchian"><img src="https://avatars.githubusercontent.com/u/13204620?v=4?s=100" width="100px;" alt="Alec Dilanchian"/><br /><sub><b>Alec Dilanchian</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=adilanchian" title="Documentation">📖</a></td>
839839
<td align="center" valign="top" width="14.28%"><a href="http://horacio.eth"><img src="https://avatars.githubusercontent.com/u/7662728?v=4?s=100" width="100px;" alt="Horacio Bertorello"/><br /><sub><b>Horacio Bertorello</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=horacio" title="Documentation">📖</a></td>
840-
<td align="center" valign="top" width="14.28%"><a href="http://www.technobunnies.com"><img src="https://avatars.githubusercontent.com/u/20266893?v=4?s=100" width="100px;" alt="m4sterbunny"/><br /><sub><b>m4sterbunny</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=m4sterbunny" title="Documentation">📖</a> <a href="#maintenance-m4sterbunny" title="Maintenance">🚧</a></td>
840+
<td align="center" valign="top" width="14.28%"><a href="http://www.technobunnies.com"><img src="https://avatars.githubusercontent.com/u/20266893?v=4?s=100" width="100px;" alt="m4sterbunny"/><br /><sub><b>m4sterbunny</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=m4sterbunny" title="Documentation">📖</a> <a href="#maintenance-m4sterbunny" title="Maintenance">🚧</a> <a href="#content-m4sterbunny" title="Content">🖋</a></td>
841841
<td align="center" valign="top" width="14.28%"><a href="https://yutingzhao1991.github.io/"><img src="https://avatars.githubusercontent.com/u/1061968?v=4?s=100" width="100px;" alt="愚指导"/><br /><sub><b>愚指导</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=yutingzhao1991" title="Documentation">📖</a></td>
842842
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rayjasson98"><img src="https://avatars.githubusercontent.com/u/48130098?v=4?s=100" width="100px;" alt="Ray Jasson"/><br /><sub><b>Ray Jasson</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=rayjasson98" title="Documentation">📖</a></td>
843843
</tr>

public/content/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn about the in-protocol incentives in proof-of-stake Ethereum.
44
lang: en
55
---
66

7-
Ethereum is secured using its native cryptocurrency, ether (ETH). Node operators that wish to participate in validating blocks and identifying the head of the chain deposit ether into a smart contract on Ethereum. They are then paid in ether to run validator software that checks the validity of new blocks received over the peer-to-peer network and apply the fork-choice algorithm to identify the head of the chain.
7+
Ethereum is secured using its native cryptocurrency, ether (ETH). Node operators that wish to participate in validating blocks and identifying the head of the chain, deposit ether into the [deposit contract](/staking/deposit-contract/) on Ethereum. They are then paid in ether to run validator software that checks the validity of new blocks received over the peer-to-peer network and apply the fork-choice algorithm to identify the head of the chain.
88

99
There are two primary roles for a validator: 1) checking new blocks and “attesting” to them if they are valid, 2) proposing new blocks when selected at random from the total validator pool. If the validator fails to do either of these tasks when asked they miss out on an ether payout. Validators are also sometimes tasked with signature aggregation and participating in sync committees.
1010

public/content/developers/docs/nodes-and-clients/index.md

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,12 @@ This table summarizes the different clients. All of them pass [client tests](htt
135135

136136
| Client | Language | Operating systems | Networks | Sync strategies | State pruning |
137137
| ------------------------------------------------------------------------ | ---------- | --------------------- | ------------------------- | ---------------------------------- | --------------- |
138-
| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Snap, Full | Archive, Pruned |
139-
| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Snap (without serving), Fast, Full | Archive, Pruned |
140-
| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Snap, Fast, Full | Archive, Pruned |
141-
| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Full | Archive, Pruned |
142-
| [Reth](https://github.com/paradigmxyz/reth) _(beta)_ | Rust | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | Full | Archive, Pruned |
143-
| [EthereumJS](https://github.com/ethereumjs/ethereumjs-monorepo) _(beta)_ | TypeScript | Linux, Windows, macOS | Sepolia, Holesky | Full | Pruned |
138+
| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync), [Full](#full-sync) | Archive, Pruned |
139+
| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync) (without serving), Fast, [Full](#full-sync) | Archive, Pruned |
140+
| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync), [Fast](#fast-sync), [Full](#full-sync) | Archive, Pruned |
141+
| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Full](#full-sync) | Archive, Pruned |
142+
| [Reth](https://github.com/paradigmxyz/reth) _(beta)_ | Rust | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Full](#full-sync) | Archive, Pruned |
143+
| [EthereumJS](https://github.com/ethereumjs/ethereumjs-monorepo) _(beta)_ | TypeScript | Linux, Windows, macOS | Sepolia, Holesky | [Full](#full-sync) | Pruned |
144144

145145
For more on supported networks, read up on [Ethereum networks](/developers/docs/networks/).
146146

@@ -234,21 +234,32 @@ Synchronization modes represent different approaches to this process with variou
234234

235235
### Execution layer sync modes {#execution-layer-sync-modes}
236236

237-
#### Full archive sync {#full-sync}
237+
The execution layer may be run in different modes to suit different use cases, from re-executing the blockchain's world state to only syncing with the tip of the chain from a trusted checkpoint.
238238

239-
Full sync downloads all blocks (including headers, transactions, and receipts) and generates the state of the blockchain incrementally by executing every block from genesis.
239+
#### Full sync {#full-sync}
240+
241+
A full sync downloads all blocks (including headers and block bodies) and regenerates the state of the blockchain incrementally by executing every block from genesis.
240242

241243
- Minimizes trust and offers the highest security by verifying every transaction.
242244
- With an increasing number of transactions, it can take days to weeks to process all transactions.
243245

244-
#### Full snap sync {#snap-sync}
246+
[Archive nodes](#archive-node) perform a full sync to build (and retain) a complete history of the state changes made by every transaction in every block.
247+
248+
#### Fast sync {#fast-sync}
249+
250+
Like a full sync, a fast sync downloads all blocks (including headers, transactions, and receipts). However, instead of re-processing the historical transactions, a fast sync relies on the receipts until it reaches a recent head, when it switches to importing and processing blocks to provide a full node.
245251

246-
Snap sync verifies the chain block-by-block, just like a full archive sync; however, instead of starting at the genesis block, it starts at a more recent 'trusted' checkpoint that is known to be part of the true blockchain. The node saves periodic checkpoints while deleting data older than a certain age. Those snapshots are used to regenerate state data when it is needed, rather than having to store it all forever.
252+
- Fast sync strategy.
253+
- Reduces processing demand in favor of bandwidth usage.
247254

248-
- Fastest sync strategy, currently default in Ethereum mainnet
249-
- Saves a lot of disk usage and network bandwidth without sacrificing security
255+
#### Snap sync {#snap-sync}
250256

251-
[More on snap sync](https://github.com/ethereum/devp2p/blob/master/caps/snap.md)
257+
Snap syncs also verify the chain block-by-block. However, instead of starting at the genesis block, a snap sync starts at a more recent 'trusted' checkpoint that is known to be part of the true blockchain. The node saves periodic checkpoints while deleting data older than a certain age. These snapshots are used to regenerate state data as needed, rather than storing it forever.
258+
259+
- Fastest sync strategy, currently default in Ethereum Mainnet.
260+
- Saves a lot of disk usage and network bandwidth without sacrificing security.
261+
262+
[More on snap sync](https://github.com/ethereum/devp2p/blob/master/caps/snap.md).
252263

253264
#### Light sync {#light-sync}
254265

@@ -271,16 +282,14 @@ Optimistic sync is a post-merge synchronization strategy designed to be opt-in a
271282

272283
#### Checkpoint sync {#checkpoint-sync}
273284

274-
Checkpoint sync, also known as weak subjectivity sync, creates a superior user experience for syncing Beacon Node. It's based on assumptions of [weak subjectivity](/developers/docs/consensus-mechanisms/pos/weak-subjectivity/) which enables syncing Beacon Chain from a recent weak subjectivity checkpoint instead of genesis. Checkpoint sync makes the initial sync time significantly faster with similar trust assumptions as syncing from [genesis](/glossary/#genesis-block).
285+
A checkpoint sync, also known as weak subjectivity sync, creates a superior user experience for syncing a Beacon Node. It's based on assumptions of [weak subjectivity](/developers/docs/consensus-mechanisms/pos/weak-subjectivity/) which enables syncing the Beacon Chain from a recent weak subjectivity checkpoint instead of genesis. Checkpoint syncs make the initial sync time significantly faster with similar trust assumptions as syncing from [genesis](/glossary/#genesis-block).
275286

276-
In practice, this means your node connects to a remote service to download recent finalized states and continues verifying data from that point. Third party providing the data is trusted and should be picked carefully.
287+
In practice, this means your node connects to a remote service to download recent finalized states and continues verifying data from that point. The third party providing the data is trusted and should be picked carefully.
277288

278289
More on [checkpoint sync](https://notes.ethereum.org/@djrtwo/ws-sync-in-practice)
279290

280291
## Further reading {#further-reading}
281292

282-
There is a lot of information about Ethereum clients on the internet. Here are few resources that might be helpful.
283-
284293
- [Ethereum 101 - Part 2 - Understanding Nodes](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– Wil Barnes, 13 February 2019_
285294
- [Running Ethereum Full Nodes: A Guide for the Barely Motivated](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 November 2019_
286295

public/images/dev-tools/atlas.png

42.9 KB
Loading

src/components/Nav/index.tsx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,26 @@ import { EthHomeIcon } from "@/components/icons"
66
import { BaseLink } from "@/components/Link"
77
import Search from "@/components/Search"
88

9-
import { isMobile } from "@/lib/utils/isMobile"
9+
import { isDesktop } from "@/lib/utils/isDesktop"
1010

1111
import { NAV_PY } from "@/lib/constants"
1212

1313
import DesktopNavMenu from "./Desktop"
1414
import Menu from "./Menu"
1515
import { useNav } from "./useNav"
1616

17+
import { useIsClient } from "@/hooks/useIsClient"
18+
1719
const MobileNavMenu = lazy(() => import("./Mobile"))
1820

1921
// TODO display page title on mobile
2022
const Nav = () => {
2123
const { toggleColorMode, linkSections, mobileNavProps } = useNav()
2224
const { t } = useTranslation("common")
23-
const isDesktop = !isMobile()
2425
const searchModalDisclosure = useDisclosure()
2526
const navWrapperRef = useRef(null)
27+
const isClient = useIsClient()
28+
const isDesktopFlag = isDesktop()
2629

2730
return (
2831
<Box position="sticky" top={0} zIndex="sticky" width="full">
@@ -60,7 +63,12 @@ const Nav = () => {
6063
ms={{ base: 3, xl: 8 }}
6164
>
6265
{/* avoid rendering desktop Menu version on mobile */}
63-
{isDesktop && <Menu hideBelow="md" sections={linkSections} />}
66+
67+
{isClient && isDesktopFlag ? (
68+
<Menu hideBelow="md" sections={linkSections} />
69+
) : (
70+
<Box />
71+
)}
6472

6573
<Flex alignItems="center" /* justifyContent="space-between" */>
6674
{/* Desktop */}

src/intl/en/page-developers-learning-tools.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@
2828
"page-learning-tools-game-tutorials-desc": "Learn while you play. These tutorials get you through the basics using gameplay.",
2929
"page-learning-tools-meta-desc": "Web-based coding tools and interactive learning experiences to help you experiment with Ethereum development.",
3030
"page-learning-tools-meta-title": "Developer learning tools",
31+
"page-learning-tools-atlas-logo-alt": "Atlas logo",
32+
"page-learning-tools-atlas-description": "Write, test, and deploy smart contracts in minutes with the Atlas IDE.",
3133
"page-learning-tools-questbook-description": "Self paced tutorials to learn Web 3.0 by building",
3234
"page-learning-tools-questbook-logo-alt": "Questbook logo",
3335
"page-learning-tools-remix-description": "Develop, deploy and administer smart contracts for Ethereum. Follow tutorials with the LearnEth plugin.",
34-
"page-learning-tools-remix-description-2": "Remix, Replit, and ChainIDE aren't just sandboxes—developers can write, compile and deploy their smart contracts using them.",
36+
"page-learning-tools-remix-description-2": "Remix, Replit, ChainIDE, and Atlas aren't just sandboxes—developers can write, compile and deploy their smart contracts using them.",
3537
"page-learning-tools-replit-description": "A customizable development environment for Ethereum with hot reloading, error checking, and first-class testnet support.",
3638
"page-learning-tools-chainIDE-description": "Get started on your journey to Web3 by writing smart contracts for Ethereum with ChainIDE. Use the built-in templates to learn and save time.",
3739
"page-learning-tools-chainIDE-logo-alt": "ChainIDE logo",

src/lib/utils/isDesktop.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { isMobile } from "./isMobile"
2+
3+
export const isDesktop = (): boolean => {
4+
if (typeof window === "undefined") return false
5+
return !isMobile()
6+
}

src/pages/developers/learning-tools.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { getLocaleTimestamp } from "@/lib/utils/time"
2323
import { getRequiredNamespacesForPage } from "@/lib/utils/translations"
2424

2525
import AlchemyUniversityImage from "@/public/images/dev-tools/alchemyuniversity.png"
26+
import AtlasImage from "@/public/images/dev-tools/atlas.png"
2627
import BloomTechImage from "@/public/images/dev-tools/bloomtech.png"
2728
import BuildSpaceImage from "@/public/images/dev-tools/buildspace.png"
2829
import CaptureTheEtherImage from "@/public/images/dev-tools/capturetheether.png"
@@ -209,6 +210,19 @@ const LearningToolsPage = () => {
209210
background: "#0f1524",
210211
subjects: ["Solidity", "Vyper", "web3"],
211212
},
213+
{
214+
name: "Atlas",
215+
description: t(
216+
"page-developers-learning-tools:page-learning-tools-atlas-description"
217+
),
218+
url: "https://www.atlaszk.com",
219+
image: AtlasImage,
220+
alt: t(
221+
"page-developers-learning-tools:page-learning-tools-atlas-logo-alt"
222+
),
223+
background: "#000000",
224+
subjects: ["Solidity"],
225+
},
212226
])
213227

214228
const games: Array<LearningTool> = [

0 commit comments

Comments
 (0)