Skip to content

Commit

Permalink
Merge pull request #13896 from ethereum/dev
Browse files Browse the repository at this point in the history
Release candidate: v9.0.0
  • Loading branch information
corwintines authored Sep 18, 2024
2 parents 08c833d + 78cf2ef commit 07851a0
Show file tree
Hide file tree
Showing 471 changed files with 7,142 additions and 14,402 deletions.
9 changes: 9 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -12479,6 +12479,15 @@
"contributions": [
"content"
]
},
{
"login": "nipunh",
"name": "Nipun Hedaoo",
"avatar_url": "https://avatars.githubusercontent.com/u/26524611?v=4",
"profile": "https://github.com/nipunh",
"contributions": [
"code"
]
}
],
"contributorsPerLine": 7,
Expand Down
4 changes: 0 additions & 4 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,5 @@ BUILD_LOCALES=
# fixed number of CPUs (e.g. 2) to limit the demand during build time
LIMIT_CPUS=

# Sentry auth token required for error tracking
SENTRY_AUTH_TOKEN=
NEXT_PUBLIC_SENTRY_DSN=

# Enables the bundle analyzer
ANALYZE=false
3 changes: 2 additions & 1 deletion README.md → Adding that improves clarity README.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ git push
- In your PR description, reference the issue it resolves (see [linking a pull request to an issue using a keyword](https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword))
- ex. `Updates out of date content [Fixes #1234]`
- Netlify (our hosting service for build previews) deploys all PRs to a publicly accessible preview URL, e.g.: ![Netlify deploy preview](public/images/preview-deploy.png)
- _Confirm your Netlify preview deploy looks & functions as expected_
- _Confirm that your Netlify preview deploy looks and functions as expected_
- Why not say hi and draw attention to your PR in [our discord server](https://discord.gg/ethereum-org)?

### 6. Wait for review
Expand Down Expand Up @@ -1908,6 +1908,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://v2eth.com/"><img src="https://avatars.githubusercontent.com/u/7024451?v=4?s=100" width="100px;" alt="Mako Shan"/><br /><sub><b>Mako Shan</b></sub></a><br /><a href="#content-makoshan" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cratiu222"><img src="https://avatars.githubusercontent.com/u/156356273?v=4?s=100" width="100px;" alt="Christina"/><br /><sub><b>Christina</b></sub></a><br /><a href="#content-cratiu222" title="Content">🖋</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nipunh"><img src="https://avatars.githubusercontent.com/u/26524611?v=4?s=100" width="100px;" alt="Nipun Hedaoo"/><br /><sub><b>Nipun Hedaoo</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=nipunh" title="Code">💻</a></td>
</tr>
</tbody>
</table>
Expand Down
28 changes: 0 additions & 28 deletions instrumentation.ts

This file was deleted.

32 changes: 2 additions & 30 deletions next.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
/* eslint-disable @typescript-eslint/no-var-requires */
const { PHASE_DEVELOPMENT_SERVER } = require("next/constants")
const { withSentryConfig } = require("@sentry/nextjs")

const withBundleAnalyzer = require("@next/bundle-analyzer")({
enabled: process.env.ANALYZE === "true",
Expand All @@ -27,7 +26,7 @@ module.exports = (phase, { defaultConfig }) => {
let nextConfig = {
...defaultConfig,
reactStrictMode: true,
webpack: (config, { webpack }) => {
webpack: (config) => {
config.module.rules.push({
test: /\.ya?ml$/,
use: "yaml-loader",
Expand Down Expand Up @@ -58,30 +57,13 @@ module.exports = (phase, { defaultConfig }) => {
// Modify the file loader rule to ignore *.svg, since we have it handled now.
fileLoaderRule.exclude = /\.svg$/i

// Tree shake Sentry debug code
// ref. https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/tree-shaking/#tree-shaking-with-nextjs
config.plugins.push(
new webpack.DefinePlugin({
__SENTRY_DEBUG__: false,
__RRWEB_EXCLUDE_IFRAME__: true,
__RRWEB_EXCLUDE_SHADOW_DOM__: true,
__SENTRY_EXCLUDE_REPLAY_WORKER__: true,
})
)

return config
},
i18n,
trailingSlash: true,
images: {
deviceSizes: [640, 750, 828, 1080, 1200, 1504, 1920],
},
env: {
NEXT_PUBLIC_CONTEXT: process.env.CONTEXT,
},
experimental: {
instrumentationHook: true,
},
}

if (phase !== PHASE_DEVELOPMENT_SERVER) {
Expand Down Expand Up @@ -110,15 +92,5 @@ module.exports = (phase, { defaultConfig }) => {
}
}

return withBundleAnalyzer(
withSentryConfig(nextConfig, {
// TODO: temp config, update this to the correct org & project
org: "ethereumorg-ow",
project: "javascript-nextjs",
authToken: process.env.SENTRY_AUTH_TOKEN,
release: `${process.env.BUILD_ID}_${process.env.REVIEW_ID}`,
disableLogger: true,
silent: true,
})
)
return withBundleAnalyzer(nextConfig)
}
12 changes: 8 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ethereum-org-website",
"version": "8.10.1",
"version": "9.0.0",
"license": "MIT",
"private": true,
"scripts": {
Expand Down Expand Up @@ -48,7 +48,6 @@
"@radix-ui/react-switch": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.2",
"@radix-ui/react-visually-hidden": "^1.1.0",
"@sentry/nextjs": "^8.19.0",
"@socialgouv/matomo-next": "^1.8.0",
"chart.js": "^4.4.2",
"chartjs-plugin-datalabels": "^2.2.0",
Expand All @@ -64,7 +63,7 @@
"lodash.merge": "^4.6.2",
"lodash.shuffle": "^4.2.0",
"lodash.union": "^4.6.0",
"next": "^14.2.3",
"next": "^14.2.10",
"next-i18next": "^14.0.3",
"next-mdx-remote": "^3.0.8",
"next-sitemap": "^4.2.3",
Expand All @@ -82,7 +81,9 @@
"react-select": "5.8.0",
"reading-time": "^1.5.0",
"remark-gfm": "^3.0.1",
"swiper": "^11.1.10",
"tailwind-merge": "^2.3.0",
"tailwind-variants": "^0.2.1",
"tailwindcss-animate": "^1.0.7",
"usehooks-ts": "^3.1.0",
"yaml-loader": "^0.8.0"
Expand All @@ -104,6 +105,8 @@
"@types/node": "^20.4.2",
"@types/react": "18.2.57",
"@types/react-dom": "18.2.19",
"@types/swiper": "^6.0.0",
"@types/xml2js": "^0.4.14",
"@typescript-eslint/eslint-plugin": "^6.19.0",
"@typescript-eslint/parser": "^6.19.0",
"autoprefixer": "^10.4.19",
Expand Down Expand Up @@ -133,7 +136,8 @@
"tsconfig-paths-webpack-plugin": "4.1.0",
"typescript": "^5.5.2",
"unified": "^10.0.0",
"unist-util-visit": "^5.0.0"
"unist-util-visit": "^5.0.0",
"xml2js": "^0.6.2"
},
"resolutions": {
"jackspeak": "2.1.1",
Expand Down
2 changes: 2 additions & 0 deletions public/content/about/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ lang: en

ethereum.org is a public, open-source resource for the Ethereum community that anyone can contribute to. We have a small core team dedicated to maintaining and developing the site with contributions from thousands of community members across the globe.

**Nobody from ethereum.org will ever contact you. Do not respond.**

## A note on names {#a-note-on-names}

It's common for people to confuse names within the Ethereum landscape, which can lead to poor mental models about how Ethereum works. Here's a quick explainer to clear things up:
Expand Down
2 changes: 1 addition & 1 deletion public/content/community/support/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ lang: en

Are you looking for the official Ethereum support? The first thing you should know is that Ethereum is decentralized. This means no central organization, entity, or person owns Ethereum, and because of this, no official support channels exist.

Understanding the decentralized nature of Ethereum is vital because anyone claiming to be official support for Ethereum is probably trying to scam you! The best protection against scammers is educating yourself and taking security seriously.
Understanding the decentralized nature of Ethereum is vital because **anyone claiming to be official support for Ethereum is probably trying to scam you!** The best protection against scammers is educating yourself and taking security seriously.

<DocLink href="/security/">
Ethereum security and scam prevention
Expand Down
2 changes: 1 addition & 1 deletion public/content/contributing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Before contributing, make sure you're familiar with:
- our [style guide](/contributing/style-guide/)
- our [code of conduct](/community/code-of-conduct)

<ContributorsQuizBanner mt={16} mb={8} />
<ContributorsQuizBanner className="mt-16 mb-8" />

## How decisions about the site are made {#how-decisions-about-the-site-are-made}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,6 @@ Below is a breakdown of the website pages each content bucket contains.
- [Set up web3.js to use the Ethereum blockchain in JavaScript](/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/)
- [Short ABIs for calldata optimization](/developers/tutorials/short-abi/)
- [Smart contract security guidelines](/developers/tutorials/smart-contract-security-guidelines/)
- [Solidity and Truffle continuous integration setup](/developers/tutorials/solidity-and-truffle-continuous-integration-setup/)
- [Testing ERC-20 tokens with Waffle](/developers/tutorials/testing-erc-20-tokens-with-waffle/)
- [Token integration checklist](/developers/tutorials/token-integration-checklist/)
- [Using WebSockets](/developers/tutorials/using-websockets/)
Expand Down
2 changes: 1 addition & 1 deletion public/content/dao/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Decentralized autonomous organizations (DAOs)
title: What is a DAO? | Decentralized Autonomous Organizations
description: An overview of DAOs on Ethereum
lang: en
template: use-cases
Expand Down
2 changes: 1 addition & 1 deletion public/content/defi/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Decentralized finance (DeFi)
title: What is DeFi? | Benefits and Use of Decentralised Finance
description: An overview of DeFi on Ethereum
lang: en
template: use-cases
Expand Down
2 changes: 2 additions & 0 deletions public/content/desci/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ We welcome suggestions for new projects to list - please look at our [listing po
- [DeSci: The Future of Research by Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec)
- [Science Funding (Epilogue: DeSci and new crypto primitives) by Nadia](https://nadia.xyz/science-funding)
- [Decentralisation is Disrupting Drug Development](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f)
- [What Is DeSci – Decentralized Science?](​https://usadailytimes.com/2022/09/12/what-is-desci-decentralized-science/)

### Videos {#videos}

Expand All @@ -135,3 +136,4 @@ We welcome suggestions for new projects to list - please look at our [listing po
- [Scientific Publishing Is Broken. Can Web3 Fix It?](https://www.youtube.com/watch?v=WkvzYgCvWj8)
- [Juan Benet - DeSci, Independent Labs, & Large Scale Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E)
- [Sebastian Brunemeier - How DeSci Can Transform Biomedical Research & Venture Capital](https://www.youtube.com/watch?v=qB4Tc3FcVbM)
- [Paige Donner - Tooling Open Science with Web3 & The Blockchain](https://www.youtube.com/watch?v=nC-2QWQ-lgw&t=17s)
2 changes: 1 addition & 1 deletion public/content/developers/docs/bridges/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ If a dapp goes down the route of integrating a bridge or an aggregator, there ar

### Deploying a dapp on multiple chains {#deploying-a-dapp-on-multiple-chains}

To deploy a dapp on multiple chains, developers can use development platforms like [Alchemy](https://www.alchemy.com/), [Hardhat](https://hardhat.org/), [Truffle](https://trufflesuite.com/), [Moralis](https://moralis.io/), etc. Typically, these platforms come with composable plugins that can enable dapps to go cross-chain. For instance, developers can use a deterministic deployment proxy offered by the [hardhat-deploy plugin](https://github.com/wighawag/hardhat-deploy).
To deploy a dapp on multiple chains, developers can use development platforms like [Alchemy](https://www.alchemy.com/), [Hardhat](https://hardhat.org/), [Moralis](https://moralis.io/), etc. Typically, these platforms come with composable plugins that can enable dapps to go cross-chain. For instance, developers can use a deterministic deployment proxy offered by the [hardhat-deploy plugin](https://github.com/wighawag/hardhat-deploy).

#### Examples:

Expand Down
10 changes: 0 additions & 10 deletions public/content/developers/docs/development-networks/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,6 @@ You _could_ [run a node](/developers/docs/nodes-and-clients/#running-your-own-no

**Note**: Most [development frameworks](/developers/docs/frameworks/) include a built-in development network. We recommend starting with a framework to [set up your local development environment](/developers/local-environment/).

### Ganache {#ganache}

Quickly fire up a personal Ethereum blockchain which you can use to run tests, execute commands, and inspect state while controlling how the chain operates.

Ganache provides both a desktop application (Ganache UI), as well as a command-line tool (`ganache-cli`). It is part of the Truffle suite of tools.

- [Website](https://www.trufflesuite.com/ganache)
- [GitHub](https://github.com/trufflesuite/ganache)
- [Documentation](https://www.trufflesuite.com/docs/ganache/overview)

### Hardhat Network {#hardhat-network}

A local Ethereum network designed for development. It allows you to deploy your contracts, run your tests and debug your code.
Expand Down
6 changes: 0 additions & 6 deletions public/content/developers/docs/frameworks/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,12 +113,6 @@ Before diving into frameworks, we recommend you first read through our introduct
- [GitHub](https://github.com/eth-brownie/brownie)
- **Brownie is currently unmaintained**

**Truffle -** **_A development environment, testing framework, build pipeline, and other tools._**

- [trufflesuite.com](https://www.trufflesuite.com/)
- [GitHub](https://github.com/trufflesuite/truffle)
- **Truffle development has ended** - [read more](https://twitter.com/trufflesuite/status/1704946902393860589?t=NlIWeLTbBSAaJmS5uUAhSA&s=19)

**OpenZeppelin SDK -** **_The Ultimate Smart Contract Toolkit: A suite of tools to help you develop, compile, upgrade, deploy and interact with smart contracts._**

- [OpenZeppelin SDK](https://openzeppelin.com/sdk/)
Expand Down
2 changes: 1 addition & 1 deletion public/content/developers/docs/gas/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Gas and fees
title: "Ethereum gas and fees: technical overview"
description:
lang: en
---
Expand Down
8 changes: 4 additions & 4 deletions public/content/developers/docs/mev/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ It works like this: if two DEXes are offering a token at two different prices, s

Lending protocol liquidations present another well-known MEV opportunity.

Lending protocols like Maker and Aave require users to deposit some collateral (e.g. ETH). This deposited collateral is then used to then lend out to other users.
Lending protocols like Maker and Aave require users to deposit some collateral (e.g. ETH). This deposited collateral is then used to lend out to other users.

Users can then borrow assets and tokens from others depending on what they need (e.g. you might borrow MKR if you want to vote in a MakerDAO governance proposal) up to a certain percentage of their deposited collateral. For example, if the borrowing amount is a maximum of 30%, a user who deposits 100 DAI into the protocol can borrow up to 30 DAI worth of another asset. The protocol determines the exact borrowing power percentage.

Expand Down Expand Up @@ -122,7 +122,7 @@ As explained, MEV has negative implications for overall user experience and cons

In post-Merge Ethereum, validators (having made security deposits of 32 ETH) come to consensus on the validity of blocks added to the Beacon Chain. Since 32 ETH may be out of the reach of many, [joining a staking pool](/staking/pools/) may be a more feasible option. Nevertheless, a healthy distribution of [solo stakers](/staking/solo/) is ideal, as it mitigates the centralization of validators and improves Ethereum’s security.

However, MEV extraction is believed to be capable of accelerating validator centralization. This is partly because, as validators [earn less for proposing blocks](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) than miners previous did, MEV extraction has greatly [influence validator earnings](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) since The Merge.
However, MEV extraction is believed to be capable of accelerating validator centralization. This is partly because, as validators [earn less for proposing blocks](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) than miners previously did, MEV extraction has greatly [influenced validator earnings](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) since [The Merge](/roadmap/merge/).

Larger staking pools will likely have more resources to invest in necessary optimizations to capture MEV opportunities. The more MEV these pools extract, the more resources they have to improve their MEV-extraction capabilities (and increase overall revenue), essentially creating [economies of scale](https://www.investopedia.com/terms/e/economiesofscale.asp#).

Expand All @@ -136,13 +136,13 @@ In response to sandwiching and frontrunning attacks, traders may start conductin

Permissioned mempools would also accelerate the centralization risks described in the previous section. Large pools running multiple validators will likely benefit from offering transaction privacy to traders and users, increasing their MEV revenues.

Combating these MEV-related problems in post-Merge Ethereum is a core area of research. To date, two solutions proposed to reduce the negative impact of MEV on Ethereum’s decentralization and security after The Merge are **Proposer-Builder Separation (PBS)** and the **Builder API**.
Combating these MEV-related problems in post-Merge Ethereum is a core area of research. To date, two solutions proposed to reduce the negative impact of MEV on Ethereum’s decentralization and security after The Merge are [**Proposer-Builder Separation (PBS)**](/roadmap/pbs/) and the [**Builder API**](https://github.com/ethereum/builder-specs).

### Proposer-Builder Separation {#proposer-builder-separation}

In both proof-of-work and proof-of-stake, a node that builds a block proposes it for addition to the chain to other nodes participating in consensus. A new block becomes part of the canonical chain after another miner builds on top of it (in PoW) or it receives attestations from the majority of validators (in PoS).

The combination of block producer and block proposer roles is what introduces most of the MEV-related problems described previously. For example, consensus nodes are incentivized to trigger chain reorganizations in time-bandit attacks to maximize MEV earnings.
The combination of block producer and block proposer roles is what introduces most of the MEV-related problems described previously. For example, consensus nodes are incentivized to trigger chain reorganizations in [time-bandit attacks](https://www.mev.wiki/attack-examples/time-bandit-attack) to maximize MEV earnings.

[Proposer-builder separation](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) is designed to mitigate the impact of MEV, especially at the consensus layer. PBS’ major feature is the separation of block producer and block proposer rules. Validators are still responsible for proposing and voting on blocks, but a new class of specialized entities, called **block builders**, are tasked with ordering transactions and building blocks.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,13 @@ The benefits of this network design are:

The diagram below shows the functions of existing clients that can be delivered by the Portal Network, enabling users to access these functions on very low-resource devices.

![portal network table](portal-network-table2.png)
### The Portal Networks

| Beacon light client | State network | Transaction gossip | History network |
| ------------------- | ---------------------------- | ------------------- | --------------- |
| Beacon chain light | Account and contract storage | Lightweight mempool | Headers |
| Protocol data | | | Block bodies |
| | | | Receipts |

## Client diversity by default {#client-diversity-as-default}

Expand Down
Loading

0 comments on commit 07851a0

Please sign in to comment.