Skip to content

Commit 5b2af37

Browse files
committed
Merge branch 'dev' into Setup_layer-2/networks_for_translation
2 parents 1fbfcdf + fb85af1 commit 5b2af37

File tree

24 files changed

+629
-425
lines changed

24 files changed

+629
-425
lines changed

next.config.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,19 @@ module.exports = (phase, { defaultConfig }) => {
7070
},
7171
],
7272
},
73+
async headers() {
74+
return [
75+
{
76+
source: "/(.*)", // Apply to all routes
77+
headers: [
78+
{
79+
key: "X-Frame-Options",
80+
value: "DENY",
81+
},
82+
],
83+
},
84+
]
85+
},
7386
}
7487

7588
if (phase !== PHASE_DEVELOPMENT_SERVER) {

public/content/developers/docs/scaling/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ _Note the explanation in the video uses the term "Layer 2" to refer to all off-c
109109
- [Zero-Knowledge Blockchain Scalability](https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf)
110110
- [Why rollups + data shards are the only sustainable solution for high scalability](https://polynya.medium.com/why-rollups-data-shards-are-the-only-sustainable-solution-for-high-scalability-c9aabd6fbb48)
111111
- [What kind of Layer 3s make sense?](https://vitalik.eth.limo/general/2022/09/17/layer_3.html)
112-
- [Data Availability Or: How Rollups Learned To Stop Worrying And Love Ethereum](https://ethereum2077.substack.com/p/data-availability-in-ethereum-rollups)
112+
- [Data Availability Or: How Rollups Learned To Stop Worrying And Love Ethereum](https://research.2077.xyz/data-availability-or-how-rollups-learned-to-stop-worrying-and-love-ethereum)
113+
- [The Practical Guide to Ethereum Rollups](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups)
113114

114115
_Know of a community resource that helped you? Edit this page and add it!_

public/content/developers/docs/scaling/optimistic-rollups/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,8 @@ More of a visual learner? Watch Finematics explain optimistic rollups:
258258
- [How do optimistic rollups work (The Complete guide)](https://www.alchemy.com/overviews/optimistic-rollups)
259259
- [What is a Blockchain Rollup? A Technical Introduction](https://www.ethereum-ecosystem.com/blog/what-is-a-blockchain-rollup-a-technical-introduction)
260260
- [The Essential Guide to Arbitrum](https://newsletter.banklesshq.com/p/the-essential-guide-to-arbitrum)
261+
- [The Practical Guide To Ethereum Rollups](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups)
262+
- [The State Of Fraud Proofs In Ethereum L2s](https://research.2077.xyz/the-state-of-fraud-proofs-in-ethereum-l2s)
261263
- [How does Optimism's Rollup really work?](https://www.paradigm.xyz/2021/01/how-does-optimisms-rollup-really-work)
262264
- [OVM Deep Dive](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52)
263265
- [What is the Optimistic Virtual Machine?](https://www.alchemy.com/overviews/optimistic-virtual-machine)

public/content/roadmap/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ Sharding is splitting up the Ethereum blockchain so that subsets of [validators]
107107

108108
## Looking for specific technical upgrades? {#looking-for-specific-technical-upgrades}
109109

110+
- [Pectra](/roadmap/pectra) - Prague/Electra hardfork that brings new approach to account abstraction, improves scalability and more.
110111
- [Danksharding](/roadmap/danksharding) - Danksharding makes layer 2 rollups much cheaper for users by adding “blobs” of data to Ethereum blocks.
111112
- [Staking withdrawals](/staking/withdrawals) - The Shanghai/Capella upgrade enabled staking withdrawals on Ethereum, allowing people to unlock their staked ETH.
112113
- [Single slot finality](/roadmap/single-slot-finality) - Instead of waiting for fifteen minutes, blocks could get proposed and finalized in the same slot. This is more convenient for apps and much more difficult to attack.
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
title: Pectra
3+
description: Learn about Pectra - the next Ethereum protocol upgrade
4+
lang: en
5+
---
6+
7+
# Prague-Electra (Pectra) {#pectra}
8+
9+
Pectra is an upcoming Ethereum protocol upgrade that brings new functionality and changes to the Ethereum network. Following [Dencun](/roadmap/dencun/), this is another major upgrade to both the execution and consensus layer of Ethereum. The shortened name Pectra is a combination of Prague, the execution layer hard fork, and Electra on the consensus layer fork, both of which will be activated at the same time. Together, they bring a number of improvements to the Ethereum core protocol, the way it works under the hood, and also how we can use it. There are many benefits to Ethereum users, developers and validators.
10+
11+
<InfoBanner>
12+
Pectra upgrade is only a single step in Ethereum's long-term development goals. Learn more about <a href="/roadmap/">the protocol roadmap</a> and <a href="/history/">previous upgrades</a>.
13+
</InfoBanner>
14+
15+
## Improvements in Pectra {#new-improvements}
16+
17+
Pectra brings the biggest number of [EIPs](https://eips.ethereum.org/) of any previous upgrades! There are many minor changes but also some significant new features. The full list of changes and technical details can be found in the individual included EIPs.
18+
19+
### EOA account code {#7702}
20+
21+
[EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) is probably the most anticipated improvement in the Pectra upgrade. With this feature, users can set their address ([EOA](/glossary/#eoa)) to be represented by a code of an existing smart contract. The EIP introduces a new type of transaction with a specific function - to allow address owners to sign an authorization that sets their address to mimic a chosen smart contract.
22+
23+
With this EIP, users can opt in to programmable wallets that allow new features like transaction bundling, gasless transacting and custom asset access for alternative recovery schemes. It's another step towards [account abstraction](/roadmap/account-abstraction/) that improves user experience and security when interacting with Ethereum.
24+
25+
### Increase the max effective balance {#7251}
26+
27+
The current effective balance of the validator is exactly 32 ETH. It's the minimum necessary amount to participate in the consensus but at the same time the maximum a single validator can stake.
28+
29+
[EIP-7251](https://eips.ethereum.org/EIPS/eip-7251) raises the maximum effective balance to 2048 ETH, meaning that a single validator client can now stake between 32 and 2048 ETH. Instead of multiples of 32, stakers can now choose an arbitrary amount of ETH to stake and receive rewards on every 1 ETH above the minimum. For example, if a validator's balance grows with their rewards to 33 ETH, the extra 1 ETH is also considered part of the effective balance and receives rewards.
30+
31+
But the benefit of a better reward system for validators is only a part of this improvement. [Stakers](/staking/) running multiple validators can now aggregate them into a single one, which enables easier operation and reduces network overhead. Because every validator in Beacon Chain submits a signature in every epoch, the bandwidth requirements grow with more validators and a large number of signatures to propagate. Aggregating validators will take load off of the network and open new scaling options while keeping the same economic security.
32+
33+
### Blob throughput increase {#7691}
34+
35+
Blobs are the new efficient way of storing L2 rollup data introduced in [the previous upgrade](/roadmap/dencun/). Since then, blobs have been adopted by Ethereum L2s and heavily utilized. With blob usage at capacity, rollup fees are increasing and their scalability is limited to throughput given by blob size.
36+
37+
Currently, network targets average 3 blobs per block with a maximum of 6 blobs. With [EIP-7691](https://eips.ethereum.org/EIPS/eip-7691), the blob count will be increased to 6 targets with a maximum of 9, resulting in more space for data, therefore increased scalability and cheaper fees in Ethereum rollups.
38+
39+
### Increase calldata cost {#7623}
40+
41+
Before the introduction of [blobs in Dencun upgrade](/roadmap/danksharding), L2s were using calldata function in EVM to store their data in Ethereum. It's a permanent and less efficient way of storing data, however, sometimes it can be still cheaper than blobs even today.
42+
43+
With Ethereum embracing blobs to store data, [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) increases calldata pricing to provide incentive to only use blobs and also offset the computational cost of the network handling the new blob data.
44+
45+
### Execution layer triggerable exits {#7002}
46+
47+
Currently, exiting a validator and [withdrawing staked ETH](/staking/withdrawals/) is a consensus layer operation that requires an active validator key, the same BLS key used by the validator to perform active duties like attestations. Withdrawal credentials is a separate cold key that receives the exited stake but cannot trigger the exit. The only way for stakers to exit is to send a special message to the Beacon Chain network signed using the active validator key. This is limiting in scenarios where the withdrawal credentials and validator key are held by different entities or when the validator key gets lost.
48+
49+
[EIP-7002](https://eips.ethereum.org/EIPS/eip-7002) introduces a new system contract on the execution layer that can be used to trigger the exit using withdrawal credentials. Stakers will be able to exit their validator by calling a function in this special contract without the need for their validator key or access to Beacon Chain at all. Importantly, enabling handling validator withdrawal onchain allows for building new protocols for staking with third parties, less trust in staking pools and more security.
50+
51+
### Validator deposits on chain {#6110}
52+
53+
Validator deposits are currently processed by [eth1data poll](https://eth2book.info/capella/part2/deposits-withdrawals/deposit-processing/) which is a function on the Beacon Chain that fetches data from the execution layer. It's sort of a technical debt from times before The Merge when Beacon Chain was a separate network.
54+
55+
[EIP-6110](https://eips.ethereum.org/EIPS/eip-6110) is a new way of delivering deposits from execution to the consensus layer, which allows for instant processing with less implementation complexity. It's a more secure way of handling deposits native to merged Ethereum. It also helps to future-proof the protocol because it doesn't require historical deposits to bootstrap the node, which is necessary for history expiry.
56+
57+
### Precompile for BLS12-381 {#2537}
58+
59+
Precompiles are a special set of smart contracts built directly into the Ethereum Virtual Machine ([EVM](/developers/docs/evm/)). Unlike regular contracts, precompiles are not deployed by users but are part of the client implementation itself, written in its native language (e.g. Go, Java, etc, not Solidity). Precompiles serve for widely used and standardized functions like cryptographic operations. Smart contract developers can call precompiles as a regular contract but with more security and efficiency.
60+
61+
[EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) adds a new precompile function for curve operations over [BLS12-381](https://hackmd.io/@benjaminion/bls12-381). This elliptic curve became widely used in cryptocurrency ecosystems thanks to its practical properties. More specifically, it's been adopted by Ethereum's consensus layer, where it's used by validators.
62+
63+
The new precompile adds the ability for every developer to easily, efficiently, and securely perform cryptographic operations using this curve, for example, verifying signatures. Onchain applications that depend on this curve can become more gas efficient and secure relying on a precompile instead of some custom contract. This mainly applies to applications that want to reason about validators inside the EVM, e.g. staking pools, restaking, light clients, bridges but also zero-knowledge.
64+
65+
### Serve historical block hashes from state {#2935}
66+
67+
EVM provides `BLOCKHASH` opcode which enables contract developers to retrieve the hash of the latest block directly in the execution layer. However, this is limited only to the last block and might become problematic for stateless clients in the future.
68+
69+
[EIP-2935](https://eips.ethereum.org/EIPS/eip-2935) creates a new system contract that can serve the last 8192 block hashes as storage slots. This helps to future-proof the protocol for stateless execution and becomes more efficient when verkle tries are adopted. However, apart from this, rollups can benefit from this right away, as they can query the contract directly with a longer historical window.
70+
71+
### Move committee index outside Attestation {#7549}
72+
73+
The Beacon Chain consensus is based on validators casting their votes for the latest block and finalized epoch. The attestation includes 3 elements, 2 of which are votes and the third is the committee index value.
74+
75+
[EIP-7549](https://eips.ethereum.org/EIPS/eip-7549) moves this index outside of the signed attestation message, which makes it easier to verify and aggregate consensus votes. This will enable more efficiency in every consensus client and can bring significant performance improvements to zero-knowledge circuits for proving Ethereum consensus.
76+
77+
### Add blob schedule to EL config files {#7840}
78+
79+
[EIP-7840](https://eips.ethereum.org/EIPS/eip-7840) is a simple change that adds a new field to execution layer client configuration. It configures the number of blocks, enabling dynamic setting for target and maximum blob counts per block as well as blob fee adjustment. With directly defined configuration, clients can avoid the complexity of exchanging this information via Engine API.
80+
81+
<InfoBanner>
82+
To learn more about how Pectra affects you specifically as an Ethereum user, developer or validator, look into <a href="https://epf.wiki/#/wiki/pectra-faq">Pectra FAQ</a>.
83+
</InfoBanner>
84+
85+
## Does this upgrade affect all Ethereum nodes and validators? {#client-impact}
86+
87+
Yes, Pectra upgrade requires updates to both [execution clients and consensus clients](/developers/docs/nodes-and-clients/). All main Ethereum clients will release versions supporting the hard fork marked as high priority. To maintain synchronization with the Ethereum network post-upgrade, node operators must ensure they are running a supported client version. Note that the information about client releases is time-sensitive, and users should refer to the latest updates for the most current details.
88+
89+
## How can ETH be converted after the hard fork? {#scam-alert}
90+
91+
- **No Action Required for Your ETH**: Following the Ethereum Pectra upgrade, there is no need to convert or upgrade your ETH. Your account balances will remain the same, and the ETH you currently hold will remain accessible in its existing form after the hard fork.
92+
- **Beware of Scams!** <Emoji text="⚠️" /> **anyone instructing you to "upgrade" your ETH is trying to scam you.** There is nothing you need to do in relation to this upgrade. Your assets will stay completely unaffected. Remember, staying informed is the best defense against scams.
93+
94+
[More on recognizing and avoiding scams](/security/)
95+
96+
## More of a visual learner? {#visual-learner}
97+
98+
<YouTube id="ufIDBCgdGwY" />
99+
100+
_What’s Going Into the Pectra Upgrade? - Christine Kim_
101+
102+
<YouTube id="_UpAFpC7X6Y" />
103+
104+
_Ethereum Pectra Upgrade: What Stakers Need to Know — Blockdaemon_
105+
106+
## Further reading {#further-reading}
107+
108+
- [Ethereum roadmap](/roadmap/)
109+
- [Pectra FAQ](https://epf.wiki/#/wiki/pectra-faq)
110+
- [Pectra.wtf info page](https://pectra.wtf)
111+
- [How Pectra enhances staker experience](https://www.kiln.fi/post/next-ethereum-upgrade-how-pectra-will-enhance-the-staking-experience)
112+
- [EIP7702 info page](https://eip7702.io/)
113+
- [Pectra devnets](https://github.com/ethereum/pm/blob/master/Pectra/pectra-pm.md)

public/images/upgrades/grandine.png

2.79 KB
Loading

src/components/AssetDownload/index.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,12 @@ const AssetDownload = ({
6565
{extname(imgSrc).slice(1).toUpperCase()})
6666
</ButtonLink>
6767
{svgUrl && (
68-
<ButtonLink href={svgUrl} onClick={matomoHandler} target="_blank">
68+
<ButtonLink
69+
href={svgUrl}
70+
onClick={matomoHandler}
71+
target="_blank"
72+
locale={false}
73+
>
6974
{t("page-assets-download-download")} (SVG)
7075
</ButtonLink>
7176
)}

src/components/Simulator/screens/ConnectWeb3/Browser.tsx

Lines changed: 23 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
1-
import React, { useEffect, useState } from "react"
1+
import React, { type HTMLAttributes, useEffect, useState } from "react"
22
import { motion } from "framer-motion"
33
import { BsTriangle } from "react-icons/bs"
44
import { IoEllipsisHorizontalSharp } from "react-icons/io5"
55
import { PiMagnifyingGlass } from "react-icons/pi"
66
import { TbWorldWww } from "react-icons/tb"
7-
import { Box, Flex, type FlexProps, Icon, Text } from "@chakra-ui/react"
7+
8+
import { Flex, HStack } from "@/components/ui/flex"
89

910
import { BASE_ANIMATION_DELAY_SEC } from "../../constants"
1011
import { NotificationPopover } from "../../NotificationPopover"
1112

1213
import { EXAMPLE_APP_URL } from "./constants"
1314

14-
type BrowserProps = FlexProps
15+
type BrowserProps = HTMLAttributes<HTMLDivElement>
1516

1617
export const Browser = ({ ...props }: BrowserProps) => {
1718
const [typing, setTyping] = useState(false)
@@ -35,67 +36,45 @@ export const Browser = ({ ...props }: BrowserProps) => {
3536
}
3637

3738
return (
38-
<Flex direction="column" h="full" bg="body.light" {...props}>
39-
<Box bg="background.highlight" w="full" px={3} pt={9} pb={3}>
39+
<Flex className="h-full flex-col bg-body-light" {...props}>
40+
<div className="w-full bg-background-highlight px-3 pb-3 pt-9">
4041
<NotificationPopover
4142
title="Example walkthrough"
4243
content="Try logging into a real app with your wallet when finished here"
4344
>
44-
<Flex
45-
bg="background.base"
46-
borderRadius="base"
47-
px={3}
48-
py={2}
49-
align="center"
50-
color="disabled"
51-
cursor="default"
52-
>
53-
<Box
54-
borderInlineEnd="1px"
55-
borderColor="background.highlight"
56-
flex={1}
57-
>
45+
<HStack className="cursor-default gap-0 rounded bg-background px-3 py-2 text-disabled">
46+
<div className="flex-1 border-e border-background-highlight">
5847
{typing ? (
59-
<Text
60-
as={motion.p}
48+
<motion.p
49+
className="text-body-medium"
6150
variants={sentence}
6251
initial="hidden"
6352
animate="visible"
64-
color="body.medium"
6553
>
6654
{EXAMPLE_APP_URL.split("").map((char, index) => (
6755
<motion.span key={char + "-" + index} variants={letter}>
6856
{char}
6957
</motion.span>
7058
))}
71-
</Text>
59+
</motion.p>
7260
) : (
73-
<Text>Search or enter website</Text>
61+
<p>Search or enter website</p>
7462
)}
75-
</Box>
76-
<Icon as={TbWorldWww} ms={3} />
77-
</Flex>
63+
</div>
64+
<TbWorldWww className="ms-3" />
65+
</HStack>
7866
</NotificationPopover>
79-
</Box>
67+
</div>
8068

81-
<Flex flex={1} justify="center" pt={{ base: 20, md: 24 }}>
82-
<Icon as={TbWorldWww} fontSize="8xl" strokeWidth="1" color="disabled" />
69+
<Flex className="flex-1 justify-center pt-20 md:pt-24">
70+
<TbWorldWww className="stroke-1 text-8xl text-disabled" />
8371
</Flex>
8472

85-
<Flex
86-
bg="background.highlight"
87-
w="full"
88-
px={3}
89-
pb={9}
90-
pt={4}
91-
justify="space-around"
92-
fontSize="xl"
93-
color="disabled"
94-
>
95-
<Icon as={BsTriangle} transform="rotate(-90deg)" />
96-
<Icon as={BsTriangle} transform="rotate(90deg)" />
97-
<Icon as={PiMagnifyingGlass} />
98-
<Icon as={IoEllipsisHorizontalSharp} />
73+
<Flex className="w-full justify-around bg-background-highlight px-3 pb-9 pt-4 text-xl text-disabled">
74+
<BsTriangle className="-rotate-90" />
75+
<BsTriangle className="rotate-90" />
76+
<PiMagnifyingGlass />
77+
<IoEllipsisHorizontalSharp />
9978
</Flex>
10079
</Flex>
10180
)

0 commit comments

Comments
 (0)