From 140bc7fdecd39bb093f6bdfa93f08dc4d4c38218 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 9 Aug 2024 19:04:55 +0200 Subject: [PATCH 1/4] migrate Emoji to tailwind --- src/components/Emoji.tsx | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/components/Emoji.tsx b/src/components/Emoji.tsx index 83640075ece..6cbc294b37a 100644 --- a/src/components/Emoji.tsx +++ b/src/components/Emoji.tsx @@ -1,7 +1,7 @@ +import { ComponentProps } from "react" import dynamic from "next/dynamic" -import type { BaseProps } from "react-emoji-render" -import { Box, type BoxProps } from "@chakra-ui/react" +import { cn } from "@/lib/utils/cn" import { IS_DEV } from "@/lib/utils/env" const Twemoji = dynamic( @@ -9,11 +9,10 @@ const Twemoji = dynamic( { ssr: false } ) -export type EmojiProps = Omit & BaseProps +export type EmojiProps = ComponentProps -const Emoji = (props: EmojiProps) => ( - ( + ( // avoid differences in SSR options={{ protocol: IS_DEV ? "http" : "https" }} svg - display="inline-block" - lineHeight="none" - sx={{ - "& > img": { - margin: "0 !important", - display: "initial", - }, - }} + className={cn("inline-block leading-none [&>img]:!m-0", className)} {...props} /> ) From aef2f26d3a75d13d1aa19c98ade7823a42e42b5f Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 9 Aug 2024 22:26:18 +0200 Subject: [PATCH 2/4] migrate components to new emoji api --- .../AssetDownload/AssetDownloadArtist.tsx | 2 +- .../Banners/UpgradeBannerNotification.tsx | 2 +- src/components/BoxGrid.tsx | 18 ++++++--------- src/components/Callout.tsx | 2 +- src/components/Card/index.tsx | 2 +- src/components/CentralizedExchanges/index.tsx | 6 ++--- src/components/Codeblock.tsx | 7 ++++-- src/components/DocLink.tsx | 2 +- src/components/DocsNav.tsx | 9 +++++--- src/components/EventCard.tsx | 4 ++-- .../History/NetworkUpgradeSummary.tsx | 8 +++---- src/components/HorizontalCard.tsx | 4 +--- src/components/InfoBanner.tsx | 7 +----- src/components/Leaderboard.tsx | 2 +- src/components/MeetupList.tsx | 4 +--- .../AccordionCustomItem.tsx | 4 +--- src/components/StablecoinBoxGrid.tsx | 11 ++-------- .../Staking/WithdrawalCredentials.tsx | 4 ++-- .../Translatathon/LocalCommunitiesList.tsx | 2 +- .../Translatathon/TranslatathonPrizes.tsx | 12 +++++----- src/components/TranslationBanner.tsx | 4 +--- src/components/TranslationBannerLegal.tsx | 5 +---- src/components/TranslationLeaderboard.tsx | 8 +++---- src/components/TutorialMetadata.tsx | 10 ++++----- src/data/WalletSimulatorData.tsx | 18 ++++++++------- src/layouts/UseCases.tsx | 4 ++-- src/pages/bug-bounty.tsx | 2 +- src/pages/dapps.tsx | 22 ++++++++++++------- src/pages/developers/tutorials.tsx | 10 ++++----- src/pages/gas.tsx | 2 +- src/pages/run-a-node.tsx | 13 ++++++----- src/pages/stablecoins.tsx | 4 ++-- src/pages/staking/deposit-contract.tsx | 11 ++++++---- 33 files changed, 107 insertions(+), 118 deletions(-) diff --git a/src/components/AssetDownload/AssetDownloadArtist.tsx b/src/components/AssetDownload/AssetDownloadArtist.tsx index f78dd2f6627..1de7487f7d6 100644 --- a/src/components/AssetDownload/AssetDownloadArtist.tsx +++ b/src/components/AssetDownload/AssetDownloadArtist.tsx @@ -26,7 +26,7 @@ const AssetDownloadArtist = ({ borderRadius="0 0 4px 4px" > - + {t("page-assets-download-artist")} {artistUrl && {artistName}} diff --git a/src/components/Banners/UpgradeBannerNotification.tsx b/src/components/Banners/UpgradeBannerNotification.tsx index ae981db8cce..bd1e6928bcf 100644 --- a/src/components/Banners/UpgradeBannerNotification.tsx +++ b/src/components/Banners/UpgradeBannerNotification.tsx @@ -7,7 +7,7 @@ import BannerNotification from "./BannerNotification" const UpgradeBannerNotification = () => ( - + We've deprecated our use of 'Eth1' and 'Eth2' diff --git a/src/components/BoxGrid.tsx b/src/components/BoxGrid.tsx index b39a3a1617f..507a0bbc183 100644 --- a/src/components/BoxGrid.tsx +++ b/src/components/BoxGrid.tsx @@ -1,6 +1,7 @@ import React, { useState } from "react" import { Box, Flex, GridItem, SimpleGrid } from "@chakra-ui/react" +import { cn } from "@/lib/utils/cn" import { MatomoEventOptions, trackCustomEvent } from "@/lib/utils/matomo" import Emoji from "./Emoji" @@ -90,18 +91,13 @@ const BoxGrid = ({ items }: BoxGridProps) => { key={idx} >
- {emoji && } + {emoji && } {t(titleKey)} diff --git a/src/components/Card/index.tsx b/src/components/Card/index.tsx index ff0fe3e6108..27be3528caa 100644 --- a/src/components/Card/index.tsx +++ b/src/components/Card/index.tsx @@ -23,7 +23,7 @@ const Card = ({ emoji, title, description, children, ...props }: CardProps) => ( {...props} > - {emoji && } + {emoji && } {title && ( diff --git a/src/components/CentralizedExchanges/index.tsx b/src/components/CentralizedExchanges/index.tsx index 32247068290..64e4444005d 100644 --- a/src/components/CentralizedExchanges/index.tsx +++ b/src/components/CentralizedExchanges/index.tsx @@ -52,7 +52,7 @@ const EmptyStateText = (props: ChildOnlyProp) => ( const NoResults = ({ children }) => ( - + {/* TODO: Fix `children` structure to include email link within i18n string */} {children}{" "} @@ -68,7 +68,7 @@ const NoResultsSingle = ({ children }) => ( {children}{" "} {WEBSITE_EMAIL}. - + ) @@ -115,7 +115,7 @@ const CentralizedExchanges = ({ {!hasSelectedCountry && ( - + {t("page-get-eth-exchanges-empty-state-text")} diff --git a/src/components/Codeblock.tsx b/src/components/Codeblock.tsx index ad0bf383200..9f00303918c 100644 --- a/src/components/Codeblock.tsx +++ b/src/components/Codeblock.tsx @@ -331,12 +331,15 @@ const Codeblock = ({ {!isCopied ? ( <> - {" "} + {" "} {t("copy")} ) : ( <> - {" "} + {" "} {t("copied")} )} diff --git a/src/components/DocLink.tsx b/src/components/DocLink.tsx index a84b2b34cff..b442cf66f71 100644 --- a/src/components/DocLink.tsx +++ b/src/components/DocLink.tsx @@ -47,7 +47,7 @@ const DocLink = ({ href, children, isExternal = false }: DocLinkProps) => { data-group > - + { const { t } = useTranslation("page-developers-docs") - const { flipForRtl } = useRtlFlip() + const { isRtl } = useRtlFlip() const xPadding = isPrev ? { ps: "0" } : { pe: 0 } @@ -70,8 +71,10 @@ const CardLink = ({ docData, isPrev, contentNotTranslated }: CardLinkProps) => { diff --git a/src/components/EventCard.tsx b/src/components/EventCard.tsx index 5dbca466c14..42ba6356dd1 100644 --- a/src/components/EventCard.tsx +++ b/src/components/EventCard.tsx @@ -82,13 +82,13 @@ const EventCard = ({ > {date} - + {location} - + {title} diff --git a/src/components/History/NetworkUpgradeSummary.tsx b/src/components/History/NetworkUpgradeSummary.tsx index 954f9a155b9..975d2d6aa0f 100644 --- a/src/components/History/NetworkUpgradeSummary.tsx +++ b/src/components/History/NetworkUpgradeSummary.tsx @@ -49,7 +49,7 @@ const NetworkUpgradeSummary = ({ name }: NetworkUpgradeSummaryProps) => { const blockTypeTranslation = (translationKey, explorerUrl, number) => { return ( - + {t(translationKey)}:{" "} {new Intl.NumberFormat(localeForStatsBoxNumbers).format(number)} @@ -62,7 +62,7 @@ const NetworkUpgradeSummary = ({ name }: NetworkUpgradeSummaryProps) => { {dateTimeAsString && ( - + {formattedUTC} )} @@ -86,7 +86,7 @@ const NetworkUpgradeSummary = ({ name }: NetworkUpgradeSummaryProps) => { )} {ethPriceInUSD && ( - + {t("page-history:page-history-eth-price")}:{" "} {new Intl.NumberFormat(localeForStatsBoxNumbers, { style: "currency", @@ -96,7 +96,7 @@ const NetworkUpgradeSummary = ({ name }: NetworkUpgradeSummaryProps) => { )} {waybackLink && ( - + {t("page-history:page-history-ethereum-org-wayback")} diff --git a/src/components/HorizontalCard.tsx b/src/components/HorizontalCard.tsx index 1c9a7e8358b..a68bc3e0be8 100644 --- a/src/components/HorizontalCard.tsx +++ b/src/components/HorizontalCard.tsx @@ -8,7 +8,6 @@ export type HorizontalCardProps = Omit & { emoji: string title?: ReactNode description: ReactNode - emojiSize?: number } const HorizontalCard = ({ @@ -16,11 +15,10 @@ const HorizontalCard = ({ title, description, children, - emojiSize, ...rest }: HorizontalCardProps) => ( - + {title} diff --git a/src/components/InfoBanner.tsx b/src/components/InfoBanner.tsx index cbf110f0549..0c1b60fee53 100644 --- a/src/components/InfoBanner.tsx +++ b/src/components/InfoBanner.tsx @@ -40,13 +40,8 @@ const InfoBanner = ({ > {emoji && ( )} { {score} {t("page-upgrades-bug-bounty-leaderboard-points")} - {emoji && } + {emoji && } { > {meetup.location} diff --git a/src/components/StablecoinAccordion/AccordionCustomItem.tsx b/src/components/StablecoinAccordion/AccordionCustomItem.tsx index 172dcd561a9..4e69e5399d8 100644 --- a/src/components/StablecoinAccordion/AccordionCustomItem.tsx +++ b/src/components/StablecoinAccordion/AccordionCustomItem.tsx @@ -73,9 +73,7 @@ export const AccordionCustomItem = (props: AccordionCustomItemProps) => { > diff --git a/src/components/StablecoinBoxGrid.tsx b/src/components/StablecoinBoxGrid.tsx index c95aec8ecd8..b9226831221 100644 --- a/src/components/StablecoinBoxGrid.tsx +++ b/src/components/StablecoinBoxGrid.tsx @@ -107,15 +107,8 @@ const Body = ({ children }: ChildOnlyProp) => { const StyledEmoji = ({ emoji }: { emoji: string }) => { return ( ) } @@ -187,7 +180,7 @@ const GridItem = ({ }} > {isOpen ? ( - + ) : ( <> diff --git a/src/components/Staking/WithdrawalCredentials.tsx b/src/components/Staking/WithdrawalCredentials.tsx index 22d33323364..57dab1aabcf 100644 --- a/src/components/Staking/WithdrawalCredentials.tsx +++ b/src/components/Staking/WithdrawalCredentials.tsx @@ -104,13 +104,13 @@ const WithdrawalCredentials: FC = () => { {isCopied ? ( <> - + {t("copied")} ) : ( - + )} )} diff --git a/src/components/Translatathon/LocalCommunitiesList.tsx b/src/components/Translatathon/LocalCommunitiesList.tsx index 348674effff..a35f4bf60a7 100644 --- a/src/components/Translatathon/LocalCommunitiesList.tsx +++ b/src/components/Translatathon/LocalCommunitiesList.tsx @@ -93,7 +93,7 @@ export const LocalCommunitiesList = () => { - + ))} diff --git a/src/components/Translatathon/TranslatathonPrizes.tsx b/src/components/Translatathon/TranslatathonPrizes.tsx index 5677d9a02a8..32336893d3b 100644 --- a/src/components/Translatathon/TranslatathonPrizes.tsx +++ b/src/components/Translatathon/TranslatathonPrizes.tsx @@ -7,7 +7,7 @@ const TranslatathonPrizes = () => {
- +
@@ -22,9 +22,7 @@ const TranslatathonPrizes = () => {
@@ -36,7 +34,7 @@ const TranslatathonPrizes = () => {
- +
@@ -49,7 +47,7 @@ const TranslatathonPrizes = () => {
- +
@@ -60,7 +58,7 @@ const TranslatathonPrizes = () => {
- +
diff --git a/src/components/TranslationBanner.tsx b/src/components/TranslationBanner.tsx index 20c3a3abe42..f300f36dc5e 100644 --- a/src/components/TranslationBanner.tsx +++ b/src/components/TranslationBanner.tsx @@ -79,9 +79,7 @@ const TranslationBanner = ({

{t(bodyTextId)}

diff --git a/src/components/TranslationBannerLegal.tsx b/src/components/TranslationBannerLegal.tsx index 1be454a83f2..2dcd31a1403 100644 --- a/src/components/TranslationBannerLegal.tsx +++ b/src/components/TranslationBannerLegal.tsx @@ -74,10 +74,7 @@ const TranslationBannerLegal = ({ diff --git a/src/components/TranslationLeaderboard.tsx b/src/components/TranslationLeaderboard.tsx index a9c94f7f27b..8e1901393aa 100644 --- a/src/components/TranslationLeaderboard.tsx +++ b/src/components/TranslationLeaderboard.tsx @@ -223,7 +223,7 @@ const TranslationLeaderboard = ({ {emoji ? ( - + ) : ( @@ -254,10 +254,8 @@ const TranslationLeaderboard = ({ {totalCosts} diff --git a/src/components/TutorialMetadata.tsx b/src/components/TutorialMetadata.tsx index 3f5cef1ec02..bc081d90304 100644 --- a/src/components/TutorialMetadata.tsx +++ b/src/components/TutorialMetadata.tsx @@ -74,13 +74,13 @@ const TutorialMetadata = ({ > {author && ( - + {author} )} {hasSource && ( - + {frontmatter.source} @@ -88,12 +88,12 @@ const TutorialMetadata = ({ )} {published && ( - {" "} + {" "} {getLocaleTimestamp(locale! as Lang, published)} )} - + {timeToRead} {t("comp-tutorial-metadata-minute-read")} minute read @@ -129,7 +129,7 @@ const TutorialMetadata = ({ />{" "} {address} {isCopied && } {isCopied && ( - + )} )} diff --git a/src/data/WalletSimulatorData.tsx b/src/data/WalletSimulatorData.tsx index dbafb63f85d..71caa6d75fe 100644 --- a/src/data/WalletSimulatorData.tsx +++ b/src/data/WalletSimulatorData.tsx @@ -118,7 +118,8 @@ export const walletOnboardingSimData: SimulatorData = { - Consider saving in a password manager + Consider saving in a + password manager @@ -126,15 +127,16 @@ export const walletOnboardingSimData: SimulatorData = { - Write your recovery phrase down + Write your recovery phrase + down - Store it in a safe place (consider - multiple backups) + Store it in a safe place + (consider multiple backups) {/* TODO: Add link for seed phrase further reading */} {/* - {" "} + {" "} Learn more on protecting your recovery phrase @@ -145,15 +147,15 @@ export const walletOnboardingSimData: SimulatorData = { - + Texting it to a friend (or anyone!) - + Taking a picture of the phrase - + Saving it in a file on your computer diff --git a/src/layouts/UseCases.tsx b/src/layouts/UseCases.tsx index d9d8842823d..79b6f452425 100644 --- a/src/layouts/UseCases.tsx +++ b/src/layouts/UseCases.tsx @@ -178,7 +178,7 @@ export const UseCasesLayout = ({ dir={contentNotTranslated ? "ltr" : "unset"} > - + {t("template-usecase:template-usecase-banner")}{" "} @@ -188,7 +188,7 @@ export const UseCasesLayout = ({ - + {frontmatter.title} diff --git a/src/pages/bug-bounty.tsx b/src/pages/bug-bounty.tsx index 4cfec5c6132..9668949872e 100644 --- a/src/pages/bug-bounty.tsx +++ b/src/pages/bug-bounty.tsx @@ -937,7 +937,7 @@ const BugBountiesPage = () => { - + diff --git a/src/pages/dapps.tsx b/src/pages/dapps.tsx index 63190e28135..e4121ae4ff7 100644 --- a/src/pages/dapps.tsx +++ b/src/pages/dapps.tsx @@ -1467,7 +1467,7 @@ const DappsPage = () => { }) }} > - + {category.title} ) @@ -1480,7 +1480,7 @@ const DappsPage = () => { {t("page-dapps-finance-title")}{" "} - + {t("page-dapps-finance-description")} @@ -1609,7 +1609,7 @@ const DappsPage = () => { {t("page-dapps-gaming-title")}{" "} - + {t("page-dapps-gaming-description")} @@ -1635,7 +1635,7 @@ const DappsPage = () => { {t("page-dapps-technology-title")}{" "} - + {t("page-dapps-technology-description")} @@ -1680,7 +1680,10 @@ const DappsPage = () => { {t("page-dapps-collectibles-title")}{" "} - + {t("page-dapps-collectibles-description")} @@ -1729,7 +1732,10 @@ const DappsPage = () => {

{t("page-dapps-metaverse-title")}{" "} - +

{t("page-dapps-metaverse-description")}
@@ -1760,7 +1766,7 @@ const DappsPage = () => {

{t("page-dapps-social-title")}{" "} - +

{t("page-dapps-social-description")}
@@ -1827,7 +1833,7 @@ const DappsPage = () => {

{t("page-dapps-magic-title-1")}{" "} - {" "} + {" "} {t("page-dapps-magic-title-2")}{" "} {categories[selectedCategory].benefitsTitle}

diff --git a/src/pages/developers/tutorials.tsx b/src/pages/developers/tutorials.tsx index 30949afcb18..df9289229f9 100644 --- a/src/pages/developers/tutorials.tsx +++ b/src/pages/developers/tutorials.tsx @@ -133,7 +133,7 @@ const published = (locale: string, published: string) => { return localeTimestamp !== "Invalid Date" ? ( - + {localeTimestamp} ) : null @@ -409,7 +409,7 @@ const TutorialPage = ({ {filteredTutorials.length === 0 && ( - + @@ -471,7 +471,7 @@ const TutorialPage = ({ - + {tutorial.author} {tutorial.published ? ( <> •{published(locale!, tutorial.published!)} @@ -480,7 +480,7 @@ const TutorialPage = ({ <> {" "} • - + {tutorial.timeToRead}{" "} @@ -488,7 +488,7 @@ const TutorialPage = ({ {tutorial.isExternal && ( <> {" "} - • + • diff --git a/src/pages/gas.tsx b/src/pages/gas.tsx index a7a73028611..5e31bfc8490 100644 --- a/src/pages/gas.tsx +++ b/src/pages/gas.tsx @@ -282,7 +282,7 @@ const GasPage = () => { alignSelf="center" mt={{ base: 16, lg: 2 }} > - +

{t("page-gas-attack-of-the-cryptokitties-header")}

{t("page-gas-attack-of-the-cryptokitties-text")} diff --git a/src/pages/run-a-node.tsx b/src/pages/run-a-node.tsx index cdeec5cfc66..b2cbc73a4f1 100644 --- a/src/pages/run-a-node.tsx +++ b/src/pages/run-a-node.tsx @@ -535,7 +535,7 @@ const RunANodePage = () => {
- + {t( "page-run-a-node-getting-started-software-section-1-alert" )} @@ -600,7 +600,7 @@ const RunANodePage = () => {

- + {t("page-run-a-node-buy-fully-loaded-title")}

{t("page-run-a-node-buy-fully-loaded-description")} @@ -627,7 +627,10 @@ const RunANodePage = () => {

- + {t("page-run-a-node-build-your-own-title")}

{t("page-run-a-node-choose-your-adventure-build-1")} @@ -872,7 +875,7 @@ const RunANodePage = () => {

- + {t("page-run-a-node-staking-plans-title")}

@@ -885,7 +888,7 @@ const RunANodePage = () => {

- + {t("page-run-a-node-rasp-pi-title")}

{t("page-run-a-node-rasp-pi-description")} diff --git a/src/pages/stablecoins.tsx b/src/pages/stablecoins.tsx index 3d40e746940..a7331587e07 100644 --- a/src/pages/stablecoins.tsx +++ b/src/pages/stablecoins.tsx @@ -468,7 +468,7 @@ const StablecoinsPage = ({ markets, marketsHasError }) => { me={{ base: 0, lg: 8 }} mt={{ base: 16, lg: 2 }} > - +

{t("page-stablecoins-bitcoin-pizza")}

{t("page-stablecoins-bitcoin-pizza-body")} @@ -706,7 +706,7 @@ const StablecoinsPage = ({ markets, marketsHasError }) => { p={8} mx={{ base: "auto", lg: 0 }} > - + {t("page-stablecoins-bank-apy")} diff --git a/src/pages/staking/deposit-contract.tsx b/src/pages/staking/deposit-contract.tsx index a142fa7d19e..e820b2d01a0 100644 --- a/src/pages/staking/deposit-contract.tsx +++ b/src/pages/staking/deposit-contract.tsx @@ -428,7 +428,7 @@ const DepositContractPage = () => { } + leftIcon={} onClick={() => setState({ ...state, showAddress: !state.showAddress }) } @@ -455,7 +455,7 @@ const DepositContractPage = () => { {" "} - + )} @@ -467,9 +467,12 @@ const DepositContractPage = () => { + ) : ( - + ) } > From eed3ebf22e80e83b64af217e8d70c7fb6f1f4604 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 9 Aug 2024 22:35:44 +0200 Subject: [PATCH 3/4] migrate emojis inside md files --- .../client-diversity/index.md | 2 +- public/content/history/index.md | 2 +- .../client-diversity/index.md | 2 +- .../content/translations/de/history/index.md | 2 +- .../client-diversity/index.md | 2 +- .../content/translations/es/history/index.md | 2 +- .../client-diversity/index.md | 2 +- .../content/translations/fr/history/index.md | 2 +- .../client-diversity/index.md | 2 +- .../content/translations/hu/history/index.md | 2 +- .../content/translations/id/history/index.md | 2 +- .../client-diversity/index.md | 2 +- .../content/translations/it/history/index.md | 2 +- .../client-diversity/index.md | 2 +- .../content/translations/ja/history/index.md | 52 +++++++++---------- .../client-diversity/index.md | 2 +- .../translations/pt-br/history/index.md | 2 +- .../content/translations/ro/history/index.md | 4 +- .../client-diversity/index.md | 2 +- .../content/translations/tr/history/index.md | 2 +- .../client-diversity/index.md | 2 +- .../client-diversity/index.md | 2 +- .../content/translations/zh/history/index.md | 2 +- 23 files changed, 49 insertions(+), 49 deletions(-) diff --git a/public/content/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/developers/docs/nodes-and-clients/client-diversity/index.md index 8e329456cb9..57231954f26 100644 --- a/public/content/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ Client diversity also offers resilience to attacks. For example, an attack that A bug in a consensus client with over 33% of the Ethereum nodes could prevent the consensus layer from finalizing, meaning users could not trust that transactions would not be reverted or changed at some point. This would be very problematic for many of the apps built on top of Ethereum, particularly DeFi. - Worse still, a critical bug in a client with a two-thirds majority could cause the chain to incorrectly split and finalize, leading to a large set of validators getting stuck on an invalid chain. If they want to rejoin the correct chain, these validators face slashing or a slow and expensive voluntary withdrawal and reactivation. The magnitude of a slashing scales with the number of culpable nodes with a two-thirds majority slashed maximally (32 ETH). + Worse still, a critical bug in a client with a two-thirds majority could cause the chain to incorrectly split and finalize, leading to a large set of validators getting stuck on an invalid chain. If they want to rejoin the correct chain, these validators face slashing or a slow and expensive voluntary withdrawal and reactivation. The magnitude of a slashing scales with the number of culpable nodes with a two-thirds majority slashed maximally (32 ETH). Although these are unlikely scenarios, the Ethereum eco-system can mitigate their risk by evening out the distribution of clients across the active nodes. Ideally, no consensus client would ever reach a 33% share of the total nodes. diff --git a/public/content/history/index.md b/public/content/history/index.md index 2488ea77a5c..c5afc3fb9ef 100644 --- a/public/content/history/index.md +++ b/public/content/history/index.md @@ -248,7 +248,7 @@ The Altair upgrade was the first scheduled upgrade for the [Beacon Chain](/roadm - [Read the Altair upgrade specification](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Fun fact! {#altair-fun-fact} +#### Fun fact! {#altair-fun-fact} Altair was the first major network upgrade that had an exact rollout time. Every upgrade prior had been based on a declared block number on the proof-of-work chain, where block times vary. The Beacon Chain does not require solving for proof-of-work, and instead works on a time-based epoch system consisting of 32 twelve-second "slots" of time where validators can propose blocks. This is why we knew exactly when we would hit epoch 74,240 and Altair became live! diff --git a/public/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md index 97efb3c9801..54990a35b43 100644 --- a/public/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ Die Client-Vielfalt bietet auch eine gewisse Widerstandsfähigkeit gegen Angriff Ein Fehler in einem Konsensclient mit mehr als 33 % der Ethereum-Knoten könnte verhindern, dass die Konsensebene finalisieren kann. Das bedeutet, dass die Nutzer nicht darauf vertrauen können, dass Transaktionen nicht irgendwann rückgängig gemacht oder geändert werden. Dies wäre für viele der auf Ethereum aufbauenden Anwendungen, insbesondere DeFi, sehr problematisch. - Schlimmer noch, ein kritischer Fehler in einem Client mit einer Zweidrittelmehrheit könnte dazu führen, dass die Chain nicht korrekt geteilt und finalisiert wird. Dies wiederum würde dazu führen, dass eine große Anzahl von Validatoren auf einer ungültigen Chain stecken bleibt. Wenn sie sich der korrekten Chain wieder anschließen möchten, müssen diese Validatoren mit Slashing oder einem langsamen und teuren freiwilligen Rückzug und Reaktivierung rechnen. Das Ausmaß eines Slashings skaliert mit der Anzahl der schuldigen Knoten, wobei maximal eine Zweidrittelmehrheit geslashed werden kann (32 ETH). + Schlimmer noch, ein kritischer Fehler in einem Client mit einer Zweidrittelmehrheit könnte dazu führen, dass die Chain nicht korrekt geteilt und finalisiert wird. Dies wiederum würde dazu führen, dass eine große Anzahl von Validatoren auf einer ungültigen Chain stecken bleibt. Wenn sie sich der korrekten Chain wieder anschließen möchten, müssen diese Validatoren mit Slashing oder einem langsamen und teuren freiwilligen Rückzug und Reaktivierung rechnen. Das Ausmaß eines Slashings skaliert mit der Anzahl der schuldigen Knoten, wobei maximal eine Zweidrittelmehrheit geslashed werden kann (32 ETH). Obwohl dies unwahrscheinliche Szenarien sind, kann das Ethereum-Ökosystem das Risiko mindern, indem es die Verteilung der Clients auf die aktiven Knoten ausgleicht. Im Idealfall würde kein Konsensclient jemals einen Anteil von 33 % an der Gesamtzahl der Nodes erreichen. diff --git a/public/content/translations/de/history/index.md b/public/content/translations/de/history/index.md index 3ec0754c5bb..423a49950a5 100644 --- a/public/content/translations/de/history/index.md +++ b/public/content/translations/de/history/index.md @@ -149,7 +149,7 @@ Das Altair-Upgrade war das erste geplante Upgrade für die [Beacon Chain](/roadm - [Lesen Sie die Spezifikation zum Altair-Upgrade](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Fun Fact! {#altair-fun-fact} +#### Fun Fact! {#altair-fun-fact} Altair war das erste große Netzwerk-Upgrade, für das es einen genauen Einführungszeitpunkt gab. Jedes vorherige Upgrade basierte auf einer angegebenen Blocknummer auf der Proof-of-Work-Chain, bei der die Blockzeiten variieren. Die Beacon Chain erfordert kein Lösen von Proof-of-Work und arbeitet stattdessen mit einem zeitbasierten Epochensystem, das aus 32 zwölfsekündigen „Slots" besteht, in denen Validatoren Blöcke vorschlagen können. Deshalb wussten wir genau, wann wir Epoche 74.240 erreichen würden und Altair live gehen würde! diff --git a/public/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md index 2517785e938..53f7841de13 100644 --- a/public/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ La diversidad de clientes también ofrece una mayor resiliencia frente a los ata Un error en un cliente de consenso con más del 33 % de los nodos de Ethereum podría impedir que la capa de consenso finalizara, lo que significa que los usuarios no podrían confiar en que las transacciones no se revirtieran o cambiarían en algún momento. Esto podría ser bastante problemático para muchas de las aplicaciones contruidas en Ethereum, especialmente las DeFi. - Peor aún, un error crítico en un cliente con dos tercios de mayoría haría que la cadena se dividiera y finalizara de manera incorrecta, haciendo que un gran número de validadores se vieran involucrados en una cadena inválida. Si los validadores quisieran reincorporarse a la cadena correcta, se verían afectados por recortes o por un lento y costoso proceso de retirada y reactivación voluntaria. La magnitud de los recortes aumenta en función del número de nodos culpables, con un máximo de dos tercios de la mayoría (32 ETH) recortados. + Peor aún, un error crítico en un cliente con dos tercios de mayoría haría que la cadena se dividiera y finalizara de manera incorrecta, haciendo que un gran número de validadores se vieran involucrados en una cadena inválida. Si los validadores quisieran reincorporarse a la cadena correcta, se verían afectados por recortes o por un lento y costoso proceso de retirada y reactivación voluntaria. La magnitud de los recortes aumenta en función del número de nodos culpables, con un máximo de dos tercios de la mayoría (32 ETH) recortados. A pesar de que es poco probable que se den estas situaciones, el ecosistema de Ethereum puede mitigar dichos riesgos igualando la distribución de clientes a través de los nodos activos. Idóneamente, ningún cliente de consenso podría alcanzar una participación del 33 % del total de los nodos. diff --git a/public/content/translations/es/history/index.md b/public/content/translations/es/history/index.md index 4db4da8af94..fb95c9787ee 100644 --- a/public/content/translations/es/history/index.md +++ b/public/content/translations/es/history/index.md @@ -150,7 +150,7 @@ La actualización Altair fue la primera programada para la [cadena de baliza](/r - [Lea las especificaciones de actualización Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### ¡Dato curioso! {#altair-fun-fact} +#### ¡Dato curioso! {#altair-fun-fact} Altair fue la primera gran actualización de red que ha tenido un periodo de implementación preciso. Cada una de las actualizaciones anteriores se habían basado en un número de bloques declarados en la cadena de prueba de trabajo, donde los tiempos de bloque varían. La cadena de baliza no requiere resolución para la prueba de trabajo y, en lugar de ello, funciona en un sistema épocas basado en el tiempo, que consiste en «ranuras» de tiempo de doce segundos durante los cuales los validadores pueden proponer bloques. Por esta razón sabíamos exactamente cuándo alcanzaríamos la época 74.240 y Altair vería la luz. diff --git a/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md index 31a1d5ebc81..ac9472fb18a 100644 --- a/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ La diversité des clients offre également une résilience aux attaques. Par exe Un bug dans un client de consensus avec plus de 33 % des nœuds Ethereum pourrait empêcher la finalisation couche de consensus, de sorte que les utilisateurs ne pourraient pas avoir confiance dans le fait que les transactions ne seraient pas annulées ou modifiées à un moment donné. Cela serait problématique pour de nombreuses applications basées sur Ethereum, en particulier pour la DeFi. - Pire encore, un bogue critique dans un client avec une majorité des deux tiers pourrait causer le fractionnement et la finalisation incorrecte de la chaîne, entraînant le blocage d'un grand nombre de validateurs sur une chaîne invalide. S'ils souhaitent rejoindre la bonne chaîne, ces validateurs sont confrontés à un délestage ou à un retrait volontaire et à une réactivation lente et coûteuse. La magnitude d'un délestage est proportionnelle au nombre de nœuds impliqués avec une majorité des deux tiers sanctionnée au maximum (32 ETH). + Pire encore, un bogue critique dans un client avec une majorité des deux tiers pourrait causer le fractionnement et la finalisation incorrecte de la chaîne, entraînant le blocage d'un grand nombre de validateurs sur une chaîne invalide. S'ils souhaitent rejoindre la bonne chaîne, ces validateurs sont confrontés à un délestage ou à un retrait volontaire et à une réactivation lente et coûteuse. La magnitude d'un délestage est proportionnelle au nombre de nœuds impliqués avec une majorité des deux tiers sanctionnée au maximum (32 ETH). Bien que ces scénarios soient peu probables, l’écosystème Ethereum peut atténuer leurs risques en éliminant la distribution des clients sur les nœuds actifs. Idéalement, aucun client de consensus ne devrait pouvoir atteindre 33 % du total des nœuds. diff --git a/public/content/translations/fr/history/index.md b/public/content/translations/fr/history/index.md index bab2cb04304..80728c95f22 100644 --- a/public/content/translations/fr/history/index.md +++ b/public/content/translations/fr/history/index.md @@ -150,7 +150,7 @@ La mise à niveau Altair était la première mise à niveau répertoriée pour l - [Lire les spécifications de la mise à niveau Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Anecdote ! {#altair-fun-fact} +#### Anecdote ! {#altair-fun-fact} Altair a été la première mise à jour majeure du réseau à disposer d'un délai de mise en œuvre précis. Toutes les mises à niveau antérieures étaient basées sur un numéro de bloc déclaré sur la chaîne de preuve de travail, dans laquelle les durées de blocage varient. La chaîne phare ne nécessite pas de résoudre de preuve de travail, mais fonctionne sur la base d'un système de périodes composées de 32 créneaux de 12 secondes pendant lesquels les validateurs peuvent proposer des blocs. C'est pourquoi nous savions exactement quand nous atteindrions l'époque 74 240 et la date de sortie d'Altair ! diff --git a/public/content/translations/hu/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/hu/developers/docs/nodes-and-clients/client-diversity/index.md index 9208da80c2f..72e73d0809d 100644 --- a/public/content/translations/hu/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/hu/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ A kliensdiverzitás nagyobb ellenállást jelent a támadásokkal szemben. Péld Egy olyan hiba a konszenzusos kliensben, amely az Ethereum-csomópontok több mint 33%-át érinti, meg tudja akadályozni azt, hogy a konszenzusréteg véglegesedjen, tehát a felhasználók nem tudhatják, hogy a tranzakcióik nem lesznek visszaforgatva vagy megváltoztatva valamikor. Ez rendkívül problémás helyzet az Ethereumra épült alkalmazások számára, főleg a decentralizált pénzügy (DeFi) területén. - Még ennél is rosszabb, ha egy kétharmados többséggel bíró kliensben történik hiba, ami miatt a lánc hibásan szétválik és véglegesedik, így a validátorok egy jó része egy valótlan láncon ragad. Ha ezek a validátorok újra a helyes lánchoz akarnának csatlakozni, akkor súlyos büntetéssel, vagy egy lassú és költséges visszavonási és újraaktviálási folyamattal néznének szembe. A súlyos büntetés mértéke arányos a kétharmados többség hibás csomópontjainak számával, melynek a letétjét (32 ETH) teljesen megsemmisítik. + Még ennél is rosszabb, ha egy kétharmados többséggel bíró kliensben történik hiba, ami miatt a lánc hibásan szétválik és véglegesedik, így a validátorok egy jó része egy valótlan láncon ragad. Ha ezek a validátorok újra a helyes lánchoz akarnának csatlakozni, akkor súlyos büntetéssel, vagy egy lassú és költséges visszavonási és újraaktviálási folyamattal néznének szembe. A súlyos büntetés mértéke arányos a kétharmados többség hibás csomópontjainak számával, melynek a letétjét (32 ETH) teljesen megsemmisítik. Habár ezek nem valószínű szcenáriók, az Ethereum ökoszisztémája képes a kockázatot csökkenteni azzal, hogy az aktív csomópontokon keresztül egyenlően oszlanak el a kliensek. Ideális esetben a teljes csomópontok 33%-át nem dominálja egy adott konszenzusos kliens. diff --git a/public/content/translations/hu/history/index.md b/public/content/translations/hu/history/index.md index 9fff3c96ea4..6e41d3635d2 100644 --- a/public/content/translations/hu/history/index.md +++ b/public/content/translations/hu/history/index.md @@ -248,7 +248,7 @@ Az Altair frissítés a [Beacon lánc](/roadmap/beacon-chain) első tervezett v - [Olvassa el az Altair frissítés specifikációit](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Érdekesség! {#altair-fun-fact} +#### Érdekesség! {#altair-fun-fact} Az Altair volt az első nagyobb hálózati frissítés, aminek konkrét bevezetési ideje volt. Az összes korábbi frissítés egy adott blokkszám alapján történt a proof-of-work láncon, ahol a blokkonkénti idő változó. A Beacon láncnak nem kellett igazodnia a proof-of-workhöz, így időalapú korszakok rendszerén alapszik, amelyek 32 darab 12 másodperces slotból állnak, és a validátorok ezekben tudnak blokkot javasolni. Így pontosan lehetett tudni, hogy mikor következik a 74 240. korszak, hogy az Altair életbe léphessen! diff --git a/public/content/translations/id/history/index.md b/public/content/translations/id/history/index.md index 62f0f6bcfad..ad349b60182 100644 --- a/public/content/translations/id/history/index.md +++ b/public/content/translations/id/history/index.md @@ -150,7 +150,7 @@ Peningkatan Altair adalah peningkatan pertama yang terjadwal untuk [Rantai Suar] - [Baca spesifikasi peningkatan Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Fakta menyenangkan! {#altair-fun-fact} +#### Fakta menyenangkan! {#altair-fun-fact} Altair adalah peningkatan besar dan pertama untuk jaringan yang memiliki waktu rollout yang pasti. Setiap peningkatan sebelumnya telah berdasarkan pada suatu nomor blok yang dideklarasikan pada rantai bukti kerja, dengan waktu blok yang bervariasi. Rantai Suar tidak mengharuskan penyelesaian bukti kerja, dan sebagai gantinya berfungsi pada sistem jangka waktu berbasis waktu yang terdiri dari 32 "slot" waktu dua belas detik di mana para validator dapat mengusulkan blok. Inilah alasan kami mengetahui secara pasti kapan kami akan mencapai jangka waktu 74.240 dan Altair mulai beroperasi! diff --git a/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md index 73322ed2bcd..2fa6c0f4692 100644 --- a/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ La diversità dei client offre anche resistenza agli attacchi. Ad esempio, un at Un bug in un client di consenso con oltre il 33% dei nodi di Ethereum potrebbe impedire la finalizzazione del livello di consenso, il che significa che gli utenti non possono essere sicuri che le transazioni non vengano annullate o modificate ad un certo punto. Questo sarebbe molto problematico per molte delle app basate su Ethereum, in particolare, le DeFi. - Ancora peggio, un bug critico in un client con una maggioranza di due terzi potrebbe causare la una divisione e finalizzazione errata della catena, bloccando un gran numero di validatori su una catena non valida. Se vogliono rientrare nella catena corretta, quei validatori devo sottoporsi a tagli (slashing) o a un prelievo volontario, costoso e lento, e alla riattivazione. L'ammontare del taglio (slashing) aumenta col numero di nodi colpevoli, potendo interessare al massimo una maggioranza di due terzi (32 ETH). + Ancora peggio, un bug critico in un client con una maggioranza di due terzi potrebbe causare la una divisione e finalizzazione errata della catena, bloccando un gran numero di validatori su una catena non valida. Se vogliono rientrare nella catena corretta, quei validatori devo sottoporsi a tagli (slashing) o a un prelievo volontario, costoso e lento, e alla riattivazione. L'ammontare del taglio (slashing) aumenta col numero di nodi colpevoli, potendo interessare al massimo una maggioranza di due terzi (32 ETH). Sebbene questi siano scenari improbabili, l'ecosistema di Ethereum può mitigarne il rischio equilibrando la distribuzione dei client tra i nodi attivi. Idealmente, nessun client del consenso dovrebbe mai raggiungere una quota del 33% dei nodi totali. diff --git a/public/content/translations/it/history/index.md b/public/content/translations/it/history/index.md index 4c2ede26a40..39aba74cbbd 100644 --- a/public/content/translations/it/history/index.md +++ b/public/content/translations/it/history/index.md @@ -150,7 +150,7 @@ L'aggiornamento Altair è stato il primo aggiornamento pianificato per la [Beaco - [Leggi le specifiche dell'aggiornamento di Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Curiosità! {#altair-fun-fact} +#### Curiosità! {#altair-fun-fact} Altair è stato il primo importante aggiornamento di rete che ha avuto un tempo di rollout esatto. Tutti gli aggiornamenti precedenti erano basati su un numero di blocco dichiarato su una catena proof-of-work, dove i tempi del blocco variavano. La Beacon Chain non richiede la risoluzione del proof-of-work e funziona invece su un sistema di epoche basato sul tempo che consiste in 32 "slot" di dodici secondi in cui i validatori possono proporre dei blocchi. Questo è il motivo per cui sapevamo esattamente quando avremmo raggiunto l'epoca 74.240 e Altair sarebbe diventato operativo! diff --git a/public/content/translations/ja/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/ja/developers/docs/nodes-and-clients/client-diversity/index.md index e81e3b0de6b..6b48371269e 100644 --- a/public/content/translations/ja/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/ja/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ sidebarDepth: 2 イーサリアムノードの33%以上を占めるコンセンサスクライアントのバグがあると、コンセンサスレイヤーのファイナライズを妨げる可能性があります。つまり、トランザクションの取り消しや改ざんが発生するおそれがあります。 これはイーサリアム上に構築された多くのアプリ、特に分散型金融(DeFi)にとって非常に大きな問題となります。 - さらに、3分の2のマジョリティを占めるクライアントの重大なバグにより、チェーンが誤って スプリットし、ファイナライズされ、大量のバリデータが無効なチェーン上で立ち往生する可能性があります。 これらのバリデータが正しいチェーンに再び参加しようとする場合、スラッシングのペナルティを受けるか、時間がかかり高額となる任意退出後に、再度アクティベーションを行います。 スラッシングの規模は過失のあるノードの数に比例し、3分の2のマジョリティが最大のスラッシング(32 ETH)を受けます。 + さらに、3分の2のマジョリティを占めるクライアントの重大なバグにより、チェーンが誤って スプリットし、ファイナライズされ、大量のバリデータが無効なチェーン上で立ち往生する可能性があります。 これらのバリデータが正しいチェーンに再び参加しようとする場合、スラッシングのペナルティを受けるか、時間がかかり高額となる任意退出後に、再度アクティベーションを行います。 スラッシングの規模は過失のあるノードの数に比例し、3分の2のマジョリティが最大のスラッシング(32 ETH)を受けます。 これらは可能性が低いシナリオですが、アクティブなノードにクライアントを均等に分散することで、イーサリアムのエコシステムはリスクを軽減することが出来ます。 特定のコンセンサスクライアントが、全ノードの33%のシェアを占めないことが理想です。 diff --git a/public/content/translations/ja/history/index.md b/public/content/translations/ja/history/index.md index 9d4c3eefe10..aec43a252cf 100644 --- a/public/content/translations/ja/history/index.md +++ b/public/content/translations/ja/history/index.md @@ -28,9 +28,9 @@ sidebarDepth: 1 ### 上海(_予定_) {#shanghai} -タイムスタンプ: Apr-12-2023 22:27:35 +UTC
ブロック番号: TBD
ETH 価格: TBD
+タイムスタンプ: Apr-12-2023 22:27:35 +UTC
ブロック番号: TBD
ETH 価格: TBD
- + #### 要約 {#shanghai-summary} @@ -52,9 +52,9 @@ sidebarDepth: 1 ### カペラ(_予定_) {#capella} -タイムスタンプ: Apr-12-2023 22:27:35 +UTC
エポック番号: 194048(スロット 6209536)
ETH 価格: TBD
+タイムスタンプ: Apr-12-2023 22:27:35 +UTC
エポック番号: 194048(スロット 6209536)
ETH 価格: TBD
- + #### 要約 {#capella-summary} @@ -73,7 +73,7 @@ sidebarDepth: 1 ### パリ(マージ) {#paris} -Sep-15-2022 06:42:42 AM +UTC
ブロック番号: 15537394
ETH 価格: $1,472 USD
waybackmachine 上の ethereum.org +Sep-15-2022 06:42:42 AM +UTC
ブロック番号: 15537394
ETH 価格: $1,472 USD
waybackmachine 上の ethereum.org #### 要約 {#paris-summary} @@ -92,7 +92,7 @@ sidebarDepth: 1 ### ベラトリックス {#bellatrix} -Sep-06-2022 11:34:47 AM +UTC
エポック番号: 144,896
ETH 価格: $1,558 USD
waybackmachine 上の ethereum.org +Sep-06-2022 11:34:47 AM +UTC
エポック番号: 144,896
ETH 価格: $1,558 USD
waybackmachine 上の ethereum.org #### 要約 {#bellatrix-summary} @@ -104,7 +104,7 @@ sidebarDepth: 1 ### グレイ・グレイシャー {#gray-glacier} -Jun-30-2022 10:54:04 AM +UTC
ブロック番号: 15,050,000
ETH 価格: $1,069 USD
waybackmachine 上の ethereum.org +Jun-30-2022 10:54:04 AM +UTC
ブロック番号: 15,050,000
ETH 価格: $1,069 USD
waybackmachine 上の ethereum.org #### 要約 {#gray-glacier-summary} @@ -124,7 +124,7 @@ sidebarDepth: 1 ### アロー・グレイシャー {#arrow-glacier} -Dec-09-2021 07:55:23 PM +UTC
ブロック番号: 13,773,000
ETH 価格: $4111 USD
waybackmachine 上の ethereum.org +Dec-09-2021 07:55:23 PM +UTC
ブロック番号: 13,773,000
ETH 価格: $4111 USD
waybackmachine 上の ethereum.org #### 要約 {#arrow-glacier-summary} @@ -143,7 +143,7 @@ sidebarDepth: 1 ### アルタイル {#altair} -Oct-27-2021 10:56:23 AM +UTC
エポック番号: 74,240
ETH 価格: $4024 USD
waybackmachine 上の ethereum.org +Oct-27-2021 10:56:23 AM +UTC
エポック番号: 74,240
ETH 価格: $4024 USD
waybackmachine 上の ethereum.org #### 要約 {#altair-summary} @@ -161,7 +161,7 @@ sidebarDepth: 1 ### ロンドン {#london} - Aug-05-2021 12:33:42 PM +UTC
ブロック番号: 12,965,000
ETH 価格: $2621 USD
waybackmachine 上の ethereum.org + Aug-05-2021 12:33:42 PM +UTC
ブロック番号: 12,965,000
ETH 価格: $2621 USD
waybackmachine 上の ethereum.org #### 要約 {#london-summary} @@ -185,7 +185,7 @@ sidebarDepth: 1 ### ベルリン {#berlin} - Apr-15-2021 10:07:03 AM +UTC
ブロック番号: 12,244,000
ETH 価格: $2454 USD
waybackmachine 上の ethereum.org + Apr-15-2021 10:07:03 AM +UTC
ブロック番号: 12,244,000
ETH 価格: $2454 USD
waybackmachine 上の ethereum.org #### 要約 {#berlin-summary} @@ -209,7 +209,7 @@ sidebarDepth: 1 ### ビーコンチェーンの誕生 {#beacon-chain-genesis} - Dec-01-2020 12:00:35 PM +UTC
ビーコンチェーンのブロック番号: 1
ETH 価格: $586.23 USD
waybackmachine 上の ethereum.org + Dec-01-2020 12:00:35 PM +UTC
ビーコンチェーンのブロック番号: 1
ETH 価格: $586.23 USD
waybackmachine 上の ethereum.org #### 要約 {#beacon-chain-genesis-summary} @@ -225,7 +225,7 @@ sidebarDepth: 1 ### ステーキングのデポジットコントラクトのデプロイ {#staking-deposit-contract} - Oct-14-2020 09:22:52 AM +UTC
ブロック番号: 11,052,984
ETH 価格: $379.04 USD
waybackmachine 上の ethereum.org + Oct-14-2020 09:22:52 AM +UTC
ブロック番号: 11,052,984
ETH 価格: $379.04 USD
waybackmachine 上の ethereum.org #### 要約 {#deposit-contract-summary} @@ -241,7 +241,7 @@ sidebarDepth: 1 ### ミュア・グレイシャー {#muir-glacier} - Jan-02-2020 08:30:49 AM +UTC
ブロック番号: 9,200,000
ETH 価格: $127.18 USD
waybackmachine 上の ethereum.org + Jan-02-2020 08:30:49 AM +UTC
ブロック番号: 9,200,000
ETH 価格: $127.18 USD
waybackmachine 上の ethereum.org #### 要約 {#muir-glacier-summary} @@ -262,7 +262,7 @@ sidebarDepth: 1 ### イスタンブール (Istanbul) {#istanbul} - Dec-08-2019 12:25:09 AM +UTC
ブロック番号: 9,069,000
ETH 価格: $151.06 USD
waybackmachine 上の ethereum.org + Dec-08-2019 12:25:09 AM +UTC
ブロック番号: 9,069,000
ETH 価格: $151.06 USD
waybackmachine 上の ethereum.org #### 要約 {#istanbul-summary} @@ -291,7 +291,7 @@ sidebarDepth: 1 ### コンスタンティノープル {#constantinople} - Feb-28-2019 07:52:04 PM +UTC
ブロック番号: 7,280,000
ETH 価格: $136.29 USD
waybackmachine 上の ethereum.org + Feb-28-2019 07:52:04 PM +UTC
ブロック番号: 7,280,000
ETH 価格: $136.29 USD
waybackmachine 上の ethereum.org #### 要約 {#constantinople-summary} @@ -318,7 +318,7 @@ sidebarDepth: 1 ### ビザンチウム {#byzantium} - Oct-16-2017 05:22:11 AM +UTC
ブロック番号: 4,370,000
ETH 価格: $334.23 USD
waybackmachine 上の ethereum.org + Oct-16-2017 05:22:11 AM +UTC
ブロック番号: 4,370,000
ETH 価格: $334.23 USD
waybackmachine 上の ethereum.org #### 要約 {#byzantium-summary} @@ -351,7 +351,7 @@ sidebarDepth: 1 ### スプリニアスドラゴン (Spurious Dragon) {#spurious-dragon} - Nov-22-2016 04:15:44 PM +UTC
ブロック番号: 2,675,000
ETH 価格: $9.84 USD
waybackmachine 上の ethereum.org + Nov-22-2016 04:15:44 PM +UTC
ブロック番号: 2,675,000
ETH 価格: $9.84 USD
waybackmachine 上の ethereum.org #### 要約 {#spurious-dragon-summary} @@ -376,7 +376,7 @@ sidebarDepth: 1 ### タンジェリンホイッスル {#tangerine-whistle} - Oct-18-2016 01:19:31 PM +UTC
ブロック番号: 2,463,000
ETH 価格: $12.50 USD
waybackmachine 上の ethereum.org + Oct-18-2016 01:19:31 PM +UTC
ブロック番号: 2,463,000
ETH 価格: $12.50 USD
waybackmachine 上の ethereum.org #### 要約 {#tangerine-whistle-summary} @@ -397,7 +397,7 @@ sidebarDepth: 1 ### DAO フォーク {#dao-fork} - Jul-20-2016 01:20:40 PM +UTC
ブロック番号: 1,920,000
ETH 価格: $12.54 USD
waybackmachine 上の ethereum.org + Jul-20-2016 01:20:40 PM +UTC
ブロック番号: 1,920,000
ETH 価格: $12.54 USD
waybackmachine 上の ethereum.org #### 要約 {#dao-fork-summary} @@ -413,7 +413,7 @@ DAO 事件はプロトコルの不具合によるものではなかったため ### ホームステッド {#homestead} - Mar-14-2016 06:49:53 PM +UTC
ブロック番号: 1,150,000
ETH 価格: $12.50 USD
waybackmachine 上の ethereum.org + Mar-14-2016 06:49:53 PM +UTC
ブロック番号: 1,150,000
ETH 価格: $12.50 USD
waybackmachine 上の ethereum.org #### 要約 {#homestead-summary} @@ -435,7 +435,7 @@ DAO 事件はプロトコルの不具合によるものではなかったため ### フロンティアソーイング {#frontier-thawing} - Sep-07-2015 09:33:09 PM +UTC
ブロック番号: 200,000
ETH 価格: $1.24 USD
waybackmachine 上の ethereum.org + Sep-07-2015 09:33:09 PM +UTC
ブロック番号: 200,000
ETH 価格: $1.24 USD
waybackmachine 上の ethereum.org #### 要約 {#frontier-thawing-summary} @@ -448,7 +448,7 @@ DAO 事件はプロトコルの不具合によるものではなかったため ### フロンティア {#frontier} - Jul-30-2015 03:26:13 PM +UTC
ブロック番号: 0
ETH 価格: N/A
waybackmachine 上の ethereum.org + Jul-30-2015 03:26:13 PM +UTC
ブロック番号: 0
ETH 価格: N/A
waybackmachine 上の ethereum.org #### 要約 {#frontier-summary} @@ -462,7 +462,7 @@ DAO 事件はプロトコルの不具合によるものではなかったため ### イーサの販売 {#ether-sale} - 2014 年 7 月 22 日~ 9 月 2 日
waybackmachine 上の ethereum.org + 2014 年 7 月 22 日~ 9 月 2 日
waybackmachine 上の ethereum.org イーサは正式に 42 日間販売され、 BTC での購入も可能でした。 @@ -472,7 +472,7 @@ DAO 事件はプロトコルの不具合によるものではなかったため ### イエローペーパーのリリース {#yellowpaper} - 2014 年 4 月 1 日
waybackmachine 上の ethereum.org + 2014 年 4 月 1 日
waybackmachine 上の ethereum.org ギャビン・ウッド博士によって作成されたイエローペーパーには、イーサリアムプロトコルの技術的定義が記されています。 @@ -484,7 +484,7 @@ DAO 事件はプロトコルの不具合によるものではなかったため ### ホワイトペーパーのリリース {#whitepaper} - 2013 年 11 月 27 日
waybackmachine 上の ethereum.org + 2013 年 11 月 27 日
waybackmachine 上の ethereum.org この概要論文は、元々はイーサリアム創始者のヴィタリック・ブテリンにより 2013 年に発表されました。2015 年にプロジェクトが始動する前のことです。 diff --git a/public/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md index 39a62fdd027..d1971c46b5a 100644 --- a/public/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ A diversidade de clientes também oferece resiliência a ataques. Por exemplo, u Um erro em um cliente de consenso com mais de 33% dos nós Ethereum poderia impedir a finalização da camada de consenso, e isso deixaria os utilizadores em dúvida com respeito à probabilidade de as transações não serem revertidas ou alteradas em algum momento. Isso seria muito problemático para muitos dos aplicativos construídos em cima do Ethereum, particularmente o DeFi. - Pior ainda, um bug crítico em um cliente com uma maioria de dois terços poderia fazer com que a cadeia se dividisse e finalizasse incorretamente, gerando um grande conjunto de validadores que ficam presos em uma cadeia inválida. Se quiserem voltar a integrar à cadeia correta, esses validadores enfrentam cortes ou uma lenta e cara retirada e reativação voluntária. A magnitude de uma escala de remoção com o número de nós culpáveis com uma maioria de dois terços reduzido ao máximo (32 ETH). + Pior ainda, um bug crítico em um cliente com uma maioria de dois terços poderia fazer com que a cadeia se dividisse e finalizasse incorretamente, gerando um grande conjunto de validadores que ficam presos em uma cadeia inválida. Se quiserem voltar a integrar à cadeia correta, esses validadores enfrentam cortes ou uma lenta e cara retirada e reativação voluntária. A magnitude de uma escala de remoção com o número de nós culpáveis com uma maioria de dois terços reduzido ao máximo (32 ETH). Embora estes sejam cenários improváveis, o ecossistema Ethereum pode mitigar seus riscos nivelando a distribuição de clientes entre os nós ativos. Idealmente, nenhum cliente de consenso chegaria a uma participação de 33% dos nós totais. diff --git a/public/content/translations/pt-br/history/index.md b/public/content/translations/pt-br/history/index.md index dbab0017984..cad383780e8 100644 --- a/public/content/translations/pt-br/history/index.md +++ b/public/content/translations/pt-br/history/index.md @@ -141,7 +141,7 @@ A Altair foi a primeira implementação programada para a [Beacon Chain](/roadma - [Leia a especificação de melhoria da Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Fato engraçado! {#altair-fun-fact} +#### Fato engraçado! {#altair-fun-fact} Altair foi a primeira grande atualização de rede que teve um tempo exato de implantação. Todas as atualizações anteriores eram baseadas em um número de bloco declarado na cadeia de prova de trabalho, na qual o tempo de mineração de cada bloco varia. A Beacon Chain não requer resolver a prova de trabalho, em vez disso, ela funciona segundo um sistema de tempo em épocas, composto de 32 “intervalos” de 12 segundos cada, durante os quais os validadores podem propor blocos. É por isso que sabíamos exatamente quando atingiríamos a época 74.240 e a data de lançamento da Altair! diff --git a/public/content/translations/ro/history/index.md b/public/content/translations/ro/history/index.md index e0a79dcfc6f..598d3bbd7bd 100644 --- a/public/content/translations/ro/history/index.md +++ b/public/content/translations/ro/history/index.md @@ -42,7 +42,7 @@ Actualizarea Arrow Glacier a amânat [bomba de dificultate](/glossary/#difficult -#### Operatorii de noduri {#arrow-glacier-node-operators} +#### Operatorii de noduri {#arrow-glacier-node-operators} Aveţi grijă să vă actualizați software-ul client la versiunea cea mai recentă înainte de 5 decembrie 2021, pentru a justifica timpii de bloc variabili. Aceasta va evita sincronizarea clientului dvs. cu un lanț pre-fork, care va avea ca rezultat imposibilitatea de a trimite fonduri sau de a verifica în mod corect tranzacțiile. @@ -58,7 +58,7 @@ Actualizarea Altair a fost prima actualizare programată pentru [Lanțul Beacon] - [Citiţi specificaţiile actualizărilor Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### Un fapt amuzant! {#altair-fun-fact} +#### Un fapt amuzant! {#altair-fun-fact} Altair a fost prima actualizare majoră a rețelei care a avut o dată exactă de lansare. Toate actualizările anterioare s-au bazat pe un număr de bloc declarat pe lanțul dovezii-muncii (PoW), unde timpii de bloc variază. Lanțul Beacon nu necesită rezolvarea de calcule ca dovadă-a-muncii (PoW), ci funcționează pe un sistem de epoci bazate pe timp, sistem care constă din 32 de „sloturi” de timp de 12 secunde în care validatorii pot propune blocuri. Acesta este motivul pentru care am știut exact când vom atinge epoca 74.240 și Altair va deveni funcțional! diff --git a/public/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md index 61bdaa9e02c..d0c77c6d3fc 100644 --- a/public/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ Tekil bir istemcideki hata Ethereum düğümlerinin azınlık bir kısmını tem Ethereum düğümlerinin %33'ünden fazlasına sahip olan bir fikir birliği katmanındaki bir açık fikir birliği katmanının kesinleşmesini engelleyebilirdi, yani kullanıcılar işlemlerin bir noktada geri alınmayacağına veya değiştirilmeyeceğine güvenemezdi. Bu özellikle DeFi gibi Ethereum üzerinde inşa edilmiş birçok uygulama için bayağı sıkıntılı olurdu. - Daha kötüsü, üçte ikilik bir çoğunluğa sahip olan bir istemcideki kritik bir hata zincirin hatalı biçimde ayrılmasına ve kesinleşmesine yol açabilirdi, bu da doğrulayıcıların büyük bir kısmının geçersiz bir zincirde takılı kalmasına sebep olurdu. Eğer doğru zincire geri katılmak isterlerse, bu doğrulayıcılar ya cezalandırma ile ya da yavaş ve pahalı bir gönüllü çekilme ve yeniden aktifleştirme ile karşı karşıya kalırlardı. Bir kesintinin büyüklüğü maksimum olarak üçte ikilik bir çoğunluk cezalandırılacak şekilde (32 ETH) sorunlu düğümlerin sayısı ile ölçeklendirilir. + Daha kötüsü, üçte ikilik bir çoğunluğa sahip olan bir istemcideki kritik bir hata zincirin hatalı biçimde ayrılmasına ve kesinleşmesine yol açabilirdi, bu da doğrulayıcıların büyük bir kısmının geçersiz bir zincirde takılı kalmasına sebep olurdu. Eğer doğru zincire geri katılmak isterlerse, bu doğrulayıcılar ya cezalandırma ile ya da yavaş ve pahalı bir gönüllü çekilme ve yeniden aktifleştirme ile karşı karşıya kalırlardı. Bir kesintinin büyüklüğü maksimum olarak üçte ikilik bir çoğunluk cezalandırılacak şekilde (32 ETH) sorunlu düğümlerin sayısı ile ölçeklendirilir. Bunlar muhtemel olmayan senaryolar olsa da, Ethereum ekosistemi istemcilerin aktif düğümler arasındaki dağıtımını eşitleyerek riski azaltabilir. İdeal olarak, hiçbir fikir birliği istemcisi, toplam düğümlerin %33'lük bir kısmına sahip olamaz. diff --git a/public/content/translations/tr/history/index.md b/public/content/translations/tr/history/index.md index d68252a5b39..f92e73551f0 100644 --- a/public/content/translations/tr/history/index.md +++ b/public/content/translations/tr/history/index.md @@ -150,7 +150,7 @@ Altair yükseltmesi, [İşaret Zinciri](/roadmap/beacon-chain) için planlanmı - [Altair güncelleme spesifikasyonunu okuyun](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### İlginç bir bilgi! {#altair-fun-fact} +#### İlginç bir bilgi! {#altair-fun-fact} Altair, kesin bir kullanıma sunma süresi olan ilk büyük ağ yükseltmesiydi. Önceden her yükseltme, blok sürelerinin değiştiği iş ispatı zincirinde beyan edilen bir blok numarasına dayanıyordu. İşaret Zinciri, iş ispatı için çözüm gerektirmez ve bunun yerine, doğrulayıcıların blok önerebileceği 32 tane on iki saniyelik "yuva"dan oluşan zamana dayalı bir dönem sistemi üzerinde çalışır. Bu yüzden 74.240 numaralı döneme ne zaman ulaşacağımızı tam olarak biliyorduk ve Altair hayat buldu! diff --git a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/client-diversity/index.md index fd54ff97e9b..ac17b83df41 100644 --- a/public/content/translations/zh-tw/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/zh-tw/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ sidebarDepth: 2 超過 33% 的以太坊節點共識用戶端中都存在的錯誤可能會阻止共識層的最終確定,這表示使用者沒辦法相信交易在某個時刻不會被撤銷或更改。 這對建立在以太坊上的許多應用程式是非常大的問題,尤其是去中心化金融。 - 更糟糕的是,在兩三個主流用戶端中的重大錯誤可能會導致鏈錯誤地分叉和最終確定,使大量的驗證者被卡在無效的鏈上。 如果這些驗證者想重新加入正確的鏈,它們可能會面臨罰沒或緩慢且昂貴的自願提款和重新啟用流程。 罰沒的規模與有罪節點的數量成正比,其中三分之二的主流節點會被罰沒最高金額(32 以太幣)。 + 更糟糕的是,在兩三個主流用戶端中的重大錯誤可能會導致鏈錯誤地分叉和最終確定,使大量的驗證者被卡在無效的鏈上。 如果這些驗證者想重新加入正確的鏈,它們可能會面臨罰沒或緩慢且昂貴的自願提款和重新啟用流程。 罰沒的規模與有罪節點的數量成正比,其中三分之二的主流節點會被罰沒最高金額(32 以太幣)。 雖然這些情況不太可能發生,以太坊生態系可以透過平均分佈用戶端至各個活躍節點以降低風險。 理想上,不會有共識用戶端超過總節點數的 33%。 diff --git a/public/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md index 69f9f4fec56..31072b6ab63 100644 --- a/public/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md @@ -31,7 +31,7 @@ sidebarDepth: 2 超过 33% 的以太坊节点的共识客户端中有一个漏洞,它可能会阻止共识层的最终确定,这意味着用户无法相信交易不会在某些时候被回滚或更改。 对于许多建立在以太坊之上的应用程序,尤其是去中心化金融,这将是一个很大的问题。 - 更糟糕的是,当拥有三分之二多数节点的客户端出现严重漏洞,可能会导致链错误地分叉并最终确定,让大量验证者困陷在无效链上。 如果这些验证者想重新加入正确的链,他们将面临罚没或缓慢而昂贵的自愿退出和重新激活过程。 罚没的轻重随过错节点数量而异,三分之二的大多数将受到最严重的惩罚(32 个以太币)。 + 更糟糕的是,当拥有三分之二多数节点的客户端出现严重漏洞,可能会导致链错误地分叉并最终确定,让大量验证者困陷在无效链上。 如果这些验证者想重新加入正确的链,他们将面临罚没或缓慢而昂贵的自愿退出和重新激活过程。 罚没的轻重随过错节点数量而异,三分之二的大多数将受到最严重的惩罚(32 个以太币)。 尽管这些情况不太可能发生,但为了降低这类风险,以太坊生态系统可以使客户端均衡分布在活跃节点上。 理想情况下,任何共识客户端任何时候都不会达到总节点数的 33%。 diff --git a/public/content/translations/zh/history/index.md b/public/content/translations/zh/history/index.md index f5f78ce08b8..0fd78c9a38c 100644 --- a/public/content/translations/zh/history/index.md +++ b/public/content/translations/zh/history/index.md @@ -150,7 +150,7 @@ Bellatrix 升级是计划的第二次[信标链](/roadmap/beacon-chain)升级, - [阅读天鹰座升级规范](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) -#### 有趣的事实! {#altair-fun-fact} +#### 有趣的事实! {#altair-fun-fact} 天鹰座升级是第一个有确切发布时间的重大网络升级。 之前的每一次升级均基于一个已经在工作量证明链上申报过的区块编号,而该链上的区块时间各不相同。 信标链不需要解析工作量证明,而是在一个基于时间、由 32 个 12 秒“时隙”组成的时段系统上运作。在这个系统上,验证者可以提出区块。 这就是为什么我们能准确知晓达到时段 74,240 以及天鹰座升级启动的时间! From 6e81bbebc1dd9dd1759a85dd853d099225885823 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 9 Aug 2024 22:39:01 +0200 Subject: [PATCH 4/4] fix HorizontalCard --- src/components/HorizontalCard.tsx | 5 ++++- src/pages/eth.tsx | 2 +- src/pages/gas.tsx | 2 +- src/pages/stablecoins.tsx | 2 +- src/pages/wallets/index.tsx | 4 ++-- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/components/HorizontalCard.tsx b/src/components/HorizontalCard.tsx index a68bc3e0be8..48cbae9ca24 100644 --- a/src/components/HorizontalCard.tsx +++ b/src/components/HorizontalCard.tsx @@ -1,6 +1,8 @@ import React, { ReactNode } from "react" import { Box, Flex, FlexProps } from "@chakra-ui/react" +import { cn } from "@/lib/utils/cn" + import Emoji from "./Emoji" import Text from "./OldText" @@ -15,10 +17,11 @@ const HorizontalCard = ({ title, description, children, + className, ...rest }: HorizontalCardProps) => ( - + {title} diff --git a/src/pages/eth.tsx b/src/pages/eth.tsx index 8441e31e26e..7f062c0899c 100644 --- a/src/pages/eth.tsx +++ b/src/pages/eth.tsx @@ -558,7 +558,7 @@ const EthPage = () => { emoji={token.emoji} title={token.title} description={token.description} - emojiSize={5} + className="text-[5rem]" /> ))} diff --git a/src/pages/gas.tsx b/src/pages/gas.tsx index 5e31bfc8490..dc98adb4661 100644 --- a/src/pages/gas.tsx +++ b/src/pages/gas.tsx @@ -306,7 +306,7 @@ const GasPage = () => { key={benefit.emoji} emoji={benefit.emoji} description={benefit.description} - emojiSize={3} + className="text-5xl" align="center" /> diff --git a/src/pages/stablecoins.tsx b/src/pages/stablecoins.tsx index a7331587e07..2e93a0ab03a 100644 --- a/src/pages/stablecoins.tsx +++ b/src/pages/stablecoins.tsx @@ -458,7 +458,7 @@ const StablecoinsPage = ({ markets, marketsHasError }) => {
))} diff --git a/src/pages/wallets/index.tsx b/src/pages/wallets/index.tsx index ea99dd72eba..c238bfed980 100644 --- a/src/pages/wallets/index.tsx +++ b/src/pages/wallets/index.tsx @@ -118,7 +118,7 @@ const ChecklistItem = (props: HorizontalCardProps) => ( { key={idx} emoji={type.emoji} description={type.description} - emojiSize={2.5} + className="text-[2.5rem]" alignItems="center" /> ))}