diff --git a/.all-contributorsrc b/.all-contributorsrc index ed1fa7f63e1..ecd794d1fb2 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -4039,7 +4039,9 @@ "profile": "https://github.com/lukassim", "contributions": [ "content", - "ideas" + "ideas", + "translation", + "bug" ] }, { diff --git a/.eslintrc.json b/.eslintrc.json index c205ddba995..0a573177a30 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,16 +1,19 @@ { - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "next/core-web-vitals", - "prettier", - "plugin:storybook/recommended" - ], + "extends": ["eslint:recommended", "next/core-web-vitals", "prettier"], "env": { - "es6": true + "es6": true, + "node": true, + "browser": true }, "plugins": ["simple-import-sort", "@typescript-eslint", "unused-imports"], "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module", + "ecmaFeatures": { + "jsx": true + } + }, "rules": { "simple-import-sort/imports": [ "error", @@ -34,7 +37,7 @@ // From the `constants` directory. ["^@/lib/constants"], // `.storybook` directory and utils files` - ["^@/storybook","^@/storybook-utils"], + ["^@/storybook", "^@/storybook-utils"], // Parent imports. Put `..` last. ["^\\.\\.(?!/?$)", "^\\.\\./?$"], // Other relative imports. Put same-folder imports and `.` last. @@ -48,13 +51,6 @@ ], "simple-import-sort/exports": "error", "no-unused-vars": "off", - "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/no-explicit-any": [ - "error", - { - "fixToUnknown": true - } - ], "unused-imports/no-unused-vars": [ "error", { @@ -63,6 +59,37 @@ "varsIgnorePattern": "^_$" } ], - "unused-imports/no-unused-imports-ts": "warn" - } + "unused-imports/no-unused-imports": "warn" + }, + "overrides": [ + { + "files": ["**/*.{ts,tsx}"], + "extends": ["plugin:@typescript-eslint/recommended"], + "rules": { + "@typescript-eslint/no-explicit-any": [ + "error", + { + "fixToUnknown": true + } + ] + } + }, + { + "files": ["**/*.stories.@(js|jsx|ts|tsx|mdx)"], + "extends": ["plugin:storybook/recommended"] + } + ], + "ignorePatterns": [ + "node_modules/", + ".next/", + "out/", + "dist/", + "build/", + ".vercel/", + ".netlify/", + "coverage/", + "storybook-static/", + "**/*.d.ts", + "src/intl/" + ] } diff --git a/.mise.toml b/.mise.toml new file mode 100644 index 00000000000..e56021c749b --- /dev/null +++ b/.mise.toml @@ -0,0 +1,4 @@ +[settings] +# tools can read the versions files used by other version managers +# for example, .nvmrc in the case of node's nvm +idiomatic_version_file_enable_tools = ['node'] \ No newline at end of file diff --git a/.nvmrc b/.nvmrc index 209e3ef4b62..ba331903d16 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20 +20.19.2 diff --git a/README.md b/README.md index 2e1749ad430..28065e384b9 100644 --- a/README.md +++ b/README.md @@ -774,7 +774,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Kamil Zarzycki
Kamil Zarzycki

🌍 🖋 Filip Martinsson
Filip Martinsson

🖋 zeroservices
zeroservices

🐛 - LukaK
LukaK

🖋 🤔 + LukaK
LukaK

🖋 🤔 🌍 🐛 Luke Ingalls
Luke Ingalls

🖋 diff --git a/app/[locale]/10years/_components/AdoptionSwiper.tsx b/app/[locale]/10years/_components/AdoptionSwiper.tsx index 9ab70a033a9..9799030934b 100644 --- a/app/[locale]/10years/_components/AdoptionSwiper.tsx +++ b/app/[locale]/10years/_components/AdoptionSwiper.tsx @@ -1,6 +1,10 @@ "use client" +import type { StaticImageData } from "next/image" +import { useTranslations } from "next-intl" + import { Image } from "@/components/Image" +import Translation from "@/components/Translation" import { ButtonLink } from "@/components/ui/buttons/Button" import { Swiper, @@ -11,38 +15,50 @@ import { import { cn } from "@/lib/utils/cn" -import { AdoptionCard } from "./types" - type AdoptionCardProps = { - adoptionCards: AdoptionCard[] + adoptionCards: { image: StaticImageData; href: string }[] adoptionStyles: string[] } + const AdoptionSwiper = ({ adoptionCards, adoptionStyles, }: AdoptionCardProps) => { + const t = useTranslations("page-10-year-anniversary") + return (
- {adoptionCards.map((card, index) => ( - -
- {card.title} -

{card.title}

- {card.description} - - {card.linkText} - -
-
- ))} + {adoptionCards.map((card, index) => { + const title = t(`page-10-year-adoption-card-${index + 1}-title`) + return ( + +
+ {title} +

{title}

+

+ +

+ + {t(`page-10-year-adoption-card-${index + 1}-link-text`)} + +
+
+ ) + })}
diff --git a/app/[locale]/10years/_components/CountDown.tsx b/app/[locale]/10years/_components/CountDown.tsx index d70712ea76e..550ebb1308e 100644 --- a/app/[locale]/10years/_components/CountDown.tsx +++ b/app/[locale]/10years/_components/CountDown.tsx @@ -2,13 +2,21 @@ import { useEffect, useState } from "react" +import type { TimeLeftLabels } from "@/lib/types" + import { cn } from "@/lib/utils/cn" interface CountDownProps { className?: string + timeLeftLabels: TimeLeftLabels + expiredLabel: string } -const CountDown = ({ className }: CountDownProps) => { +const CountDown = ({ + className, + timeLeftLabels, + expiredLabel, +}: CountDownProps) => { const [timeLeft, setTimeLeft] = useState({ days: 0, hours: 0, @@ -46,11 +54,7 @@ const CountDown = ({ className }: CountDownProps) => { }, []) if (isExpired) { - return ( -
- Ethereum is 10 years old! 🚀 -
- ) + return
{expiredLabel}
} return ( @@ -64,7 +68,11 @@ const CountDown = ({ className }: CountDownProps) => {
{timeLeft.days}
-
days
+
+ {timeLeft.days === 1 + ? timeLeftLabels.days.singular + : timeLeftLabels.days.plural} +
{
{timeLeft.hours}
-
hours
+
+ {timeLeft.hours === 1 + ? timeLeftLabels.hours.singular + : timeLeftLabels.hours.plural} +
{
{timeLeft.minutes}
-
minutes
+
+ {timeLeft.minutes === 1 + ? timeLeftLabels.minutes.singular + : timeLeftLabels.minutes.plural} +
{
{timeLeft.seconds}
-
seconds
+
+ {timeLeft.seconds === 1 + ? timeLeftLabels.seconds.singular + : timeLeftLabels.seconds.plural} +
) diff --git a/app/[locale]/10years/_components/InnovationSwiper.tsx b/app/[locale]/10years/_components/InnovationSwiper.tsx index b0378c857c4..c5eb4156402 100644 --- a/app/[locale]/10years/_components/InnovationSwiper.tsx +++ b/app/[locale]/10years/_components/InnovationSwiper.tsx @@ -10,7 +10,11 @@ import { import { innovationCards } from "./data" +import { useTranslation } from "@/hooks/useTranslation" + export default function InnovationSwiper() { + const { t } = useTranslation("page-10-year-anniversary") + return (
@@ -25,18 +29,23 @@ export default function InnovationSwiper() { > {card.title}
-

{card.title}

-

{card.date}

-
- {card.description.map((description, index) => ( -

- {description} +

+ {t(`page-10-year-innovation-card-${index + 1}-title`)} +

+

+ {t(`page-10-year-innovation-card-${index + 1}-date`)}

- ))} +
+

+ {t(`page-10-year-innovation-card-${index + 1}-description-1`)} +

+

+ {t(`page-10-year-innovation-card-${index + 1}-description-2`)} +

))} diff --git a/app/[locale]/10years/_components/Stories.tsx b/app/[locale]/10years/_components/Stories.tsx index f8ca8ccb70e..25a72ad4816 100644 --- a/app/[locale]/10years/_components/Stories.tsx +++ b/app/[locale]/10years/_components/Stories.tsx @@ -7,6 +7,8 @@ import { Button, ButtonLink } from "@/components/ui/buttons/Button" import { cn } from "@/lib/utils/cn" +import { useTranslation } from "@/hooks/useTranslation" + type Story = { name: string storyEnglish: string @@ -23,6 +25,7 @@ type StoriesProps = { const STORIES_SHOWN = 5 const Stories = ({ stories }: StoriesProps) => { + const { t } = useTranslation("page-10-year-anniversary") const [flippedCards, setFlippedCards] = useState>({}) const [expandedStories, setExpandedStories] = useState< Record @@ -119,7 +122,7 @@ const Stories = ({ stories }: StoriesProps) => { eventCategory: "10-year-anniversary", }} > - Read more + {t("page-10-year-stories-read-more")} )} @@ -127,7 +130,7 @@ const Stories = ({ stories }: StoriesProps) => { {story.storyOriginal && (

- English translation + {t("page-10-year-stories-english-translation")}

)} @@ -198,14 +201,14 @@ const Stories = ({ stories }: StoriesProps) => { eventCategory: "10-year-anniversary", }} > - Read more + {t("page-10-year-stories-read-more")} )}

- Original language + {t("page-10-year-stories-original-language")}

@@ -246,7 +249,7 @@ const Stories = ({ stories }: StoriesProps) => { }} variant="outline" > - Show more + {t("page-10-year-stories-show-more")} )} diff --git a/app/[locale]/10years/_components/TenYearGlobe.tsx b/app/[locale]/10years/_components/TenYearGlobe.tsx index 05085f67b99..5623ca482f0 100644 --- a/app/[locale]/10years/_components/TenYearGlobe.tsx +++ b/app/[locale]/10years/_components/TenYearGlobe.tsx @@ -13,6 +13,7 @@ import countries from "./countries.json" import { useBreakpointValue } from "@/hooks/useBreakpointValue" import { usePrefersReducedMotion } from "@/hooks/usePrefersReducedMotion" +import { useTranslation } from "@/hooks/useTranslation" import EthLogo from "@/public/images/assets/eth-glyph-colored.png" // Define a type for event data @@ -40,6 +41,7 @@ interface ExtendedOrbitControls extends OrbitControls { } const TenYearGlobe = ({ events }: { events: EventData[] }) => { + const { t } = useTranslation("page-10-year-anniversary") const globeRef = useRef() const globeContainerRef = useRef(null) const { resolvedTheme } = useTheme() @@ -272,7 +274,7 @@ const TenYearGlobe = ({ events }: { events: EventData[] }) => { hideArrow className="no-underline" > - Go to event + {t("page-10-year-globe-go-to-event")} )} diff --git a/app/[locale]/10years/_components/TenYearHero.tsx b/app/[locale]/10years/_components/TenYearHero.tsx index 2d3b3fa3e89..7d0e03bd22a 100644 --- a/app/[locale]/10years/_components/TenYearHero.tsx +++ b/app/[locale]/10years/_components/TenYearHero.tsx @@ -1,157 +1,62 @@ -"use client" - -import { useEffect, useState } from "react" +import { getTranslations } from "next-intl/server" import { Image } from "@/components/Image" import ParallaxImage from "@/components/Image/ParallaxImage" +import Morpher from "@/components/Morpher" import TenYearBackgroundImage from "@/public/images/10-year-anniversary/10-year-background.png" import TenYearGraphicImage from "@/public/images/10-year-anniversary/10-year-graphic.png" -const [initialText, ...initialWords] = [ - "censorship resistance", - "100% uptime", - "decentralization", - "community building", - "developer growth", - "global collaboration", - "cypherpunk values", - "hackathons", - "censorship resistance", - "permissionless finance", - "credible neutrality", - "the infinite garden", - "client diversity", -] - -const TenYearHero = () => { - const [words, setWords] = useState<{ text: string; words: string[] }>({ - text: initialText, - words: initialWords, +const TenYearHero = async ({ locale }: { locale: string }) => { + const t = await getTranslations({ + locale, + namespace: "page-10-year-anniversary", }) - // loops over chars to morph a text to another - const morpher = (start: string, end: string): void => { - // array of chars to randomly morph the text between start and end - const chars = "abcdfgijklnopqsvwxyz".split("") - // duration of the global morph - const duration = 3 - // speed of the morph for each letter - const frameRate = 30 - - // text variables - const textString = start.split("") - const result = end.split("") - const slen = textString.length - const rlen = result.length - - // time variables - let present = new Date() - let past = present.getTime() - let count = 0 - let spentTime = 0 - // splitTime = milliseconds / letters - const splitTime = (duration * 70) / Math.max(slen, rlen) - - function update() { - // Update present date and spent time - present = new Date() - spentTime += present.getTime() - past - - // Random letters - for (let i = count; i < Math.min(slen, rlen, 18); i++) { - const random = Math.floor(Math.random() * (chars.length - 1)) - // Change letter - textString[i] = chars[random] - } - - // Morph letters from start to end - if (spentTime >= splitTime) { - // Update count of letters to morph - count += Math.floor(spentTime / splitTime) - // Morphing - for (let j = 0; j < count; j++) { - textString[j] = result[j] || "" - } - // Reset spent time - spentTime = 0 - } - - // Update DOM - setWords({ ...words, text: textString.join("") }) - - // Save present date - past = present.getTime() - - // Loop - if (count < Math.max(slen, rlen)) { - // Only use a setTimeout if the frameRate is lower than 60FPS - // Remove the setTimeout if the frameRate is equal to 60FPS - morphTimeout = setTimeout(() => { - window.requestAnimationFrame(update) - }, 1000 / frameRate) - } - } - - // Start loop - update() - } - - let morphTimeout: NodeJS.Timeout - - useEffect(() => { - let counter = 0 - - const morphInterval = setInterval(() => { - const start = words.text - const end = words.words[counter] - - morpher(start, end) - - if (counter < words.words.length - 1) { - counter++ - } else { - counter = 0 - } - }, 3000) - - return () => { - clearInterval(morphInterval) - clearTimeout(morphTimeout) - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []) + const WORDS = [ + t("page-10-year-censorship-resistance"), + t("page-10-year-uptime"), + t("page-10-year-decentralization"), + t("page-10-year-community-building"), + t("page-10-year-developer-growth"), + t("page-10-year-global-collaboration"), + t("page-10-year-cypherpunk-values"), + t("page-10-year-hackathons"), + t("page-10-year-permissionless-finance"), + t("page-10-year-credible-neutrality"), + t("page-10-year-infinite-garden"), + t("page-10-year-client-diversity"), + ] return (

10 Year Anniversary

- Celebrating 10 years of{" "} + {t("page-10-year-celebrating")}{" "} - {initialText} + {WORDS[0]} - - {words.text} + +

) } - export default TenYearHero diff --git a/app/[locale]/10years/_components/TenYearHomeBanner.tsx b/app/[locale]/10years/_components/TenYearHomeBanner.tsx index 35abf1a0523..640bbbfaba1 100644 --- a/app/[locale]/10years/_components/TenYearHomeBanner.tsx +++ b/app/[locale]/10years/_components/TenYearHomeBanner.tsx @@ -1,16 +1,36 @@ +import { getTranslations } from "next-intl/server" + +import { Image } from "@/components/Image" import ParallaxImage from "@/components/Image/ParallaxImage" import { ButtonLink } from "@/components/ui/buttons/Button" import Countdown from "./CountDown" +import { getTimeUnitTranslations } from "./utils" +import TenYearBackgroundImage from "@/public/images/10-year-anniversary/10-year-background.png" import TenYearGraphicImage from "@/public/images/10-year-anniversary/10-year-logo.png" import TenYearDesktopText from "@/public/images/10-year-anniversary/10yeartext.svg" import TenYearMobileText from "@/public/images/10-year-anniversary/10yeartext-mobile.svg" -const TenYearHomeBanner = () => { +const TenYearHomeBanner = async ({ locale }: { locale: string }) => { + const t = await getTranslations({ + locale, + namespace: "page-10-year-anniversary", + }) + + const timeLeftLabels = await getTimeUnitTranslations(locale) + return ( -
-
+
+
+ +
{ className="mx-auto -mb-2 -mt-16 max-w-[min(100%,500px)] object-contain sm:-mt-24 md:-mt-32" />
+

{t("page-10-year-banner-header")}

- On July 30, 2015, at 3:44 p.m. UTC, the first block - of the Ethereum blockchain came to life. + {t("page-10-year-banner-launch-text")}

-

Ten years down, infinity to go! 🚀

+

{t("page-10-year-banner-tagline")}

- - Join the party + + + {t("page-10-year-banner-cta")}
) diff --git a/app/[locale]/10years/_components/data.tsx b/app/[locale]/10years/_components/data.tsx index d4c0b80554d..bf653b4a8f8 100644 --- a/app/[locale]/10years/_components/data.tsx +++ b/app/[locale]/10years/_components/data.tsx @@ -1,7 +1,3 @@ -import Link from "@/components/ui/Link" - -import { AdoptionCard } from "./types" - import Adoption1Image from "@/public/images/10-year-anniversary/adoption-1.png" import Adoption2Image from "@/public/images/10-year-anniversary/adoption-2.png" import Adoption3Image from "@/public/images/10-year-anniversary/adoption-3.png" @@ -15,90 +11,30 @@ import StableCoinImage from "@/public/images/10-year-anniversary/the-pioneer-sta import Adoption4Image from "@/public/images/10-year-anniversary/walking-talking-1.png" import Adoption6Image from "@/public/images/10-year-anniversary/walking-talking-2.png" -const adoptionCards: AdoptionCard[] = [ +const adoptionCards = [ { image: Adoption1Image, - title: "Decade of Decentralization", - description: ( -

- What began as a specialized ecosystem now spans 80+ countries{" "} - with 870,000 validators, 13,600 physical nodes, and{" "} - millions of users across continents. -

- ), href: "/resources", - linkText: "Check Ethereum stats", }, { image: Adoption2Image, - title: "10 years, 16 upgrades, 0 downtime", - description: ( -

- Ethereum has maintained perfect uptime while continuously evolving. The - blockchain has never gone offline. -

- ), href: "/roadmap", - linkText: "See Roadmap", }, { image: Adoption3Image, - title: "$123 billion in stablecoin market cap", - description: ( -

- As of Q2 2025, Ethereum L1 secures over $123 billion in stablecoins,{" "} - - capturing over 50% of the global stablecoin market. - -

- ), href: "/stablecoins", - linkText: "More on stablecoins", }, { image: Adoption4Image, - title: "$75 billion secured in Ethereum DeFi", - description: ( -

- As of Q2 2025,{" "} - - Ethereum secures over $75 billion in DeFi across its ecosystem. - -

- ), href: "/defi", - linkText: "More on DeFi", }, { image: Adoption5Image, - title: "0.01 TWh per year", - description: ( -

- Following The Merge, Ethereum's energy consumption dropped - dramatically to just{" "} - - 0.01 TWh per year - - , down from its peak of 93.95 TWh. -

- ), href: "/energy-consumption", - linkText: "More on Ethereum energy consumption", }, { image: Adoption6Image, - title: "Over 250 TPS", - description: ( -

- Ethereum's throughput has increased dramatically since launch, with - Ethereum's ecosystem now handling over{" "} - - 250 transactions per second. - -

- ), href: "/layer-2", - linkText: "More on layer 2s", }, ] @@ -114,57 +50,21 @@ const adoptionStyles = [ const innovationCards = [ { - title: "Ethereum Launch", - date: "July 30, 2015", - description: [ - 'Ethereum\'s genesis block went live, launching the "Frontier" network. This barebones release gave developers their first chance to build decentralized applications and experiment with smart contracts.', - "Ethereum's mission: an open internet where users control their data, applications run without gatekeepers, and value flows freely between people.", - ], image: EthereumLaunchImage, }, { - title: "DAI: The pioneer stablecoin", - date: "December, 2015", - description: [ - "The first decentralized stablecoin launched. DAI maintains a soft peg to the U.S. dollar through cryptocurrency collateral locked in smart contracts.", - "Unlike centralized stablecoins controlled by companies, DAI is governed by a decentralized autonomous organization (DAO), making it trustless and community-driven.", - ], image: StableCoinImage, }, { - title: "CryptoKitties and the NFT Frontier", - date: "November, 2017", - description: [ - "CryptoKitties brought digital ownership to life. This early NFT game showed how blockchain could enable new forms of expression, collectibility, and culture online.", - "It proved Ethereum could scale beyond finance into gaming, art, and digital identity, opening entirely new creative possibilities.", - ], image: NftImage, }, { - title: "DeFi Summer", - date: "June, 2020", - description: [ - "Explosive DeFi growth redefined how the world thinks about finance. Protocols for lending, trading, and yield generation gained massive momentum, showcasing the power of open, composable financial infrastructure.", - "This period brought billions in value on-chain and established Ethereum as the home of decentralized finance.", - ], image: DefiSummerImage, }, { - title: "The Merge update", - date: "September 15, 2022", - description: [ - "Ethereum's biggest transformation yet. The network seamlessly transitioned from energy-intensive proof-of-work to proof-of-stake. With billions in value on Ethereum, the change was described as like changing an aircraft's engine mid-flight.", - "The Merge cut Ethereum's energy consumption by 99.95%, strengthened network security, and set the groundwork for future scaling upgrades.", - ], image: TheMergeImage, }, { - title: "Spot ETH ETFs", - date: "May 23, 2024", - description: [ - "Wall Street embraces Ethereum. Spot ETH ETFs launched, bringing institutional capital and regulatory legitimacy to the world's leading smart contract platform.", - "The approval signaled broader acceptance of tokenized real-world assets, with major financial institutions now building on Ethereum to bring everything from real estate to treasury bonds on-chain.", - ], image: EthETFImage, }, ] diff --git a/app/[locale]/10years/_components/utils.ts b/app/[locale]/10years/_components/utils.ts index ca6740971ce..88cd54b2574 100644 --- a/app/[locale]/10years/_components/utils.ts +++ b/app/[locale]/10years/_components/utils.ts @@ -1,3 +1,7 @@ +import { getTranslations } from "next-intl/server" + +import { TimeLeftLabels } from "@/lib/types" + import { formatDate, isValidDate } from "@/lib/utils/date" import { DEFAULT_LOCALE } from "@/lib/constants" @@ -29,3 +33,29 @@ export const parseStoryDates = ( ...story, date: parseDate(date, locale), })) + +export const getTimeUnitTranslations = async (locale: string) => { + const t = await getTranslations({ + locale, + namespace: "page-10-year-anniversary", + }) + const timeLeftLabels: TimeLeftLabels = { + days: { + singular: t("page-10-year-countdown-day"), + plural: t("page-10-year-countdown-days"), + }, + hours: { + singular: t("page-10-year-countdown-hour"), + plural: t("page-10-year-countdown-hours"), + }, + minutes: { + singular: t("page-10-year-countdown-minute"), + plural: t("page-10-year-countdown-minutes"), + }, + seconds: { + singular: t("page-10-year-countdown-second"), + plural: t("page-10-year-countdown-seconds"), + }, + } + return timeLeftLabels +} diff --git a/app/[locale]/10years/page.tsx b/app/[locale]/10years/page.tsx index 6cf2915d790..52f5af6db06 100644 --- a/app/[locale]/10years/page.tsx +++ b/app/[locale]/10years/page.tsx @@ -13,6 +13,7 @@ import Emoji from "@/components/Emoji" import I18nProvider from "@/components/I18nProvider" import { Image } from "@/components/Image" import MainArticle from "@/components/MainArticle" +import Translation from "@/components/Translation" import { ButtonLink } from "@/components/ui/buttons/Button" import { LinkBox, LinkOverlay } from "@/components/ui/link-box" import { Skeleton } from "@/components/ui/skeleton" @@ -31,7 +32,7 @@ import { adoptionCards, adoptionStyles } from "./_components/data" import InnovationSwiper from "./_components/InnovationSwiper" import Stories from "./_components/Stories" import TenYearHero from "./_components/TenYearHero" -import { parseStoryDates } from "./_components/utils" +import { getTimeUnitTranslations, parseStoryDates } from "./_components/utils" import { fetch10YearEvents } from "@/lib/api/fetch10YearEvents" import { fetch10YearStories } from "@/lib/api/fetch10YearStories" @@ -68,40 +69,46 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { const requiredNamespaces = getRequiredNamespacesForPage("/10years") const messages = pick(allMessages, requiredNamespaces) + const t = await getTranslations({ + locale, + namespace: "page-10-year-anniversary", + }) + + const timeLeftLabels = await getTimeUnitTranslations(locale) + return ( - +

- A decade of transforming the world one block at a time + {t("page-10-year-hero-title")}

-

- On July 30, 2015, the Ethereum blockchain was born. The moment - the genesis block was mined, it enabled new possibilities for - the internet, bringing transformative changes to finance, - ownership, and programmability. -

-

Ten years in, eternity ahead.

+

{t("page-10-year-hero-description")}

+

{t("page-10-year-hero-tagline")}

- +
-

Join the party

+

+ {t("page-10-year-join-party-title")} +

- Celebrate 10 years of Ethereum with the global community. Find a - local event or start your own celebration. + {t("page-10-year-join-party-description")}

@@ -202,7 +209,7 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { target="_blank" rel="noopener noreferrer" > - Go to event + {t("page-10-year-event-link")} ))} @@ -219,27 +226,21 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
-

- Join people around the world for talks, networking, and - celebrations as we mark Ethereum's tenth birthday. -

-

- Can't make it in person? Watch our livestream and follow - updates from events worldwide, so everyone can celebrate this - milestone together. -

+

{t("page-10-year-events-description-1")}

+

{t("page-10-year-events-description-2")}

-

Host an event

+

+ {t("page-10-year-host-event-title")} +

- Want to host an event? Limited-time grants are available to help - fund your event. + {t("page-10-year-host-event-description")}

- Apply Now + {t("page-10-year-host-event-cta")}
@@ -247,23 +248,18 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {

- 10 years of - Innovation + + {t("page-10-year-innovation-title")} + + + {t("page-10-year-innovation-subtitle")} +

- Ethereum transformed blockchain by introducing smart contracts -

-

- With Ethereum, blockchains changed from a digital ledger, into a - programmable platform where code executes automatically when - conditions are met. -

-

- Ethereum's innovation enabled entirely new industries like{" "} - DeFi, NFTs, and DAOs. It expanded blockchain beyond digital - currency into a platform that reimagined how we create and - exchange value. + {t("page-10-year-innovation-description-1")}

+

{t("page-10-year-innovation-description-2")}

+

{t("page-10-year-innovation-description-3")}

@@ -272,18 +268,17 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {

- 10 years of - Adoption + + {t("page-10-year-adoption-title")} + + + {t("page-10-year-adoption-subtitle")} +

- From a whitepaper to 24M+ daily transactions within the Ethereum - ecosystem -

-

- Ethereum has become a global computing platform powering - thousands of applications used by millions daily. It spans - industries and borders while continuing to expand its use cases. + {t("page-10-year-adoption-description-1")}

+

{t("page-10-year-adoption-description-2")}

}) => {
{adoptionCards.map((card, index) => (
}) => { > {card.title} -

{card.title}

- {card.description} +

+ {t(`page-10-year-adoption-card-${index + 1}-title`)} +

+

+ +

- {card.linkText} + {t(`page-10-year-adoption-card-${index + 1}-link-text`)}
))} @@ -321,19 +323,19 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {

- 10 years of - Stories + + {t("page-10-year-stories-title")} + + + {t("page-10-year-stories-subtitle")} +

- An overview of how Ethereum is used in daily life -

-

- From millions of wallets to every corner of the world, people - use Ethereum in ways that inspire. These real stories showcase - creativity, freedom, and connection powered by Ethereum. + {t("page-10-year-stories-description-1")}

+

{t("page-10-year-stories-description-2")}

- Share your story + {t("page-10-year-stories-cta")}
@@ -347,13 +349,10 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { alt="10 year anniversary logo" className="mb-8 max-h-80 object-contain sm:mb-12" /> -

Have an idea for how the community can celebrate?

-

- Onchain artifacts, a worldwide game of Ethereum trivia, the - sky's the limit! Reach out with your idea below. -

+

{t("page-10-year-ideas-title")}

+

{t("page-10-year-ideas-description")}

- Submit your Idea + {t("page-10-year-ideas-cta")}
diff --git a/app/[locale]/[...slug]/page.tsx b/app/[locale]/[...slug]/page.tsx index c6256fe831c..38c6a49cbb5 100644 --- a/app/[locale]/[...slug]/page.tsx +++ b/app/[locale]/[...slug]/page.tsx @@ -1,6 +1,12 @@ import { pick } from "lodash" import { notFound } from "next/navigation" -import { getMessages, setRequestLocale } from "next-intl/server" +import { + getMessages, + getTranslations, + setRequestLocale, +} from "next-intl/server" + +import { SlugPageParams } from "@/lib/types" import I18nProvider from "@/components/I18nProvider" import mdComponents from "@/components/MdComponents" @@ -8,7 +14,7 @@ import mdComponents from "@/components/MdComponents" import { dataLoader } from "@/lib/utils/data/dataLoader" import { dateToString } from "@/lib/utils/date" import { getLayoutFromSlug } from "@/lib/utils/layout" -import { getPostSlugs } from "@/lib/utils/md" +import { checkPathValidity, getPostSlugs } from "@/lib/utils/md" import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import { LOCALES_CODES } from "@/lib/constants" @@ -23,20 +29,15 @@ const loadData = dataLoader([["gfissues", fetchGFIs]]) export default async function Page({ params, }: { - params: Promise<{ locale: string; slug: string[] }> + params: Promise }) { const { locale, slug: slugArray } = await params // Check if this specific path is in our valid paths const validPaths = await generateStaticParams() - const isValidPath = validPaths.some( - (path) => - path.locale === locale && path.slug.join("/") === slugArray.join("/") - ) + const isValidPath = checkPathValidity(validPaths, await params) - if (!isValidPath) { - notFound() - } + if (!isValidPath) notFound() // Enable static rendering setRequestLocale(locale) @@ -97,27 +98,45 @@ export default async function Page({ } export async function generateStaticParams() { - const slugs = await getPostSlugs("/") - - return LOCALES_CODES.flatMap((locale) => - slugs.map((slug) => ({ - slug: slug.split("/").slice(1), - locale, - })) - ) + try { + const slugs = await getPostSlugs("/") + + return LOCALES_CODES.flatMap((locale) => + slugs.map((slug) => ({ + slug: slug.split("/").slice(1), + locale, + })) + ) + } catch (error) { + // If content directory doesn't exist (e.g., in Netlify serverless environment), + // return empty array to allow ISR to handle all routes dynamically + console.warn( + "Content directory not found, enabling full dynamic routing:", + error + ) + return [] + } } -export const dynamicParams = false - export async function generateMetadata({ params, }: { - params: Promise<{ locale: string; slug: string[] }> + params: Promise }) { const { locale, slug } = await params - return await getMdMetadata({ - locale, - slug, - }) + try { + return await getMdMetadata({ + locale, + slug, + }) + } catch (error) { + const t = await getTranslations({ locale, namespace: "common" }) + + // Return basic metadata for invalid paths + return { + title: t("page-not-found"), + description: t("page-not-found-description"), + } + } } diff --git a/app/[locale]/_components/home.tsx b/app/[locale]/_components/home.tsx deleted file mode 100644 index db09497a328..00000000000 --- a/app/[locale]/_components/home.tsx +++ /dev/null @@ -1,834 +0,0 @@ -"use client" - -import { Fragment, lazy, Suspense } from "react" -import { FaDiscord, FaGithub } from "react-icons/fa6" -import { IoMdCopy } from "react-icons/io" -import { MdCheck } from "react-icons/md" - -import type { - AllMetricData, - BasePageProps, - CommunityBlog, - RSSItem, -} from "@/lib/types" -import { CommunityEvent } from "@/lib/interfaces" - -import BannerNotification from "@/components/Banners/BannerNotification" -import { ChevronNext } from "@/components/Chevron" -import CodeModal from "@/components/CodeModal" -import HomeHero from "@/components/Hero/HomeHero" -import BentoCard from "@/components/Homepage/BentoCard" -import { useHome } from "@/components/Homepage/useHome" -import ValuesMarquee from "@/components/Homepage/ValuesMarquee" -import AngleBrackets from "@/components/icons/angle-brackets.svg" -import Calendar from "@/components/icons/calendar.svg" -import CalendarAdd from "@/components/icons/calendar-add.svg" -import { Image } from "@/components/Image" -import MainArticle from "@/components/MainArticle" -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from "@/components/ui/accordion" -import { Button, ButtonLink } from "@/components/ui/buttons/Button" -import SvgButtonLink, { - type SvgButtonLinkProps, -} from "@/components/ui/buttons/SvgButtonLink" -import { - Card, - CardBanner, - CardContent, - CardHighlight, - CardSubTitle, - CardTitle, -} from "@/components/ui/card" -import Link from "@/components/ui/Link" -import { - Section, - SectionBanner, - SectionContent, - SectionHeader, - SectionTag, -} from "@/components/ui/section" -import { SkeletonLines } from "@/components/ui/skeleton" -import { - Swiper, - SwiperContainer, - SwiperNavigation, - SwiperSlide, -} from "@/components/ui/swiper" -import WindowBox from "@/components/WindowBox" - -import { cn } from "@/lib/utils/cn" -import { isValidDate } from "@/lib/utils/date" -import { trackCustomEvent } from "@/lib/utils/matomo" -import { breakpointAsNumber } from "@/lib/utils/screen" - -import { GITHUB_REPO_URL } from "@/lib/constants" - -import TenYearHomeBanner from "../10years/_components/TenYearHomeBanner" - -import { useClipboard } from "@/hooks/useClipboard" -import EventFallback from "@/public/images/events/event-placeholder.png" -import BuildersImage from "@/public/images/heroes/developers-hub-hero.jpg" -import ActivityImage from "@/public/images/heroes/layer-2-hub-hero.jpg" -import LearnImage from "@/public/images/heroes/learn-hub-hero.png" -import CommunityImage from "@/public/images/heroes/quizzes-hub-hero.png" -import Hero from "@/public/images/home/hero.png" - -// lazy loaded components -const Codeblock = lazy(() => - Promise.all([ - import("@/components/Codeblock"), - // Add a delay to prevent the skeleton from flashing - new Promise((resolve) => setTimeout(resolve, 1000)), - ]).then(([module]) => module) -) - -const StatsBoxGrid = lazy(() => import("@/components/StatsBoxGrid")) - -type Props = BasePageProps & { - calendar: CommunityEvent[] - metricResults: AllMetricData - rssData: { rssItems: RSSItem[]; blogLinks: CommunityBlog[] } -} - -const HomePage = ({ - calendar, - metricResults, - rssData: { rssItems, blogLinks }, -}: Props) => { - const { - t, - locale, - dir, - isModalOpen, - setModalOpen, - activeCode, - toggleCodeExample, - codeExamples, - subHeroCTAs, - popularTopics, - upcomingEvents, - joinActions, - bentoItems, - eventCategory, - } = useHome() - - const { onCopy, hasCopied } = useClipboard() - - return ( - - -

- 10 years of Ethereum! -{" "} - - Join us to celebrate 10 years of Ethereum! - -

-
- -
-
- {subHeroCTAs.map( - ({ label, description, href, className, Svg }, idx) => { - const Link = ( - props: Omit< - SvgButtonLinkProps, - "Svg" | "href" | "label" | "children" - > - ) => ( - -

{description}

-
- ) - return ( - - - - - ) - } - )} -
- - {/* Use Cases - A new way to use the internet */} -
-
-
- {t("common:nav-use-cases-label")} -
-

- {t("page-index:page-index-bento-header")} -

-
- - {/* Mobile */} - - { - trackCustomEvent({ - eventCategory, - eventAction: "mobile use cases", - eventName: `swipe to card ${activeIndex + 1}`, - }) - }} - > - {bentoItems.map(({ className, ...item }) => ( - - - - ))} - - - - {/* Desktop */} - {bentoItems.map(({ className, ...item }) => ( - - ))} -
- - {/* Activity - The strongest ecosystem */} -
- - - - - - {t("page-index:page-index-activity-tag")} - - {t("page-index:page-index-activity-header")} - -
-

- {t("page-index:page-index-activity-description")} -

- }> - - - {/* className="mt-12 mx-auto" */} - -
- - {t("page-index:page-index-activity-action")} - -
-
-
-
- - {/* Learn - Understand Ethereum */} -
- - - - - - {t("page-index:page-index-learn-tag")} - - {t("page-index:page-index-learn-header")} - -
-

- {t("page-index:page-index-learn-description")} -

-
-

- {t("page-index:page-index-popular-topics-header")} -

-
- {popularTopics.map( - ({ label, Svg, href, eventName, className }) => ( - :first-child]:flex-row", - className - )} - customEventOptions={{ - eventCategory, - eventAction: "popular topics", - eventName, - }} - > -

- {label} -

-
- ) - )} -
-
- - {t("page-index:page-index-popular-topics-action")}{" "} - - -
-
-
{" "} -
-
- - {/* Values - The Internet Is Changing */} - - - {/* Builders - Blockchain's biggest builder community */} -
- - - - - - {t("page-index:page-index-builders-tag")} - - {t("page-index:page-index-builders-header")} - -

- {t("page-index:page-index-builders-description")} -

-
- - {t("page-index:page-index-builders-action-primary")}{" "} - - - - {t("page-index:page-index-builders-action-secondary")} - -
-
- - {/* Desktop */} - {codeExamples.map(({ title, description, eventName }, idx) => ( - - ))} - {/* Mobile */} - - {codeExamples.map( - ({ title, description, code, codeLanguage }) => ( - - -
-

- {title} -

-

- {description} -

-
-
- - }> -
- - {code} - - -
-
-
-
- ) - )} -
-
- {isModalOpen && ( - - } - > - - {codeExamples[activeCode].code} - - - - )} -
-
-
- - {/* Ethereum.org community - Built by the community */} -
- - - - - - {t("page-index:page-index-community-tag")} - - {t("page-index:page-index-community-header")} - -
-

{t("page-index:page-index-community-description-1")}

-

{t("page-index:page-index-community-description-2")}

-

{t("page-index:page-index-community-description-3")}

-
-
- - {t("page-index:page-index-community-action")} - -
- - - - - - -
-
-
- - {calendar.length > 0 ? ( - calendar.map(({ date, title, calendarLink }) => { - const customEventOptions = { - eventCategory, - eventAction: "Community Events Widget", - eventName: "upcoming", - } - return ( -
-
- - {title} - -

- {new Intl.DateTimeFormat(locale, { - month: "long", - day: "2-digit", - year: "numeric", - hour: "numeric", - minute: "numeric", - }).format(new Date(date))} -

-
- - {" "} - {t("page-index:page-index-calendar-add")} - -
- ) - }) - ) : ( -
- {t("page-index:page-index-calendar-fallback")} -
- )} -
-
-
-
- -
- -
- - {/* Recent posts */} -
-

- {t("page-index:page-index-posts-header")} -

-

{t("page-index:page-index-posts-subtitle")}

- - - - {rssItems.map(({ pubDate, title, source, link, imgSrc }) => ( - - - - {/* eslint-disable-next-line @next/next/no-img-element */} - { - e.currentTarget.onerror = null - e.currentTarget.src = EventFallback.src - }} - referrerPolicy="no-referrer" - crossOrigin="anonymous" - /> - - - {title} - {isValidDate(pubDate) && ( - - {new Intl.DateTimeFormat(locale, { - month: "long", - day: "numeric", - year: "numeric", - }).format(new Date(pubDate))} - - )} - {source} - - - - ))} - - - - -
-

{t("page-index:page-index-posts-action")}

-
- {blogLinks.map(({ name, href }) => ( - - {name} - - ))} -
-
-
- - {/* Events */} -
-

- {t("page-index:page-index-events-header")} -

-

{t("page-index:page-index-events-subtitle")}

-
-
- {upcomingEvents.map( - ( - { - title, - href, - location, - description, - startDate, - endDate, - imageUrl, - }, - idx - ) => ( - - - {imageUrl ? ( - // eslint-disable-next-line @next/next/no-img-element - { - e.currentTarget.onerror = null - e.currentTarget.src = EventFallback.src - }} - className="max-w-full object-cover object-center" - loading="lazy" - referrerPolicy="no-referrer" - crossOrigin="anonymous" - /> - ) : ( - - )} - - - {title} - - {(isValidDate(startDate) || isValidDate(endDate)) && - new Intl.DateTimeFormat(locale, { - month: "long", - day: "numeric", - year: "numeric", - }).formatRange( - new Date( - isValidDate(startDate) ? startDate : endDate - ), - new Date(isValidDate(endDate) ? endDate : startDate) - )} - - {location} - - - ) - )} -
-
-
- - {t("page-index:page-index-events-action")} - -
-
- - {/* Join ethereum.org */} -
-
-
-

{t("page-index:page-index-join-header")}

-

{t("page-index:page-index-join-description")}

-
-
- {joinActions.map( - ({ Svg, label, href, className, description, eventName }) => ( - -

{description}

-
- ) - )} -
-
-
-
-
- ) -} - -export default HomePage diff --git a/app/[locale]/developers/_components/developers.tsx b/app/[locale]/developers/_components/developers.tsx deleted file mode 100644 index 6c28913a415..00000000000 --- a/app/[locale]/developers/_components/developers.tsx +++ /dev/null @@ -1,475 +0,0 @@ -"use client" - -import { HTMLAttributes, ReactNode } from "react" - -import { ChildOnlyProp } from "@/lib/types" - -import Callout from "@/components/Callout" -import Card, { CardProps } from "@/components/Card" -import FeedbackCard from "@/components/FeedbackCard" -import HubHero from "@/components/Hero/HubHero" -import { Image } from "@/components/Image" -import MainArticle from "@/components/MainArticle" -import Translation from "@/components/Translation" -import { ButtonLink } from "@/components/ui/buttons/Button" -import { Flex, Stack, VStack } from "@/components/ui/flex" -import InlineLink from "@/components/ui/Link" - -import { cn } from "@/lib/utils/cn" - -import { useTranslation } from "@/hooks/useTranslation" -import SpeedRunEthereumImage from "@/public/images/dev-tools/speed-run-ethereum-banner.png" -import DevelopersImage from "@/public/images/developers-eth-blocks.png" -import DogeImage from "@/public/images/doge-computer.png" -import HeroImage from "@/public/images/heroes/developers-hub-hero.jpg" - -const Page = (props: ChildOnlyProp) => ( - -) - -const GrayContainer = (props: ChildOnlyProp) => ( -
-) - -const Content = (props: ChildOnlyProp) => ( - -) - -const Subtitle = ({ - className, - ...props -}: HTMLAttributes) => ( -

-) - -const MonoSubtitle = (props: ChildOnlyProp) => ( -

-) - -const H2 = (props: ChildOnlyProp) =>

- -const H3 = (props: ChildOnlyProp) =>

- -const Text = (props: ChildOnlyProp) =>

- -const StyledCardContainer = (props: ChildOnlyProp) => ( -

-) - -const TwoColumnContent = (props: ChildOnlyProp) => ( - -) - -const ThreeColumnContent = (props: ChildOnlyProp) => ( - -) - -const Column = (props: ChildOnlyProp) => ( -
-) -const RightColumn = (props: ChildOnlyProp) => ( -
-) -const IntroColumn = (props: ChildOnlyProp) => ( -
-) - -const StyledCard = (props: CardProps) => { - return ( - - ) -} - -const SpeedRunEthereumBanner = ({ - title, - linkLabel, -}: { - title: string - linkLabel: string -}) => ( -
- SpeedRunEthereum banner - -

{title}

- {linkLabel} -
-
-) - -interface IDevelopersPath { - emoji: string - title: ReactNode - description: ReactNode - url: string - button: ReactNode -} - -const paths: Array = [ - { - emoji: ":woman_student:", - title: , - description: ( - - ), - url: "/developers/docs/", - button: ( - - ), - }, - { - emoji: ":woman_teacher:", - title: ( - - ), - description: ( - - ), - url: "/developers/tutorials/", - button: ( - - ), - }, - { - emoji: ":woman_scientist:", - title: , - description: ( - - ), - url: "/developers/learning-tools/", - button: ( - - ), - }, - { - emoji: ":construction_worker:", - title: , - description: ( - - ), - url: "/developers/local-environment/", - button: ( - - ), - }, -] - -const DevelopersPage = () => { - const { t } = useTranslation("page-developers-index") - - return ( - - - - - - - - {paths.map((path, idx) => ( - - {path.button} - - ))} - - - - -

- -

- - - - - - - - {" "} - - - - -
- -
- - - -
-
-
-
- - -

- -

-
- - - -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {t("page-assets-doge")} -
- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- -
- ) -} - -export default DevelopersPage diff --git a/app/[locale]/developers/page.tsx b/app/[locale]/developers/page.tsx index 25335f19fed..25203069135 100644 --- a/app/[locale]/developers/page.tsx +++ b/app/[locale]/developers/page.tsx @@ -1,33 +1,390 @@ -import { pick } from "lodash" -import { - getMessages, - getTranslations, - setRequestLocale, -} from "next-intl/server" +import { ReactNode } from "react" +import { getTranslations } from "next-intl/server" import { Lang } from "@/lib/types" +import { ChildOnlyProp } from "@/lib/types" -import I18nProvider from "@/components/I18nProvider" +import CalloutSSR from "@/components/CalloutSSR" +import OldCard from "@/components/Card" +import { CopyButton } from "@/components/CopyToClipboard" +import FeedbackCard from "@/components/FeedbackCard" +import HubHero from "@/components/Hero/HubHero" +import { Image } from "@/components/Image" +import MainArticle from "@/components/MainArticle" +import { ButtonLink } from "@/components/ui/buttons/Button" +import { Card } from "@/components/ui/card" +import { VStack } from "@/components/ui/flex" +import Link from "@/components/ui/Link" +import InlineLink from "@/components/ui/Link" import { getMetadata } from "@/lib/utils/metadata" -import { getRequiredNamespacesForPage } from "@/lib/utils/translations" -import Developers from "./_components/developers" +import SpeedRunEthereumImage from "@/public/images/dev-tools/speed-run-ethereum-banner.png" +import DevelopersImage from "@/public/images/developers-eth-blocks.png" +import DogeImage from "@/public/images/doge-computer.png" +import HeroImage from "@/public/images/heroes/developers-hub-hero.jpg" -const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { - const { locale } = await params +const H2 = (props: ChildOnlyProp) =>

+ +const H3 = (props: ChildOnlyProp) =>

+ +const Text = (props: ChildOnlyProp) =>

- setRequestLocale(locale) +const Column = (props: ChildOnlyProp) => ( +

+) +const RightColumn = (props: ChildOnlyProp) => ( +
+) +const IntroColumn = (props: ChildOnlyProp) => ( +
+) + +type DevelopersPath = { + emoji: string + title: ReactNode + description: ReactNode + url: string + button: ReactNode +} + +const DevelopersPage = async ({ + params, +}: { + params: Promise<{ locale: Lang }> +}) => { + const { locale } = await params + const t = await getTranslations({ + locale, + namespace: "page-developers-index", + }) + const tCommon = await getTranslations({ + locale, + namespace: "common", + }) - // Get i18n messages - const allMessages = await getMessages({ locale }) - const requiredNamespaces = getRequiredNamespacesForPage("/developers") - const messages = pick(allMessages, requiredNamespaces) + const paths: DevelopersPath[] = [ + { + emoji: ":woman_student:", + title: t("page-developers-learn"), + description: t("page-developers-learn-desc"), + url: "/developers/docs/", + button: t("page-developers-read-docs"), + }, + { + emoji: ":woman_teacher:", + title: t("page-developers-learn-tutorials"), + description: t("page-developers-learn-tutorials-desc"), + url: "/developers/tutorials/", + button: t("page-developers-learn-tutorials-cta"), + }, + { + emoji: ":woman_scientist:", + title: t("page-developers-resources"), + description: t("page-developers-start-desc"), + url: "/developers/learning-tools/", + button: t("page-developers-play-code"), + }, + { + emoji: ":construction_worker:", + title: t("page-developers-set-up"), + description: t("page-developers-setup-desc"), + url: "/developers/local-environment/", + button: t("page-developers-choose-stack"), + }, + ] return ( - - - + + + + +

{t("page-developers-get-started")}

+ +
+
+ SpeedRunEthereum banner +
+

{t("page-developers-start")}

+

{t("page-developers-speedrunethereum-description")}

+ + {t("page-developers-speedrunethereum-link")} + +
+
+ + +

{t("page-developers-jump-right-in-title")}

+
+
+

Scaffold-ETH 2

+

+ {t("page-developers-quickstart-scaffold-subtext")}{" "} + + {t("page-developers-quickstart-scaffold-docs")} + +

+
+ + npx create-eth@latest + + +
+
+
+ +
+

Need to learn the language?

+ + {t("page-developers-solidity-docs")} + +
+
+
+ +
+ {paths.map((path, idx) => ( + + {path.button} + + ))} +
+ +
+ +

{t("page-developers-about")}

+

+ {t("page-developers-about-desc")} +

+ {t("page-developers-about-desc-2")} + + {t("page-developers-feedback")}{" "} + + {t("page-developers-discord")} + + +
+ +
+ + {t("page-developers-contribute")} + +
+
+
+
+ +
+
+

{t("page-developers-explore-documentation")}

+
+ +
+ +

{t("page-developers-docs-introductions")}

+ + {t("page-developers-intro-eth-link")} + + {t("page-developers-into-eth-desc")} + + + {t("page-developers-intro-ether-link")} + + {t("page-developers-intro-ether-desc")} + + + {t("page-developers-intro-dapps-link")} + + {t("page-developers-intro-dapps-desc")} + + + {t("page-developers-intro-stack")} + + {t("page-developers-intro-stack-desc")} + + + {t("page-developers-web3-link")} + + {t("page-developers-web3-desc")} + + + {t("page-developers-languages")} + + {t("page-developers-language-desc")} + {t("page-assets-doge")} +
+ +

{t("page-developers-fundamentals")}

+ + {t("page-developers-accounts-link")} + + {t("page-developers-account-desc")} + + + {t("page-developers-transactions-link")} + + {t("page-developers-transactions-desc")} + + + {t("page-developers-blocks-link")} + + {t("page-developers-block-desc")} + + + {t("page-developers-evm-link")} + + {t("page-developers-evm-desc")} + + + {t("page-developers-gas-link")} + + {t("page-developers-gas-desc")} + + + {t("page-developers-node-clients-link")} + + {t("page-developers-node-clients-desc")} + + + {t("page-developers-networks-link")} + + {t("page-developers-networks-desc")} + + + {t("page-developers-mining-link")} + + {t("page-developers-mining-desc")} + + + {t("page-developers-mining-algorithms-link")} + + {t("page-developers-mining-algorithms-desc")} +
+ +

{t("page-developers-stack")}

+ + {t("page-developers-smart-contracts-link")} + + {t("page-developers-smart-contracts-desc")} + + {t("page-developers-frameworks-link")} + + {t("page-developers-frameworks-desc")} + + {t("page-developers-js-libraries-link")} + + {t("page-developers-js-libraries-desc")} + + {t("page-developers-api-link")} + + {t("page-developers-api-desc")} + + {t("page-developers-block-explorers-link")} + + {t("page-developers-block-explorers-desc")} + + {t("page-developers-smart-contract-security-link")} + + {t("page-developers-smart-contract-security-desc")} + + {t("page-developers-storage-link")} + + {t("page-developers-storage-desc")} + + {t("page-developers-dev-env-link")} + + {t("page-developers-dev-env-desc")} +

{t("page-developers-advanced")}

+ + {t("page-developers-token-standards-link")} + + {t("page-developers-token-standards-desc")} + + {t("page-developers-mev-link")} + + {t("page-developers-mev-desc")} + + {t("page-developers-oracles-link")} + + {t("page-developers-oracle-desc")} + + {t("page-developers-scaling-link")} + + {t("page-developers-scaling-desc")} + + {t("page-developers-networking-layer-link")} + + {t("page-developers-networking-layer-desc")} + + {t("page-developers-data-structures-and-encoding-link")} + + + {t("page-developers-data-structures-and-encoding-desc")} + +
+
+
+ +
) } @@ -51,4 +408,4 @@ export async function generateMetadata({ }) } -export default Page +export default DevelopersPage diff --git a/app/[locale]/error.tsx b/app/[locale]/error.tsx index 639c15642f3..6f431803fd3 100644 --- a/app/[locale]/error.tsx +++ b/app/[locale]/error.tsx @@ -1,32 +1,54 @@ "use client" -import { useEffect } from "react" +import { useEffect, useState } from "react" +import RefreshCW from "@/components/icons/refresh-cw.svg" import MainArticle from "@/components/MainArticle" import Translation from "@/components/Translation" +import { Button } from "@/components/ui/buttons/Button" import { BaseLink } from "@/components/ui/Link" +import { cn } from "@/lib/utils/cn" + export default function Error({ error }: { error: Error; reset: () => void }) { + const [refreshing, setRefreshing] = useState(false) + const handleRefresh = () => { + setRefreshing(true) + window.location.reload() + } + + useEffect(() => { + // Scroll view to top on error + window.scrollTo(0, 0) + }, []) + useEffect(() => { // TODO: log the error to an error reporting service console.error(error) }, [error]) return ( -
- -

- -

-

- -

-

- - - -

-
-
+ +

+ +

+

+ +

+ + + + + + +
) } diff --git a/app/[locale]/layer-2/_components/layer-2.tsx b/app/[locale]/layer-2/_components/layer-2.tsx index 6bbe9a0d517..7216a7c88db 100644 --- a/app/[locale]/layer-2/_components/layer-2.tsx +++ b/app/[locale]/layer-2/_components/layer-2.tsx @@ -2,7 +2,7 @@ import type { GrowThePieData, Lang } from "@/lib/types" -import Callout from "@/components/Callout" +import CalloutSSR from "@/components/CalloutSSR" import Card from "@/components/Card" import ExpandableCard from "@/components/ExpandableCard" import HubHero, { HubHeroProps } from "@/components/Hero/HubHero" @@ -465,7 +465,7 @@ const Layer2Hub = ({ id="layer-2-callout-cards" className="flex w-full flex-col px-8 py-8 md:flex-row" > -
- - +
- +
) diff --git a/app/[locale]/layer-2/learn/_components/learn.tsx b/app/[locale]/layer-2/learn/_components/learn.tsx index fca0ae52ce7..76f0bbcaf2c 100644 --- a/app/[locale]/layer-2/learn/_components/learn.tsx +++ b/app/[locale]/layer-2/learn/_components/learn.tsx @@ -2,7 +2,7 @@ import { PageWithContributorsProps } from "@/lib/types" -import Callout from "@/components/Callout" +import CalloutSSR from "@/components/CalloutSSR" import Card from "@/components/Card" import FileContributors from "@/components/FileContributors" import { ContentHero, type ContentHeroProps } from "@/components/Hero" @@ -289,7 +289,7 @@ const Layer2Learn = ({
-
- - +
- +

diff --git a/app/[locale]/layer-2/networks/_components/networks.tsx b/app/[locale]/layer-2/networks/_components/networks.tsx index 8bb38fe63e8..0299dd1fea7 100644 --- a/app/[locale]/layer-2/networks/_components/networks.tsx +++ b/app/[locale]/layer-2/networks/_components/networks.tsx @@ -1,6 +1,6 @@ "use client" -import Callout from "@/components/Callout" +import CalloutSSR from "@/components/CalloutSSR" import { ContentHero, ContentHeroProps } from "@/components/Hero" import Layer2NetworksTable from "@/components/Layer2NetworksTable" import MainArticle from "@/components/MainArticle" @@ -63,7 +63,7 @@ const Layer2Networks = ({ layer2Data, locale, mainnetData }) => { id="callout-cards" className="flex w-full flex-col px-8 py-9 lg:flex-row lg:gap-16" > - { {t("common:learn-more")}
- - + { {t("common:learn-more")}
- +

) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 96571bfb9b2..26dfd6cf9cd 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -1,33 +1,87 @@ -import { pick } from "lodash" -import { - getMessages, - getTranslations, - setRequestLocale, -} from "next-intl/server" +import { Fragment } from "react" +import dynamic from "next/dynamic" +import { notFound } from "next/navigation" +import { getTranslations, setRequestLocale } from "next-intl/server" +import { FaDiscord, FaGithub } from "react-icons/fa6" +import { FaXTwitter } from "react-icons/fa6" -import type { AllMetricData, CommunityBlog, Lang } from "@/lib/types" +import type { AllMetricData, CommunityBlog, ValuesPairing } from "@/lib/types" +import type { EventCardProps } from "@/lib/types" +import type { Lang } from "@/lib/types" +import { CodeExample } from "@/lib/interfaces" -import I18nProvider from "@/components/I18nProvider" +import ActivityStats from "@/components/ActivityStats" +import { getActivity } from "@/components/ActivityStats/getActivity" +import BannerNotification from "@/components/Banners/BannerNotification" +import { ChevronNext } from "@/components/Chevron" +import HomeHero from "@/components/Hero/HomeHero" +import BentoCard from "@/components/Homepage/BentoCard" +import CodeExamples from "@/components/Homepage/CodeExamples" +import { getBentoBoxItems } from "@/components/Homepage/utils" +import ValuesMarqueeFallback from "@/components/Homepage/ValuesMarquee/Fallback" +import BlockHeap from "@/components/icons/block-heap.svg" +import BuildAppsIcon from "@/components/icons/build-apps.svg" +import Calendar from "@/components/icons/calendar.svg" +import CalendarAdd from "@/components/icons/calendar-add.svg" +import EthGlyphIcon from "@/components/icons/eth-glyph.svg" +import EthTokenIcon from "@/components/icons/eth-token.svg" +import PickWalletIcon from "@/components/icons/eth-wallet.svg" +import TryAppsIcon from "@/components/icons/phone-homescreen.svg" +import RoadmapSign from "@/components/icons/roadmap-sign.svg" +import Whitepaper from "@/components/icons/whitepaper.svg" +import { Image } from "@/components/Image" +import CardImage from "@/components/Image/CardImage" +import MainArticle from "@/components/MainArticle" +import { ButtonLink } from "@/components/ui/buttons/Button" +import SvgButtonLink, { + type SvgButtonLinkProps, +} from "@/components/ui/buttons/SvgButtonLink" +import { + Card, + CardBanner, + CardContent, + CardHighlight, + CardSubTitle, + CardTitle, +} from "@/components/ui/card" +import Link from "@/components/ui/Link" +import { + Section, + SectionBanner, + SectionContent, + SectionHeader, + SectionTag, +} from "@/components/ui/section" +import { Skeleton, SkeletonCardGrid } from "@/components/ui/skeleton" +import WindowBox from "@/components/WindowBox" +import { cn } from "@/lib/utils/cn" import { dataLoader } from "@/lib/utils/data/dataLoader" import { isValidDate } from "@/lib/utils/date" -import { existsNamespace } from "@/lib/utils/existsNamespace" -import { getLastDeployDate } from "@/lib/utils/getLastDeployDate" +import { getDirection } from "@/lib/utils/direction" import { getMetadata } from "@/lib/utils/metadata" import { polishRSSList } from "@/lib/utils/rss" -import { getLocaleTimestamp } from "@/lib/utils/time" -import { getRequiredNamespacesForPage } from "@/lib/utils/translations" + +import events from "@/data/community-events.json" +import CreateWalletContent from "@/data/CreateWallet" import { + ATTESTANT_BLOG, BASE_TIME_UNIT, BLOG_FEEDS, BLOGS_WITHOUT_FEED, CALENDAR_DISPLAY_COUNT, + DEFAULT_LOCALE, + GITHUB_REPO_URL, + LOCALES_CODES, RSS_DISPLAY_COUNT, } from "@/lib/constants" -import HomePage from "./_components/home" +import TenYearHomeBanner from "./10years/_components/TenYearHomeBanner" +import SimpleDomainRegistryContent from "!!raw-loader!@/data/SimpleDomainRegistry.sol" +import SimpleTokenContent from "!!raw-loader!@/data/SimpleToken.sol" +import SimpleWalletContent from "!!raw-loader!@/data/SimpleWallet.sol" import { routing } from "@/i18n/routing" import { fetchCommunityEvents } from "@/lib/api/calendarEvents" import { fetchEthPrice } from "@/lib/api/fetchEthPrice" @@ -36,10 +90,50 @@ import { fetchAttestantPosts } from "@/lib/api/fetchPosts" import { fetchRSS } from "@/lib/api/fetchRSS" import { fetchTotalEthStaked } from "@/lib/api/fetchTotalEthStaked" import { fetchTotalValueLocked } from "@/lib/api/fetchTotalValueLocked" +import EventFallback from "@/public/images/events/event-placeholder.png" +import BuildersImage from "@/public/images/heroes/developers-hub-hero.jpg" +import ActivityImage from "@/public/images/heroes/layer-2-hub-hero.jpg" +import LearnImage from "@/public/images/heroes/learn-hub-hero.png" +import CommunityImage from "@/public/images/heroes/quizzes-hub-hero.png" +import Hero from "@/public/images/home/hero.png" + +const BentoCardSwiper = dynamic( + () => import("@/components/Homepage/BentoCardSwiper"), + { + ssr: false, + loading: () => ( +
+ + +
+ ), + } +) + +const RecentPostsSwiper = dynamic( + () => import("@/components/Homepage/RecentPostsSwiper"), + { + ssr: false, + loading: () => ( +
+ + +
+ ), + } +) + +const ValuesMarquee = dynamic( + () => import("@/components/Homepage/ValuesMarquee"), + { + ssr: false, + loading: () => , + } +) -// API calls const fetchXmlBlogFeeds = async () => { - return await fetchRSS(BLOG_FEEDS) + const xmlUrls = BLOG_FEEDS.filter((feed) => ![ATTESTANT_BLOG].includes(feed)) + return await fetchRSS(xmlUrls) } // In seconds @@ -61,7 +155,12 @@ const loadData = dataLoader( const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { const { locale } = await params + if (!LOCALES_CODES.includes(locale)) return notFound() + setRequestLocale(locale) + const t = await getTranslations({ locale, namespace: "page-index" }) + const tCommon = await getTranslations({ locale, namespace: "common" }) + const { direction: dir, isRtl } = getDirection(locale) const [ ethPrice, @@ -73,6 +172,244 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { xmlBlogs, ] = await loadData() + const bentoItems = await getBentoBoxItems(locale) + + const eventCategory = `Homepage - ${locale}` + + const subHeroCTAs = [ + { + label: t("page-index-cta-wallet-label"), + description: t("page-index-cta-wallet-description"), + href: "/wallets/find-wallet/", + Svg: PickWalletIcon, + className: "text-primary hover:text-primary-hover", + eventName: "find wallet", + }, + { + label: t("page-index-cta-get-eth-label"), + description: t("page-index-cta-get-eth-description"), + href: "/get-eth/", + Svg: EthTokenIcon, + className: "text-accent-a hover:text-accent-a-hover", + eventName: "get eth", + }, + { + label: t("page-index-cta-dapps-label"), + description: t("page-index-cta-dapps-description"), + href: "/dapps/", + Svg: TryAppsIcon, + className: cn( + "text-accent-c hover:text-accent-c-hover", + isRtl && "[&_svg]:-scale-x-100" + ), + eventName: "dapps", + }, + { + label: t("page-index-cta-build-apps-label"), + description: t("page-index-cta-build-apps-description"), + href: "/developers/", + Svg: BuildAppsIcon, + className: "text-accent-b hover:text-accent-b-hover", + eventName: "build apps", + }, + ] + + const popularTopics = [ + { + label: t("page-index-popular-topics-ethereum"), + Svg: EthTokenIcon, + href: "/what-is-ethereum/", + eventName: "ethereum", + }, + { + label: t("page-index-popular-topics-wallets"), + Svg: PickWalletIcon, + href: "/wallets/", + eventName: "wallets", + }, + { + label: t("page-index-popular-topics-start"), + Svg: BlockHeap, + href: "/guides/", + eventName: "start guides", + }, + { + label: t("page-index-popular-topics-whitepaper"), + Svg: Whitepaper, + className: cn(isRtl && "[&_div_div:has(svg)]:-scale-x-100"), + href: "/whitepaper/", + eventName: "whitepaper", + }, + { + label: t("page-index-popular-topics-roadmap"), + Svg: RoadmapSign, + className: cn(isRtl && "[&_div_div:has(svg)]:-scale-x-100 "), + href: "/roadmap/", + eventName: "roadmap", + }, + ] + + const valuesPairings: ValuesPairing[] = [ + { + legacy: { + label: t("page-index-values-ownership-legacy-label"), + content: [ + t("page-index-values-ownership-legacy-content-0"), + t("page-index-values-ownership-legacy-content-1"), + ], + }, + ethereum: { + label: t("page-index-values-ownership-ethereum-label"), + content: [t("page-index-values-ownership-ethereum-content-0")], + }, + }, + { + legacy: { + label: t("page-index-values-fairness-legacy-label"), + content: [t("page-index-values-fairness-legacy-content-0")], + }, + ethereum: { + label: t("page-index-values-fairness-ethereum-label"), + content: [t("page-index-values-fairness-ethereum-content-0")], + }, + }, + { + legacy: { + label: t("page-index-values-privacy-legacy-label"), + content: [ + t("page-index-values-privacy-legacy-content-0"), + t("page-index-values-privacy-legacy-content-1"), + ], + }, + ethereum: { + label: t("page-index-values-privacy-ethereum-label"), + content: [t("page-index-values-privacy-ethereum-content-0")], + }, + }, + { + legacy: { + label: t("page-index-values-integration-legacy-label"), + content: [t("page-index-values-integration-legacy-content-0")], + }, + ethereum: { + label: t("page-index-values-integration-ethereum-label"), + content: [t("page-index-values-integration-ethereum-content-0")], + }, + }, + { + legacy: { + label: t("page-index-values-decentralization-legacy-label"), + content: [t("page-index-values-decentralization-legacy-content-0")], + }, + ethereum: { + label: t("page-index-values-decentralization-ethereum-label"), + content: [t("page-index-values-decentralization-ethereum-content-0")], + }, + }, + { + legacy: { + label: t("page-index-values-censorship-legacy-label"), + content: [t("page-index-values-censorship-legacy-content-0")], + }, + ethereum: { + label: t("page-index-values-censorship-ethereum-label"), + content: [ + t("page-index-values-censorship-ethereum-content-0"), + t("page-index-values-censorship-ethereum-content-1"), + ], + }, + }, + { + legacy: { + label: t("page-index-values-open-legacy-label"), + content: [t("page-index-values-open-legacy-content-0")], + }, + ethereum: { + label: t("page-index-values-open-ethereum-label"), + content: [t("page-index-values-open-ethereum-content-0")], + }, + }, + ] + + const codeExamples: CodeExample[] = [ + { + title: t("page-index-developers-code-example-title-0"), + description: t("page-index-developers-code-example-description-0"), + codeLanguage: "language-solidity", + code: SimpleWalletContent, + eventName: "bank", + }, + { + title: t("page-index-developers-code-example-title-1"), + description: t("page-index-developers-code-example-description-1"), + codeLanguage: "language-solidity", + code: SimpleTokenContent, + eventName: "token", + }, + { + title: t("page-index-developers-code-example-title-2"), + description: t("page-index-developers-code-example-description-2"), + codeLanguage: "language-javascript", + code: CreateWalletContent, + eventName: "wallet", + }, + { + title: t("page-index-developers-code-example-title-3"), + description: t("page-index-developers-code-example-description-3"), + codeLanguage: "language-solidity", + code: SimpleDomainRegistryContent, + eventName: "dns", + }, + ] + + const joinActions = [ + { + Svg: EthGlyphIcon, + label: t("page-index-join-action-contribute-label"), + href: "/contributing/", + className: "text-accent-c hover:text-accent-c-hover", + description: t("page-index-join-action-contribute-description"), + eventName: "contribute", + }, + { + Svg: FaGithub, + label: "GitHub", + href: GITHUB_REPO_URL, + className: "text-accent-a hover:text-accent-a-hover", + description: t("page-index-join-action-github-description"), + eventName: "GitHub", + }, + { + Svg: FaDiscord, + label: "Discord", + href: "/discord/", + className: "text-primary hover:text-primary-hover", + description: t("page-index-join-action-discord-description"), + eventName: "Discord", + }, + { + Svg: FaXTwitter, + label: "X", + href: "https://x.com/EthDotOrg", + className: "text-accent-b hover:text-accent-b-hover", + description: t("page-index-join-action-twitter-description"), + eventName: "Twitter", + }, + ] + + const upcomingEvents = events + .filter((event) => { + const isValid = isValidDate(event.endDate) + const beginningOfEndDate = new Date(event.endDate).getTime() + const endOfEndDate = beginningOfEndDate + 24 * 60 * 60 * 1000 + const isUpcoming = endOfEndDate >= new Date().getTime() + return isValid && isUpcoming + }) + .sort( + (a, b) => new Date(a.endDate).getTime() - new Date(b.endDate).getTime() + ) + .slice(0, 3) as EventCardProps[] // Show 3 events ending soonest + const metricResults: AllMetricData = { ethPrice, totalEthStaked, @@ -80,6 +417,7 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { txCount: growThePieData.txCount, txCostsMedianUsd: growThePieData.txCostsMedianUsd, } + const metrics = await getActivity(metricResults, locale) const calendar = communityEvents.upcomingEventData .sort((a, b) => { @@ -89,23 +427,8 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { }) .slice(0, CALENDAR_DISPLAY_COUNT) - // Get i18n messages - const allMessages = await getMessages({ locale }) - const requiredNamespaces = getRequiredNamespacesForPage("/") - const messages = pick(allMessages, requiredNamespaces) - - // check if the translated page content file exists for locale - const contentNotTranslated = !existsNamespace(locale!, requiredNamespaces[0]) - - // load last deploy date to pass to Footer in RootLayout - const lastDeployDate = getLastDeployDate() - const lastDeployLocaleTimestamp = getLocaleTimestamp( - locale as Lang, - lastDeployDate - ) - // RSS feed items - const polishedRssItems = polishRSSList(attestantPosts, ...xmlBlogs) + const polishedRssItems = polishRSSList([attestantPosts, ...xmlBlogs], locale) const rssItems = polishedRssItems.slice(0, RSS_DISPLAY_COUNT) const blogLinks = polishedRssItems.map(({ source, sourceUrl }) => ({ @@ -114,18 +437,539 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { })) as CommunityBlog[] blogLinks.push(...BLOGS_WITHOUT_FEED) - const props = { - calendar, - contentNotTranslated, - lastDeployLocaleTimestamp, - metricResults, - rssData: { rssItems, blogLinks }, - } - return ( - - - + + +

+ 10 years of Ethereum! -{" "} + + Join us to celebrate 10 years of Ethereum! + +

+
+ +
+
+ {subHeroCTAs.map( + ({ label, description, href, className, Svg }, idx) => { + const Link = ( + props: Omit< + SvgButtonLinkProps, + "Svg" | "href" | "label" | "children" + > + ) => ( + +

{description}

+
+ ) + return ( + + + + + ) + } + )} +
+ + {/* Use Cases - A new way to use the internet */} +
+
+
+ {t("page-index-use-cases-tag")} +
+

+ {t("page-index-bento-header")} +

+
+ + {/* Mobile - dynamic / lazy loaded */} + + + {/* Desktop */} + {bentoItems.map(({ className, ...item }) => ( + + ))} +
+ + {/* Activity - The strongest ecosystem */} +
+ + + + + + {t("page-index-activity-tag")} + {t("page-index-activity-header")} +
+

+ {t("page-index-activity-description")} +

+ + +
+ + {t("page-index-activity-action")} + +
+
+
+
+ + {/* Learn - Understand Ethereum */} +
+ + + + + + {t("page-index-learn-tag")} + {t("page-index-learn-header")} +
+

{t("page-index-learn-description")}

+
+

+ {t("page-index-popular-topics-header")} +

+
+ {popularTopics.map( + ({ label, Svg, href, eventName, className }) => ( + :first-child]:flex-row", + className + )} + customEventOptions={{ + eventCategory, + eventAction: "popular topics", + eventName, + }} + > +

+ {label} +

+
+ ) + )} +
+
+ + {t("page-index-popular-topics-action")} + +
+
+
{" "} +
+
+ + {/* Values - The Internet Is Changing */} +
+ + {t("page-index-values-tag")} + {t("page-index-values-header")} +

+ {t("page-index-values-description")} +

+
+ + {/* dynamic / lazy loaded */} + +
+ + {/* Builders - Blockchain's biggest builder community */} +
+ + + + + + {t("page-index-builders-tag")} + {t("page-index-builders-header")} +

{t("page-index-builders-description")}

+
+ + {t("page-index-builders-action-primary")} + + + {t("page-index-builders-action-secondary")} + +
+
+ {/* CLIENT SIDE */} + +
+
+
+ + {/* Ethereum.org community - Built by the community */} +
+ + + + + + {t("page-index-community-tag")} + {t("page-index-community-header")} +
+

{t("page-index-community-description-1")}

+

{t("page-index-community-description-2")}

+

{t("page-index-community-description-3")}

+
+
+ + {t("page-index-community-action")} + +
+ + + + + + +
+
+
+ + {calendar.length > 0 ? ( + calendar.map(({ date, title, calendarLink }) => { + const customEventOptions = { + eventCategory, + eventAction: "Community Events Widget", + eventName: "upcoming", + } + return ( +
+
+ + {title} + +

+ {new Intl.DateTimeFormat(locale, { + month: "long", + day: "2-digit", + year: "numeric", + hour: "numeric", + minute: "numeric", + }).format(new Date(date))} +

+
+ + {t("page-index-calendar-add")} + +
+ ) + }) + ) : ( +
+ {t("page-index-calendar-fallback")} +
+ )} +
+
+
+
+ +
+ +
+ + {/* Recent posts */} +
+

+ {t("page-index-posts-header")} +

+

{t("page-index-posts-subtitle")}

+ + {/* dynamic / lazy loaded */} + + +
+

{t("page-index-posts-action")}

+
+ {blogLinks.map(({ name, href }) => ( + + {name} + + ))} +
+
+
+ + {/* Events */} +
+

+ {t("page-index-events-header")} +

+

{t("page-index-events-subtitle")}

+
+
+ {upcomingEvents.map( + ( + { + title, + href, + location, + description, + startDate, + endDate, + imageUrl, + }, + idx + ) => ( + + + {imageUrl ? ( + + ) : ( + + )} + + + + {title} + + {(isValidDate(startDate) || isValidDate(endDate)) && + new Intl.DateTimeFormat(locale, { + month: "long", + day: "numeric", + year: "numeric", + }).formatRange( + new Date( + isValidDate(startDate) ? startDate : endDate + ), + new Date(isValidDate(endDate) ? endDate : startDate) + )} + + {location} + + + ) + )} +
+
+
+ + {t("page-index-events-action")} + +
+
+ + {/* Join ethereum.org */} +
+
+
+

{t("page-index-join-header")}

+

{t("page-index-join-description")}

+
+
+ {joinActions.map( + ({ Svg, label, href, className, description, eventName }) => ( + +

{description}

+
+ ) + )} +
+
+
+
+
) } @@ -142,14 +986,26 @@ export async function generateMetadata({ }) { const { locale } = await params - const t = await getTranslations({ locale, namespace: "page-index" }) + try { + const t = await getTranslations({ locale, namespace: "page-index" }) + return await getMetadata({ + locale, + slug: [""], + title: t("page-index-meta-title"), + description: t("page-index-meta-description"), + }) + } catch (error) { + const t = await getTranslations({ + locale: DEFAULT_LOCALE, + namespace: "common", + }) - return await getMetadata({ - locale, - slug: [""], - title: t("page-index-meta-title"), - description: t("page-index-meta-description"), - }) + // Return basic metadata for invalid paths + return { + title: t("page-not-found"), + description: t("page-not-found-description"), + } + } } export default Page diff --git a/app/[locale]/roadmap/_components/ReleaseCarousel.tsx b/app/[locale]/roadmap/_components/ReleaseCarousel.tsx index 874543edfba..26d1e0d288b 100644 --- a/app/[locale]/roadmap/_components/ReleaseCarousel.tsx +++ b/app/[locale]/roadmap/_components/ReleaseCarousel.tsx @@ -38,14 +38,14 @@ const ReleaseCarousel = () => { }) // Upcoming: has a releaseDate, but is in the future - const upcomingReleases = releasesData.filter((release) => { + const hasUpcomingRelease = releasesData.some((release) => { if (!("releaseDate" in release) || !release.releaseDate) return false const releaseDate = new Date(release.releaseDate) return releaseDate > now }) // If upcoming releases exist, start index after production releases - if (upcomingReleases.length > 0) return productionReleases.length + if (hasUpcomingRelease) return productionReleases.length // If no upcoming releases, start at the last production release return productionReleases.length - 1 diff --git a/app/[locale]/stablecoins/_components/stablecoins.tsx b/app/[locale]/stablecoins/_components/stablecoins.tsx deleted file mode 100644 index 2804641ba0d..00000000000 --- a/app/[locale]/stablecoins/_components/stablecoins.tsx +++ /dev/null @@ -1,515 +0,0 @@ -"use client" - -import { BaseHTMLAttributes } from "react" -import { MdHelpOutline } from "react-icons/md" - -import CalloutBanner from "@/components/CalloutBanner" -import DataProductCard from "@/components/DataProductCard" -import Emoji from "@/components/Emoji" -import FeedbackCard from "@/components/FeedbackCard" -import GhostCard from "@/components/GhostCard" -import HorizontalCard from "@/components/HorizontalCard" -import { Image } from "@/components/Image" -import InfoBanner from "@/components/InfoBanner" -import MainArticle from "@/components/MainArticle" -import PageHero from "@/components/PageHero" -import ProductList from "@/components/ProductList" -import { StandaloneQuizWidget } from "@/components/Quiz/QuizWidget" -import StablecoinAccordion from "@/components/StablecoinAccordion" -import StablecoinBoxGrid from "@/components/StablecoinBoxGrid" -import StablecoinsTable from "@/components/StablecoinsTable" -import Tooltip from "@/components/Tooltip" -import Translation from "@/components/Translation" -import { ButtonLink } from "@/components/ui/buttons/Button" -import { Divider } from "@/components/ui/divider" -import { Flex, FlexProps } from "@/components/ui/flex" -import InlineLink from "@/components/ui/Link" - -import { cn } from "@/lib/utils/cn" - -import { Market } from "../page" - -import { useTranslation } from "@/hooks/useTranslation" -import summerfiImg from "@/public/images/dapps/summerfi.png" -import dogeComputerImg from "@/public/images/doge-computer.png" -// -- dapps -import aaveImg from "@/public/images/stablecoins/aave.png" -import compoundImg from "@/public/images/stablecoins/compound.png" -// Static assets -import daiLargeImg from "@/public/images/stablecoins/dai-large.png" -import heroImg from "@/public/images/stablecoins/hero.png" -import stablecoinsWtfImg from "@/public/images/stablecoins/tools/stablecoinswtf.png" -import usdcLargeImg from "@/public/images/stablecoins/usdc-large.png" - -type Props = { - markets: Market[] - marketsHasError: boolean -} - -const Content = (props: BaseHTMLAttributes) => ( -
-) - -const EditorsChoice = ({ className, ...props }: FlexProps) => ( - -) - -const Page = (props: FlexProps) => ( - -) - -const H2 = ({ - className, - ...props -}: BaseHTMLAttributes) => ( -

-) - -const H3 = ({ - className, - ...props -}: BaseHTMLAttributes) => ( -

-) - -const StablecoinsPage = ({ markets, marketsHasError }: Props) => { - const { t } = useTranslation("page-stablecoins") - - const tooltipContent = ( -
- {t("common:data-provided-by")}{" "} - - coingecko.com - -
- ) - - const features = [ - { - title: t("page-stablecoins-fiat-backed"), - description: t("page-stablecoins-fiat-backed-description"), - emoji: ":dollar:", - pros: [ - t("page-stablecoins-fiat-backed-pro-1"), - t("page-stablecoins-fiat-backed-pro-2"), - ], - cons: [ - t("page-stablecoins-fiat-backed-con-1"), - t("page-stablecoins-fiat-backed-con-2"), - ], - links: [ - { text: "USDC", url: "https://www.coinbase.com/usdc" }, - { text: "TrueUSD", url: "https://tusd.io/" }, - ], - }, - { - title: t("page-stablecoins-crypto-backed"), - description: t("page-stablecoins-crypto-backed-description"), - emoji: ":unicorn:", - pros: [ - t("page-stablecoins-crypto-backed-pro-1"), - t("page-stablecoins-crypto-backed-pro-2"), - t("page-stablecoins-crypto-backed-pro-3"), - ], - cons: [ - t("page-stablecoins-crypto-backed-con-1"), - t("page-stablecoins-crypto-backed-con-2"), - ], - links: [ - { text: "DAI", url: "https://makerdao.com/en/" }, - { text: "RAI", url: "https://reflexer.finance/" }, - ], - }, - { - title: t("page-stablecoins-precious-metals"), - description: t("page-stablecoins-precious-metals-description"), - emoji: ":gem_stone:", - pros: [t("page-stablecoins-precious-metals-pro-1")], - cons: [ - t("page-stablecoins-precious-metals-con-1"), - t("page-stablecoins-precious-metals-con-2"), - ], - links: [{ text: "Pax Gold", url: "https://paxos.com/paxgold/" }], - }, - { - title: t("page-stablecoins-algorithmic"), - description: t("page-stablecoins-algorithmic-description"), - disclaimer: t("page-stablecoins-algorithmic-disclaimer"), - emoji: ":chart_with_downwards_trend:", - pros: [ - t("page-stablecoins-algorithmic-pro-1"), - t("page-stablecoins-algorithmic-pro-2"), - ], - cons: [ - t("page-stablecoins-algorithmic-con-1"), - t("page-stablecoins-algorithmic-con-2"), - ], - links: [{ text: "Ampleforth", url: "https://www.ampleforth.org/" }], - }, - ] - - const tokens = [ - { - emoji: ":globe_showing_americas:", - description: ( - - ), - }, - { - emoji: ":chart_with_upwards_trend:", - description: ( - - ), - }, - { - emoji: ":handshake:", - description: ( - - ), - }, - { - emoji: ":key:", - description: ( - - ), - }, - ] - - const dapps = [ - { - background: "linear-gradient(225deg, #aa589b 0%, #5cb8c4 100%)", - url: "https://aave.com", - alt: t("aave-logo"), - image: aaveImg, - width: 64, - name: "Aave", - description: t("page-stablecoins-stablecoins-dapp-description-1"), - }, - { - background: "#f9fafb", - url: "https://compound.finance", - alt: t("compound-logo"), - image: compoundImg, - width: 160, - name: "Compound", - description: t("page-stablecoins-stablecoins-dapp-description-2"), - }, - { - background: "linear-gradient(135deg, #c7efe6 0%, #eeeac7 100%)", - url: "https://summer.fi/", - alt: t("summerfi-logo"), - image: summerfiImg, - width: 80, - name: "Summer.fi", - description: t("page-stablecoins-stablecoins-dapp-description-4"), - }, - ] - - const tableColumns = [ - t("page-stablecoins-stablecoins-table-header-column-1"), - t("page-stablecoins-stablecoins-table-header-column-2"), - t("page-stablecoins-stablecoins-table-header-column-3"), - ] - - const heroContent = { - title: t("page-stablecoins-title"), - header: t("page-stablecoins-hero-header"), - subtitle: t("page-stablecoins-hero-subtitle"), - image: heroImg, - alt: t("page-stablecoins-hero-alt"), - buttons: [ - { - content: t("page-stablecoins-hero-button"), - toId: "explore", - matomo: { - eventCategory: "stablecoins hero buttons", - eventAction: "click", - eventName: "get stablecoins", - }, - }, - { - content: t("page-stablecoins-how-they-work-button"), - toId: "how", - variant: "outline" as const, - matomo: { - eventCategory: "stablecoins hero buttons", - eventAction: "click", - eventName: "how they work", - }, - }, - ], - } - - const toolsData = [ - { - title: "Stablecoins.wtf", - description: t("page-stablecoins-tools-stablecoinswtf-description"), - link: "https://stablecoins.wtf", - image: stablecoinsWtfImg, - alt: "Stablecoins.wtf", - }, - ] - - return ( - - - - - - -
-

{t("page-stablecoins-why-stablecoins")}

-

- {t("page-stablecoins-prices-definition")}{" "} - - {t("page-stablecoins-prices-definition-how")} - -

-
-
- - - {tokens.map((token, index) => ( -
- -
- ))} -
- - -

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

-

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

-
-
-
-
-
-

{t("page-stablecoins-find-stablecoin")}

- -

- {t("page-stablecoins-find-stablecoin-intro")} -

-
    -
  • - - {t("page-stablecoins-find-stablecoin-types-link")} - -
  • -
  • - - {t("page-stablecoins-find-stablecoin-how-to-get-them")} - -
  • -
-
-

- {t("page-stablecoins-editors-choice")} -

-

{t("page-stablecoins-editors-choice-intro")}

-
- - -
-

- {t("page-stablecoins-dai-banner-title")} -

-

- {t("page-stablecoins-dai-banner-body")} -

- -
- - {t("page-stablecoins-dai-banner-swap-button")} - -
-
- - {t("page-stablecoins-dai-banner-learn-button")} - -
-
-
-
- {t("page-stablecoins-dai-logo")} -
- - - -

- {t("page-stablecoins-usdc-banner-title")} -

-

- {t("page-stablecoins-usdc-banner-body")} -

- -
- - {t("page-stablecoins-usdc-banner-swap-button")} - -
-
- - {t("page-stablecoins-usdc-banner-learn-button")} - -
-
-
- {t("page-stablecoins-usdc-logo")} -
-
-

- {t("page-stablecoins-top-coins")} - - - -

- - {t("page-stablecoins-algorithmic-disclaimer")} - -

- {t("page-stablecoins-top-coins-intro")}{" "} - {t("page-stablecoins-top-coins-intro-code")} -

-
-
- -
-
- -

{t("page-stablecoins-get-stablecoins")}

-
- - - - - - -
- - {t("page-stablecoins-explore-dapps")} - - - {t("page-stablecoins-more-defi-button")} - -
-
-

{t("page-stablecoins-save-stablecoins")}

- -
-

- {t("page-stablecoins-save-stablecoins-body")} -

-

{t("page-stablecoins-interest-earning-dapps")}

-

{t("page-stablecoins-saving")}

-
-
-
- {dapps.map((dapp, idx) => ( - - ))} -
-
- - -

{t("page-stablecoins-types-of-stablecoin")}

- -

- {t("page-stablecoins-research-warning-title")} -

- {t("page-stablecoins-algorithmic-disclaimer")} -
- -
-
-

{t("page-stablecoins-tools-title")}

- - - - - - -
- - - - -
-
- ) -} - -export default StablecoinsPage diff --git a/app/[locale]/stablecoins/data.ts b/app/[locale]/stablecoins/data.ts new file mode 100644 index 00000000000..6040e3ba706 --- /dev/null +++ b/app/[locale]/stablecoins/data.ts @@ -0,0 +1,549 @@ +import type { StablecoinType } from "@/lib/types" + +export const stablecoins: { + symbol: string + type: StablecoinType + url: string + peg: string + id: string +}[] = [ + { + symbol: "USDT", + type: "FIAT", + url: "https://tether.to/", + peg: "USD", + id: "tether", + }, + { + symbol: "USDC", + type: "FIAT", + url: "https://www.circle.com/usdc", + peg: "USD", + id: "usd-coin", + }, + { + symbol: "TUSD", + type: "FIAT", + url: "https://tusd.io/", + peg: "USD", + id: "true-usd", + }, + { + symbol: "FDUSD", + type: "FIAT", + url: "https://firstdigitallabs.com/", + peg: "USD", + id: "first-digital-usd", + }, + { + symbol: "PYUSD", + type: "FIAT", + url: "https://www.paypal.com/pyusd/", + peg: "USD", + id: "paypal-usd", + }, + { + symbol: "USDY", + type: "FIAT", + url: "https://ondo.finance/usdy", + peg: "USD", + id: "ondo-us-dollar-yield", + }, + { + symbol: "USDa", + type: "CRYPTO", + url: "https://www.avalonfinance.xyz/", + peg: "USD", + id: "usda-2", + }, + { + symbol: "USDO", + type: "FIAT", + url: "https://openeden.com/", + peg: "USD", + id: "openeden-open-dollar", + }, + { + symbol: "USDP", + type: "FIAT", + url: "https://www.paxos.com/usdp", + peg: "USD", + id: "paxos-standard", + }, + { + symbol: "GUSD", + type: "FIAT", + url: "https://www.gemini.com/dollar", + peg: "USD", + id: "gemini-dollar", + }, + { + symbol: "USDR", + type: "FIAT", + url: "https://www.stablr.com/usdr", + peg: "USD", + id: "stablr-usd", + }, + { + symbol: "USDQ", + type: "FIAT", + url: "https://www.quantoz.com/", + peg: "USD", + id: "quantoz-usdq", + }, + { + symbol: "AUDD", + type: "FIAT", + url: "https://www.audd.digital/", + peg: "USD", + id: "novatti-australian-digital-dollar", + }, + { + symbol: "SUSDA", + type: "FIAT", + url: "https://www.sperax.io/", + peg: "USD", + id: "susda", + }, + { + symbol: "XUSD", + type: "FIAT", + url: "https://www.straitsx.com/xusd", + peg: "USD", + id: "straitsx-xusd", + }, + { + symbol: "USDGLO", + type: "CRYPTO", + url: "https://www.glodollar.org/", + peg: "USD", + id: "glo-dollar", + }, + { + symbol: "EURC", + type: "FIAT", + url: "https://www.circle.com/eurc", + peg: "EUR", + id: "euro-coin", + }, + { + symbol: "EURS", + type: "FIAT", + url: "https://eurs.stasis.net/", + peg: "EUR", + id: "stasis-eurs", + }, + { + symbol: "EURT", + type: "FIAT", + url: "https://tether.to/", + peg: "EUR", + id: "tether-eurt", + }, + { + symbol: "EUROE", + type: "FIAT", + url: "https://euroe.com/", + peg: "EUR", + id: "euroe-stablecoin", + }, + { + symbol: "EURR", + type: "FIAT", + url: "https://www.stablr.com/eurr", + peg: "EUR", + id: "stablr-euro", + }, + { + symbol: "EURQ", + type: "FIAT", + url: "https://www.quantoz.com/", + peg: "EUR", + id: "quantoz-eurq", + }, + { + symbol: "GYEN", + type: "FIAT", + url: "https://stablecoin.z.com/gyen/", + peg: "JPY", + id: "gyen", + }, + { + symbol: "TRYB", + type: "FIAT", + url: "https://bilira.co/", + peg: "TRY", + id: "bilira", + }, + { + symbol: "XSGD", + type: "FIAT", + url: "https://www.straitsx.com/xsgd", + peg: "SGD", + id: "xsgd", + }, + { + symbol: "IDRT", + type: "FIAT", + url: "https://rupiahtoken.com/", + peg: "IDR", + id: "rupiah-token", + }, + { + symbol: "XIDR", + type: "FIAT", + url: "https://www.straitsx.com/xidr", + peg: "IDR", + id: "straitsx-indonesia-rupiah", + }, + { + symbol: "CNHT", + type: "FIAT", + url: "https://tether.to/", + peg: "CNH", + id: "cnh-tether", + }, + { + symbol: "CADC", + type: "FIAT", + url: "https://www.paytrie.com/cadc", + peg: "CAD", + id: "cad-coin", + }, + { + symbol: "USDS", + type: "CRYPTO", + url: "https://sky.money/", + peg: "USD", + id: "usds", + }, + { + symbol: "DAI", + type: "CRYPTO", + url: "https://makerdao.com/", + peg: "USD", + id: "dai", + }, + { + symbol: "LUSD", + type: "CRYPTO", + url: "https://www.liquity.org/", + peg: "USD", + id: "liquity-usd", + }, + { + symbol: "CRVUSD", + type: "CRYPTO", + url: "https://www.curve.finance/", + peg: "USD", + id: "crvusd", + }, + { + symbol: "GHO", + type: "CRYPTO", + url: "https://aave.com/gho", + peg: "USD", + id: "gho", + }, + { + symbol: "sUSD", + type: "CRYPTO", + url: "https://www.synthetix.io/", + peg: "USD", + id: "nusd", + }, + { + symbol: "sUSDS", + type: "CRYPTO", + url: "https://sperax.io/", + peg: "USD", + id: "susds", + }, + { + symbol: "deUSD", + type: "CRYPTO", + url: "https://www.elixir.xyz/", + peg: "USD", + id: "elixir-deusd", + }, + { + symbol: "LVLUSD", + type: "CRYPTO", + url: "https://level.finance/", + peg: "USD", + id: "level-usd", + }, + { + symbol: "AUSD", + type: "CRYPTO", + url: "https://www.agora.finance/", + peg: "USD", + id: "agora-dollar", + }, + { + symbol: "USDL", + type: "CRYPTO", + url: "https://liftdollar.com/", + peg: "USD", + id: "lift-dollar", + }, + { + symbol: "RLUSD", + type: "FIAT", + url: "https://ripple.com/solutions/stablecoin/", + peg: "USD", + id: "ripple-usd", + }, + { + symbol: "REUSD", + type: "CRYPTO", + url: "https://resupply.fi/", + peg: "USD", + id: "resupply-usd", + }, + { + symbol: "DOLA", + type: "CRYPTO", + url: "https://www.inverse.finance/", + peg: "USD", + id: "dola-usd", + }, + { + symbol: "RUSD", + type: "CRYPTO", + url: "https://www.reservoir.fi/", + peg: "USD", + id: "reservoir-rusd", + }, + { + symbol: "FRXUSD", + type: "CRYPTO", + url: "https://frax.finance/", + peg: "USD", + id: "frax-usd", + }, + { + symbol: "ALUSD", + type: "CRYPTO", + url: "https://alchemix.fi/", + peg: "USD", + id: "alchemix-usd", + }, + { + symbol: "OUSD", + type: "CRYPTO", + url: "https://www.originprotocol.com/ousd", + peg: "USD", + id: "origin-dollar", + }, + { + symbol: "SCRVUSD", + type: "CRYPTO", + url: "https://www.curve.finance/", + peg: "USD", + id: "savings-crvusd", + }, + { + symbol: "THUSD", + type: "CRYPTO", + url: "https://threshold.network/", + peg: "USD", + id: "threshold-usd", + }, + { + symbol: "MKUSD", + type: "CRYPTO", + url: "https://mirror.xyz/prismafinance.eth", + peg: "USD", + id: "prisma-mkusd", + }, + { + symbol: "MNEE", + type: "CRYPTO", + url: "https://www.mnee.io/", + peg: "USD", + id: "mnee-usd-stablecoin", + }, + { + symbol: "GRAI", + type: "CRYPTO", + url: "https://www.gravitaprotocol.com/", + peg: "USD", + id: "grai", + }, + { + symbol: "ZCHF", + type: "CRYPTO", + url: "https://www.frankencoin.com/", + peg: "CHF", + id: "frankencoin", + }, + { + symbol: "EURA", + type: "CRYPTO", + url: "https://angle.money/", + peg: "EUR", + id: "ageur", + }, + { + symbol: "ZARP", + type: "CRYPTO", + url: "https://www.zarpstablecoin.com/", + peg: "ZAR", + id: "zarp-stablecoin", + }, + { + symbol: "DEURO", + type: "CRYPTO", + url: "https://deuro.com/", + peg: "EUR", + id: "decentralized-euro", + }, + { + symbol: "CJPY", + type: "CRYPTO", + url: "https://app.yamato.fi/", + peg: "JPY", + id: "convertible-jpy-token", + }, + { + symbol: "PAXG", + type: "ASSET", + url: "https://www.paxos.com/pax-gold", + peg: "XAU", + id: "pax-gold", + }, + { + symbol: "XAUT", + type: "ASSET", + url: "https://gold.tether.to/", + peg: "XAU", + id: "tether-gold", + }, + { + symbol: "FRAX", + type: "CRYPTO", + url: "https://frax.finance/", + peg: "USD", + id: "frax", + }, + { + symbol: "USR", + type: "ALGORITHMIC", + url: "https://resolv.finance/", + peg: "USD", + id: "resolv-usr", + }, + // { + // symbol: "AMPL", + // type: "FIAT", + // url: "https://www.ampleforth.org/", + // peg: "CPI", + // id: "ampleforth", + // }, + { + symbol: "MIM", + type: "CRYPTO", + url: "https://abracadabra.money/", + peg: "USD", + id: "magic-internet-money", + }, + { + symbol: "USDe", + type: "CRYPTO", + url: "https://ethena.fi/", + peg: "USD", + id: "ethena-usde", + }, + { + symbol: "USD0", + type: "FIAT", + url: "https://docs.usual.money/usual-products/usd0-stablecoin", + peg: "USD", + id: "usual-usd", + }, + { + symbol: "USDD", + type: "CRYPTO", + url: "https://usdd.io/", + peg: "USD", + id: "usdd", + }, + { + symbol: "USDX", + type: "ALGORITHMIC", + url: "https://usdx.money/", + peg: "USD", + id: "usdx-money-usdx", + }, + { + symbol: "USDz", + type: "FIAT", // RWAs + url: "https://anzen.finance/", + peg: "USD", + id: "anzen-usdz", + }, + { + symbol: "SYRUPUSDC", + type: "CRYPTO", + url: "https://maple.finance/", + peg: "USD", + id: "syrupusdc", + }, + { + symbol: "FXUSD", + type: "CRYPTO", + url: "https://fx.aladdin.club/", + peg: "USD", + id: "f-x-protocol-fxusd", + }, + { + symbol: "USD3", + type: "CRYPTO", + url: "https://app.reserve.org/ethereum/token/0x0d86883faf4ffd7aeb116390af37746f45b6f378/overview", + peg: "USD", + id: "web-3-dollar", + }, + { + symbol: "USDM", + type: "FIAT", + url: "https://mountainprotocol.com/", + peg: "USD", + id: "mountain-protocol-usdm", + }, + { + symbol: "EURCV", + type: "FIAT", + url: "https://www.sgforge.com/product/coinvertible/", + peg: "EUR", + id: "societe-generale-forge-eurcv", + }, + { + symbol: "USN", + type: "CRYPTO", + url: "https://noon.capital/", + peg: "USD", + id: "noon-usn", + }, + { + symbol: "ZUSD", + type: "FIAT", + url: "https://stablecoin.z.com/zusd/", + peg: "USD", + id: "zusd", + }, + { + symbol: "WUSD", + type: "ALGORITHMIC", + url: "https://wspn.io/", + peg: "USD", + id: "worldwide-usd", + }, + { + symbol: "DUSD", + type: "CRYPTO", + url: "https://davos.xyz/", + peg: "USD", + id: "davos-protocol", + }, +] diff --git a/app/[locale]/stablecoins/page.tsx b/app/[locale]/stablecoins/page.tsx index c5f11298fba..1fd09af2453 100644 --- a/app/[locale]/stablecoins/page.tsx +++ b/app/[locale]/stablecoins/page.tsx @@ -4,25 +4,60 @@ import { getTranslations, setRequestLocale, } from "next-intl/server" +import { MdHelpOutline } from "react-icons/md" import { Lang } from "@/lib/types" +import CalloutBannerSSR from "@/components/CalloutBannerSSR" +import DataProductCard from "@/components/DataProductCard" +import Emoji from "@/components/Emoji" +import FeedbackCard from "@/components/FeedbackCard" +import GhostCard from "@/components/GhostCard" +import HorizontalCard from "@/components/HorizontalCard" import I18nProvider from "@/components/I18nProvider" +import { Image } from "@/components/Image" +import MainArticle from "@/components/MainArticle" +import PageHero from "@/components/PageHero" +import ProductList from "@/components/ProductList" +import { StandaloneQuizWidget } from "@/components/Quiz/QuizWidget" +import StablecoinAccordion from "@/components/StablecoinAccordion" +import StablecoinsTable from "@/components/StablecoinsTable" +import Tooltip from "@/components/Tooltip" +import Translation from "@/components/Translation" +import { ButtonLink } from "@/components/ui/buttons/Button" +import { Divider } from "@/components/ui/divider" +import { Flex } from "@/components/ui/flex" +import InlineLink from "@/components/ui/Link" +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" +import { cn } from "@/lib/utils/cn" import { dataLoader } from "@/lib/utils/data/dataLoader" import { getMetadata } from "@/lib/utils/metadata" import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import { BASE_TIME_UNIT } from "@/lib/constants" -import StablecoinsPage from "./_components/stablecoins" +import { stablecoins } from "./data" -import { - fetchEthereumEcosystemData, - fetchEthereumStablecoinsData, -} from "@/lib/api/stablecoinsData" +import { fetchEthereumStablecoinsData } from "@/lib/api/stablecoinsData" +import sparkfiImg from "@/public/images/dapps/sparkfi.png" +import summerfiImg from "@/public/images/dapps/summerfi.png" +import dogeComputerImg from "@/public/images/doge-computer.png" +import aaveImg from "@/public/images/stablecoins/aave.png" +import compoundImg from "@/public/images/stablecoins/compound.png" +import ghoLargeImg from "@/public/images/stablecoins/gho-large.png" +import gloLargeImg from "@/public/images/stablecoins/glo-large.png" +import heroImg from "@/public/images/stablecoins/hero.png" +import duneImg from "@/public/images/stablecoins/tools/dune.png" +import stablePulseImg from "@/public/images/stablecoins/tools/stable-pulse.png" +import stablecoinsWtfImg from "@/public/images/stablecoins/tools/stablecoinswtf.png" +import stablesInfoImg from "@/public/images/stablecoins/tools/stables-info.png" +import stablesWarsImg from "@/public/images/stablecoins/tools/stables-wars.png" +import visaImg from "@/public/images/stablecoins/tools/visa.png" +import usdcLargeImg from "@/public/images/stablecoins/usdc-large.png" +import usdsLargeImg from "@/public/images/stablecoins/usds-large.png" -type EthereumDataResponse = Array<{ +type CoinGeckoCoinMarketResponse = Array<{ id: string name: string market_cap: number @@ -30,35 +65,35 @@ type EthereumDataResponse = Array<{ symbol: string }> -type StablecoinDataResponse = Array<{ - id: string - name: string - market_cap: number - image: string - symbol: string -}> - -export interface Market { +export type CoinDetails = { name: string marketCap: string image: string type: string url: string + peg: string + symbol: string } // In seconds const REVALIDATE_TIME = BASE_TIME_UNIT * 1 +const MIN_MARKET_CAP_USD = 500_000 -const loadData = dataLoader<[EthereumDataResponse, StablecoinDataResponse]>( - [ - ["ethereumEcosystemData", fetchEthereumEcosystemData], - ["ethereumStablecoinsData", fetchEthereumStablecoinsData], - ], +const Section = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) + +const loadData = dataLoader<[CoinGeckoCoinMarketResponse]>( + [["ethereumStablecoinsData", fetchEthereumStablecoinsData]], REVALIDATE_TIME * 1000 ) async function Page({ params }: { params: Promise<{ locale: Lang }> }) { const { locale } = await params + const t = await getTranslations({ locale, namespace: "page-stablecoins" }) setRequestLocale(locale) @@ -68,78 +103,636 @@ async function Page({ params }: { params: Promise<{ locale: Lang }> }) { const messages = pick(allMessages, requiredNamespaces) let marketsHasError = false - let markets: Market[] = [] - - // Stablecoin types - const FIAT = "FIAT" - const CRYPTO = "CRYPTO" - const ASSET = "ASSET" - const ALGORITHMIC = "ALGORITHMIC" - - const stablecoins = { - USDT: { type: FIAT, url: "https://tether.to/" }, - USDC: { type: FIAT, url: "https://www.coinbase.com/usdc" }, - DAI: { type: CRYPTO, url: "https://makerdao.com/en/" }, - BUSD: { type: FIAT, url: "https://www.binance.com/en/busd" }, - PAX: { type: FIAT, url: "https://www.paxos.com/pax/" }, - TUSD: { type: FIAT, url: "https://tusd.io/" }, - HUSD: { type: FIAT, url: "https://www.huobi.com/en-us/usd-deposit/" }, - SUSD: { type: CRYPTO, url: "https://www.synthetix.io/" }, - EURS: { type: FIAT, url: "https://eurs.stasis.net/" }, - USDK: { type: FIAT, url: "https://www.oklink.com/usdk" }, - MUSD: { type: CRYPTO, url: "https://mstable.org/" }, - USDX: { type: CRYPTO, url: "https://usdx.money/" }, - GUSD: { type: FIAT, url: "https://gemini.com/dollar" }, - SAI: { type: CRYPTO, url: "https://makerdao.com/en/whitepaper/sai/" }, - DUSD: { type: CRYPTO, url: "https://dusd.finance/" }, - PAXG: { type: ASSET, url: "https://www.paxos.com/paxgold/" }, - AMPL: { type: ALGORITHMIC, url: "https://www.ampleforth.org/" }, - FRAX: { type: ALGORITHMIC, url: "https://frax.finance/" }, - MIM: { type: ALGORITHMIC, url: "https://abracadabra.money/" }, - USDP: { type: FIAT, url: "https://paxos.com/usdp/" }, - FEI: { type: ALGORITHMIC, url: "https://fei.money/" }, - } + const coinDetails: CoinDetails[] = [] try { - const [ethereumEcosystemData, stablecoinsData] = await loadData() + marketsHasError = false - // Get the intersection of stablecoins and Ethereum tokens to only have a list of data for stablecoins in the Ethereum ecosystem - const ethereumStablecoinData = stablecoinsData.filter( - (stablecoin) => - ethereumEcosystemData.findIndex( - // eslint-disable-next-line - (etherToken) => stablecoin.id == etherToken.id - ) > -1 - ) + const [stablecoinsData] = await loadData() - marketsHasError = false - markets = ethereumStablecoinData - .filter((token) => { - return stablecoins[token.symbol.toUpperCase()] - }) - .map((token) => { - return { - name: token.name, - marketCap: new Intl.NumberFormat("en-US", { - style: "currency", - currency: "USD", - minimumFractionDigits: 0, - maximumFractionDigits: 0, - }).format(token.market_cap), - image: token.image, - type: stablecoins[token.symbol.toUpperCase()].type, - url: stablecoins[token.symbol.toUpperCase()].url, - } + const ethereumStablecoinData = stablecoins + .map(({ id, ...rest }) => { + const coinMarketData = stablecoinsData.find((coin) => coin.id === id) + if (!coinMarketData) + throw new Error("CoinGecko stablecoin data not found:" + id) + return { ...coinMarketData, ...rest } }) + .filter((coin) => coin.market_cap >= MIN_MARKET_CAP_USD) + .sort((a, b) => b.market_cap - a.market_cap) + .map(({ market_cap, ...rest }) => ({ + ...rest, + marketCap: new Intl.NumberFormat("en-US", { + style: "currency", + currency: "USD", + minimumFractionDigits: 0, + maximumFractionDigits: 0, + }).format(market_cap), + })) + coinDetails.push(...ethereumStablecoinData) } catch (error) { console.error(error) - markets = [] marketsHasError = true } + const heroContent = { + title: t("page-stablecoins-title"), + header: t("page-stablecoins-hero-header"), + subtitle: t("page-stablecoins-hero-subtitle"), + image: heroImg, + alt: t("page-stablecoins-hero-alt"), + buttons: [ + { + content: t("page-stablecoins-hero-button"), + toId: "explore", + matomo: { + eventCategory: "stablecoins hero buttons", + eventAction: "click", + eventName: "get stablecoins", + }, + }, + { + content: t("page-stablecoins-how-they-work-button"), + toId: "how", + variant: "outline" as const, + matomo: { + eventCategory: "stablecoins hero buttons", + eventAction: "click", + eventName: "how they work", + }, + }, + ], + } + + const tokens = [ + { + emoji: ":globe_showing_americas:", + description: ( + + ), + }, + { + emoji: ":chart_with_upwards_trend:", + description: ( + + ), + }, + { + emoji: ":handshake:", + description: ( + + ), + }, + { + emoji: ":key:", + description: ( + + ), + }, + ] + + const getMarketCapByName = (name: string) => + coinDetails.find((m) => m.symbol.toUpperCase() === name.toUpperCase()) + ?.marketCap + + const editorsChoices = [ + { + title: "USDS", + body: t("page-stablecoins-usds-banner-body"), + image: usdsLargeImg, + alt: t("page-stablecoins-usds-logo"), + swapUrl: "https://swap.cow.fi/#/1/swap/ETH/USDS", + swapButtonText: t("page-stablecoins-usds-banner-swap-button"), + learnUrl: "https://sky.money/", + learnButtonText: t("page-stablecoins-usds-banner-learn-button"), + shadowColor: "amber", + marketCap: getMarketCapByName("usds"), + }, + { + title: "USDC", + body: t("page-stablecoins-usdc-banner-body"), + image: usdcLargeImg, + alt: t("page-stablecoins-usdc-logo"), + swapUrl: "https://www.usdc.com/providers", + swapButtonText: t("page-stablecoins-usdc-banner-swap-button"), + learnUrl: "https://www.circle.com/en/usdc", + learnButtonText: t("page-stablecoins-usdc-banner-learn-button"), + shadowColor: "blue", + marketCap: getMarketCapByName("usdc"), + }, + { + title: "GHO", + body: t("page-stablecoins-gho-banner-body"), + image: ghoLargeImg, + alt: t("page-stablecoins-gho-logo"), + swapUrl: + "https://matcha.xyz/tokens/ethereum/eth?buyChain=1&buyAddress=0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f&sellChain=1&sellAddress=0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", + swapButtonText: t("page-stablecoins-gho-banner-swap-button"), + learnUrl: "https://aave.com/docs/primitives/gho", + learnButtonText: t("page-stablecoins-gho-banner-learn-button"), + shadowColor: "green", + marketCap: getMarketCapByName("gho"), + }, + { + title: "Glo Dollar", + body: t("page-stablecoins-glo-banner-body"), + image: gloLargeImg, + alt: t("page-stablecoins-glo-logo"), + swapUrl: "https://app.glodollar.org/", + swapButtonText: t("page-stablecoins-glo-banner-swap-button"), + learnUrl: "https://www.glodollar.org/", + learnButtonText: t("page-stablecoins-glo-banner-learn-button"), + shadowColor: "cyan", + marketCap: getMarketCapByName("usdglo"), + }, + ] + + const tooltipContent = ( +
+ {t("common:data-provided-by")}{" "} + + coingecko.com + +
+ ) + + const dapps = [ + { + url: "https://aave.com", + alt: t("aave-logo"), + image: aaveImg, + width: 64 * 3, + name: "Aave", + description: t("page-stablecoins-stablecoins-dapp-description-1"), + className: + "[&>[data-label='banner']]:bg-gradient-to-tr from-[#5cb8c4] to-[#aa589b]", + }, + { + url: "https://compound.finance", + alt: t("compound-logo"), + image: compoundImg, + width: 64 * 2, + name: "Compound", + description: t("page-stablecoins-stablecoins-dapp-description-2"), + className: + "[&>[data-label='banner']]:bg-gradient-to-tr dark:from-white/5 ", + }, + { + url: "https://summer.fi/", + alt: t("summerfi-logo"), + image: summerfiImg, + width: (64 * 3) / 2, + name: "Summer.fi", + description: t("page-stablecoins-stablecoins-dapp-description-4"), + className: + "[&>[data-label='banner']]:bg-gradient-to-br from-[#c7efe6] to-[#eeeac7]", + }, + { + url: "https://spark.fi/", + alt: t("sparkfi-logo"), + image: sparkfiImg, + width: 64 * 2, + name: "Spark Protocol", + description: t("page-stablecoins-stablecoins-dapp-description-5"), + className: + "[&>[data-label='banner']]:bg-gradient-to-tr dark:from-white/5", + }, + ] + + const features = [ + { + title: t("page-stablecoins-fiat-backed"), + description: t("page-stablecoins-fiat-backed-description"), + emoji: ":dollar:", + pros: [ + t("page-stablecoins-fiat-backed-pro-1"), + t("page-stablecoins-fiat-backed-pro-2"), + ], + cons: [ + t("page-stablecoins-fiat-backed-con-1"), + t("page-stablecoins-fiat-backed-con-2"), + ], + links: [ + { text: "USDC", url: "https://www.circle.com/en/usdc" }, + { text: "USDT", url: "https://tether.to/" }, + ], + }, + { + title: t("page-stablecoins-crypto-backed"), + description: t("page-stablecoins-crypto-backed-description"), + emoji: ":unicorn:", + pros: [ + t("page-stablecoins-crypto-backed-pro-1"), + t("page-stablecoins-crypto-backed-pro-2"), + t("page-stablecoins-crypto-backed-pro-3"), + ], + cons: [ + t("page-stablecoins-crypto-backed-con-1"), + t("page-stablecoins-crypto-backed-con-2"), + ], + links: [ + { text: "USDS", url: "https://sky.money/" }, + { text: "Ethena USDe", url: "https://ethena.fi/" }, + ], + }, + { + title: t("page-stablecoins-precious-metals"), + description: ( + + ), + emoji: ":gem_stone:", + pros: [t("page-stablecoins-precious-metals-pro-1")], + cons: [ + t("page-stablecoins-precious-metals-con-1"), + t("page-stablecoins-precious-metals-con-2"), + ], + links: [ + { text: "Pax Gold", url: "https://paxos.com/paxgold/" }, + { text: "Tether Gold", url: "https://gold.tether.to/" }, + ], + }, + { + title: t("page-stablecoins-algorithmic"), + description: t("page-stablecoins-algorithmic-description"), + emoji: ":chart_with_downwards_trend:", + pros: [ + t("page-stablecoins-algorithmic-pro-1"), + t("page-stablecoins-algorithmic-pro-2"), + ], + cons: [ + t("page-stablecoins-algorithmic-con-1"), + t("page-stablecoins-algorithmic-con-2"), + ], + links: [{ text: "USDX", url: "https://usdx.money/" }], + }, + ] + + const toolsData = [ + { + title: "Stablecoins.wtf", + description: t("page-stablecoins-tools-stablecoinswtf-description"), + link: "https://stablecoins.wtf", + image: stablecoinsWtfImg, + alt: "Stablecoins.wtf", + }, + { + title: "Stablepulse", + description: t("page-stablecoins-tools-stablepulse-description"), + link: "https://www.stablepulse.org/", + image: stablePulseImg, + alt: "Stablepulse logo", + className: "[&_img]:p-1", + }, + { + title: "Stables.info", + description: t("page-stablecoins-tools-stablesinfo-description"), + link: "https://stables.info/", + image: stablesInfoImg, + alt: "Stables.info logo", + }, + { + title: "Dune Stablecoin Metrics", + description: t("page-stablecoins-tools-dune-description"), + link: "https://dune.com/overview/stablecoin", + image: duneImg, + alt: "Dune Stablecoin Metrics logo", + className: "dark:[&_img]:invert [&_img]:p-2", + }, + { + title: "Visa Onchain Analytics", + description: t("page-stablecoins-tools-visa-description"), + link: "https://visaonchainanalytics.com/", + image: visaImg, + alt: "Visa Onchain Analytics logo", + }, + { + title: "Stablewars", + description: t("page-stablecoins-tools-stablewars-description"), + link: "https://stablewars.xyz/", + image: stablesWarsImg, + alt: "Stablewars logo", + className: "[&_img]:p-1", + }, + ] + return ( - + + + +
+ +
+

{t("page-stablecoins-why-stablecoins")}

+

+ {t("page-stablecoins-prices-definition")}{" "} + + {t("page-stablecoins-prices-definition-how")} + +

+
+
+ + + {tokens.map((token, index) => ( +
+ +
+ ))} +
+ + +

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

+

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

+
+
+
+ +
+
+

{t("page-stablecoins-find-stablecoin")}

+ +

+ {t("page-stablecoins-find-stablecoin-intro")} +

+
    +
  • + + {t("page-stablecoins-find-stablecoin-types-link")} + +
  • +
  • + + {t("page-stablecoins-find-stablecoin-how-to-get-them")} + +
  • +
+
+ +

+ {t("page-stablecoins-editors-choice")} +

+

{t("page-stablecoins-editors-choice-intro")}

+ +
+ {editorsChoices.map((choice, idx) => ( + + +
+

{choice.title}

+

{choice.body}

+
+
+ +
+ + {choice.swapButtonText} + +
+
+ + {choice.learnButtonText} + +
+
+
+
+ +
+ + {choice.alt} +
+
+
+ {choice.marketCap ? ( + + {choice.marketCap} + + ) : ( + - + )} +
+
+ {t( + "page-stablecoins-stablecoins-table-header-column-2" + )} +
+
+
+
+ ))} +
+ +

+ {t("page-stablecoins-top-coins")} + + + +

+ +

+ {t("page-stablecoins-top-coins-intro")}{" "} + {t("page-stablecoins-top-coins-intro-code")} +

+
+ + {/* CLIENT SIDE */} + +
+ +
+

{t("page-stablecoins-get-stablecoins")}

+ + {/* CLIENT SIDE */} + + +
+ +
+ +
+ + {t("page-stablecoins-explore-dapps")} + + + {t("page-stablecoins-more-defi-button")} + +
+
+

{t("page-stablecoins-save-stablecoins")}

+ +
+

+ {t("page-stablecoins-save-stablecoins-body")} +

+

+ {t("page-stablecoins-interest-earning-dapps")} +

+

{t("page-stablecoins-saving")}

+
+
+
+ {dapps.map((dapp, idx) => ( + + ))} +
+
+ +
+

{t("page-stablecoins-types-of-stablecoin")}

+ + + {features.map((feature) => ( + + + {feature.title} + + ))} + + {features.map((feature) => ( + +
+
+ +
+
+

{feature.title}

+
{feature.description}
+
+ {feature.pros && ( +
+

+ {t("pros")} +

+
    + {feature.pros.map((pro, idx) => ( +
  • {pro}
  • + ))} +
+
+ )} + {feature.cons && ( +
+

+ {t("cons")} +

+
    + {feature.cons.map((con, idx) => ( +
  • {con}
  • + ))} +
+
+ )} +
+ {feature.links && feature.links.length > 0 && ( +
+

+ {t("example-projects")} +

+
    + {feature.links.map((link, idx) => ( +
  • + + {link.text} + +
  • + ))} +
+
+ )} +
+
+
+ ))} +
+
+
+

{t("page-stablecoins-tools-title")}

+ +
:not(:nth-last-child(-n+2))]:border-b md:[&_[aria-labelledby='category-name']>:nth-last-child(-n+2)]:border-b-0", + "[&_img]:shadow-none" + )} + > + +
+
+
+ + +
+
) } diff --git a/app/[locale]/start/_components/start.tsx b/app/[locale]/start/_components/start.tsx deleted file mode 100644 index 568ab219830..00000000000 --- a/app/[locale]/start/_components/start.tsx +++ /dev/null @@ -1,83 +0,0 @@ -"use client" - -import dynamic from "next/dynamic" -import { useLocale } from "next-intl" -import { QueryClient, QueryClientProvider } from "@tanstack/react-query" - -import { Wallet } from "@/lib/types" - -import { Image } from "@/components/Image" -import MainArticle from "@/components/MainArticle" -import StartWithEthereumFlow from "@/components/StartWithEthereumFlow" -import ShareModal from "@/components/StartWithEthereumFlow/ShareModal" - -import HeroImage from "@/public/images/heroes/developers-hub-hero.jpg" -import ManDogeImage from "@/public/images/start-with-ethereum/man-doge-playing.png" - -// Dynamically import Wagmi/RainbowKit components -const WalletProviders = dynamic(() => import("@/components/WalletProviders"), { - ssr: false, -}) - -const queryClient = new QueryClient() - -const StartWithCryptoPage = ({ - newToCryptoWallets, -}: { - newToCryptoWallets: Wallet[] -}) => { - const locale = useLocale() - - return ( - - - -
- {"Start -
- -
-
-

Get started with Ethereum

-

- Ethereum is so much more than just trading tokens on an - exchange. Step into the new world yourself and learn all the - basics in just few steps. -

-
- -
- -
- -
-
-

- Do you know anyone who needs help to onboard? -

-

- Billions can’t open bank accounts or freely use their money. - Ethereum’s financial system is always open and unbiased. -

-
- -
-
-
- Man Doge -
-
-
-
-
-
- ) -} - -export default StartWithCryptoPage diff --git a/app/[locale]/start/page.tsx b/app/[locale]/start/page.tsx index c6d3c2ccd1a..51bf42a9b7d 100644 --- a/app/[locale]/start/page.tsx +++ b/app/[locale]/start/page.tsx @@ -1,25 +1,24 @@ -import { pick } from "lodash" -import { getMessages, setRequestLocale } from "next-intl/server" +import { getTranslations, setRequestLocale } from "next-intl/server" import { Lang } from "@/lib/types" -import I18nProvider from "@/components/I18nProvider" +import { Image } from "@/components/Image" +import MainArticle from "@/components/MainArticle" +import StartWithEthereumFlow from "@/components/StartWithEthereumFlow" +import ShareModal from "@/components/StartWithEthereumFlow/ShareModal" import { getMetadata } from "@/lib/utils/metadata" -import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import { getNewToCryptoWallets } from "@/lib/utils/wallets" -import StartPage from "./_components/start" +import HeroImage from "@/public/images/heroes/developers-hub-hero.jpg" +import ManDogeImage from "@/public/images/start-with-ethereum/man-doge-playing.png" const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { const { locale } = await params setRequestLocale(locale) - // Get i18n messages - const allMessages = await getMessages({ locale }) - const requiredNamespaces = getRequiredNamespacesForPage("/start") - const messages = pick(allMessages, requiredNamespaces) + const t = await getTranslations({ locale, namespace: "page-start" }) const newToCryptoWallets = getNewToCryptoWallets() const wallets = newToCryptoWallets.map((wallet) => ({ @@ -28,9 +27,41 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { })) return ( - - - + +
+ {t("page-start-hero-alt")} +
+ +
+
+

{t("page-start-title")}

+

{t("page-start-subtitle")}

+
+ +
+ +
+ +
+
+

{t("page-start-share-section-title")}

+

{t("page-start-share-section-description")}

+
+ +
+
+
+ {t("page-start-man-doge-alt")} +
+
+
+
) } @@ -41,11 +72,13 @@ export async function generateMetadata({ }) { const { locale } = await params + const t = await getTranslations({ locale, namespace: "page-start" }) + return await getMetadata({ locale, slug: ["start"], - title: "Start with crypto", - description: "Your gateway to the world of ethereum", + title: t("page-start-meta-title"), + description: t("page-start-meta-description"), image: "/images/heroes/developers-hub-hero.jpg", }) } diff --git a/app/not-found.tsx b/app/not-found.tsx index 80eff03aa70..6b23c994a9d 100644 --- a/app/not-found.tsx +++ b/app/not-found.tsx @@ -1,15 +1,13 @@ -"use client" - -import Error from "next/error" +import NotFoundPage from "@/components/NotFoundPage" import { DEFAULT_LOCALE } from "@/lib/constants" -export default function GlobalNotFound() { +import LocaleLayout from "./[locale]/layout" + +export default async function GlobalNotFound() { return ( - - - - - + + + ) } diff --git a/package.json b/package.json index 07e31ff19bc..cf5cd95fbf9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ethereum-org-website", - "version": "10.5.0", + "version": "10.6.1", "license": "MIT", "private": true, "scripts": { @@ -84,7 +84,7 @@ "recharts": "^2.13.3", "remark-gfm": "^4.0.1", "sharp": "0.32.6", - "swiper": "^11.1.10", + "swiper": "^11.2.8", "tailwind-merge": "^2.3.0", "tailwind-variants": "^0.2.1", "tailwindcss-animate": "^1.0.7", @@ -116,17 +116,17 @@ "@types/react": "18.2.57", "@types/react-dom": "18.2.19", "@types/xml2js": "^0.4.14", - "@typescript-eslint/eslint-plugin": "^6.19.0", - "@typescript-eslint/parser": "^6.19.0", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", "autoprefixer": "^10.4.19", "chromatic": "10.9.6", "decompress": "^4.2.1", - "eslint": "^8.45.0", + "eslint": "^8.57.1", "eslint-config-next": "^14.2.2", - "eslint-config-prettier": "9.1.0", + "eslint-config-prettier": "^9", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-storybook": "0.8.0", - "eslint-plugin-unused-imports": "^3.0.0", + "eslint-plugin-unused-imports": "^3.2.0", "husky": "^9.0.11", "image-size": "^1.0.2", "lint-staged": "^15.2.5", @@ -150,5 +150,5 @@ "unist-util-visit": "^5.0.0", "xml2js": "^0.6.2" }, - "packageManager": "pnpm@10.11.0+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977" + "packageManager": "pnpm@10.11.1+sha512.e519b9f7639869dc8d5c3c5dfef73b3f091094b0a006d7317353c72b124e80e1afd429732e28705ad6bfa1ee879c1fce46c128ccebd3192101f43dd67c667912" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0163e99670..c9426e9e031 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 3.9.0(@algolia/client-search@5.25.0)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) '@hookform/resolvers': specifier: ^3.8.0 - version: 3.10.0(react-hook-form@7.56.4(react@18.3.1)) + version: 3.10.0(react-hook-form@7.57.0(react@18.3.1)) '@next/bundle-analyzer': specifier: ^14.2.5 version: 14.2.29(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -76,13 +76,13 @@ importers: version: 1.2.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@rainbow-me/rainbowkit': specifier: ^2.2.3 - version: 2.2.5(@tanstack/react-query@5.79.0(react@18.3.1))(@types/react@18.2.57)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.15.4(@tanstack/query-core@5.79.0)(@tanstack/react-query@5.79.0(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)) + version: 2.2.5(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.15.4(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)) '@socialgouv/matomo-next': specifier: ^1.8.0 - version: 1.9.2(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 1.9.2(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@tanstack/react-query': specifier: ^5.66.7 - version: 5.79.0(react@18.3.1) + version: 5.80.2(react@18.3.1) '@tanstack/react-table': specifier: ^8.19.3 version: 8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -127,16 +127,16 @@ importers: version: 4.17.21 next: specifier: ^14.2.26 - version: 14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-intl: specifier: ^3.26.3 - version: 3.26.5(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) next-mdx-remote: specifier: ^5.0.0 version: 5.0.0(@types/react@18.2.57)(acorn@8.14.1)(react@18.3.1) next-sitemap: specifier: ^4.2.3 - version: 4.2.3(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.2.3(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -163,7 +163,7 @@ importers: version: 2.33.2(react@18.3.1) react-hook-form: specifier: ^7.52.1 - version: 7.56.4(react@18.3.1) + version: 7.57.0(react@18.3.1) react-icons: specifier: ^5.5.0 version: 5.5.0(react@18.3.1) @@ -186,17 +186,17 @@ importers: specifier: 0.32.6 version: 0.32.6 swiper: - specifier: ^11.1.10 + specifier: ^11.2.8 version: 11.2.8 tailwind-merge: specifier: ^2.3.0 version: 2.6.0 tailwind-variants: specifier: ^0.2.1 - version: 0.2.1(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3))) + version: 0.2.1(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3))) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3))) + version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3))) three: specifier: ^0.177.0 version: 0.177.0 @@ -208,10 +208,10 @@ importers: version: 1.1.2(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) viem: specifier: ^2.23.3 - version: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + version: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) wagmi: specifier: ^2.14.11 - version: 2.15.4(@tanstack/query-core@5.79.0)(@tanstack/react-query@5.79.0(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + version: 2.15.4(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) yaml-loader: specifier: ^0.8.0 version: 0.8.1 @@ -239,7 +239,7 @@ importers: version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/nextjs': specifier: ^8.6.14 - version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.5)(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.5)) + version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.5)(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.5)) '@storybook/react': specifier: 8.6.14 version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) @@ -266,7 +266,7 @@ importers: version: 4.0.4 '@types/node': specifier: ^20.4.2 - version: 20.17.54 + version: 20.17.57 '@types/react': specifier: 18.2.57 version: 18.2.57 @@ -277,11 +277,11 @@ importers: specifier: ^0.4.14 version: 0.4.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.19.0 - version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + specifier: ^7.18.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: ^6.19.0 - version: 6.21.0(eslint@8.57.1)(typescript@5.8.3) + specifier: ^7.18.0 + version: 7.18.0(eslint@8.57.1)(typescript@5.8.3) autoprefixer: specifier: ^10.4.19 version: 10.4.21(postcss@8.5.4) @@ -292,13 +292,13 @@ importers: specifier: ^4.2.1 version: 4.2.1 eslint: - specifier: ^8.45.0 + specifier: ^8.57.1 version: 8.57.1 eslint-config-next: specifier: ^14.2.2 version: 14.2.29(eslint@8.57.1)(typescript@5.8.3) eslint-config-prettier: - specifier: 9.1.0 + specifier: ^9 version: 9.1.0(eslint@8.57.1) eslint-plugin-simple-import-sort: specifier: ^10.0.0 @@ -307,8 +307,8 @@ importers: specifier: 0.8.0 version: 0.8.0(eslint@8.57.1)(typescript@5.8.3) eslint-plugin-unused-imports: - specifier: ^3.0.0 - version: 3.2.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + specifier: ^3.2.0 + version: 3.2.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) husky: specifier: ^9.0.11 version: 9.1.7 @@ -338,7 +338,7 @@ importers: version: 3.5.3 prettier-plugin-tailwindcss: specifier: ^0.6.5 - version: 0.6.11(prettier@3.5.3) + version: 0.6.12(prettier@3.5.3) raw-loader: specifier: ^4.0.2 version: 4.0.2(webpack@5.99.9(esbuild@0.25.5)) @@ -353,13 +353,13 @@ importers: version: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) storybook-next-intl: specifier: ^1.2.5 - version: 1.2.6(next-intl@3.26.5(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)) + version: 1.2.6(next-intl@3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)) tailwindcss: specifier: ^3.4.4 - version: 3.4.17(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3)) + version: 3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@20.17.54)(typescript@5.8.3) + version: 10.9.2(@types/node@20.17.57)(typescript@5.8.3) tsconfig-paths-webpack-plugin: specifier: 4.1.0 version: 4.1.0 @@ -468,16 +468,16 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.3': - resolution: {integrity: sha512-V42wFfx1ymFte+ecf6iXghnnP8kWTO+ZLXIyZq+1LAXHHvTZdVxicn4yiVYdYMGaCO3tmqub11AorKkv+iodqw==} + '@babel/compat-data@7.27.5': + resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} engines: {node: '>=6.9.0'} - '@babel/core@7.27.3': - resolution: {integrity: sha512-hyrN8ivxfvJ4i0fIJuV4EOlV0WDMz5Ui4StRTgVaAvWeiRCilXgwVvxJKtFQ3TKtHgJscB2YiXKGNJuVwhQMtA==} + '@babel/core@7.27.4': + resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} engines: {node: '>=6.9.0'} - '@babel/generator@7.27.3': - resolution: {integrity: sha512-xnlJYj5zepml8NXtjkG0WquFUv8RskFqyFcVgTBp5k+NaA/8uw/K+OSVf8AMGw5e9HKP2ETd5xpK5MLZQD6b4Q==} + '@babel/generator@7.27.5': + resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.27.3': @@ -559,12 +559,12 @@ packages: resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.3': - resolution: {integrity: sha512-h/eKy9agOya1IGuLaZ9tEUgz+uIRXcbtOhRtUyyMf8JFmn1iT13vnl/IGVWSkdOCG/pC57U4S1jnAabAavTMwg==} + '@babel/helpers@7.27.4': + resolution: {integrity: sha512-Y+bO6U+I7ZKaM5G5rDUZiYfUvQPUibYmAFe7EnKdnKBbVXDZxvp+MWOH5gYciY0EPk4EScsuFMQBbEfpdRKSCQ==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.3': - resolution: {integrity: sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==} + '@babel/parser@7.27.5': + resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} engines: {node: '>=6.0.0'} hasBin: true @@ -668,8 +668,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.27.3': - resolution: {integrity: sha512-+F8CnfhuLhwUACIJMLWnjz6zvzYM2r0yeIHKlbgfw7ml8rOMJsXNXV/hyRcb3nb493gRs4WvYpQAndWj/qQmkQ==} + '@babel/plugin-transform-block-scoping@7.27.5': + resolution: {integrity: sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -902,8 +902,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.27.1': - resolution: {integrity: sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw==} + '@babel/plugin-transform-regenerator@7.27.5': + resolution: {integrity: sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -920,8 +920,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-runtime@7.27.3': - resolution: {integrity: sha512-bA9ZL5PW90YwNgGfjg6U+7Qh/k3zCEQJ06BFgAGRp/yMjw9hP9UGbGPtx3KSOkHGljEPCCxaE+PH4fUR2h1sDw==} + '@babel/plugin-transform-runtime@7.27.4': + resolution: {integrity: sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1009,16 +1009,16 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.27.3': - resolution: {integrity: sha512-7EYtGezsdiDMyY80+65EzwiGmcJqpmcZCojSXaRgdrBaGtWTgDZKq69cPIVped6MkIM78cTQ2GOiEYjwOlG4xw==} + '@babel/runtime@7.27.4': + resolution: {integrity: sha512-t3yaEOuGu9NlIZ+hIeGbBjFtZT7j2cb2tg0fuaJKeGotchRjjLfrBA9Kwf8quhpP1EUuxModQg04q/mBwyg8uA==} engines: {node: '>=6.9.0'} '@babel/template@7.27.2': resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.3': - resolution: {integrity: sha512-lId/IfN/Ye1CIu8xG7oKBHXd2iNb2aW1ilPszzGcJug6M8RCKfVNcYhpI5+bMvFYjK7lXIM0R+a+6r8xhHp2FQ==} + '@babel/traverse@7.27.4': + resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} engines: {node: '>=6.9.0'} '@babel/types@7.27.3': @@ -1319,14 +1319,14 @@ packages: resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} engines: {node: '>=14'} - '@floating-ui/core@1.7.0': - resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==} + '@floating-ui/core@1.7.1': + resolution: {integrity: sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==} - '@floating-ui/dom@1.7.0': - resolution: {integrity: sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==} + '@floating-ui/dom@1.7.1': + resolution: {integrity: sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==} - '@floating-ui/react-dom@2.1.2': - resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + '@floating-ui/react-dom@2.1.3': + resolution: {integrity: sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' @@ -2612,11 +2612,11 @@ packages: '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} - '@tanstack/query-core@5.79.0': - resolution: {integrity: sha512-s+epTqqLM0/TbJzMAK7OEhZIzh63P9sWz5HEFc5XHL4FvKQXQkcjI8F3nee+H/xVVn7mrP610nVXwOytTSYd0w==} + '@tanstack/query-core@5.80.2': + resolution: {integrity: sha512-g2Es97uwFk7omkWiH9JmtLWSA8lTUFVseIyzqbjqJEEx7qN+Hg6jbBdDvelqtakamppaJtGORQ64hEJ5S6ojSg==} - '@tanstack/react-query@5.79.0': - resolution: {integrity: sha512-DjC4JIYZnYzxaTzbg3osOU63VNLP67dOrWet2cZvXgmgwAXNxfS52AMq86M5++ILuzW+BqTUEVMTjhrZ7/XBuA==} + '@tanstack/react-query@5.80.2': + resolution: {integrity: sha512-LfA0SVheJBOqC8RfJw/JbOW3yh2zuONQeWU5Prjm7yjUGUONeOedky1Bj39Cfj8MRdXrZV+DxNT7/DN/M907lQ==} peerDependencies: react: ^18 || ^19 @@ -2769,8 +2769,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@20.17.54': - resolution: {integrity: sha512-aD9UeDW/GV8H54ESLKuvBHslOzXIKF4XTgHxvlCqUr7AsY9wnHFQQO3TrrAoaLmC113xe002YFFU8WCscD9W7g==} + '@types/node@20.17.57': + resolution: {integrity: sha512-f3T4y6VU4fVQDKVqJV4Uppy8c1p/sVvS3peyqxyWnzkqXFJLRU7Y1Bl7rMS1Qe9z0v4M6McY0Fp9yBsgHJUsWQ==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -2825,52 +2825,94 @@ packages: '@types/xml2js@0.4.14': resolution: {integrity: sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==} - '@typescript-eslint/eslint-plugin@6.21.0': - resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@typescript-eslint/parser@6.21.0': - resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/eslint-plugin@8.33.1': + resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.33.1 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true + '@typescript-eslint/parser@8.33.1': + resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/project-service@8.33.1': + resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@6.21.0': - resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/scope-manager@8.33.1': + resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.33.1': + resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true + '@typescript-eslint/type-utils@8.33.1': + resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/types@8.33.1': + resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} @@ -2881,120 +2923,137 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true + '@typescript-eslint/typescript-estree@8.33.1': + resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + + '@typescript-eslint/utils@8.33.1': + resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + + '@typescript-eslint/visitor-keys@8.33.1': + resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@unrs/resolver-binding-darwin-arm64@1.7.8': - resolution: {integrity: sha512-rsRK8T7yxraNRDmpFLZCWqpea6OlXPNRRCjWMx24O1V86KFol7u2gj9zJCv6zB1oJjtnzWceuqdnCgOipFcJPA==} + '@unrs/resolver-binding-darwin-arm64@1.7.9': + resolution: {integrity: sha512-hWbcVTcNqgUirY5DC3heOLrz35D926r2izfxveBmuIgDwx9KkUHfqd93g8PtROJX01lvhmyAc3E09/ma6jhyqQ==} cpu: [arm64] os: [darwin] - '@unrs/resolver-binding-darwin-x64@1.7.8': - resolution: {integrity: sha512-16yEMWa+Olqkk8Kl6Bu0ltT5OgEedkSAsxcz1B3yEctrDYp3EMBu/5PPAGhWVGnwhtf3hNe3y15gfYBAjOv5tQ==} + '@unrs/resolver-binding-darwin-x64@1.7.9': + resolution: {integrity: sha512-NCZb/oaXELjt8jtm6ztlNPpAxKZsKIxsGYPSxkwQdQ/zl7X2PfyCpWqwoGE4A9vCP6gAgJnvH3e22nE0qk9ieA==} cpu: [x64] os: [darwin] - '@unrs/resolver-binding-freebsd-x64@1.7.8': - resolution: {integrity: sha512-ST4uqF6FmdZQgv+Q73FU1uHzppeT4mhX3IIEmHlLObrv5Ep50olWRz0iQ4PWovadjHMTAmpuJAGaAuCZYb7UAQ==} + '@unrs/resolver-binding-freebsd-x64@1.7.9': + resolution: {integrity: sha512-/AYheGgFn9Pw3X3pYFCohznydaUA9980/wlwgbgCsVxnY4IbqVoZhTLQZ4JWKKaOWBwwmM8FseHf5h5OawyOQQ==} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.8': - resolution: {integrity: sha512-Z/A/4Rm2VWku2g25C3tVb986fY6unx5jaaCFpx1pbAj0OKkyuJ5wcQLHvNbIcJ9qhiYwXfrkB7JNlxrAbg7YFg==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.9': + resolution: {integrity: sha512-RYV9sEH3o6SZum5wGb9evXlgibsVfluuiyi09hXVD+qPRrCSB45h3z1HjZpe9+c25GiN53CEy149fYS0fLVBtw==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.8': - resolution: {integrity: sha512-HN0p7o38qKmDo3bZUiQa6gP7Qhf0sKgJZtRfSHi6JL2Gi4NaUVF0EO1sQ1RHbeQ4VvfjUGMh3QE5dxEh06BgQQ==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.9': + resolution: {integrity: sha512-0ishMZMCYNJd4SNjHnjByHWh6ia7EDVZrOVAW8wf9Vz2PTZ0pLrFwu5c9voHouGKg7s2cnzPz87c0OK7dwimUQ==} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.7.8': - resolution: {integrity: sha512-HsoVqDBt9G69AN0KWeDNJW+7i8KFlwxrbbnJffgTGpiZd6Jw+Q95sqkXp8y458KhKduKLmXfVZGnKBTNxAgPjw==} + '@unrs/resolver-binding-linux-arm64-gnu@1.7.9': + resolution: {integrity: sha512-FOspRldYylONzWCkF5n/B1MMYKXXlg2bzgcgESEVcP4LFh0eom/0XsWvfy+dlfBJ+FkYfJjvBJeje14xOBOa6g==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm64-musl@1.7.8': - resolution: {integrity: sha512-VfR2yTDUbUvn+e/Aw22CC9fQg9zdShHAfwWctNBdOk7w9CHWl2OtYlcMvjzMAns8QxoHQoqn3/CEnZ4Ts7hfrA==} + '@unrs/resolver-binding-linux-arm64-musl@1.7.9': + resolution: {integrity: sha512-P1S5jTht888/1mZVrBZx8IOxpikRDPoECxod1CcAHYUZGUNr+PNp1m5eB9FWMK2zRCJ8HgHNZfdRyDf9pNCrlQ==} cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.8': - resolution: {integrity: sha512-xUauVQNz4uDgs4UJJiUAwMe3N0PA0wvtImh7V0IFu++UKZJhssXbKHBRR4ecUJpUHCX2bc4Wc8sGsB6P+7BANg==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.9': + resolution: {integrity: sha512-cD9+BPxlFSiIkGWknSgKdTMGZIzCtSIg/O7GJ1LoC+jGtUOBNBJYMn6FyEPRvdpphewYzaCuPsikrMkpdX303Q==} cpu: [ppc64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.8': - resolution: {integrity: sha512-GqyIB+CuSHGhhc8ph5RrurtNetYJjb6SctSHafqmdGcRuGi6uyTMR8l18hMEhZFsXdFMc/MpInPLvmNV22xn+A==} + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.9': + resolution: {integrity: sha512-Z6IuWg9u0257dCVgc/x/zIKamqJhrmaOFuq3AYsSt6ZtyEHoyD5kxdXQUvEgBAd/Fn1b8tsX+VD9mB9al5306Q==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-riscv64-musl@1.7.8': - resolution: {integrity: sha512-eEU3rWIFRv60xaAbtsgwHNWRZGD7cqkpCvNtio/f1TjEE3HfKLzPNB24fA9X/8ZXQrGldE65b7UKK3PmO4eWIQ==} + '@unrs/resolver-binding-linux-riscv64-musl@1.7.9': + resolution: {integrity: sha512-HpINrXLJVEpvkHHIla6pqhMAKbQBrY+2946i6rF6OlByONLTuObg65bcv3A38qV9yqJ7vtE0FyfNn68k0uQKbg==} cpu: [riscv64] os: [linux] - '@unrs/resolver-binding-linux-s390x-gnu@1.7.8': - resolution: {integrity: sha512-GVLI0f4I4TlLqEUoOFvTWedLsJEdvsD0+sxhdvQ5s+N+m2DSynTs8h9jxR0qQbKlpHWpc2Ortz3z48NHRT4l+w==} + '@unrs/resolver-binding-linux-s390x-gnu@1.7.9': + resolution: {integrity: sha512-ZXZFfaPFXnrDIPpkFoAZmxzXwqqfCHfnFdZhrEd+mrc/hHTQyxINyzrFMFCqtAa5eIjD7vgzNIXsMFU2QBnCPw==} cpu: [s390x] os: [linux] - '@unrs/resolver-binding-linux-x64-gnu@1.7.8': - resolution: {integrity: sha512-GX1pZ/4ncUreB0Rlp1l7bhKAZ8ZmvDIgXdeb5V2iK0eRRF332+6gRfR/r5LK88xfbtOpsmRHU6mQ4N8ZnwvGEA==} + '@unrs/resolver-binding-linux-x64-gnu@1.7.9': + resolution: {integrity: sha512-EzeeaZnuQOa93ox08oa9DqgQc8sK59jfs+apOUrZZSJCDG1ZbtJINPc8uRqE7p3Z66FPAe/uO3+7jZTkWbVDfg==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-linux-x64-musl@1.7.8': - resolution: {integrity: sha512-n1N84MnsvDupzVuYqJGj+2pb9s8BI1A5RgXHvtVFHedGZVBCFjDpQVRlmsFMt6xZiKwDPaqsM16O/1isCUGt7w==} + '@unrs/resolver-binding-linux-x64-musl@1.7.9': + resolution: {integrity: sha512-a07ezNt0OY8Vv/iDreJo7ZkKtwRb6UCYaCcMY2nm3ext7rTtDFS7X1GePqrbByvIbRFd6E5q1CKBPzJk6M360Q==} cpu: [x64] os: [linux] - '@unrs/resolver-binding-wasm32-wasi@1.7.8': - resolution: {integrity: sha512-x94WnaU5g+pCPDVedfnXzoG6lCOF2xFGebNwhtbJCWfceE94Zj8aysSxdxotlrZrxnz5D3ijtyFUYtpz04n39Q==} + '@unrs/resolver-binding-wasm32-wasi@1.7.9': + resolution: {integrity: sha512-d0fHnxgtrv75Po6LKJLjo1LFC5S0E8vv86H/5wGDFLG0AvS/0k+SghgUW6zAzjM2XRAic/qcy9+O7n/5JOjxFA==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/resolver-binding-win32-arm64-msvc@1.7.8': - resolution: {integrity: sha512-vst2u8EJZ5L6jhJ6iLis3w9rg16aYqRxQuBAMYQRVrPMI43693hLP7DuqyOBRKgsQXy9/jgh204k0ViHkqQgdg==} + '@unrs/resolver-binding-win32-arm64-msvc@1.7.9': + resolution: {integrity: sha512-0MFcaQDsUYxNqRxjPdsMKg1OGtmsqLzPY2Nwiiyalx6HFvkcHxgRCAOppgeUuDucpUEf76k/4tBzfzPxjYkFUg==} cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-ia32-msvc@1.7.8': - resolution: {integrity: sha512-yb3LZOLMFqnA+/ShlE1E5bpYPGDsA590VHHJPB+efnyowT776GJXBoh82em6O9WmYBUq57YblGTcMYAFBm72HA==} + '@unrs/resolver-binding-win32-ia32-msvc@1.7.9': + resolution: {integrity: sha512-SiewmebiN32RpzrV1Dvbw7kdDCRuPThdgEWKJvDNcEGnVEV3ScYGuk5smJjKHXszqNX3mIXG/PcCXqHsE/7XGA==} cpu: [ia32] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.7.8': - resolution: {integrity: sha512-hHKFx+opG5BA3/owMXon8ypwSotBGTdblG6oda/iOu9+OEYnk0cxD2uIcGyGT8jCK578kV+xMrNxqbn8Zjlpgw==} + '@unrs/resolver-binding-win32-x64-msvc@1.7.9': + resolution: {integrity: sha512-hORofIRZCm85+TUZ9OmHQJNlgtOmK/TPfvYeSplKAl+zQvAwMGyy6DZcSbrF+KdB1EDoGISwU7dX7PE92haOXg==} cpu: [x64] os: [win32] @@ -3327,8 +3386,8 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} array-union@2.1.0: @@ -4280,8 +4339,8 @@ packages: resolution: {integrity: sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA==} engines: {bun: '>=1', deno: '>=2', node: '>=16'} - electron-to-chromium@1.5.161: - resolution: {integrity: sha512-hwtetwfKNZo/UlwHIVBlKZVdy7o8bIZxxKs0Mv/ROPiQQQmDgdm5a+KvKtBsxM8ZjFzTaCeLoodZ8jiBE3o9rA==} + electron-to-chromium@1.5.162: + resolution: {integrity: sha512-hQA+Zb5QQwoSaXJWEAGEw1zhk//O7qDzib05Z4qTqZfNju/FAkrm5ZInp0JbTp4Z18A6bilopdZWEYrFSsfllA==} elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -4536,6 +4595,10 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5075,6 +5138,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + image-size@1.2.1: resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} engines: {node: '>=16.x'} @@ -5806,10 +5873,6 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -6349,6 +6412,9 @@ packages: preact@10.26.8: resolution: {integrity: sha512-1nMfdFjucm5hKvq0IClqZwK4FJkGXhRrQstOQ3P4vp8HxKrJEMFcY6RdBRVTdfQS/UlnX6gfbPuTvaqx/bDoeQ==} + preact@10.26.9: + resolution: {integrity: sha512-SSjF9vcnF27mJK1XyFMNJzFd5u3pQiATFqoaDy03XuN00u4ziveVVEGt5RKJrDR8MHE/wJo9Nnad56RLzS2RMA==} + prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} @@ -6358,8 +6424,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-tailwindcss@0.6.11: - resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==} + prettier-plugin-tailwindcss@0.6.12: + resolution: {integrity: sha512-OuTQKoqNwV7RnxTPwXWzOFXy6Jc4z8oeRZYGuMpRyG3WbuR3jjXdQFK8qFBMBx8UHWdHrddARz2fgUenild6aw==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -6561,8 +6627,8 @@ packages: peerDependencies: react: '*' - react-hook-form@7.56.4: - resolution: {integrity: sha512-Rob7Ftz2vyZ/ZGsQZPaRdIefkgOSrQSPXfqBdvOPwJfoGnjwRJUs7EM7Kc1mcoDv3NOtqBzPGbcMB8CGn9CKgw==} + react-hook-form@7.57.0: + resolution: {integrity: sha512-RbEks3+cbvTP84l/VXGUZ+JMrKOS8ykQCRYdm5aYsxnDquL0vspsyNhGRO7pcH6hsZqWlPOjLye7rJqdtdAmlg==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -6617,8 +6683,8 @@ packages: '@types/react': optional: true - react-remove-scroll@2.7.0: - resolution: {integrity: sha512-sGsQtcjMqdQyijAHytfGEELB8FufGbfXIsvUTe+NLx1GDRJCXtCFLBLUI1eyZCKXXvbEU2C6gai0PZKoIE9Vbg==} + react-remove-scroll@2.7.1: + resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} engines: {node: '>=10'} peerDependencies: '@types/react': '*' @@ -7092,8 +7158,8 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - streamx@2.22.0: - resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} + streamx@2.22.1: + resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==} strict-uri-encode@2.0.0: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} @@ -7424,6 +7490,12 @@ packages: peerDependencies: typescript: '>=4.2.0' + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -7611,8 +7683,8 @@ packages: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} - unrs-resolver@1.7.8: - resolution: {integrity: sha512-2zsXwyOXmCX9nGz4vhtZRYhe30V78heAv+KDc21A/KMdovGHbZcixeD5JHEF0DrFXzdytwuzYclcPbvp8A3Jlw==} + unrs-resolver@1.7.9: + resolution: {integrity: sha512-hhFtY782YKwpz54G1db49YYS1RuMn8mBylIrCldrjb9BxZKnQ2xHw7+2zcl7H6fnUlTHGWv23/+677cpufhfxQ==} unstorage@1.16.0: resolution: {integrity: sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==} @@ -7809,8 +7881,8 @@ packages: typescript: optional: true - viem@2.30.5: - resolution: {integrity: sha512-YymUl7AKsIw3BhQLZxr3j+g8OwqsxmV3xu7zDMmmuFACtvQ3YZaFsKrH7N8eTXpPHYgMlClvKIjgXS8Twt+sQQ==} + viem@2.30.6: + resolution: {integrity: sha512-N3vGy3pZ+EVgQRuWqQhZPFXxQE8qMRrBd3uM+KLc1Ub2w6+vkyr7umeWQCM4c+wlsCdByUgh2630MDMLquMtpg==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -7858,8 +7930,8 @@ packages: webpack-hot-middleware@2.26.1: resolution: {integrity: sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==} - webpack-sources@3.3.0: - resolution: {integrity: sha512-77R0RDmJfj9dyv5p3bM5pOHa+X8/ZkO9c7kpDstigkC4nIDobadsfSGCwB4bKhMVxqAok8tajaoR8rirM7+VFQ==} + webpack-sources@3.3.2: + resolution: {integrity: sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==} engines: {node: '>=10.13.0'} webpack-virtual-modules@0.6.2: @@ -8179,19 +8251,19 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.27.3': {} + '@babel/compat-data@7.27.5': {} - '@babel/core@7.27.3': + '@babel/core@7.27.4': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.3 + '@babel/generator': 7.27.5 '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.3) - '@babel/helpers': 7.27.3 - '@babel/parser': 7.27.3 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helpers': 7.27.4 + '@babel/parser': 7.27.5 '@babel/template': 7.27.2 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 '@babel/types': 7.27.3 convert-source-map: 2.0.0 debug: 4.4.1 @@ -8201,9 +8273,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.27.3': + '@babel/generator@7.27.5': dependencies: - '@babel/parser': 7.27.3 + '@babel/parser': 7.27.5 '@babel/types': 7.27.3 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 @@ -8215,35 +8287,35 @@ snapshots: '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.27.3 + '@babel/compat-data': 7.27.5 '@babel/helper-validator-option': 7.27.1 browserslist: 4.25.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.3)': + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.3) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.3)': + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.3)': + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.1 @@ -8254,24 +8326,24 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 '@babel/types': 7.27.3 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 '@babel/types': 7.27.3 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.3)': + '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color @@ -8281,27 +8353,27 @@ snapshots: '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.3)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.27.1 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.3)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 '@babel/types': 7.27.3 transitivePeerDependencies: - supports-color @@ -8315,589 +8387,589 @@ snapshots: '@babel/helper-wrap-function@7.27.1': dependencies: '@babel/template': 7.27.2 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 '@babel/types': 7.27.3 transitivePeerDependencies: - supports-color - '@babel/helpers@7.27.3': + '@babel/helpers@7.27.4': dependencies: '@babel/template': 7.27.2 '@babel/types': 7.27.3 - '@babel/parser@7.27.3': + '@babel/parser@7.27.5': dependencies: '@babel/types': 7.27.3 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.3) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.3)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.3)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.27.3)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.3)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.3) - '@babel/traverse': 7.27.3 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.3) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.27.3(@babel/core@7.27.3)': + '@babel/plugin-transform-block-scoping@7.27.5(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.3) - '@babel/traverse': 7.27.3 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) + '@babel/traverse': 7.27.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.27.3(@babel/core@7.27.3)': + '@babel/plugin-transform-destructuring@7.27.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.3 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.27.3(@babel/core@7.27.3)': + '@babel/plugin-transform-object-rest-spread@7.27.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.3) - '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.3) + '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.4) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.3) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.3) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) '@babel/types': 7.27.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-regenerator@7.27.5(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-runtime@7.27.3(@babel/core@7.27.3)': + '@babel/plugin-transform-runtime@7.27.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.3) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.3) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.3) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.4) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.4) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.4) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.3) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.3)': + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) '@babel/helper-plugin-utils': 7.27.1 - '@babel/preset-env@7.27.2(@babel/core@7.27.3)': + '@babel/preset-env@7.27.2(@babel/core@7.27.4)': dependencies: - '@babel/compat-data': 7.27.3 - '@babel/core': 7.27.3 + '@babel/compat-data': 7.27.5 + '@babel/core': 7.27.4 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.3) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.27.3) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-block-scoping': 7.27.3(@babel/core@7.27.3) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.3) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-object-rest-spread': 7.27.3(@babel/core@7.27.3) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-regenerator': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.27.3) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.27.3) - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.3) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.3) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.3) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.4) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.27.4) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-block-scoping': 7.27.5(@babel/core@7.27.4) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.4) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-object-rest-spread': 7.27.3(@babel/core@7.27.4) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-regenerator': 7.27.5(@babel/core@7.27.4) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.27.4) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.27.4) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.4) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.4) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.4) core-js-compat: 3.42.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.3)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/types': 7.27.3 esutils: 2.0.3 - '@babel/preset-react@7.27.1(@babel/core@7.27.3)': + '@babel/preset-react@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.27.3) + '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.27.1(@babel/core@7.27.3)': + '@babel/preset-typescript@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.3) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/runtime@7.27.3': {} + '@babel/runtime@7.27.4': {} '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.27.3 + '@babel/parser': 7.27.5 '@babel/types': 7.27.3 - '@babel/traverse@7.27.3': + '@babel/traverse@7.27.4': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.3 - '@babel/parser': 7.27.3 + '@babel/generator': 7.27.5 + '@babel/parser': 7.27.5 '@babel/template': 7.27.2 '@babel/types': 7.27.3 debug: 4.4.1 @@ -8931,7 +9003,7 @@ snapshots: eth-json-rpc-filters: 6.0.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.26.8 + preact: 10.26.9 sha.js: 2.4.11 transitivePeerDependencies: - supports-color @@ -8998,7 +9070,7 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.27.1 - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -9033,7 +9105,7 @@ snapshots: '@emotion/react@11.14.0(@types/react@18.2.57)(react@18.3.1)': dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 @@ -9185,18 +9257,18 @@ snapshots: ethereum-cryptography: 2.2.1 micro-ftch: 0.3.1 - '@floating-ui/core@1.7.0': + '@floating-ui/core@1.7.1': dependencies: '@floating-ui/utils': 0.2.9 - '@floating-ui/dom@1.7.0': + '@floating-ui/dom@1.7.1': dependencies: - '@floating-ui/core': 1.7.0 + '@floating-ui/core': 1.7.1 '@floating-ui/utils': 0.2.9 - '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/react-dom@2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/dom': 1.7.0 + '@floating-ui/dom': 1.7.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -9232,9 +9304,9 @@ snapshots: dependencies: tslib: 2.8.1 - '@hookform/resolvers@3.10.0(react-hook-form@7.56.4(react@18.3.1))': + '@hookform/resolvers@3.10.0(react-hook-form@7.57.0(react@18.3.1))': dependencies: - react-hook-form: 7.56.4(react@18.3.1) + react-hook-form: 7.57.0(react@18.3.1) '@humanwhocodes/config-array@0.13.0': dependencies: @@ -9494,7 +9566,7 @@ snapshots: '@metamask/sdk@0.32.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 '@metamask/onboarding': 1.0.1 '@metamask/providers': 16.1.0 '@metamask/sdk-communication-layer': 0.32.0(cross-fetch@4.1.0)(eciesjs@0.4.15)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)) @@ -9790,7 +9862,7 @@ snapshots: aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.0(@types/react@18.2.57)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.2.57)(react@18.3.1) optionalDependencies: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 @@ -9874,7 +9946,7 @@ snapshots: aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.0(@types/react@18.2.57)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.2.57)(react@18.3.1) optionalDependencies: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 @@ -9919,14 +9991,14 @@ snapshots: aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.0(@types/react@18.2.57)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.2.57)(react@18.3.1) optionalDependencies: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 '@radix-ui/react-popper@1.2.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) @@ -10057,7 +10129,7 @@ snapshots: aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.0(@types/react@18.2.57)(react@18.3.1) + react-remove-scroll: 2.7.1(@types/react@18.2.57)(react@18.3.1) optionalDependencies: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 @@ -10192,9 +10264,9 @@ snapshots: '@radix-ui/rect@1.1.1': {} - '@rainbow-me/rainbowkit@2.2.5(@tanstack/react-query@5.79.0(react@18.3.1))(@types/react@18.2.57)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.15.4(@tanstack/query-core@5.79.0)(@tanstack/react-query@5.79.0(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))': + '@rainbow-me/rainbowkit@2.2.5(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.15.4(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))': dependencies: - '@tanstack/react-query': 5.79.0(react@18.3.1) + '@tanstack/react-query': 5.80.2(react@18.3.1) '@vanilla-extract/css': 1.15.5(babel-plugin-macros@3.1.0) '@vanilla-extract/dynamic': 2.1.2 '@vanilla-extract/sprinkles': 1.6.3(@vanilla-extract/css@1.15.5(babel-plugin-macros@3.1.0)) @@ -10204,8 +10276,8 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.6.2(@types/react@18.2.57)(react@18.3.1) ua-parser-js: 1.0.40 - viem: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) - wagmi: 2.15.4(@tanstack/query-core@5.79.0)(@tanstack/react-query@5.79.0(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + wagmi: 2.15.4(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) transitivePeerDependencies: - '@types/react' - babel-plugin-macros @@ -10214,7 +10286,7 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - bufferutil - typescript @@ -10227,7 +10299,7 @@ snapshots: '@reown/appkit-wallet': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) '@walletconnect/universal-provider': 2.19.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) valtio: 1.13.2(@types/react@18.2.57)(react@18.3.1) - viem: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -10338,7 +10410,7 @@ snapshots: '@walletconnect/logger': 2.1.2 '@walletconnect/universal-provider': 2.19.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) valtio: 1.13.2(@types/react@18.2.57)(react@18.3.1) - viem: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -10390,7 +10462,7 @@ snapshots: '@walletconnect/universal-provider': 2.19.2(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) bs58: 6.0.0 valtio: 1.13.2(@types/react@18.2.57)(react@18.3.1) - viem: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -10435,7 +10507,7 @@ snapshots: '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.23.1 - viem: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - bufferutil - typescript @@ -10481,9 +10553,9 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 - '@socialgouv/matomo-next@1.9.2(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@socialgouv/matomo-next@1.9.2(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: - next: 14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@socket.io/component-emitter@3.1.2': {} @@ -10688,33 +10760,33 @@ snapshots: dependencies: storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) - '@storybook/nextjs@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.5)(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.5))': - dependencies: - '@babel/core': 7.27.3 - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.3) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.3) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.3) - '@babel/plugin-transform-object-rest-spread': 7.27.3(@babel/core@7.27.3) - '@babel/plugin-transform-runtime': 7.27.3(@babel/core@7.27.3) - '@babel/preset-env': 7.27.2(@babel/core@7.27.3) - '@babel/preset-react': 7.27.1(@babel/core@7.27.3) - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.3) - '@babel/runtime': 7.27.3 + '@storybook/nextjs@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.5)(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.5))': + dependencies: + '@babel/core': 7.27.4 + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-object-rest-spread': 7.27.3(@babel/core@7.27.4) + '@babel/plugin-transform-runtime': 7.27.4(@babel/core@7.27.4) + '@babel/preset-env': 7.27.2(@babel/core@7.27.4) + '@babel/preset-react': 7.27.1(@babel/core@7.27.4) + '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/runtime': 7.27.4 '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@2.19.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.5)) '@storybook/builder-webpack5': 8.6.14(esbuild@0.25.5)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(esbuild@0.25.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@types/semver': 7.7.0 - babel-loader: 9.2.1(@babel/core@7.27.3)(webpack@5.99.9(esbuild@0.25.5)) + babel-loader: 9.2.1(@babel/core@7.27.4)(webpack@5.99.9(esbuild@0.25.5)) css-loader: 6.11.0(webpack@5.99.9(esbuild@0.25.5)) find-up: 5.0.0 image-size: 1.2.1 loader-utils: 3.3.1 - next: 14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) node-polyfill-webpack-plugin: 2.0.1(webpack@5.99.9(esbuild@0.25.5)) pnp-webpack-plugin: 1.7.0(typescript@5.8.3) postcss: 8.5.4 @@ -10727,7 +10799,7 @@ snapshots: semver: 7.7.2 storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) style-loader: 3.3.4(webpack@5.99.9(esbuild@0.25.5)) - styled-jsx: 5.1.7(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react@18.3.1) + styled-jsx: 5.1.7(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@18.3.1) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.1.0 @@ -10833,54 +10905,54 @@ snapshots: dependencies: storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.27.3)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.27.3)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.27.3)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.27.3)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.27.3)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.27.3)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.27.3)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.27.3)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 - '@svgr/babel-preset@8.1.0(@babel/core@7.27.3)': + '@svgr/babel-preset@8.1.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.27.3 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.27.3) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.27.3) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.27.3) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.27.3) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.27.3) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.27.3) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.27.3) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.27.4) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.27.4) '@svgr/core@8.1.0(typescript@5.8.3)': dependencies: - '@babel/core': 7.27.3 - '@svgr/babel-preset': 8.1.0(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@svgr/babel-preset': 8.1.0(@babel/core@7.27.4) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.8.3) snake-case: 3.0.4 @@ -10895,8 +10967,8 @@ snapshots: '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.8.3))': dependencies: - '@babel/core': 7.27.3 - '@svgr/babel-preset': 8.1.0(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@svgr/babel-preset': 8.1.0(@babel/core@7.27.4) '@svgr/core': 8.1.0(typescript@5.8.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -10914,11 +10986,11 @@ snapshots: '@svgr/webpack@8.1.0(typescript@5.8.3)': dependencies: - '@babel/core': 7.27.3 - '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.27.3) - '@babel/preset-env': 7.27.2(@babel/core@7.27.3) - '@babel/preset-react': 7.27.1(@babel/core@7.27.3) - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.27.4) + '@babel/preset-env': 7.27.2(@babel/core@7.27.4) + '@babel/preset-react': 7.27.1(@babel/core@7.27.4) + '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) '@svgr/core': 8.1.0(typescript@5.8.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3))(typescript@5.8.3) @@ -10933,11 +11005,11 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.8.1 - '@tanstack/query-core@5.79.0': {} + '@tanstack/query-core@5.80.2': {} - '@tanstack/react-query@5.79.0(react@18.3.1)': + '@tanstack/react-query@5.80.2(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.79.0 + '@tanstack/query-core': 5.80.2 react: 18.3.1 '@tanstack/react-table@8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -10951,7 +11023,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.27.1 - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -11015,7 +11087,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.27.3 + '@babel/parser': 7.27.5 '@babel/types': 7.27.3 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 @@ -11027,7 +11099,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.27.3 + '@babel/parser': 7.27.5 '@babel/types': 7.27.3 '@types/babel__traverse@7.20.7': @@ -11064,7 +11136,7 @@ snapshots: '@types/decompress@4.2.7': dependencies: - '@types/node': 20.17.54 + '@types/node': 20.17.57 '@types/doctrine@0.0.9': {} @@ -11106,7 +11178,7 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@20.17.54': + '@types/node@20.17.57': dependencies: undici-types: 6.19.8 @@ -11160,34 +11232,49 @@ snapshots: '@types/xml2js@0.4.14': dependencies: - '@types/node': 20.17.54 + '@types/node': 20.17.57 - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.1 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 7.18.0 eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.7.2 ts-api-utils: 1.4.3(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 6.21.0 + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.1 + '@typescript-eslint/type-utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.1 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.1 eslint: 8.57.1 optionalDependencies: @@ -11195,20 +11282,50 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.33.1 + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.1 + debug: 4.4.1 + eslint: 8.57.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) + '@typescript-eslint/types': 8.33.1 + debug: 4.4.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - '@typescript-eslint/scope-manager@6.21.0': + '@typescript-eslint/scope-manager@7.18.0': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/scope-manager@8.33.1': dependencies: - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/visitor-keys': 8.33.1 + + '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.8.3) debug: 4.4.1 eslint: 8.57.1 ts-api-utils: 1.4.3(typescript@5.8.3) @@ -11217,9 +11334,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + debug: 4.4.1 + eslint: 8.57.1 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@6.21.0': {} + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/types@8.33.1': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.3)': dependencies: @@ -11235,14 +11365,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.1 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 + minimatch: 9.0.5 semver: 7.7.2 ts-api-utils: 1.4.3(typescript@5.8.3) optionalDependencies: @@ -11250,6 +11380,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': + dependencies: + '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/visitor-keys': 8.33.1 + debug: 4.4.1 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) @@ -11265,83 +11411,96 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.8.3)': + '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.7.0 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) eslint: 8.57.1 - semver: 7.7.2 transitivePeerDependencies: - supports-color - typescript + '@typescript-eslint/utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.33.1 + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + eslint: 8.57.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@6.21.0': + '@typescript-eslint/visitor-keys@7.18.0': dependencies: - '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.33.1': + dependencies: + '@typescript-eslint/types': 8.33.1 + eslint-visitor-keys: 4.2.0 + '@ungap/structured-clone@1.3.0': {} - '@unrs/resolver-binding-darwin-arm64@1.7.8': + '@unrs/resolver-binding-darwin-arm64@1.7.9': optional: true - '@unrs/resolver-binding-darwin-x64@1.7.8': + '@unrs/resolver-binding-darwin-x64@1.7.9': optional: true - '@unrs/resolver-binding-freebsd-x64@1.7.8': + '@unrs/resolver-binding-freebsd-x64@1.7.9': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.8': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.9': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.7.8': + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.9': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.7.8': + '@unrs/resolver-binding-linux-arm64-gnu@1.7.9': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.7.8': + '@unrs/resolver-binding-linux-arm64-musl@1.7.9': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.7.8': + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.9': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.7.8': + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.9': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.7.8': + '@unrs/resolver-binding-linux-riscv64-musl@1.7.9': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.7.8': + '@unrs/resolver-binding-linux-s390x-gnu@1.7.9': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.7.8': + '@unrs/resolver-binding-linux-x64-gnu@1.7.9': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.7.8': + '@unrs/resolver-binding-linux-x64-musl@1.7.9': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.7.8': + '@unrs/resolver-binding-wasm32-wasi@1.7.9': dependencies: '@napi-rs/wasm-runtime': 0.2.10 optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.7.8': + '@unrs/resolver-binding-win32-arm64-msvc@1.7.9': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.7.8': + '@unrs/resolver-binding-win32-ia32-msvc@1.7.9': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.7.8': + '@unrs/resolver-binding-win32-x64-msvc@1.7.9': optional: true '@vanilla-extract/css@1.15.5(babel-plugin-macros@3.1.0)': @@ -11403,16 +11562,16 @@ snapshots: loupe: 3.1.3 tinyrainbow: 1.2.0 - '@wagmi/connectors@5.8.3(@types/react@18.2.57)(@wagmi/core@2.17.2(@tanstack/query-core@5.79.0)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)': + '@wagmi/connectors@5.8.3(@types/react@18.2.57)(@wagmi/core@2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)': dependencies: '@coinbase/wallet-sdk': 4.3.0 '@metamask/sdk': 0.32.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) - '@wagmi/core': 2.17.2(@tanstack/query-core@5.79.0)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4)) + '@wagmi/core': 2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4)) '@walletconnect/ethereum-provider': 2.20.2(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - viem: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -11442,14 +11601,14 @@ snapshots: - utf-8-validate - zod - '@wagmi/core@2.17.2(@tanstack/query-core@5.79.0)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))': + '@wagmi/core@2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.8.3) - viem: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) zustand: 5.0.0(@types/react@18.2.57)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) optionalDependencies: - '@tanstack/query-core': 5.79.0 + '@tanstack/query-core': 5.80.2 typescript: 5.8.3 transitivePeerDependencies: - '@types/react' @@ -12185,14 +12344,16 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 - array-includes@3.1.8: + array-includes@3.1.9: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 es-abstract: 1.24.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 + math-intrinsics: 1.1.0 array-union@2.1.0: {} @@ -12309,40 +12470,40 @@ snapshots: b4a@1.6.7: {} - babel-loader@9.2.1(@babel/core@7.27.3)(webpack@5.99.9(esbuild@0.25.5)): + babel-loader@9.2.1(@babel/core@7.27.4)(webpack@5.99.9(esbuild@0.25.5)): dependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 find-cache-dir: 4.0.0 schema-utils: 4.3.2 webpack: 5.99.9(esbuild@0.25.5) babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 cosmiconfig: 7.1.0 resolve: 1.22.10 - babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.3): + babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.4): dependencies: - '@babel/compat-data': 7.27.3 - '@babel/core': 7.27.3 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.3) + '@babel/compat-data': 7.27.5 + '@babel/core': 7.27.4 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.3): + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.4): dependencies: - '@babel/core': 7.27.3 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) core-js-compat: 3.42.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.3): + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.4): dependencies: - '@babel/core': 7.27.3 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.3) + '@babel/core': 7.27.4 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) transitivePeerDependencies: - supports-color @@ -12370,7 +12531,7 @@ snapshots: bare-stream@2.6.5(bare-events@2.5.4): dependencies: - streamx: 2.22.0 + streamx: 2.22.1 optionalDependencies: bare-events: 2.5.4 optional: true @@ -12473,7 +12634,7 @@ snapshots: browserslist@4.25.0: dependencies: caniuse-lite: 1.0.30001720 - electron-to-chromium: 1.5.161 + electron-to-chromium: 1.5.162 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.0) @@ -12957,7 +13118,7 @@ snapshots: date-fns@2.30.0: dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 dayjs@1.11.13: {} @@ -13126,7 +13287,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 csstype: 3.1.3 dom-serializer@1.4.1: @@ -13196,7 +13357,7 @@ snapshots: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 - electron-to-chromium@1.5.161: {} + electron-to-chromium@1.5.162: {} elliptic@6.6.1: dependencies: @@ -13439,12 +13600,12 @@ snapshots: dependencies: '@next/eslint-plugin-next': 14.2.29 '@rushstack/eslint-patch': 1.11.0 - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1) @@ -13476,27 +13637,26 @@ snapshots: is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.14 - unrs-resolver: 1.7.8 + unrs-resolver: 1.7.9 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 @@ -13504,7 +13664,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13516,7 +13676,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -13525,7 +13685,7 @@ snapshots: eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): dependencies: aria-query: 5.3.2 - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 axe-core: 4.10.3 @@ -13547,7 +13707,7 @@ snapshots: eslint-plugin-react@7.37.5(eslint@8.57.1): dependencies: - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 @@ -13582,12 +13742,12 @@ snapshots: - supports-color - typescript - eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): + eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): dependencies: eslint: 8.57.1 eslint-rule-composer: 0.3.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) eslint-rule-composer@0.3.0: {} @@ -13603,6 +13763,8 @@ snapshots: eslint-visitor-keys@3.4.3: {} + eslint-visitor-keys@4.2.0: {} + eslint@8.57.1: dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) @@ -13776,7 +13938,7 @@ snapshots: extension-port-stream@3.0.0: dependencies: - readable-stream: 4.7.0 + readable-stream: 3.6.2 webextension-polyfill: 0.10.0 fast-deep-equal@3.1.3: {} @@ -14253,6 +14415,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.5: {} + image-size@1.2.1: dependencies: queue: 6.0.2 @@ -14513,7 +14677,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.17.54 + '@types/node': 20.17.57 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14567,7 +14731,7 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 @@ -14914,7 +15078,7 @@ snapshots: media-query-parser@2.0.2: dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 memfs@3.5.3: dependencies: @@ -15230,10 +15394,6 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -15274,11 +15434,11 @@ snapshots: neo-async@2.6.2: {} - next-intl@3.26.5(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-intl@3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@formatjs/intl-localematcher': 0.5.10 negotiator: 1.0.0 - next: 14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 use-intl: 3.26.5(react@18.3.1) @@ -15296,20 +15456,20 @@ snapshots: - acorn - supports-color - next-sitemap@4.2.3(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + next-sitemap@4.2.3(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: '@corex/deepmerge': 4.0.43 '@next/env': 13.5.11 fast-glob: 3.3.3 minimist: 1.2.8 - next: 14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.29 '@swc/helpers': 0.5.5 @@ -15319,7 +15479,7 @@ snapshots: postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react@18.3.1) + styled-jsx: 5.1.1(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 14.2.29 '@next/swc-darwin-x64': 14.2.29 @@ -15707,7 +15867,7 @@ snapshots: polished@4.3.1: dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 pony-cause@2.1.11: {} @@ -15725,13 +15885,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.4 - postcss-load-config@4.0.2(postcss@8.5.4)(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3)): + postcss-load-config@4.0.2(postcss@8.5.4)(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3)): dependencies: lilconfig: 3.1.3 yaml: 2.8.0 optionalDependencies: postcss: 8.5.4 - ts-node: 10.9.2(@types/node@20.17.54)(typescript@5.8.3) + ts-node: 10.9.2(@types/node@20.17.57)(typescript@5.8.3) postcss-loader@8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(esbuild@0.25.5)): dependencies: @@ -15796,6 +15956,8 @@ snapshots: preact@10.26.8: {} + preact@10.26.9: {} + prebuild-install@7.1.3: dependencies: detect-libc: 2.0.4 @@ -15813,7 +15975,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3): + prettier-plugin-tailwindcss@0.6.12(prettier@3.5.3): dependencies: prettier: 3.5.3 @@ -15948,8 +16110,8 @@ snapshots: react-docgen@7.1.1: dependencies: - '@babel/core': 7.27.3 - '@babel/traverse': 7.27.3 + '@babel/core': 7.27.4 + '@babel/traverse': 7.27.4 '@babel/types': 7.27.3 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.7 @@ -15984,7 +16146,7 @@ snapshots: react: 18.3.1 react-kapsule: 2.5.7(react@18.3.1) - react-hook-form@7.56.4(react@18.3.1): + react-hook-form@7.57.0(react@18.3.1): dependencies: react: 18.3.1 @@ -16029,7 +16191,7 @@ snapshots: optionalDependencies: '@types/react': 18.2.57 - react-remove-scroll@2.7.0(@types/react@18.2.57)(react@18.3.1): + react-remove-scroll@2.7.1(@types/react@18.2.57)(react@18.3.1): dependencies: react: 18.3.1 react-remove-scroll-bar: 2.3.8(@types/react@18.2.57)(react@18.3.1) @@ -16042,10 +16204,10 @@ snapshots: react-select@5.8.0(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 '@emotion/cache': 11.14.0 '@emotion/react': 11.14.0(@types/react@18.2.57)(react@18.3.1) - '@floating-ui/dom': 1.7.0 + '@floating-ui/dom': 1.7.1 '@types/react-transition-group': 4.4.12(@types/react@18.2.57) memoize-one: 6.0.0 prop-types: 15.8.1 @@ -16075,7 +16237,7 @@ snapshots: react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.27.3 + '@babel/runtime': 7.27.4 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -16622,9 +16784,9 @@ snapshots: storybook-i18n@3.1.1: {} - storybook-next-intl@1.2.6(next-intl@3.26.5(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)): + storybook-next-intl@1.2.6(next-intl@3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)): dependencies: - next-intl: 3.26.5(next@14.2.29(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + next-intl: 3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) storybook-i18n: 3.1.1 storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10): @@ -16653,7 +16815,7 @@ snapshots: streamsearch@1.1.0: {} - streamx@2.22.0: + streamx@2.22.1: dependencies: fast-fifo: 1.3.2 text-decoder: 1.2.3 @@ -16793,20 +16955,20 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.1(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react@18.3.1): + styled-jsx@5.1.1(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 optionalDependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 babel-plugin-macros: 3.1.0 - styled-jsx@5.1.7(@babel/core@7.27.3)(babel-plugin-macros@3.1.0)(react@18.3.1): + styled-jsx@5.1.7(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 optionalDependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.27.4 babel-plugin-macros: 3.1.0 stylis@4.2.0: {} @@ -16849,16 +17011,16 @@ snapshots: tailwind-merge@2.6.0: {} - tailwind-variants@0.2.1(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3))): + tailwind-variants@0.2.1(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3))): dependencies: tailwind-merge: 2.6.0 - tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3)) + tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3)) - tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3))): dependencies: - tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3)) + tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3)) - tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3)): + tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -16877,7 +17039,7 @@ snapshots: postcss: 8.5.4 postcss-import: 15.1.0(postcss@8.5.4) postcss-js: 4.0.1(postcss@8.5.4) - postcss-load-config: 4.0.2(postcss@8.5.4)(ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3)) + postcss-load-config: 4.0.2(postcss@8.5.4)(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3)) postcss-nested: 6.2.0(postcss@8.5.4) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -16926,7 +17088,7 @@ snapshots: dependencies: b4a: 1.6.7 fast-fifo: 1.3.2 - streamx: 2.22.0 + streamx: 2.22.1 terser-webpack-plugin@5.3.14(esbuild@0.25.5)(webpack@5.99.9(esbuild@0.25.5)): dependencies: @@ -17058,18 +17220,22 @@ snapshots: dependencies: typescript: 5.8.3 + ts-api-utils@2.1.0(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + ts-dedent@2.2.0: {} ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@types/node@20.17.54)(typescript@5.8.3): + ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.17.54 + '@types/node': 20.17.57 acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17281,27 +17447,27 @@ snapshots: acorn: 8.14.1 webpack-virtual-modules: 0.6.2 - unrs-resolver@1.7.8: + unrs-resolver@1.7.9: dependencies: napi-postinstall: 0.2.4 optionalDependencies: - '@unrs/resolver-binding-darwin-arm64': 1.7.8 - '@unrs/resolver-binding-darwin-x64': 1.7.8 - '@unrs/resolver-binding-freebsd-x64': 1.7.8 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.8 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.8 - '@unrs/resolver-binding-linux-arm64-gnu': 1.7.8 - '@unrs/resolver-binding-linux-arm64-musl': 1.7.8 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.8 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.8 - '@unrs/resolver-binding-linux-riscv64-musl': 1.7.8 - '@unrs/resolver-binding-linux-s390x-gnu': 1.7.8 - '@unrs/resolver-binding-linux-x64-gnu': 1.7.8 - '@unrs/resolver-binding-linux-x64-musl': 1.7.8 - '@unrs/resolver-binding-wasm32-wasi': 1.7.8 - '@unrs/resolver-binding-win32-arm64-msvc': 1.7.8 - '@unrs/resolver-binding-win32-ia32-msvc': 1.7.8 - '@unrs/resolver-binding-win32-x64-msvc': 1.7.8 + '@unrs/resolver-binding-darwin-arm64': 1.7.9 + '@unrs/resolver-binding-darwin-x64': 1.7.9 + '@unrs/resolver-binding-freebsd-x64': 1.7.9 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.9 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.9 + '@unrs/resolver-binding-linux-arm64-gnu': 1.7.9 + '@unrs/resolver-binding-linux-arm64-musl': 1.7.9 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.9 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.9 + '@unrs/resolver-binding-linux-riscv64-musl': 1.7.9 + '@unrs/resolver-binding-linux-s390x-gnu': 1.7.9 + '@unrs/resolver-binding-linux-x64-gnu': 1.7.9 + '@unrs/resolver-binding-linux-x64-musl': 1.7.9 + '@unrs/resolver-binding-wasm32-wasi': 1.7.9 + '@unrs/resolver-binding-win32-arm64-msvc': 1.7.9 + '@unrs/resolver-binding-win32-ia32-msvc': 1.7.9 + '@unrs/resolver-binding-win32-x64-msvc': 1.7.9 unstorage@1.16.0(idb-keyval@6.2.2): dependencies: @@ -17476,7 +17642,7 @@ snapshots: - utf-8-validate - zod - viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4): + viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -17495,14 +17661,14 @@ snapshots: vm-browserify@1.1.2: {} - wagmi@2.15.4(@tanstack/query-core@5.79.0)(@tanstack/react-query@5.79.0(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4): + wagmi@2.15.4(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4): dependencies: - '@tanstack/react-query': 5.79.0(react@18.3.1) - '@wagmi/connectors': 5.8.3(@types/react@18.2.57)(@wagmi/core@2.17.2(@tanstack/query-core@5.79.0)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) - '@wagmi/core': 2.17.2(@tanstack/query-core@5.79.0)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4)) + '@tanstack/react-query': 5.80.2(react@18.3.1) + '@wagmi/connectors': 5.8.3(@types/react@18.2.57)(@wagmi/core@2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4) + '@wagmi/core': 2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4)) react: 18.3.1 use-sync-external-store: 1.4.0(react@18.3.1) - viem: 2.30.5(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -17577,7 +17743,7 @@ snapshots: html-entities: 2.6.0 strip-ansi: 6.0.1 - webpack-sources@3.3.0: {} + webpack-sources@3.3.2: {} webpack-virtual-modules@0.6.2: {} @@ -17606,7 +17772,7 @@ snapshots: tapable: 2.2.2 terser-webpack-plugin: 5.3.14(esbuild@0.25.5)(webpack@5.99.9(esbuild@0.25.5)) watchpack: 2.4.4 - webpack-sources: 3.3.0 + webpack-sources: 3.3.2 transitivePeerDependencies: - '@swc/core' - esbuild diff --git a/public/content/eth/supply/index.md b/public/content/eth/supply/index.md new file mode 100644 index 00000000000..c8b68698c73 --- /dev/null +++ b/public/content/eth/supply/index.md @@ -0,0 +1,78 @@ +--- +title: Understanding ETH Supply and Issuance +description: A beginner-friendly guide to ETH supply and issuance, covering key concepts such as EIPs, PoS, and EIP-1559. +lang: en +--- + +# ETH Supply and Issuance {#eth-supply-and-issuance} + +## Prerequisites {#prerequisites} + +This article is written for beginners with no prior knowledge. However, to fully understand the topic, it is helpful to have a basic understanding of concepts such as [Ethereum Improvement Proposals (EIPs)](/eips/#introduction-to-ethereum-improvement-proposals), [Proof-of-work (PoW)](/developers/docs/consensus-mechanisms/pow/), [Proof-of-stake (PoS)](/developers/docs/consensus-mechanisms/pos/), and [The London Upgrade](/history/#london). + +## How Many ETH Tokens Are There Today? {#current-eth-supply} + +The total supply of ETH is dynamic and changes constantly due to two main factors: + +1. **Proof-of-Stake (PoS) Issuance**: New ETH is created as rewards for validators who secure the network +2. **EIP-1559 Burning**: A portion of transaction fees are permanently removed from circulation + +You can track the current supply and these changes in real-time on platforms like [Ultrasound Money](https://ultrasound.money). + +Ethereum's supply and issuance are essential metrics for understanding the health and future of the network. But what exactly does ETH issuance mean? Let's break it down. + +## Why ETH Supply and Issuance Matter {#why-eth-supply-matters} + +In traditional finance, central banks control the supply of money, often printing more to stimulate economies. Ethereum, on the other hand, operates on a transparent and predictable system governed by its code. Knowing how many ETH exist and how quickly new ETH is issued helps: + +- **Build Trust**: The Ethereum community can verify supply and issuance data directly from the blockchain. +- **Understand Value**: The relationship between issuance and ETH burn rates impacts ETH's inflation or deflation, influencing its value over time. +- **Track Network Health**: Changes in issuance and burn rates reflect the activity and security of the network. + +## What is ETH Issuance? {#eth-issuance} + +ETH issuance refers to the process of creating new ETH as rewards for validators who secure the Ethereum network. It's separate from total supply, which is the total amount of ETH in circulation. + +### In simple terms: +- **Issuance** adds new ETH to the network. +- **Burning** (introduced by EIP-1559) removes ETH from the network by destroying a portion of the transaction fees. + +These two forces determine whether Ethereum's supply grows (inflationary) or shrinks (deflationary) over time. + +## ETH Supply and Issuance Today {#eth-supply-today} + +Ethereum's Proof-of-Stake (PoS) system has drastically reduced ETH issuance compared to its earlier Proof-of-Work (PoW) model. Validators—who lock up ETH to secure the network—earn ETH as rewards. You can see the current issuance rate on [Ultrasound Money](https://ultrasound.money). + +However, this number is dynamic. Thanks to EIP-1559, when network activity is high, ETH burn rates can surpass issuance, creating a deflationary effect. For example, during periods of high demand, like NFT launches or DeFi activity, more ETH may be burned than issued. + +### Tools to Track ETH Supply and Issuance: +- [Ultrasound Money](https://ultrasound.money) - Real-time tracking of ETH supply, issuance, and burn rates +- [Etherscan](https://etherscan.io) - Block explorer with supply metrics + +## Factors Influencing Future ETH Supply and Issuance {#future-eth-supply} + +Ethereum's future supply isn't fixed—it depends on several variables: + +1. **Staking Participation**: + - More validators joining the network means more ETH rewards are distributed. + - Fewer validators participating may decrease issuance. + - Learn more about [staking](/staking/). + +2. **Network Activity**: + - High transaction volumes lead to more ETH being burned, potentially offsetting or exceeding issuance. + - Read about [gas fees](/developers/docs/gas/) and how they affect burning. + +3. **Protocol Upgrades**: + - Future changes to Ethereum's code could adjust staking rewards or burning mechanisms, further shaping supply dynamics. + - Stay updated with the [Ethereum roadmap](/roadmap/). + +## Recap: ETH Supply, Issuance, and What's Next {#recap} + +Here's a quick summary of what you need to know about ETH supply and issuance: + +- **ETH Supply**: Dynamic and constantly changing, trackable in real-time through tools like [Ultrasound Money](https://ultrasound.money) +- **Issuance Under PoS**: Significantly reduced compared to PoW, with rewards going to validators. See current rates on [Ultrasound Money](https://ultrasound.money) +- **EIP-1559's Role**: ETH burning can make the network deflationary during periods of high activity +- **Future Trends**: Staking participation, network demand, and protocol updates will all shape ETH supply + +Understanding ETH issuance helps demystify the value of Ethereum and its potential as a deflationary, decentralized asset. For more detailed information about how The Merge impacted ETH supply, check out our [detailed breakdown](/roadmap/merge/issuance/). Curious about the future of ETH? Dive deeper with tools like [Ultrasound Money](https://ultrasound.money) or explore our [staking guides](/staking/). \ No newline at end of file diff --git a/public/content/translations/de/developers/docs/smart-contracts/index.md b/public/content/translations/de/developers/docs/smart-contracts/index.md index 408b8643195..c858d676332 100644 --- a/public/content/translations/de/developers/docs/smart-contracts/index.md +++ b/public/content/translations/de/developers/docs/smart-contracts/index.md @@ -86,9 +86,9 @@ Erfahren Sie mehr über die [Kombinierbarkeit von Smart Contracts](/developers/d ## Einschränkungen {#limitations} -Smart Contracts allein können keine Informationen über Ereignisse in der „realen Welt“ erhalten, da sie keine Daten von Quellen außerhalb der Kette abrufen können. Das bedeutet, dass sie nicht auf Ereignisse in der realen Welt reagieren können. Das ist beabsichtigt. Sich auf externe Informationen zu verlassen, könnte den für Sicherheit und Dezentralisierung wichtigen Konsens gefährden. +Smart Contracts allein können keine Informationen über „echte Welt“-Ereignisse erhalten, da sie keine Daten von Offchain-Quellen abrufen können. Das bedeutet, dass sie nicht auf Ereignisse in der realen Welt reagieren können. Das ist beabsichtigt. Sich auf externe Informationen zu verlassen, könnte den für Sicherheit und Dezentralisierung wichtigen Konsens gefährden. -Für Blockchain-Anwendungen ist es jedoch wichtig, dass sie auch Daten außerhalb der Chain benutzen können. Die Lösung sind [Orakel](/developers/docs/oracles/), d. h. Tools, die Off-Chain-Daten aufnehmen und sie für Smart Contracts verfügbar machen. +Allerdings ist es wichtig, dass Blockchain-Anwendungen Off-Chain-Daten nutzen können. Die Lösung sind [Orakel](/developers/docs/oracles/), also Werkzeuge, die Off-Chain-Daten aufnehmen und sie für Smart Contracts verfügbar machen. Eine weitere Einschränkung von Smart Contracts ist die maximale Vertragsgröße. Ein Smart Contract kann maximal 24 KB groß sein, sonst gehen ihm die Ressourcen aus. Das kann mit [The Diamond Pattern](https://eips.ethereum.org/EIPS/eip-2535) behoben werden. diff --git a/public/content/translations/de/developers/docs/smart-contracts/security/index.md b/public/content/translations/de/developers/docs/smart-contracts/security/index.md index 7db18216b68..d37e94b12a7 100644 --- a/public/content/translations/de/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/de/developers/docs/smart-contracts/security/index.md @@ -99,7 +99,7 @@ Dennoch sollten Sie Audits nicht als Wunderwaffe betrachten. Smart Contract-Audi Die Einrichtung eines Prämienprogramms für das Aufdecken von Fehlern (Bug Bounty Program) ist ein weiterer Ansatz zur Durchführung externer Codeüberprüfungen. Ein Bug Bounty ist eine finanzielle Belohnung für Personen (in der Regel Whitehat-Hacker), die Schwachstellen in einer Applikation entdecken. -Wenn sie richtig eingesetzt werden, geben Bug Bounties den Mitgliedern der Hacker-Community einen Anreiz, Ihren Code auf kritische Fehler zu untersuchen. Ein reales Beispiel ist der „Infinite Money Bug“, der es einem Angreifer ermöglicht hätte, eine unbegrenzte Menge an Ether auf [Optimism](https://www.optimism.io/), einem [Layer 2](/layer-2/)-Protokoll, das auf Ethereum läuft, zu erzeugen. Glücklicherweise entdeckte ein Whitehat-Hacker [den Fehler](https://www.saurik.com/optimism.html) und meldete ihn dem Team, [und erhielt dafür eine hohe Belohnung](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). +Wenn sie richtig eingesetzt werden, geben Bug Bounties den Mitgliedern der Hacker-Community einen Anreiz, Ihren Code auf kritische Fehler zu untersuchen. Ein Beispiel aus der Praxis ist der „unendliches Geld“-Fehler, der einem Angreifer ermöglicht hätte, eine unbegrenzte Menge an Ether auf [Optimism](https://www.optimism.io/) zu erzeugen, einem [Layer-2](/layer-2/)-Protokoll, das auf Ethereum läuft. Glücklicherweise entdeckte ein Whitehat-Hacker [den Fehler](https://www.saurik.com/optimism.html) und meldete ihn dem Team, [und erhielt dafür eine hohe Belohnung](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). Eine sinnvolle Strategie besteht darin, die Auszahlung eines Bug-Bounty-Programms im Verhältnis zur Höhe der auf dem Spiel stehenden Mittel festzulegen. Dieser als „[Skalierung zum Aufdecken von Fehlern](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7)“ bezeichnete Ansatz bietet finanzielle Anreize für Einzelpersonen, Schwachstellen verantwortungsbewusst offenzulegen, anstatt sie auszunutzen. @@ -115,7 +115,7 @@ Die Verfügbarkeit von Audits und Bug Bounties entbindet Sie nicht von Ihrer Ver - Verwendung einer [Entwicklungsumgebung](/developers/docs/frameworks/) zum Testen, Kompilieren und Bereitstellen von Smart Contracts -- Führen Sie Ihren Code in grundlegenden Code-Analysewerkzeugen wie [Cyfrin Awderyn](https://github.com/Cyfrin/aderyn), Mythril und Slither aus. Idealerweise sollten Sie dies tun, noch bevor eine Pull-Anfrage eingebunden wird, und die Unterschiede in der Ergebnisausgabe vergleichen +- Führen Sie Ihren Code durch grundlegende Code-Analyse-Tools wie [Cyfrin Aderyn](https://github.com/Cyfrin/aderyn), Mythril und Slither. Idealerweise sollten Sie dies tun, noch bevor eine Pull-Anfrage eingebunden wird, und die Unterschiede in der Ergebnisausgabe vergleichen - Stellen Sie sicher, dass Ihr Code ohne Fehler kompiliert wird und der Solidity-Compiler keine Warnungen ausgibt @@ -211,11 +211,11 @@ Sie können sich auch für ein handelsübliches Überwachungsprogramm entscheide ### 7. Sichere Governance-Systeme (Verwaltungssysteme) entwerfen {#design-secure-governance-systems} -Vielleicht möchten Sie Ihre Anwendung dezentralisieren, indem Sie die Kontrolle über die wichtigsten Smart Contracts an Community-Mitglieder übergeben. In diesem Fall wird das Smart Contract-System ein Governance-Modul enthalten – einen Mechanismus, der es den Community-Mitgliedern ermöglicht, administrative Maßnahmen über ein On-Chain-Governance-System zu genehmigen. So können die Token-Inhaber beispielsweise über einen Vorschlag abstimmen, einen Proxy-Vertrag auf eine neue Implementierung zu aktualisieren. +Vielleicht möchten Sie Ihre Anwendung dezentralisieren, indem Sie die Kontrolle über die wichtigsten Smart Contracts an Community-Mitglieder übergeben. In diesem Fall wird das Smart-Contract-System ein Governance-Modul enthalten - einen Mechanismus, der es den Mitgliedern der Gemeinschaft ermöglicht, administrative Aktionen über ein On-Chain-Governance-System zu genehmigen. So können die Token-Inhaber beispielsweise über einen Vorschlag abstimmen, einen Proxy-Vertrag auf eine neue Implementierung zu aktualisieren. Eine dezentrale Verwaltung kann von Vorteil sein, insbesondere weil sie die Interessen von Entwicklern und Endnutzern in Einklang bringt. Dennoch können die Mechanismen zur Steuerung von Smart Contracts bei falscher Umsetzung neue Risiken mit sich bringen. Ein plausibles Szenario ist, dass ein Angreifer durch die Aufnahme eines [Flash-Darlehens](/defi/#flash-loans) enorme Stimmkraft (gemessen an der Anzahl der gehaltenen Token) erlangt und einen böswilligen Vorschlag durchsetzt. -Eine Möglichkeit zur Vermeidung von Problemen im Zusammenhang mit der On-Chain-Governance besteht darin, [eine Zeitsperre zu nutzen](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/). Eine Zeitsperre verhindert, dass ein Smart Contract bestimmte Aktionen ausführt, bis eine bestimmte Zeitspanne verstrichen ist. Andere Strategien bestehen darin, jedem Token ein „Stimmgewicht“ zuzuweisen, das sich danach richtet, wie lange er gesperrt war, oder die Stimmkraft einer Adresse in einem historischen Zeitraum (z. B. 2-3 Blöcke in der Vergangenheit) anstelle des aktuellen Blocks zu messen. Beide Methoden verringern die Möglichkeit, schnell Stimmrechte anzuhäufen, um On-Chain-Abstimmungen zu beeinflussen. +Eine Möglichkeit zur Vermeidung von Problemen im Zusammenhang mit der On-Chain-Governance besteht darin, [eine Zeitsperre zu nutzen](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/). Eine Zeitsperre verhindert, dass ein Smart Contract bestimmte Aktionen ausführt, bis eine bestimmte Zeitspanne verstrichen ist. Andere Strategien bestehen darin, jedem Token ein „Stimmgewicht“ zuzuweisen, das sich danach richtet, wie lange er gesperrt war, oder die Stimmkraft einer Adresse in einem historischen Zeitraum (z. B. 2-3 Blöcke in der Vergangenheit) anstelle des aktuellen Blocks zu messen. Beide Methoden reduzieren die Möglichkeit, schnell Stimmrecht anzuhäufen, um On-Chain-Abstimmungen zu beeinflussen. Weitere Informationen zu [der Gestaltung sicherer Governance-Systeme](https://blog.openzeppelin.com/smart-contract-security-guidelines-4-strategies-for-safer-governance-systems/), [verschiedenen Abstimmungsmechanismen in DAOs](https://hackernoon.com/governance-is-the-holy-grail-for-daos) und [den gängigen DAO-Angriffsvektoren, die DeFi nutzen](https://dacian.me/dao-governance-defi-attacks), finden Sie unter den geteilten Links. @@ -235,7 +235,7 @@ Die EVM erlaubt keine Nebenläufigkeit, was bedeutet, dass zwei Verträge, die a Die Übertragung des Kontrollflusses an nicht vertrauenswürdige Verträge ist zwar meist harmlos, kann aber Probleme verursachen, wie z. B. Wiederholungsangriffe. Ein Wiederholungsangriff liegt vor, wenn ein böswilliger Vertrag in einen gefährdeten Vertrag eingreift, bevor der ursprüngliche Funktionsaufruf abgeschlossen ist. Diese Art des Angriffs lässt sich am besten anhand eines Beispiels erklären. -Nehmen wir einen einfachen Smart Contract („Opfer“), der es jedem erlaubt, Ether einzuzahlen und abzuheben: +Betrachten Sie einen einfachen Smart Contract („Opfer"), der es jedem ermöglicht, Ether einzuzahlen und abzuheben: ```solidity // This contract is vulnerable. Do not use in production @@ -346,7 +346,7 @@ contract MutexPattern { require(balances[msg.sender] >= _amount, "No balance to withdraw."); balances[msg.sender] -= _amount; - bool (success, ) = msg.sender.call{value: _amount}(""); + (bool success, ) = msg.sender.call{value: _amount}(""); require(success); return true; @@ -439,13 +439,13 @@ Ab Version 0.8.0 weist der Solidity-Compiler Code zurück, der zu Integer-Unterl #### Oracle-Manipulation {#oracle-manipulation} -[Oracles](/developers/docs/oracles/) beziehen Off-Chain-Informationen und senden sie on-chain, damit Smart Contracts diese nutzen können. Mit Orakeln können Sie Smart Contracts entwerfen, die mit Off-Chain-Systemen wie z. B. Kapitalmärkten interagieren, was ihre Anwendung erheblich erweitert. +[Oracles](/developers/docs/oracles/) beziehen Informationen aus der realen Welt (Off-Chain) und senden sie auf die Blockchain (On-Chain), damit Smart Contracts diese nutzen können. Mit Oracles können Sie Smart Contracts entwickeln, die mit Off-Chain-Systemen wie Kapitalmärkten zusammenarbeiten und dadurch ihre Anwendungsmöglichkeiten stark erweitern. -Wenn das Orakel jedoch beschädigt ist und falsche Informationen on-chain sendet, werden Smart Contracts auf der Grundlage falscher Informationen ausgeführt, was zu Problemen führen kann. Dies ist die Grundlage des „Orakelproblems“, bei dem es darum geht sicherzustellen, dass die Informationen aus einem Blockchain-Orakel korrekt, aktuell und zeitnah sind. +Aber wenn das Oracle manipuliert wird und falsche Daten auf die Blockchain sendet, werden Smart Contracts basierend auf falschen Eingaben ausgeführt, was Probleme verursachen kann. Dies ist die Grundlage des „Orakelproblems“, bei dem es darum geht sicherzustellen, dass die Informationen aus einem Blockchain-Orakel korrekt, aktuell und zeitnah sind. -Ein damit zusammenhängendes Sicherheitsproblem ist die Verwendung eines On-Chain-Orakels, z. B. einer dezentralen Börse, um den Spotpreis für ein Asset zu ermitteln. Leihplattformen in der [dezentralen Finanzbranche (DeFi)](/defi/) tun dies oft, um den Wert der Beleihungsobjekte eines Nutzers zu ermitteln, anhand derer er bestimmen kann, wie viel er leihen kann. +Ein ähnliches Sicherheitsproblem ist die Nutzung eines On-Chain-Oracles, wie zum Beispiel einer dezentralen Börse, um den aktuellen Preis eines Assets zu ermitteln. Leihplattformen in der [dezentralen Finanzbranche (DeFi)](/defi/) tun dies oft, um den Wert der Beleihungsobjekte eines Nutzers zu ermitteln, anhand derer er bestimmen kann, wie viel er leihen kann. -Die DEX-Preise sind häufig korrekt, was vor allem darauf zurückzuführen ist, dass Arbitrageure die Gleichheit auf den Märkten wiederherstellen. Sie sind jedoch anfällig für Manipulationen, insbesondere wenn das On-Chain-Orakel die Preise von Assets auf der Grundlage historischer Handelsdaten berechnet (was normalerweise der Fall ist). +Die DEX-Preise sind häufig korrekt, was vor allem darauf zurückzuführen ist, dass Arbitrageure die Gleichheit auf den Märkten wiederherstellen. Die sind aber anfällig für Manipulationen, besonders wenn das On-Chain-Oracle die Assetpreise anhand von historischen Handelsmustern berechnet (was meistens der Fall ist). So könnte ein Angreifer beispielsweise den Spotpreis eines Assets künstlich in die Höhe treiben, indem er einen Blitzkredit aufnimmt, kurz bevor er mit Ihrem Kreditvertrag interagiert. Die Abfrage der DEX nach dem Preis des Assets würde einen höheren als den normalen Wert ergeben (da die große „Kaufbestellung“ des Angreifers die Nachfrage nach dem Asset verzerrt), so dass er mehr Geld leihen kann, als er sollte. Solche „Flash-Darlehensangriffe“ wurden genutzt, um das Vertrauen in Preis-Orakel bei DeFi-Anwendungen auszunutzen, was Protokolle Millionen an verlorenen Guthaben gekostet hat. @@ -453,7 +453,7 @@ So könnte ein Angreifer beispielsweise den Spotpreis eines Assets künstlich in Die Mindestanforderung, um [Oracle-Manipulation zu vermeiden](https://www.cyfrin.io/blog/price-oracle-manipultion-attacks-with-examples), besteht darin, ein dezentrales Oracle-Netzwerk zu verwenden, das Informationen aus mehreren Quellen abfragt, um einzelne Ausfallpunkte zu vermeiden. In den meisten Fällen verfügen dezentrale Orakel über eingebaute kryptoökonomische Anreize, die die Nodes des Orakels dazu bringen, korrekte Informationen zu melden, was sie sicherer macht als zentralisierte Orakel. -Wenn Sie vorhaben, ein On-Chain-Orakel für Asset-Preise abzufragen, sollten Sie ein Orakel verwenden, das einen Mechanismus für zeitgewichtete Durchschnittspreise (TWAP) implementiert. Ein [TWAP-Orakel](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) fragt den Preis eines Assets zu zwei verschiedenen Zeitpunkten ab (die Sie ändern können) und berechnet den Spotpreis auf der Grundlage des erhaltenen Durchschnitts. Die Wahl längerer Zeiträume schützt Ihr Protokoll vor Preismanipulationen, da große Aufträge, die erst kürzlich ausgeführt wurden, keinen Einfluss auf die Preise der Assets haben können. +Wenn Sie vorhaben, ein On-Chain-Oracle nach Assetpreisen zu befragen, sollten Sie eines in Erwägung ziehen, das einen zeitgewichteten Durchschnittspreis (TWAP) verwendet. Ein [TWAP-Orakel](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) fragt den Preis eines Assets zu zwei verschiedenen Zeitpunkten ab (die Sie ändern können) und berechnet den Spotpreis auf der Grundlage des erhaltenen Durchschnitts. Die Wahl längerer Zeiträume schützt Ihr Protokoll vor Preismanipulationen, da große Aufträge, die erst kürzlich ausgeführt wurden, keinen Einfluss auf die Preise der Assets haben können. ## Ressourcen zur Sicherheit von Smart Contracts für Entwickler {#smart-contract-security-resources-for-developers} @@ -563,7 +563,7 @@ Wenn Sie vorhaben, ein On-Chain-Orakel für Asset-Preise abzufragen, sollten Sie - **[Smart Contract Security Verification Standard](https://github.com/securing/SCSVS)** - _Vierzehnteilige Checkliste zur Standardisierung der Sicherheit von Smart Contracts für Entwickler, Architekten, Sicherheitsüberprüfer und Anbieter._ -- **[Smart-Contract-Sicherheit und -Auditing erlernen](https://updraft.cyfrin.io/courses/security) – _der ultimative Kurs für Smart-Contract-Sicherheit und -Auditing, der für Smart-Contract-Entwickler erstellt wurde, die ihre Best Practices zur Sicherheit verbessern und Sicherheitsforscher werden möchten._ +- **[Smart Contract Security und Auditing lernen](https://updraft.cyfrin.io/courses/security)** - _Ultimativer Kurs zu Smart Contract Security und Auditing, entwickelt für Smart-Contract-Entwickler, die ihre Security-Best-Practices verbessern und Security-Forscher werden möchten._ ### Tutorials zur Sicherheit von Smart Contracts {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/de/whitepaper/index.md b/public/content/translations/de/whitepaper/index.md index 271ea64035f..e1f2fb70017 100644 --- a/public/content/translations/de/whitepaper/index.md +++ b/public/content/translations/de/whitepaper/index.md @@ -91,7 +91,7 @@ Der Algorithmus zur Überprüfung der Gültigkeit eines Blocks, ausgedrückt in Im Wesentlichen muss jede Transaktion im Block einen gültigen Statusübergang von dem ursprünglich kanonischen Status vor der Ausführung der Transaktion zu einem neuen Status bereitstellen. Beachten Sie, dass der Status auf keine Weise im Block kodiert ist; er ist eine reine Abstraktion, die sich der validierende Knoten merken muss und die nur (sicher) für einen Block berechnet werden kann, indem man vom Genesis-Status ausgeht und jede Transaktion in jedem Block nacheinander anwendet. Zusätzlich sei darauf hingewiesen, dass die Reihenfolge, in der der Miner Transaktionen in den Block einfügt, wichtig ist; wenn es zwei Transaktionen A und B in einem Block gibt, wobei B einen von A geschaffenen UTXO ausgibt, ist der Block gültig, wenn A vor B kommt, aber nicht umgekehrt. -Die einzige Gültigkeitsbedingung in der obigen Liste, die in anderen Systemen nicht vorkommt, ist die Erfordernis eines „Proof-of-Work“. Die genaue Bedingung ist, dass der Doppel-SHA256-Hash jedes Blocks, der als 256-Bit-Zahl behandelt wird, kleiner sein muss als ein dynamisch angepasstes Ziel, das zum Zeitpunkt der Erstellung dieses Dokuments ungefähr 2187 beträgt. Damit soll die Erstellung von Blöcken rechnerisch „erschwert“ werden, um zu verhindern, dass Sybill-Angreifer die gesamte Blockchain zu ihren Gunsten umgestalten. Da SHA256 als völlig unvorhersehbare Pseudozufallsfunktion konzipiert ist, besteht die einzige Möglichkeit, einen gültigen Block zu erstellen, darin, durch Versuch und Irrtum vorzugehen, die Nonce wiederholt zu erhöhen und zu prüfen, ob der neue Hash passt. +Die einzige Gültigkeitsbedingung in der obigen Liste, die in anderen Systemen nicht vorkommt, ist die Erfordernis eines „Proof-of-Work“. Die genaue Bedingung ist, dass der Doppel-SHA256-Hash jedes Blocks, der als 256-Bit-Zahl behandelt wird, kleiner sein muss als ein dynamisch angepasstes Ziel, das zum Zeitpunkt der Erstellung dieses Dokuments ungefähr 2187 beträgt. Damit soll die Erstellung von Blöcken rechnerisch „erschwert“ werden, um zu verhindern, dass Sybill-Angreifer die gesamte Blockchain zu ihren Gunsten umgestalten. Da SHA256 als eine völlig unvorhersehbare Pseudozufallsfunktion konzipiert ist, kannst du einen gültigen Block nur durch Ausprobieren erstellen. Dabei erhöhst du wiederholt die Nonce und prüfst, ob der neue Hash passt. Bei der derzeitigen Zielvorgabe von ca. 2187 muss das Netz durchschnittlich ca. 269 Versuche unternehmen, bis ein gültiger Block gefunden wird; im Allgemeinen wird die Zielvorgabe vom Netzwerk alle 2016 Blöcke neu kalibriert, sodass im Durchschnitt alle zehn Minuten ein neuer Block von einem Knoten im Netzwerk erzeugt wird. Um die Miner für diese Rechenarbeit zu entschädigen, ist der Miner eines jeden Blocks berechtigt, eine Transaktion hinzuzufügen, die ihm 25 BTC aus dem Nichts zuweist. Außerdem: Wenn bei einer Transaktion der Gesamtnennwert in ihren Eingaben höher ist als in ihren Ausgaben, geht die Differenz als „Transaktionsgebühr“ ebenfalls an den Miner. Übrigens ist dies auch der einzige Mechanismus, mit dem BTC ausgegeben werden; der Genesis-Status enthielt überhaupt keine Coins. @@ -120,7 +120,7 @@ Das Merkle Tree-Protokoll ist für die langfristige Nachhaltigkeit wohl unerläs Die Idee, den Grundgedanken der Blockchain auf andere Konzepte zu übertragen, hat ebenfalls eine lange Geschichte. 2005 veröffentlichte Nick Szabo das Konzept von „[sicheren Eigentumstiteln mit Eigentümerauthorität](https://nakamotoinstitute.org/secure-property-titles/)“ – ein Dokument, welches beschreibt, wie „neue Fortschritte in der replizierten Datenbanktechnologie“ ein Blockchain-basiertes Sytem für die Speicherung eines Registers darüber, wer der Eigentümer wovon ist, ermöglichen, wobei ein ausgeklügeltes Framework mit Konzepten wie Homesteading, Adverse Possession und georgischer Grundsteuer geschaffen wird. Leider gab es zu dieser Zeit kein effektives repliziertes Datenbanksystem, sodass das Protokoll nie in die Praxis umgesetzt wurde. Nach 2009, nachdem der dezentralisierte Konsens von Bitcoin entwickelt wurde, entstand jedoch schnell eine Reihe von alternativen Anwendungen. -- **Namecoin** – [Namecoin](https://namecoin.org/) wurde 2010 erschaffen und lässt sich am besten als eine dezentralisierte Datenbank zur Namensregistrierung beschrieben. In dezentralisierten Protokollen wie Tor, Bitcoin und BitMessage muss es eine Möglichkeit geben, Konten zu identifizieren, damit andere mit ihnen interagieren können, aber in allen bestehenden Lösungen ist der einzige verfügbare Identifikator ein pseudozufälliger Hash wie `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Im Idealfall möchte man ein Konto mit einem Namen wie „george“ haben können. Das Problem ist jedoch, dass, wenn eine Person ein Konto mit dem Namen „george“ einrichten kann, eine andere Person das gleiche Verfahren nutzen kann, um sich ebenfalls als „george“ zu registrieren und sich als diese Person auszugeben. Die einzige Lösung ist ein First-to-File-Paradigma, bei dem der erste Registrant erfolgreich ist und der zweite scheitert – ein Problem, das sich perfekt für das Bitcoin-Konsensprotokoll eignet. Namecoin ist die älteste und erfolgreichste Implementierung eines Namensregistrierungssystems, das auf einer solchen Idee beruht. +- **Namecoin** – [Namecoin](https://namecoin.org/) wurde 2010 erschaffen und lässt sich am besten als eine dezentralisierte Datenbank zur Namensregistrierung beschrieben. In dezentralen Protokollen wie Tor, Bitcoin und BitMessage muss es eine Möglichkeit geben, Konten zu identifizieren, damit andere Leute mit ihnen interagieren können. Aber in allen bisherigen Lösungen ist der einzige verfügbare Identifikator ein pseudo-zufälliger Hash wie `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Im Idealfall möchte man ein Konto mit einem Namen wie „george“ haben können. Das Problem ist jedoch, dass, wenn eine Person ein Konto mit dem Namen „george“ einrichten kann, eine andere Person das gleiche Verfahren nutzen kann, um sich ebenfalls als „george“ zu registrieren und sich als diese Person auszugeben. Die einzige Lösung ist ein First-to-File-Paradigma, bei dem der erste Registrant erfolgreich ist und der zweite scheitert – ein Problem, das sich perfekt für das Bitcoin-Konsensprotokoll eignet. Namecoin ist die älteste und erfolgreichste Implementierung eines Namensregistrierungssystems, das auf einer solchen Idee beruht. - **Colored Coins** – [Colored Coins](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) dienen als Protokoll, das die Möglichkeit bietet, eine eigene digitale Währung zu erschaffen oder – in dem wichtigen trivialen Fall einer Währung mit einer Einheit – digitale Token, auf der Bitcoin-Blockchain. Im Colored-Coins-Protokoll wird eine neue Währung „veröffentlicht“, indem man einem bestimmten Bitcoin-UTXO öffentlich eine Farbe zuweist. Das Protokoll definiert rekursiv die Farbe anderer UTXO als die gleiche wie die der Eingaben, die die Transaktion ausgegeben hat, welche diese erzeugte (bei Eingaben mit gemischten Farben gelten einige spezielle Regeln). Dies ermöglicht es den Benutzern, Wallets zu verwalten, die nur UTXO einer bestimmten Farbe enthalten, und sie wie ähnlich wie reguläre Bitcoins zu versenden und über die Blockchain zurückzuverfolgen, um die Farbe eines UTXO zu ermitteln, den sie erhalten haben. - **Metacoins** – die Idee hinter Metacoin ist ein Protokoll, das auf Bitcoin aufbaut und Bitcoin-Transaktionen nutzt, um Metacoin-Transaktionen mit einer anderen Statusübergangsfunktion zu speichern: `APPLY'`. Da das Metacoin-Protokoll nicht verhindern kann, dass ungültige Metacoin-Transaktionen in der Bitcoin-Blockchain auftreten, wird eine Regel hinzugefügt, die besagt, dass, wenn `APPLY'(S,TX)` einen Fehler zurückgibt, das Protokoll standardmäßig auf `APPLY'(S,TX) = S` festgelegt wird. Dies bietet einen einfachen Mechanismus zur Erstellung eines willkürlichen Kryptowährungsprotokolls, möglicherweise mit fortgeschrittenen Funktionen, die nicht in Bitcoin selbst implementiert werden können, jedoch mit sehr geringen Entwicklungskosten, da die Komplexität des Minings und der Vernetzung bereits durch das Bitcoin-Protokoll verarbeitet wird. Metacoins wurden verwendet, um einige Klassen von Finanzverträgen, Namensregistrierung und dezentralisierten Austausch zu implementieren. @@ -268,7 +268,7 @@ def send(to, value): self.storage[to] = self.storage[to] + value ``` -Dies ist im Wesentlichen eine buchstäbliche Implementierung der Statussübergangsfunktion des „Bankensystems“, die weiter oben in diesem Dokument beschrieben wurde. Ein paar zusätzliche Zeilen Code sind nötig, um die anfängliche Verteilung der Währungseinheiten und einige Grenzfälle zu behandeln. Idealerweise wird außerdem eine Funktion hinzugefügt, die es anderen Verträgen ermöglicht, den Saldo einer Adresse abzufragen. Aber das ist auch schon alles. Theoretisch können Ethereum-basierte Token-Systeme, die als Unterwährungen fungieren, eine weitere wichtige Funktion bieten, die den Bitcoin-basierten Meta-Währungen auf der Blockchain fehlt: die Möglichkeit, Transaktionsgebühren direkt in dieser Währung zu bezahlen. So würde das implementiert werden: Der Vertrag würde einen Ether-Saldo führen, mit dem er Ether zurückerstatten kann, der zur Bezahlung von Gebühren an den Absender verwendet wird, und er würde diesen Saldo auffüllen, indem er die internen Währungseinheiten, die er als Gebühren erhebt, einsammelt und in einer kontinuierlichen Auktion weiterverkauft. Benutzer müssten so zunächst ihre Konten mit Ether „aktivieren“, aber der eingesetzte Ether wäre dann wiederverwendbar, da der Vertrag ihn bei jeder Transaktion zurückerstattet. +Dies ist im Wesentlichen eine buchstäbliche Implementierung der Statussübergangsfunktion des „Bankensystems“, die weiter oben in diesem Dokument beschrieben wurde. Ein paar zusätzliche Zeilen Code sind nötig, um die anfängliche Verteilung der Währungseinheiten und einige Grenzfälle zu behandeln. Idealerweise wird außerdem eine Funktion hinzugefügt, die es anderen Verträgen ermöglicht, den Saldo einer Adresse abzufragen. Aber das ist auch schon alles. Theoretisch könnten Ethereum-basierte Token-Systeme, die als Sub-Währungen fungieren, noch eine wichtige Funktion hinzufügen, die On-Chain-Bitcoin-basierte Meta-Währungen fehlen: die Möglichkeit, Transaktionsgebühren direkt in dieser Währung zu zahlen. So würde das implementiert werden: Der Vertrag würde einen Ether-Saldo führen, mit dem er Ether zurückerstatten kann, der zur Bezahlung von Gebühren an den Absender verwendet wird, und er würde diesen Saldo auffüllen, indem er die internen Währungseinheiten, die er als Gebühren erhebt, einsammelt und in einer kontinuierlichen Auktion weiterverkauft. Benutzer müssten so zunächst ihre Konten mit Ether „aktivieren“, aber der eingesetzte Ether wäre dann wiederverwendbar, da der Vertrag ihn bei jeder Transaktion zurückerstattet. ### Finanzderivate und wertstabile Währungen {#financial-derivatives-and-stable-value-currencies} @@ -341,7 +341,7 @@ Normalerweise ist 1 % pro Tag genug für Alice, und wenn sie mehr abheben möcht **7. Prognosemärkte**. Wenn ein Oracle oder SchellingCoin vorhanden ist, lassen sich Prognosemärkte ebenfalls leicht implementieren, und in Kombination mit SchellingCoin könnten Prognosemärkte die erste gängige Anwendung von [Futarchie](http://hanson.gmu.edu/futarchy.html) als Governance-Protokoll für dezentralisierte Organisationen darstellen. -**8. Dezentralisierte Marktplätze auf der Blockchain**, welche das Identitäts- und Reputationssystem als Basis nutzen. +**8. On-Chain-dezentralisierte Marktplätze**, die das Identitäts- und Reputationssystem als Basis nutzen. ## Verschiedenes und Bedenken {#miscellanea-and-concerns} diff --git a/public/content/translations/el/ai-agents/index.md b/public/content/translations/el/ai-agents/index.md new file mode 100644 index 00000000000..0b40a8f27ec --- /dev/null +++ b/public/content/translations/el/ai-agents/index.md @@ -0,0 +1,96 @@ +--- +title: AI agents +metaTitle: Πράκτορες ΤΝ | Πράκτορες ΤΝ στο ethereum +description: Μια επισκόπηση για πράκτορες ΤΝ στο ethereum +lang: el +template: use-cases +emoji: ":robot:" +sidebarDepth: 2 +image: /images/ai-agents/hero-image.png +alt: Άνθρωποι που συγκεντρώθηκαν στο τραπέζι του τερματικού σταθμού +summaryPoint1: Τεχνητή Νοημοσύνη που αλληλεπιδρά με το blockchain και κάνει συναλλαγές ανεξάρτητα +summaryPoint2: Ελέγχει πορτοφόλια και κεφάλαια στην αλυσίδα +summaryPoint3: Προσλαμβάνει ανθρώπους ή άλλους πράκτορες για εργασία +buttons: + - content: Τι είναι οι υπηρεσίες ΤΝ; + toId: what-are-ai-agents + - content: Εξερεύνηση πρακτόρων + toId: ai-agents-on-ethereum + isSecondary: false +--- + +Φανταστείτε να πλοηγείστε στο Ethereum με έναν βοηθό ΤΝ που μελετά τις τάσεις της αγοράς 24 ώρες το 24ωρο, απαντά σε ερωτήσεις και εκτελεί ακόμη και συναλλαγές για λογαριασμό σας. Καλώς ήρθατε στον κόσμο των πρακτόρων ΤΝ—έξυπνα συστήματα σχεδιασμένα να απλοποιούν την ψηφιακή σας ζωή. + +Στο Ethereum, βλέπουμε καινοτομίες πρακτόρων ΤΝ που κυμαίνονται από εικονικούς influencers και αυτόνομους δημιουργούς περιεχομένου έως πλατφόρμες ανάλυσης αγοράς σε πραγματικό χρόνο, ενδυναμώνοντας τους χρήστες παρέχοντας insights, ψυχαγωγία και λειτουργική αποδοτικότητα. + +## Τι είναι οι υπηρεσίες ΤΝ; {#what-are-ai-agents} + +Οι πράκτορες ΤΝ είναι προγράμματα λογισμικού που χρησιμοποιούν τεχνητή νοημοσύνη για την εκτέλεση εργασιών ή τη λήψη δικών τους αποφάσεων. Μαθαίνουν από δεδομένα, προσαρμόζονται σε αλλαγές και χειρίζονται πολύπλοκες εργασίες. Λειτουργούν ασταμάτητα και μπορούν να εντοπίσουν άμεσα ευκαιρίες. + +### Πώς λειτουργούν οι πράκτορες ΤΝ με τα blockchains {#how-ai-agents-work-with-blockchains} + +Στην παραδοσιακή χρηματιστηριακή, οι πράκτορες ΤΝ συχνά λειτουργούν σε κεντρικά περιβάλλοντα με περιορισμένες εισόδους δεδομένων. Αυτό εμποδίζει την ικανότητά τους να μαθαίνουν ή να διαχειρίζονται περιουσιακά στοιχεία αυτόνομα. + +Αντίθετα, το αποκεντρωμένο οικοσύστημα του Ethereum προσφέρει πολλά βασικά πλεονεκτήματα: + +- Διαφανή δεδομένα: Πρόσβαση σε πληροφορίες blockchain σε πραγματικό χρόνο. +- Πραγματική ιδιοκτησία περιουσιακών στοιχείων: Τα ψηφιακά περιουσιακά στοιχεία ανήκουν πλήρως στους πράκτορες ΤΝ. +- Ισχυρή λειτουργικότητα στην αλυσίδα: Επιτρέπει στους πράκτορες ΤΝ να εκτελούν συναλλαγές, να αλληλεπιδρούν με έξυπνες συμβάσεις, να παρέχουν ρευστότητα και να συνεργάζονται σε πρωτόκολλα. + +Αυτοί οι παράγοντες μετατρέπουν τους πράκτορες ΤΝ από απλά bots σε δυναμικά, αυτοβελτιούμενα συστήματα που προσφέρουν σημαντική αξία σε πολλούς τομείς: + + + + + + + +## Πράκτορες ΤΝ στο Ethereum {#ai-agents-on-ethereum} + +Αρχίζουμε να εξερευνούμε το πλήρες δυναμικό των πρακτόρων ΤΝ, και τα έργα ήδη αξιοποιούν τη συνέργεια μεταξύ ΤΝ και blockchain—ιδιαίτερα στη διαφάνεια και τη νομισματοποίηση. + + + +Πρώτη εμφάνιση της Luna ως καλεσμένη σε podcast + + + +## Πορτοφόλια ελεγχόμενα από πράκτορες {#agent-controlled-wallets} + +Πράκτορες όπως η Luna ή το AIXBT ελέγχουν το δικό τους onchain πορτοφόλι ([το πορτοφόλι του AIXBT](https://zapper.xyz/account/0x0d177181e3763b20d47dc3a72dd584368bd8bf43), [το πορτοφόλι της Luna](https://zapper.xyz/account/0x0d177181e3763b20d47dc3a72dd584368bd8bf43)) επιτρέποντας τους να δίνουν φιλοδωρήματα σε θαυμαστές και να συμμετέχουν σε οικονομικές δραστηριότητες. + +Κατά τη διάρκεια της κοινωνικής καμπάνιας X της Luna #LunaMuralChallenge, η Luna επέλεξε και επιβράβευσε τους νικητές μέσω του πορτοφολιού της Base — σηματοδοτώντας την πρώτη περίπτωση ΤΝ που προσλαμβάνει ανθρώπους για κρυπτογραφική ανταμοιβή. + + +

Καλό να γνωρίζετε

+

Οι πράκτορες ΤΝ και τα σχετικά εργαλεία βρίσκονται ακόμη σε αρχικό στάδιο ανάπτυξης και είναι πολύ πειραματικά—χρησιμοποιήστε τα με προσοχή.

+
+ +## Ελέγξτε το πορτοφόλι σας χρησιμοποιώντας εντολές συνομιλίας {#control-your-wallet-using-chat-commands} + +Μπορείτε να παραλείψετε τις πολύπλοκες διεπαφές του DeFi και να διαχειριστείτε τα κρυπτονομίσματα σας με απλές εντολές συνομιλίας. + +Αυτή η διαισθητική προσέγγιση καθιστά τις συναλλαγές ταχύτερες, ευκολότερες και λιγότερο επιρρεπείς σε λάθη όπως η αποστολή κεφαλαίων σε λάθος διεύθυνση ή η υπερπληρωμή για τέλη. + + + +## Πράκτορες ΤΝ εναντίον bots ΤΝ {#ai-agents-vs-ai-bots} + +Η διάκριση μεταξύ πρακτόρων ΤΝ και bots ΤΝ μπορεί μερικές φορές να είναι συγκεχυμένη, καθώς και τα δύο εκτελούν αυτοματοποιημένες ενέργειες με βάση την είσοδο. + +- Τα bots ΤΝ είναι σαν αυτοματοποιημένοι βοηθοί — Ακολουθούν συγκεκριμένες, προ-προγραμματισμένες οδηγίες για την εκτέλεση καθημερινών εργασιών. +- Οι πράκτορες ΤΝ είναι περισσότερο σαν έξυπνοι σύντροφοι — Μαθαίνουν από την εμπειρία, προσαρμόζονται σε νέες πληροφορίες και λαμβάνουν αποφάσεις μόνοι τους. + +| | AI agents | Ρομπότ AI | +| ----------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------- | +| **Αντιδράσεις** | Πολύπλοκες, προσαρμόσιμες, αυτόνομες | Απλές, προκαθορισμένο εύρος, ενσωματωμένες στον κώδικα | +| **Εκπαίδευση** | Μαθαίνει συνεχώς, πειραματισμός, προσαρμογή σε νέα δεδομένα σε πραγματικό χρόνο | Λειτουργεί με προ-εκπαιδευμένα δεδομένα ή σταθερούς κανόνες | +| **Ολοκλήρωση εργασίας** | Στόχος η επίτευξη ευρύτερων στόχων | Εστιάζει μόνο σε συγκεκριμένες εργασίες | + +## Περισσότερες λεπτομέρειες {#dive-deeper} + + + +## Μπορείτε να δημιουργήσετε τον δικό σας πράκτορα ΤΝ {#you-can-build-your-own-ai-agent} + + \ No newline at end of file diff --git a/public/content/translations/el/bridges/index.md b/public/content/translations/el/bridges/index.md index 8b3dca7b6cc..850d3f59d38 100644 --- a/public/content/translations/el/bridges/index.md +++ b/public/content/translations/el/bridges/index.md @@ -95,7 +95,7 @@ _Το Web3 έχει εξελιχθεί σε ένα οικοσύστημα από -## Χρήση γέφυρας {#use-bridge} +## Χρήση γεφυρών {#use-bridge} Η χρήση γεφυρών σας επιτρέπει να μεταφέρετε τα κρυπτονομίσματά σας μεταξύ διαφορετικών κρυπτοαλυσίδων. Δείτε παρακάτω μερικές πηγές που θα σας βοηθήσουν στην εύρεση και χρήση γεφυρών: @@ -104,7 +104,7 @@ _Το Web3 έχει εξελιχθεί σε ένα οικοσύστημα από -## Κίνδυνοι χρήσης γεφυρών {#bridge-risk} +## Κίνδυνος χρήσης γεφυρών {#bridge-risk} Οι γέφυρες βρίσκονται στα αρχικά στάδια ανάπτυξης. Είναι πιθανό ο βέλτιστος σχεδιασμός της γέφυρας να μην έχει ακόμη ανακαλυφθεί. Η αλληλεπίδραση με οποιονδήποτε τύπο γέφυρας ενέχει κινδύνους: diff --git a/public/content/translations/el/community/events/index.md b/public/content/translations/el/community/events/index.md index 382c0b546d6..8dabc7e3ae2 100644 --- a/public/content/translations/el/community/events/index.md +++ b/public/content/translations/el/community/events/index.md @@ -13,6 +13,8 @@ hideEditButton: true Αυτή δεν είναι η πλήρη λίστα, η οποία διαχειρίζεται από την κοινότητά μας. Γνωρίζετε μια εκδήλωση του Ethereum που θα πραγματοποιηθεί για να την προσθέσετε στη λίστα; [Παρακαλούμε προσθέστε την](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + ## Συναντήσεις Ethereum {#meetups} Δεν εμφανίζεται διαθέσιμη εκδήλωση για εσάς; Δοκιμάστε να συμμετάσχετε σε μια συνάντηση. Οι συναντήσεις είναι μικρότερες εκδηλώσεις που διοργανώνονται από ομάδες του Ethereum - μια ευκαιρία για αυτούς που ενδιαφέρονται για το Ethereum να έρθουν σε επαφή, να μιλήσουν για το Ethereum και να ενημερωθούν για τις πρόσφατες εξελίξεις. diff --git a/public/content/translations/el/developers/docs/apis/json-rpc/index.md b/public/content/translations/el/developers/docs/apis/json-rpc/index.md index 9f048307964..5a61681859a 100644 --- a/public/content/translations/el/developers/docs/apis/json-rpc/index.md +++ b/public/content/translations/el/developers/docs/apis/json-rpc/index.md @@ -207,8 +207,8 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"web3_sha3","params":["0x68656c6c Η πλήρης λίστα τρεχόντων ID δικτύου είναι διαθέσιμη στο [chainlist.org](https://chainlist.org). Δείτε περισσότερα στο: - `1`: Κεντρικό δίκτυο Ethereum -- `5`: Δίκτυο δοκιμών Goerli - `11155111`: Δίκτυο δοκιμών Sepolia +- `560048` : Δίκτυο δοκιμών Hoodi **Παράδειγμα** diff --git a/public/content/translations/el/developers/docs/bridges/index.md b/public/content/translations/el/developers/docs/bridges/index.md new file mode 100644 index 00000000000..de1970d9c01 --- /dev/null +++ b/public/content/translations/el/developers/docs/bridges/index.md @@ -0,0 +1,137 @@ +--- +title: Γέφυρες +description: Μια επισκόπηση της γεφύρωσης για τους προγραμματιστές +lang: el +--- + +Με την εξάπλωση των κρυπτοαλυσίδων επιπέδου 1 και των λύσεων [κλιμάκωσης](/developers/docs/scaling/) επιπέδου 2, καθώς και με τον συνεχώς αυξανόμενο αριθμό αποκεντρωμένων εφαρμογών που διασταυρώνονται μεταξύ αλυσίδων, η ανάγκη για επικοινωνία και μετακίνηση περιουσιακών στοιχείων μεταξύ αλυσίδων έχει γίνει ένα ουσιαστικό μέρος της υποδομής δικτύου. Οι διαφορετικοί τύποι γεφυρών βοηθούν στην υλοποίηση του έργου. + +## Ανάγκη για γέφυρες {#need-for-bridges} + +Οι γέφυρες υπάρχουν για τη διασύνδεση των δικτύων blockchain. Επιτρέπουν τη συνδεσιμότητα και τη διαλειτουργικότητα μεταξύ των blockchain. + +Οι κρυπτοαλυσίδες ζουν σε μεμονωμένα περιβάλλοντα, που σημαίνει ότι δεν υπάρχει τρόπος για τις κρυπτοαλυσίδες να κάνουν συναλλαγές και να επικοινωνούν φυσικά με άλλες κρυπτοαλυσίδες. Ως αποτέλεσμα, ενώ θα μπορούσε να υπάρξει σημαντική δραστηριότητα και καινοτομία μέσα σε ένα οικοσύστημα, περιορίζεται από την έλλειψη συνδεσιμότητας και διαλειτουργικότητας με άλλα οικοσυστήματα. + +Οι γέφυρες προσφέρουν έναν τρόπο για απομονωμένα περιβάλλοντα κρυπτοαλυσίδας να συνδέονται μεταξύ τους. Δημιουργούν μια διαδρομή μεταφοράς μεταξύ κρυπτοαλυσίδων όπου τα κρυπτονομίσματα, τα μηνύματα, τα αυθαίρετα δεδομένα, ακόμη και οι κλήσεις [έξυπνων συμβολαίων](/developers/docs/smart-contracts/) μπορούν να μεταφερθούν από μια αλυσίδα στην άλλη. + +## Τα οφέλη των γεφυρών {#benefits-of-bridges} + +Με απλά λόγια, οι γέφυρες ξεκλειδώνουν πολλές χρήσεις επιτρέποντας στα δίκτυα κρυπτοαλυσίδας να ανταλλάσσουν δεδομένα και να μετακινούν στοιχεία μεταξύ τους. + +Οι κρυπτοαλυσίδες έχουν μοναδικά πλεονεκτήματα, αδυναμίες και προσεγγίσεις για την κατασκευή εφαρμογών (όπως ταχύτητα, απόδοση, κόστος κ. λπ.). Οι γέφυρες βοηθούν την ανάπτυξη του συνολικού οικοσυστήματος των κρύπτο, επιτρέποντας στις κρυπτοαλυσίδες να αξιοποιούν τις καινοτομίες μεταξύ τους. + +Για προγραμματιστές, οι γέφυρες ενεργοποιούν τα εξής: + +- Τη μεταφορά οποιονδήποτε δεδομένων, πληροφοριών και περιουσιακών στοιχείων μεταξύ αλυσίδων. +- Ενεργοποίηση νέων λειτουργιών και περιπτώσεις χρήσης για τα πρωτόκολλα καθώς οι γέφυρες επεκτείνουν το χώρο σχεδιασμού για το τι μπορούν να προσφέρουν τα πρωτόκολλα. Για παράδειγμα, ένα πρωτόκολλο αποδόσεων φάρμας, που αναπτύχθηκε αρχικά στο Ethereum Mainnet μπορεί να προσφέρει δεξαμενές ρευστότητας σε όλες τις συμβατές με EVM αλυσίδες. +- Την ευκαιρία να αξιοποιήσουν τα πλεονεκτήματα διαφορετικών αλυσίδων μπλοκ. Για παράδειγμα, οι προγραμματιστές μπορούν να επωφεληθούν από τις χαμηλότερες αμοιβές που προσφέρονται από τις διαφορετικές λύσεις επιπέδου 2, αναπτύσσοντας τις εφαρμογές τους σε πακέτα ενημέρωσης συναλλαγών και πλευρικών αλυσίδων καθώς οι χρήστες μπορούν να δημιουργήσουν γέφυρες μεταξύ τους. +- Συνεργασία μεταξύ προγραμματιστών από διάφορα οικοσυστήματα κρυπτοαλυσίδας για την κατασκευή νέων προϊόντων. +- Προσέλκυση χρηστών και κοινοτήτων από διάφορα οικοσυστήματα στις εφαρμογές τους. + +## Πώς λειτουργούν οι γέφυρες; {#how-do-bridges-work} + +Αν και υπάρχουν πολλοί [τύποι σχεδιασμού γεφυρών](https://li.fi/knowledge-hub/blockchain-bridges-and-classification/), τρεις τρόποι ξεχωρίζουν για τη διευκόλυνση μεταφοράς περιουσιακών στοιχείων μεταξύ αλυσίδων: + +- **Κλείδωμα και δημιουργία** – Κλείδωμα κρυπτονομισμάτων στην αλυσίδα προέλευσης και δημιουργία περιουσιακών στοιχεία στην αλυσίδα προορισμού. +- **Κάψιμο και δημιουργία** – Κάψιμο κρυπτονομισμάτων στην αλυσίδα προέλευσης και δημιουργία περιουσιακών στοιχεία στην αλυσίδα προορισμού. +- **Ατομικές ανταλλαγές** – Ανταλλάξτε κρυπτονομίσματα στην αλυσίδα προέλευσης για κρύπτο στην αλυσίδα προορισμού με άλλο μέρος. + +## Τύποι γεφυρών {#bridge-types} + +Συνήθως οι γέφυρες ταξινομούνται σε μια από τις παρακάτω κατηγορίες: + +- **Εγγενείς γέφυρες** – Συνήθως δημιουργούνται για την εκκίνηση της ρευστότητας σε ένα συγκεκριμένο blockchain, διευκολύνοντας τους χρήστες να μετακινούν κεφάλαια στο οικοσύστημα. Για παράδειγμα, η [γέφυρα Arbitrum](https://bridge.arbitrum.io/) έχει δημιουργηθεί για να διευκολύνει τους χρήστες να μεταφέρουν κρύπτο από το Ethereum Mainnet στο Arbitrum. Άλλες τέτοιες γέφυρες περιλαμβάνουν τη γέφυρα Polygon PoS, [Optimism Gateway](https://app.optimism.io/bridge) κ.λπ. +- **Γέφυρες επικύρωσης ή oracle –** Αυτές οι γέφυρες βασίζονται σε ένα εξωτερικό σύνολο επικυρωτών ή oracle για επικύρωση των διασταυρούμενων αλυσίδων. Παραδείγματα: Multichain και Across. +- **Γενικές γέφυρες διέλευσης μηνυμάτων** – Αυτές οι γέφυρες μπορούν να μεταφέρουν στοιχεία, μαζί με μηνύματα και αυθαίρετα δεδομένα σε αλυσίδες. Παραδείγματα: Axelar, LayerZero και Nomad. +- **Δίκτυα ρευστότητας** – Αυτές οι γέφυρες επικεντρώνονται κυρίως στη μεταφορά περιουσιακών στοιχείων από τη μια αλυσίδα στην άλλη μέσω ατομικών ανταλλαγών. Γενικά, δεν υποστηρίζουν διασταυρούμενη αλυσίδα μηνυμάτων. Παράδειγμα: Connext και Hop. + +## Συμβιβασμοί προς εξέταση {#trade-offs} + +Με τις γέφυρες, δεν υπάρχουν τέλειες λύσεις. Αντιθέτως, υπάρχουν μόνο θυσίες που γίνονται για την εκπλήρωση ενός σκοπού. Οι προγραμματιστές και οι χρήστες μπορούν να αξιολογήσουν τις γέφυρες με βάση τους ακόλουθους παράγοντες: + +- **Ασφάλεια –** Ποιος επαληθεύει το σύστημα; Οι γέφυρες που ασφαλίζονται από εξωτερικούς επικυρωτές είναι συνήθως λιγότερο ασφαλείς από τις γέφυρες που ασφαλίζονται τοπικά ή εγγενώς από τους επικυρωτές της κρυπτοαλυσίδας. +- **Ευκολία** – Πόσος χρόνος χρειάζεται για να ολοκληρωθεί μια συναλλαγή και πόσες συναλλαγές χρειάστηκε να υπογράψει ένας χρήστης; Για έναν προγραμματιστή, πόσο χρόνο χρειάζεται για να ενσωματώσει μια γέφυρα και πόσο περίπλοκη είναι η διαδικασία; +- **Συνδεσιμότητα** – Ποιες είναι οι διαφορετικές αλυσίδες προορισμού που μπορεί να συνδέσει μια γέφυρα (π.χ. συνάθροιση, πλευρικές αλυσίδες, άλλες κρυπτοαλυσίδες επιπέδου 1, κ.λπ.) και πόσο δύσκολο είναι να ενσωματώσετε μια νέα κρυπτοαλυσίδα; +- **Δυνατότητα διαβίβασης πιο περίπλοκων δεδομένων** – Μπορεί μια γέφυρα να επιτρέψει τη μεταφορά μηνυμάτων και πιο περίπλοκων αυθαίρετων δεδομένων μεταξύ αλυσίδων ή υποστηρίζει μόνο μεταφορές στοιχείων μεταξύ των αλυσίδων; +- **Κόστος - αποτελεσματικότητας** – Πόσο κοστίζει η μεταφορά περιουσιακών στοιχείων μεταξύ αλυσίδων μέσω μιας γέφυρας; Συνήθως, οι γέφυρες χρεώνουν ένα σταθερό ή μεταβλητό τέλος ανάλογα με το κόστος του gas και τη ρευστότητα συγκεκριμένων διαδρομών. Είναι επίσης σημαντικό να αξιολογηθεί η σχέση κόστους - αποτελεσματικότητας μιας γέφυρας με βάση το κεφάλαιο που απαιτείται για τη διασφάλιση της ασφάλειάς της. + +Σε υψηλό επίπεδο, οι γέφυρες μπορούν να κατηγοριοποιηθούν ως αξιόπιστες και χωρίς την ανάγκη παροχής εμπιστοσύνης. + +- **Αξιόπιστες** – Οι αξιόπιστες γέφυρες επαληθεύονται εξωτερικά. Χρησιμοποιούν ένα εξωτερικό σύνολο επαληθευτών (ομάδες με πολλαπλές υπογραφές, συστήματα πολλαπλής υπολογιστικής, δίκτυο oracle) για να στείλουν δεδομένα μεταξύ αλυσίδων. Ως αποτέλεσμα, μπορούν να προσφέρουν μεγάλη συνδεσιμότητα και να επιτρέπουν την πλήρως γενικευμένη μεταφορά μηνυμάτων μεταξύ αλυσίδων. Επίσης, τείνουν να αποδίδουν καλά όσον αφορά την ταχύτητα και την αποτελεσματικότητα του κόστους. Αυτό γίνεται με κόστος στην ασφάλεια, καθώς οι χρήστες πρέπει να βασίζονται στην ασφάλεια της γέφυρας. +- **Χωρίς την ανάγκη παροχής εμπιστοσύνης** - Αυτές οι γέφυρες βασίζονται στις κρυπτοαλυσίδες που συνδέουν και στους επικυρωτές τους για τη μεταφορά μηνυμάτων και κρυπτονομισμάτων. Είναι «χωρίς την ανάγκη παροχής εμπιστοσύνης» επειδή δεν προσθέτουν νέες υποθέσεις εμπιστοσύνης (εκτός από τις κρυπτοαλυσίδες). Ως αποτέλεσμα, οι γέφυρες χωρίς την ανάγκη παροχής εμπιστοσύνη θεωρούνται πιο ασφαλείς από τις αξιόπιστες γέφυρες. + +Για να αξιολογήσουμε τις γέφυρες χωρίς την ανάγκη παροχής εμπιστοσύνης με βάση άλλους παράγοντες, πρέπει να τις διαχωρίσουμε σε γέφυρες γενικευμένης μεταφοράς μηνυμάτων και δίκτυα ρευστότητας. + +- **Γέφυρες διέλευσης γενικών μηνυμάτων** – Αυτές οι γέφυρες υπερτερούν με την ασφάλεια και την ικανότητα μεταφοράς πιο περίπλοκων δεδομένων μεταξύ αλυσίδων. Τυπικά, είναι επίσης καλές σε κόστος - αποτελεσματικότητα. Ωστόσο, αυτά τα πλεονεκτήματα έχουν γενικά το κόστος της συνδεσιμότητας για γέφυρες πελατών μικρού μεγέθους (π.χ.: IBC) και τα μειονεκτήματα ταχύτητας για τις αισιόδοξες γέφυρες (π.χ.: Nomad) που χρησιμοποιούν αποδείξεις απάτης. +- **Δίκτυα ρευστότητας** – Αυτές οι γέφυρες χρησιμοποιούν ατομικές ανταλλαγές για τη μεταφορά περιουσιακών στοιχείων και είναι τοπικά επαληθευμένα συστήματα (δηλαδή, χρησιμοποιούν τους υποκείμενους επικυρωτές των κρυπτοαλυσίδων για την επαλήθευση συναλλαγών). Ως αποτέλεσμα υπερτερούν με ασφάλεια και ταχύτητα. Επιπλέον, θεωρούνται οικονομικά και προσφέρουν καλή συνδεσιμότητα. Ωστόσο, η κύρια αντιστάθμιση είναι η αδυναμία τους να διαβιβάσουν πιο σύνθετα δεδομένα, καθώς δεν υποστηρίζουν τη μετάδοση μηνυμάτων μεταξύ αλυσίδων. + +## Ρίσκο με γέφυρες {#risk-with-bridges} + +Οι γέφυρες αντιπροσωπεύουν τα τρία πρώτα [μεγαλύτερα hack στο DeFi](https://rekt.news/leaderboard/) και βρίσκονται ακόμα στα αρχικά στάδια ανάπτυξης. Η χρήση οποιασδήποτε γέφυρας ενέχει τους ακόλουθους κινδύνους: + +- **Κίνδυνοι Έξυπνων Συμβολαίων** - Ενώ πολλές γέφυρες έχουν περάσει με επιτυχία τους ελέγχους, αρκεί ένα ελάττωμα σε ένα έξυπνο συμβόλαιο για να εκτεθούν τα περιουσιακά στοιχεία σε επιθέσεις (π.χ. [γέφυρα Wormhole της Solana](https://rekt.news/wormhole-rekt/)). +- **Συστημικοί Χρηματοοικονομικοί Κίνδυνοι** - Πολλές γέφυρες χρησιμοποιούν παρόμοια κρυπτονομίσματα για να δημιουργήσουν κανονικές εκδόσεις του αρχικού κρυπτονομίσματος σε μια νέα αλυσίδα. Αυτό εκθέτει το οικοσύστημα σε συστημικό κίνδυνο, καθώς έχουμε δει εκμεταλλεύσεις παρόμοιων εκδόσεων κρυπτονομισμάτων. +- **Κίνδυνος Αντιπάλου** - Ορισμένες γέφυρες χρησιμοποιούν ένα αξιόπιστο σχεδιασμό που απαιτεί από τους χρήστες να βασίζονται στην υπόθεση ότι οι επικυρωτές δε θα συνεργαστούν για να κλέψουν τα χρήματα των χρηστών. Η ανάγκη των χρηστών να εμπιστεύονται αυτούς τους τρίτους παράγοντες τους εκθέτει σε κινδύνους όπως rug pulls, τη λογοκρισία και άλλες κακόβουλες δραστηριότητες. +- **Ανοιχτά Ζητήματα** - Δεδομένου ότι οι γέφυρες βρίσκονται στα αρχικά στάδια ανάπτυξης, υπάρχουν πολλά αναπάντητα ερωτήματα σχετικά με το πώς θα λειτουργήσουν οι γέφυρες σε διαφορετικές συνθήκες αγοράς, όπως περιόδους συμφόρησης δικτύου και κατά τη διάρκεια απρόβλεπτων γεγονότων όπως επιθέσεις επιπέδου δικτύου ή επαναφοράς κατάστασης. Αυτή η αβεβαιότητα δημιουργεί ορισμένους κινδύνους, τον βαθμό των οποίων δεν είναι ακόμη γνωστός. + +## Πώς μπορούν οι dapps να χρησιμοποιήσουν γέφυρες; {#how-can-dapps-use-bridges} + +Δείτε παρακάτω μερικές πρακτικές εφαρμογές που οι προγραμματιστές μπορούν να εξετάσουν σχετικά με τις γέφυρες και τη μετάβαση του dapp τους σε πολλές αλυσίδες: + +### Ενσωμάτωση γεφυρών {#integrating-bridges} + +Για τους προγραμματιστές, υπάρχουν πολλοί τρόποι για προσθήκη υποστήριξης για γέφυρες: + +1. **Δημιουργία της δικής σας γέφυρας** - Η δημιουργία μιας ασφαλούς και αξιόπιστης γέφυρας δεν είναι εύκολη, ειδικά εάν ακολουθήσετε μια πιο ελαχιστοποιημένη ως προς την εμπιστοσύνη προσέγγιση. Επιπλέον, απαιτεί χρόνια πείρας και τεχνικής εμπειρογνωμοσύνης σχετικά με μελέτες επεκτασιμότητας και διαλειτουργικότητας. Θα απαιτούσε μια ομάδα με πρακτική εμπειρία για τη διατήρηση μιας γέφυρας και την προσέλκυση επαρκούς ρευστότητας για να καταστεί εφικτή. + +2. **Παρουσίαση πολλών επιλογών γέφυρας στους χρήστες** - Πολλές [dapp](/developers/docs/dapps/) απαιτούν από τους χρήστες να έχουν το εγγενές κρυπτονόμισμά τους για να αλληλεπιδράσουν μαζί τους. Για να επιτρέψουν στους χρήστες να έχουν πρόσβαση στα κρυπτονομίσματά τους, προσφέρουν διαφορετικές επιλογές γέφυρας στον ιστότοπό τους. Ωστόσο, αυτή η μέθοδος είναι μια γρήγορη λύση στο πρόβλημα, καθώς απομακρύνει τον χρήστη από τη διεπαφή της dapp και εξακολουθεί να απαιτεί από αυτόν να αλληλεπιδρά με άλλες dapp και γέφυρες. Αυτή είναι μια δύσκολη εμπειρία ενσωμάτωσης με αυξημένες πιθανότητες λαθών. + +3. **Ενσωμάτωση μιας γέφυρας** – Αυτή η λύση δεν απαιτεί από την dapp να στέλνει τους χρήστες στην εξωτερική γέφυρα και διεπαφές DEX. Επιτρέπει στις dapp να βελτιώσουν την εμπειρία ενσωμάτωσης του χρήστη. Ωστόσο, αυτή η προσέγγιση έχει τους περιορισμούς της: + + - Η αξιολόγηση και η συντήρηση των γεφυρών είναι δύσκολη και χρονοβόρα. + - Η επιλογή μιας γέφυρας δημιουργεί ένα μεμονωμένο σημείο αποτυχίας και εξάρτησης. + - Η dapp περιορίζεται από τις δυνατότητες της γέφυρας. + - Οι γέφυρες από μόνες τους μπορεί να μην είναι αρκετές. Οι dapp ενδέχεται να χρειάζονται διάφορα DEX για να προσφέρουν περισσότερη λειτουργικότητα, όπως ανταλλαγές μέσω πολλαπλών αλυσίδων. + +4. **Ενσωμάτωση πολλών γεφυρών** – Αυτή η λύση επιλύει πολλά προβλήματα που σχετίζονται με την ενσωμάτωση μιας μεμονωμένης γέφυρας. Ωστόσο, έχει επίσης περιορισμούς, καθώς η ενσωμάτωση πολλών γεφυρών καταναλώνει πόρους και δημιουργεί τεχνικά και επικοινωνιακά έξοδα για τους προγραμματιστές, τον πιο σπάνιο πόρο στα κρυπτονομίσματα. + +5. **Η ενσωμάτωση ενός συλλέκτη γεφυρών** - Μια άλλη επιλογή για τις dapps είναι η ενσωμάτωση μιας λύσης συλλογής γεφυρών που τους δίνει πρόσβαση σε πολλές γέφυρες. Οι συλλέκτες γεφυρών κληρονομούν τα πλεονεκτήματα όλων των γεφυρών και ως εκ τούτου δεν περιορίζονται από τις δυνατότητες μιας μεμονωμένης γέφυρας. Οι συλλέκτες γεφυρών συνήθως διατηρούν τις ενσωματώσεις γεφυρών, γεγονός που εξοικονομεί την dapp από τον κόπο να παρακολουθεί τις τεχνικές και λειτουργικές πτυχές μιας ενσωμάτωσης γέφυρας. + +Τούτου λεχθέντος, οι συσσωρευτές γεφυρών έχουν επίσης τους περιορισμούς τους. Για παράδειγμα, ενώ μπορούν να προσφέρουν περισσότερες επιλογές γεφυρών, πολλές γέφυρες είναι συνήθως διαθέσιμες στην αγορά εκτός από αυτές που προσφέρονται στην πλατφόρμα του συσσωρεύοντα. Επιπλέον, όπως και οι γέφυρες, οι συσσωρευτές γεφυρών εκτίθενται επίσης σε κινδύνους έξυπνων συμβολαίων και τεχνολογίας (περισσότερα έξυπνα συμβόλαια = περισσότεροι κίνδυνοι). + +Εάν μια dapp ακολουθεί τη διαδρομή της ενσωμάτωσης μιας γέφυρας ή ενός συσσωρευτή, υπάρχουν διαφορετικές επιλογές ανάλογα με το πόσο βαθιά προορίζεται να είναι η ενοποίηση. Για παράδειγμα, εάν πρόκειται μόνο για μια ολοκλήρωση front-end για τη βελτίωση της εμπειρίας ενσωμάτωσης χρηστών, μια dapp θα ενσωματώσει το widget. Ωστόσο, εάν η ενσωμάτωση πρόκειται να εξερευνήσει βαθύτερες στρατηγικές διασταυρούμενης αλυσίδας, όπως αποθήκευση κεφαλαίου, καλλιέργεια απόδοσης κ.λπ., το dapp ενσωματώνει το SDK ή το API. + +### Ανάπτυξη μιας dapp σε πολλαπλές αλυσίδες {#deploying-a-dapp-on-multiple-chains} + +Για την ανάπτυξη μιας dapp σε πολλές αλυσίδες, οι προγραμματιστές μπορούν να χρησιμοποιήσουν πλατφόρμες ανάπτυξης όπως το [Alchemy](https://www.alchemy.com/), το [Hardhat](https://hardhat.org/), το [Moralis](https://moralis.io/) κ.λ.π. Τυπικά, αυτές οι πλατφόρμες έρχονται με σύνθετα πρόσθετα που μπορούν να επιτρέψουν στις αποκεντρωμένες εφαρμογές να επικοινωνούν μεταξύ τους. Για παράδειγμα, οι προγραμματιστές μπορούν να χρησιμοποιήσουν έναν προκαθορισμένο διακομιστή μεσολάβησης που προσφέρεται από το [πρόσθετο hardhat-deploy](https://github.com/wighawag/hardhat-deploy). + +#### Παραδείγματα: + +- [Πώς να δημιουργήσετε dapps για χρήση μεταξύ αλυσίδων](https://moralis.io/how-to-build-cross-chain-dapps/) +- [Δημιουργία μιας αγοράς NFT μεταξύ αλυσίδων](https://youtu.be/WZWCzsB1xUE) +- [Moralis: Δημιουργία αποκεντρωμένων εφαρμογών NFT μεταξύ αλυσίδων](https://www.youtube.com/watch?v=ehv70kE1QYo) + +### Παρακολούθηση δραστηριότητας συμβολαίου μεταξύ αλυσίδων {#monitoring-contract-activity-across-chains} + +Για να παρακολουθήσουν τη δραστηριότητα συμβολαίου σε όλες τις αλυσίδες, οι προγραμματιστές μπορούν να χρησιμοποιήσουν υπο-γράφημα και πλατφόρμες προγραμματιστών όπως το Tenderly για να παρατηρούν έξυπνα συμβόλαια σε πραγματικό χρόνο. Τέτοιες πλατφόρμες έχουν επίσης εργαλεία που προσφέρουν μεγαλύτερη λειτουργικότητα παρακολούθησης δεδομένων για δραστηριότητες μεταξύ αλυσίδων, όπως ο έλεγχος για [συμβάντα που εκπέμπονται από συμβόλαια](https://docs.soliditylang.org/en/v0.8.14/contracts.html?highlight=events#events) κ.λπ. + +#### Εργαλεία + +- [The Graph](https://thegraph.com/en/) +- [Tenderly](https://tenderly.co/) + +## Περισσότερες πληροφορίες {#further-reading} +- [Γέφυρες Blockchain](/bridges/) – ethereum.org +- [Πλαίσιο κινδύνου γέφυρας L2Beat](https://l2beat.com/bridges/summary) +- [Γέφυρες κρυπτοαλυσίδων: Δημιουργία δικτύων κρυπτοδικτύων](https://medium.com/1kxnetwork/blockchain-bridges-5db6afac44f8) - 08 Σεπ 2021 του Dmitriy Berenzon +- [Το Τρίλημμα της Διαλειτουργικότητας](https://blog.connext.network/the-interoperability-trilemma-657c2cf69f17) - 01 Οκτ 2021 του Arjun Bhuptani +- [Συστάδες: Πώς οι Αξιόπιστες & Ελάχιστης Εμπιστοσύνης Γέφυρες Διαμορφώνουν το Τοπίο Πολλαπλών Αλυσίδων](https://blog.celestia.org/clusters/) - 04 Οκτ 2021 του Mustafa Al-Bassam +- [LI.FI: Με τις Γέφυρες, η Εμπιστοσύνη Είναι Ένα Φάσμα](https://blog.li.fi/li-fi-with-bridges-trust-is-a-spectrum-354cd5a1a6d8) - 28 Απρ 2022 - Arjun Chand +- [The State Of Rollup Interoperability Solutions](https://research.2077.xyz/the-state-of-rollup-interoperability) - 20 Ιουνίου 2024 του Alex Hook +- [Εκμετάλλευση κοινής ασφάλειας για ασφαλή διαλειτουργικότητα μεταξύ των αλυσίδων: Επιτροπές πολιτειών Lagrange και πέρα](https://research.2077.xyz/harnessing-shared-security-for-secure-blockchain-interoperability) - 12 Ιουνίου 2024 - Emmanuel Awosika + +Επιπλέον, ακολουθούν ορισμένες παρουσιάσεις του [James Prestwich](https://twitter.com/_prestwich) που μπορούν να βοηθήσουν στην ανάπτυξη μιας καλύτερης κατανόησης των γεφυρών: + +- [Χτίζοντας γέφυρες, όχι περιφραγμένους κήπους](https://youtu.be/ZQJWMiX4hT0) +- [Καταργώντας γέφυρες](https://youtu.be/b0mC-ZqN8Oo) +- [Γιατί καίγονται οι Γέφυρες](https://youtu.be/c7cm2kd20j8) diff --git a/public/content/translations/el/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/el/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md index 917b27e6f78..09ead118676 100644 --- a/public/content/translations/el/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md +++ b/public/content/translations/el/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md @@ -70,7 +70,7 @@ PROPOSER_WEIGHT uint64(8) - Έκδοση βεβαίωσης ενός μπλοκ που «περιβάλλει» ένα άλλο (αλλάζοντας ουσιαστικά το ιστορικό) - «Διπλή ψηφοφορία» μέσω βεβαίωσης δύο υποψηφίων για το ίδιο μπλοκ -Εάν εντοπιστούν αυτές οι ενέργειες, ο επικυρωτής υποβάλλεται σε περικοπή. Αυτό σημαίνει ότι το 1/32 του δεσμευμένου ether (έως 1 ether κατ' ανώτατο όριο) καίγεται αμέσως και μετά ξεκινά μια περίοδος απομάκρυνσης 36 ημερών. Κατά τη διάρκεια αυτής της περιόδου απομάκρυνσης το αποθηκευμένο κεφάλαιο του επικυρωτή σταδιακά μειώνεται. Στο μέσο σημείο (Ημέρα 18) εφαρμόζεται μια πρόσθετη ποινή της οποίας το μέγεθος κλιμακώνεται με το συνολικό δεσμευμένο ether όλων των περικομμένων επικυρωτών στις 36 ημέρες πριν από το γεγονός περικοπής. Αυτό σημαίνει ότι όταν περικόπτονται περισσότεροι επικυρωτές, το μέγεθος της περικοπής αυξάνεται. Η μέγιστη περικοπή είναι το πλήρες πραγματικό υπόλοιπο όλων των περικομμένων επικυρωτών (δηλαδή, εάν υπάρχουν πολλοί επικυρωτές που υποβάλλονται σε περικοπή, θα μπορούσαν να χάσουν ολόκληρο το κεφάλαιό τους). Από την άλλη πλευρά, ένα μεμονωμένο γεγονός περικοπής καίει μόνο ένα μικρό μέρος του αποθηκευμένου κεφαλαίου του επικυρωτή. Αυτή η ποινή του μέσου σημείου που κλιμακώνεται με τον αριθμό των περικομμένων επικυρωτών ονομάζεται «ποινή συσχέτισης». +Εάν εντοπιστούν αυτές οι ενέργειες, ο επικυρωτής υποβάλλεται σε περικοπή. Αυτό σημαίνει ότι το 0,0078125 καίγεται αμέσως για έναν επικυρωτή 32 ETH (κλιμακώνεται γραμμικά με το ενεργό υπόλοιπο) και στη συνέχεια ξεκινά μια περίοδος αφαίρεσης 36 ημερών. Κατά τη διάρκεια αυτής της περιόδου απομάκρυνσης το αποθηκευμένο κεφάλαιο του επικυρωτή σταδιακά μειώνεται. Στο μέσο σημείο (Ημέρα 18) εφαρμόζεται μια πρόσθετη ποινή της οποίας το μέγεθος κλιμακώνεται με το συνολικό δεσμευμένο ether όλων των περικομμένων επικυρωτών στις 36 ημέρες πριν από το γεγονός περικοπής. Αυτό σημαίνει ότι όταν περικόπτονται περισσότεροι επικυρωτές, το μέγεθος της περικοπής αυξάνεται. Η μέγιστη περικοπή είναι το πλήρες πραγματικό υπόλοιπο όλων των περικομμένων επικυρωτών (δηλαδή, εάν υπάρχουν πολλοί επικυρωτές που υποβάλλονται σε περικοπή, θα μπορούσαν να χάσουν ολόκληρο το κεφάλαιό τους). Από την άλλη πλευρά, ένα μεμονωμένο γεγονός περικοπής καίει μόνο ένα μικρό μέρος του αποθηκευμένου κεφαλαίου του επικυρωτή. Αυτή η ποινή του μέσου σημείου που κλιμακώνεται με τον αριθμό των περικομμένων επικυρωτών ονομάζεται «ποινή συσχέτισης». ## Διαρροή αδράνειας {#inactivity-leak} diff --git a/public/content/translations/el/developers/docs/data-availability/blockchain-data-storage-strategies/index.md b/public/content/translations/el/developers/docs/data-availability/blockchain-data-storage-strategies/index.md new file mode 100644 index 00000000000..3b3cb1c3c28 --- /dev/null +++ b/public/content/translations/el/developers/docs/data-availability/blockchain-data-storage-strategies/index.md @@ -0,0 +1,118 @@ +--- +title: Στρατηγικές αποθήκευσης δεδομένων Blockchain +description: Υπάρχουν διάφοροι τρόποι αποθήκευσης δεδομένων χρησιμοποιώντας το blockchain. Αυτό το άρθρο θα συγκρίνει τις διαφορετικές στρατηγικές, το κόστος και τους συμβιβασμούς τους, καθώς και τις απαιτήσεις για την ασφαλή χρήση τους. +lang: el +--- + +Υπάρχουν πολλοί τρόποι αποθήκευσης πληροφοριών είτε απευθείας στο blockchain είτε με τρόπο που να διασφαλίζεται από αυτό: + +- EIP-4844 blobs +- Calldata +- Εκτός αλυσίδας με μηχανισμούς L1 +- «Κώδικας» συμβολαίου +- Συμβάντα +- Αποθηκευτικός χώρος EVM + +Η επιλογή της μεθόδου που θα χρησιμοποιηθεί βασίζεται σε διάφορα κριτήρια: + +- Η πηγή των πληροφοριών. Οι πληροφορίες στα δεδομένα κλήσης δεν μπορούν να προέρχονται απευθείας από το ίδιο το blockchain. +- Ο προορισμός των πληροφοριών. Το Calldata είναι διαθέσιμο μόνο στη συναλλαγή που αφορά. Τα γεγονότα δεν είναι καθόλου προσβάσιμα στην αλυσίδα. +- Πόση ταλαιπωρία είναι αποδεκτή; Οι υπολογιστές που εκτελούν έναν κόμβο πλήρους κλίμακας μπορούν να εκτελέσουν περισσότερη επεξεργασία από έναν ελαφρύ πελάτη σε μια εφαρμογή που εκτελείται σε πρόγραμμα περιήγησης. +- Είναι απαραίτητο να διευκολυνθεί η εύκολη πρόσβαση στις πληροφορίες από κάθε κόμβο; +- Οι απαιτήσεις ασφαλείας. + +## Οι απαιτήσεις ασφαλείας {#security-requirements} + +Γενικά, η ασφάλεια πληροφοριών αποτελείται από τρία χαρακτηριστικά: + +- _Εμπιστευτικότητα_, οι μη εξουσιοδοτημένες οντότητες δεν επιτρέπεται να διαβάζουν τις πληροφορίες. Αυτό είναι σημαντικό σε πολλές περιπτώσεις, αλλά όχι εδώ. _Δεν υπάρχουν μυστικά στο blockchain_. Τα blockchain λειτουργούν επειδή οποιοσδήποτε μπορεί να επαληθεύσει τις μεταβάσεις κατάστασης, επομένως είναι αδύνατο να χρησιμοποιηθούν για την απευθείας αποθήκευση μυστικών. Υπάρχουν τρόποι αποθήκευσης εμπιστευτικών πληροφοριών στο blockchain, αλλά όλοι βασίζονται σε κάποιο εξάρτημα εκτός αλυσίδας για την αποθήκευση τουλάχιστον ενός κλειδιού. + +- _Integrity_, οι πληροφορίες είναι σωστές, δεν μπορούν να αλλάξουν από μη εξουσιοδοτημένες οντότητες ή με μη εξουσιοδοτημένους τρόπους (για παράδειγμα, μεταφορά [ERC-20 tokens](https://eips.ethereum.org/EIPS/eip-20#events) χωρίς ένα συμβάν «Μεταφοράς»). Στο blockchain, κάθε κόμβος επαληθεύει κάθε αλλαγή κατάστασης, η οποία διασφαλίζει την ακεραιότητα. + +- _Διαθεσιμότητα_, οι πληροφορίες είναι διαθέσιμες σε κάθε εξουσιοδοτημένο φορέα. Στο blockchain, αυτό συνήθως επιτυγχάνεται έχοντας τις πληροφορίες διαθέσιμες σε κάθε [full node] (https://ethereum.org/developers/docs/nodes-and-clients#full-node). + +Οι διαφορετικές λύσεις εδώ έχουν όλες εξαιρετική ακεραιότητα, επειδή τα hashes δημοσιεύονται στο L1. Ωστόσο, έχουν διαφορετικές εγγυήσεις διαθεσιμότητας. + +## Προαπαιτούμενα {#prerequisites} + +Θα πρέπει να κατανοείτε καλά τις [βασικές αρχές του blockchain](/developers/docs/intro-to-ethereum/). Αυτή η σελίδα προϋποθέτει επίσης ότι ο αναγνώστης είναι εξοικειωμένος με τα [blocks](/developers/docs/blocks/), [transactions](/developers/docs/transactions/) και άλλα σχετικά θέματα. + +## EIP-4844 blobs {#eip-4844-blobs} + +Ξεκινώντας με [το Dencun hardfork](https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/beacon-chain.md) η κρυπτοαλυσίδα Ethereum περιλαμβάνει [EIP-4844](https:// eips.ethereum.org/EIPS/eip-4844), το οποίο προσθέτει στο Ethereum blobs δεδομένων με περιορισμένη διάρκεια ζωής (αρχικά περίπου [18 ημέρες](https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/p2p-interface.md#configuration)). Αυτά τα blobs τιμολογούνται ξεχωριστά από το [execution gas](/developers/docs/gas), αν και χρησιμοποιούν παρόμοιο μηχανισμό. Είναι ένας φθηνός τρόπος για να δημοσιεύσετε προσωρινά δεδομένα. + +Η κύρια περίπτωση χρήσης για τα blobs EIP-4844 είναι για τα rollups που δημοσιεύουν τις συναλλαγές τους. Τα [Optimistic rollups](/developers/docs/scaling/optimistic-rollups) πρέπει να δημοσιεύουν τις συναλλαγές στα blockchains τους. Αυτές οι συναλλαγές πρέπει να είναι διαθέσιμες σε οποιονδήποτε κατά την [περίοδο πρόκλησης](https://docs.optimism.io/connect/resources/glossary#challenge-period) για να ενεργοποιηθούν οι [επικυρωτές](https://docs.optimism.io/connect/resources/glossary#validator) για να διορθώσετε το λάθος εάν ο [sequencer](https://docs.optimism.io/connect/resources/glossary#sequencer) του rollup δημοσιεύει ένα λανθασμένο root κατάστασης. + +Ωστόσο, μόλις περάσει η περίοδος πρόκλησης και οριστικοποιηθεί το root κατάστασης, ο σκοπός που απομένει για τη γνώση αυτών των συναλλαγών είναι η αναπαραγωγή της τρέχουσας κατάστασης της αλυσίδας. Αυτή η κατάσταση είναι επίσης διαθέσιμη από κόμβους αλυσίδας, με πολύ λιγότερη απαίτηση επεξεργασίας. Επομένως, οι πληροφορίες συναλλαγών θα πρέπει να εξακολουθούν να διατηρούνται σε μερικά μέρη, όπως [εξερευνητές μπλοκ](/developers/docs/data-and-analytics/block-explorers), αλλά δε χρειάζεται να πληρώσετε για το επίπεδο αντίστασης λογοκρισίας που παρέχει το Ethereum. + +Τα [Zero-knowledge rollups](/developers/docs/scaling/zk-rollups/#data-availability) δημοσιεύουν επίσης τα δεδομένα συναλλαγών τους για να επιτρέψουν σε άλλους κόμβους να αναπαράγουν την υπάρχουσα κατάσταση και να επαληθεύσουν τις αποδείξεις εγκυρότητας, αλλά και πάλι αυτό είναι βραχυπρόθεσμη απαίτηση. + +Κατά τη σύνταξη της ανάρτησης στο EIP-4844 κοστίζει ένα wei (10-18 ETH) ανά byte, το οποίο είναι αμελητέο σε σύγκριση με [το 21,000 gas εκτέλεσης που κοστίζει οποιαδήποτε συναλλαγή, συμπεριλαμβανομένης αυτής που δημοσιεύει blobs](https://eth.blockscout.com/tx/0xf6cfaf0431c73dd1d96369a5e6707d64f463ccf477a4131265397f1d81466929?tab=index). Μπορείτε να δείτε την τρέχουσα τιμή EIP-4844 στο [blobscan.com](https://blobscan.com/blocks). + +Δείτε παρακάτω τις διευθύνσεις blobs που δημοσιεύτηκαν από μερικές διάσημα rollups. + +| Πακέτο ενημέρωσης | Διεύθυνση | +| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- | +| [Optimism](https://www.optimism.io/) | [`0xFF00000000000000000000000000000000000010`](https://blobscan.com/address/0xFF00000000000000000000000000000000000010) | +| [Arbitrum](https://arbitrum.io/) | [`0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6`](https://blobscan.com/address/0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6) | +| [Base](https://base.org/) | [`0xFF00000000000000000000000000000000008453`](https://blobscan.com/address/0xFF00000000000000000000000000000000008453) | + +## Calldata {#calldata} + +Το Calldata αναφέρεται στα byte που αποστέλλονται ως μέρος της συναλλαγής. Αποθηκεύεται ως μέρος της μόνιμης εγγραφής του blockchain στο μπλοκ που περιλαμβάνει τη συγκεκριμένη συναλλαγή. + +Αυτή είναι η φθηνότερη μέθοδος για μόνιμη τοποθέτηση δεδομένων στο blockchain. Το κόστος ανά byte είναι είτε 4 gas εκτέλεσης (αν το byte είναι μηδέν) είτε 16 gas (οποιαδήποτε άλλη αξία). Εάν τα δεδομένα είναι συμπιεσμένα, κάτι που είναι τυπική πρακτική, τότε κάθε τιμή byte είναι εξίσου πιθανή, επομένως το μέσο κόστος είναι περίπου 15.95 gas ανά byte. + +Τη στιγμή σύνταξης του άρθρου, οι τιμές είναι 12 gwei/gas και 2300 $/ETH, που σημαίνει ότι το κόστος είναι περίπου 45 σεντς ανά kilobyte. Επειδή αυτή ήταν η φθηνότερη μέθοδος πριν από την EIP-4844, αυτή είναι η μέθοδος που τα rollups χρησιμοποιούνταν για την αποθήκευση πληροφοριών συναλλαγών, οι οποίες πρέπει να είναι διαθέσιμες για [προκλήσεις σφαλμάτων](https://docs.optimism.io/stack/protocol/overview#fault-proofs), αλλά δε χρειάζεται να είναι άμεσα προσβάσιμο στην αλυσίδα. + +Δείτε παρακάτω τις διευθύνσεις συναλλαγών που δημοσιεύτηκαν από μερικά διάσημα rollups. + +| Πακέτο ενημέρωσης | Διεύθυνση | +| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | +| [Optimism](https://www.optimism.io/) | [`0xFF00000000000000000000000000000000000010`](https://eth.blockscout.com/address/0xFF00000000000000000000000000000000000010) | +| [Arbitrum](https://arbitrum.io/) | [`0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6`](https://eth.blockscout.com/address/0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6) | +| [Base](https://base.org/) | [`0xFF00000000000000000000000000000000008453`](https://eth.blockscout.com/address/0xFF00000000000000000000000000000000008453) | + +## Offchain με μηχανισμούς L1 {#offchain-with-l1-mechs} + +Ανάλογα με τους συμβιβασμούς ασφαλείας σας, μπορεί να είναι αποδεκτό να τοποθετήσετε τις πληροφορίες αλλού και να χρησιμοποιήσετε έναν μηχανισμό που διασφαλίζει ότι τα δεδομένα είναι διαθέσιμα όταν χρειάζεται. Υπάρχουν δύο προϋποθέσεις για να λειτουργήσει αυτό: + +1. Δημοσιεύστε ένα [hash](https://en.wikipedia.org/wiki/Cryptographic_hash_function) των δεδομένων στο blockchain, που ονομάζεται _input commitment_. Αυτό μπορεί να είναι μια λέξη 32 byte, επομένως δεν είναι ακριβή. Εφόσον η δέσμευση εισόδου είναι διαθέσιμη, η ακεραιότητα είναι εξασφαλισμένη επειδή δεν είναι εφικτό να βρεθούν άλλα δεδομένα που θα κάνουν hash την ίδια τιμή. Έτσι, εάν παρέχονται λανθασμένα δεδομένα, μπορούν να εντοπιστούν. + +2. Να έχετε έναν μηχανισμό που διασφαλίζει τη διαθεσιμότητα. Για παράδειγμα, στο [Redstone](https://redstone.xyz/docs/what-is-redstone) οποιοσδήποτε κόμβος μπορεί να υποβάλει μια πρόκληση διαθεσιμότητας. Εάν ο sequencer δεν ανταποκριθεί στην αλυσίδα εντός της προθεσμίας, η δέσμευση εισόδου απορρίπτεται, επομένως οι πληροφορίες θεωρείται ότι δεν έχουν δημοσιευτεί ποτέ. + +Αυτό είναι αποδεκτό για ένα optimistic rollup, επειδή βασιζόμαστε ήδη στην ύπαρξη τουλάχιστον ενός ειλικρινούς επαληθευτή για το root της κατάστασης. Ένας τέτοιος ειλικρινής επαληθευτής θα βεβαιωθεί επίσης ότι διαθέτει τα δεδομένα για την επεξεργασία μπλοκ και θα εκδώσει μια πρόκληση διαθεσιμότητας εάν οι πληροφορίες δεν είναι διαθέσιμες εκτός αλυσίδας. Αυτός ο τύπος optimistic rollup ονομάζεται [plasma](/developers/docs/scaling/plasma/). + +## Κώδικάς συμβολαίου {#contract-code} + +Οι πληροφορίες που χρειάζεται να γραφτούν μόνο μία φορά, δεν αντικαθίστανται ποτέ και πρέπει να είναι διαθέσιμες στην αλυσίδα και να μπορούν να αποθηκευτούν ως κώδικας συμβολαίου. Αυτό σημαίνει ότι δημιουργούμε ένα "έξυπνο συμβόλαιο" με τα δεδομένα και στη συνέχεια χρησιμοποιούμε το [`EXTCODECOPY`](https://www.evm.codes/#3c?fork=shanghai) για να διαβάσουμε τις πληροφορίες. Το πλεονέκτημα είναι ότι η αντιγραφή κώδικα είναι σχετικά φθηνή. + +Εκτός από το κόστος επέκτασης μνήμης, το "EXTCODECOPY" κοστίζει 2600 gas για την πρώτη πρόσβαση σε ένα συμβόλαιο (όταν είναι "κρύο") και 100 gas για επόμενα αντίγραφα από το ίδιο συμβόλαιο συν 3 gas ανά λέξη 32 byte. Σε σύγκριση με το calldata, που κοστίζει 15,95 ανά byte, αυτό είναι φθηνότερο ξεκινώντας από περίπου 200 byte. Με βάση [τον τύπο για το κόστος επέκτασης μνήμης](https://www.evm.codes/about#memoryexpansion), εφόσον δε χρειάζεστε περισσότερα από 4 MB μνήμης, το κόστος επέκτασης μνήμης είναι μικρότερο από το κόστος προσθήκη δεδομένων κλήσης. + +Φυσικά, αυτό είναι μόνο το κόστος για την _ανάγνωση_ των δεδομένων. Η δημιουργία του συμβολαίου κοστίζει περίπου 32.000 gas + 200 gas/byte. Αυτή η μέθοδος είναι οικονομική μόνο όταν χρειάζεται να διαβαστούν πολλές φορές οι ίδιες πληροφορίες σε διαφορετικές συναλλαγές. + +Ο κωδικός σύμβασης μπορεί να είναι χωρίς σημασία, αρκεί να μην ξεκινά με «0xEF». Οι συμβάσεις που ξεκινούν με "0xEF" ερμηνεύονται ως [μορφή αντικειμένου ethereum](https://notes.ethereum.org/@ipsilon/evm-object-format-overview), η οποία έχει πολύ πιο αυστηρές απαιτήσεις. + +## Γεγονότα {#events} + +Τα [Συμβάντα](https://docs.alchemy.com/docs/solidity-events) εκπέμπονται από έξυπνα συμβόλαια και διαβάζονται από λογισμικό εκτός αλυσίδας. +Το πλεονέκτημά τους είναι ότι ο κώδικας εκτός αλυσίδας μπορεί να ακούει συμβάντα. Το κόστος είναι [gas](https://www.evm.codes/#a0?fork=cancun), 375 συν 8 αέριο ανά byte δεδομένων. Σε 12 gwei/gas και 2300 $/ETH, αυτό μεταφράζεται σε ένα σεντ συν 22 σεντ ανά κιλομπάιτ. + +## Αποθηκευτικός χώρος {#storage} + +Τα έξυπνα συμβόλαια έχουν πρόσβαση σε [μόνιμο αποθηκευτικό χώρο](https://docs.alchemy.com/docs/smart-contract-storage-layout#what-is-storage-memory). Ωστόσο, είναι πολύ ακριβό. Η εγγραφή μιας λέξης 32 byte σε μια προηγουμένως άδεια υποδοχή αποθήκευσης μπορεί να [κοστίζει 22.100 gas](https://www.evm.codes/#55?fork=cancun). Σε 12 gwei/gas και 2300 $/ETH, αυτό είναι περίπου 61 σεντς ανά λειτουργία εγγραφής ή 19,5 $ ανά kilobyte. + +Αυτή είναι η πιο ακριβή μορφή αποθήκευσης στο Ethereum. + +## Περίληψη {#summary} + +Αυτός ο πίνακας συνοψίζει τις διαφορετικές επιλογές, τα πλεονεκτήματα και τα μειονεκτήματά τους. + +| Τύπος αποθ. χώρου | Πηγή δεδομένων | Εγγύηση διαθεσιμότητας | Διαθεσιμότητα στην αλυσίδα | Πρόσθετοι περιορισμοί | +| --------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------- | +| EIP-4844 blobs | Εκτός αλυσίδας | Εγγύηση Ethereum για [~18 ημέρες](https://github.com/ethereum/consensus-specs/blob/dev/specs/deneb/p2p-interface.md#configuration) | Μόνο κατακερματισμός είναι διαθέσιμος | | +| Calldata | Εκτός αλυσίδας | Εγγύηση Ethereum για πάντα (μέρος του blockchain) | Διατίθεται μόνο εάν εγγραφεί σε ένα συμβόλαιο και σε αυτήν τη συναλλαγή | | +| Εκτός αλυσίδας με μηχανισμούς L1 | Εκτός αλυσίδας | Εγγύηση "Ένας έντιμος επαληθευτής" κατά την περίοδο πρόκλησης | Μόνο κατακερματισμός | Εγγύηση μηχανισμού πρόκλησης, κατά την περίοδο πρόκλησης | +| Κώδικας συμβολαίου | Εκτός ή επί της αλυσίδας | Εγγύηση Ethereum για πάντα (μέρος του blockchain) | Ναι | Γράφεται σε "τυχαία" διεύθυνση, δεν μπορεί να ξεκινά με `0xEF` | +| Συμβάντα | Επί της αλυσίδας | Εγγύηση Ethereum για πάντα (μέρος του blockchain) | Όχι | | +| Αποθηκευτικός χώρος | Επί της αλυσίδας | Εγγύηση Ethereum για πάντα (μέρος του blockchain και την παρούσα κατάσταση μέχρι να αντικατασταθεί) | Ναι | | diff --git a/public/content/translations/el/developers/docs/data-availability/index.md b/public/content/translations/el/developers/docs/data-availability/index.md new file mode 100644 index 00000000000..74059245aa9 --- /dev/null +++ b/public/content/translations/el/developers/docs/data-availability/index.md @@ -0,0 +1,85 @@ +--- +title: Διαθεσιμότητα δεδομένων +description: Μια επισκόπηση προβλημάτων και λύσεων που σχετίζονται με τη διαθεσιμότητα δεδομένων στο Ethereum +lang: el +--- + +Το «Μην εμπιστεύεστε, επαληθεύστε» είναι ένα κοινό ρητό στο Ethereum. Η κύρια ιδέα είναι ότι ο κόμβος σας μπορεί ανεξάρτητα να επαληθεύσει ότι οι πληροφορίες που λαμβάνει είναι σωστές, εκτελώντας όλες τις συναλλαγές στα μπλοκ που λαμβάνουν από ομότιμους για να διασφαλιστεί ότι οι προτεινόμενες αλλαγές ταιριάζουν ακριβώς με αυτές που υπολογίζονται ανεξάρτητα από τον κόμβο. Αυτό σημαίνει ότι οι κόμβοι δε χρειάζεται να εμπιστεύονται ότι οι αποστολείς του μπλοκ είναι ειλικρινείς. Αυτό δεν είναι δυνατό εάν λείπουν δεδομένα. + +Η **Διαθεσιμότητα δεδομένων** αναφέρεται στη διαβεβαίωση που μπορεί να έχει ένας χρήστης ότι τα δεδομένα που απαιτούνται για την επαλήθευση μπλοκ είναι πραγματικά διαθέσιμα σε όλους τους συμμετέχοντες στο δίκτυο. Για τους πλήρεις κόμβους επιπέδου 1 του Ethereum, είναι σχετικά απλό. Ο πλήρης κόμβος πραγματοποιεί λήψη ενός αντιγράφου όλων των δεδομένων σε κάθε μπλοκ. Τα δεδομένα _πρέπει_ να είναι διαθέσιμα για να είναι δυνατή η λήψη τους. Ένα μπλοκ με δεδομένα που λείπουν θα απορριφθεί αντί να προστεθεί στην κρυπτοαλυσίδα. Αυτό είναι η "διαθεσιμότητα δεδομένων στην αλυσίδα" και είναι χαρακτηριστικό των μονολιθικών κρυπτοαλυσίδων. Οι πλήρεις κόμβοι δεν μπορούν να εξαπατηθούν ώστε να αποδεχτούν μη έγκυρες συναλλαγές επειδή κατεβάζουν και εκτελούν κάθε συναλλαγή από μόνοι τους. Ωστόσο, για αρθρωτές κρυπτοαλυσίδες, πακέτα ενημέρωσης επιπέδου 2 και πελάτες μικρού μεγέθους, η διαθεσιμότητας δεδομένων είναι πιο περίπλοκη, απαιτώντας ορισμένες πιο εξελιγμένες διαδικασίες επαλήθευσης. + +## Προαπαιτούμενα {#prerequisites} + +Θα πρέπει να έχετε καλή κατανόηση των [βασικών αρχών κρυπτοαλυσίδας](/developers/docs/intro-to-ethereum/), ιδιαίτερα του [μηχανισμού συναίνεσης](/developers/docs/consensus-mechanisms/). Αυτή η σελίδα υποθέτει επίσης ότι ο αναγνώστης είναι εξοικειωμένος με τα [μπλοκ](/developers/docs/blocks/), τις [συναλλαγές](/developers/docs/transactions/), τους [κόμβους](/developers/docs/nodes-and-clients/), τις [λύσεις κλιμάκωσης](/developers/docs/scaling/) και άλλα σχετικά θέματα. + +## Το πρόβλημα διαθεσιμότητας δεδομένων {#the-data-availability-problem} + +Το πρόβλημα διαθεσιμότητας δεδομένων είναι η ανάγκη να αποδειχθεί σε ολόκληρο το δίκτυο ότι η συνοπτική μορφή ορισμένων δεδομένων συναλλαγών που προστίθενται στην κρυπτοαλυσίδα αντιπροσωπεύει πραγματικά ένα σύνολο έγκυρων συναλλαγών, αλλά χωρίς να απαιτείται από όλους τους κόμβους να κατεβάσουν όλα τα δεδομένα. Τα πλήρη δεδομένα συναλλαγών είναι απαραίτητα για την ανεξάρτητη επαλήθευση μπλοκ, αλλά η απαίτηση από όλους τους κόμβους να κατεβάσουν όλα τα δεδομένα συναλλαγών αποτελεί εμπόδιο στην κλιμάκωση. Οι λύσεις στο πρόβλημα διαθεσιμότητας δεδομένων στοχεύουν στην παροχή επαρκών διαβεβαιώσεων ότι τα πλήρη δεδομένα συναλλαγών που κατέστησαν διαθέσιμα για επαλήθευση στους συμμετέχοντες στο δίκτυο, δεν πραγματοποιούν λήψη και αποθήκευση των δεδομένων για εκείνους. + +Οι [Ελαφροί κόμβοι](/developers/docs/nodes-and-clients/light-clients) και τα [πακέτα ενημέρωσης επιπέδου 2](/developers/docs/scaling) είναι σημαντικά παραδείγματα συμμετεχόντων στο δίκτυο που απαιτούν ισχυρές διαβεβαιώσεις διαθεσιμότητας δεδομένων, αλλά δεν μπορούν να πραγματοποιήσουν λήψη και επεξεργασία δεδομένων συναλλαγών μόνοι τους. Η αποφυγή λήψης δεδομένων συναλλαγών είναι αυτό που κάνει τους ελαφρούς κόμβους, ελαφρούς και επιτρέπει στα πακέτα ενημέρωσης να είναι αποτελεσματικές λύσεις κλιμάκωσης. + +Η διαθεσιμότητα δεδομένων αποτελεί επίσης κρίσιμη ανησυχία για μελλοντικούς πελάτες ["χωρίς κατάσταση"](/roadmap/statelessness) Ethereum που δε χρειάζεται να πραγματοποιούν λήψη και αποθήκευση δεδομένων κατάστασης για την επαλήθευση των αποκλεισμών. Οι πελάτες χωρίς κατάσταση πρέπει ακόμα να είναι σίγουροι ότι τα δεδομένα είναι διαθέσιμα _κάπου_ και ότι έχουν υποστεί σωστή επεξεργασία. + +## Λύσεις διαθεσιμότητας δεδομένων {#data-availability-solutions} + +### Δειγματοληψία διαθεσιμότητας δεδομένων (DAS) {#data-availability-sampling} + +Η δειγματοληψία διαθεσιμότητας δεδομένων (DAS) είναι ένας τρόπος για το δίκτυο να ελέγχει ότι τα δεδομένα είναι διαθέσιμα, χωρίς να ασκείται υπερβολική πίεση σε οποιονδήποτε μεμονωμένο κόμβο. Κάθε κόμβος (συμπεριλαμβανομένων των κόμβων χωρίς αποθηκευμένο κεφάλαιο) κατεβάζει κάποιο μικρό, τυχαία επιλεγμένο υποσύνολο των δεδομένων. Η επιτυχής λήψη των δειγμάτων επιβεβαιώνει με μεγάλη σιγουριά ότι όλα τα δεδομένα είναι διαθέσιμα. Αυτό βασίζεται στην κωδικοποίηση διαγραφής δεδομένων, η οποία επεκτείνει ένα δεδομένο σύνολο με πλεοναστικές πληροφορίες (ο τρόπος με τον οποίο γίνεται αυτό είναι να προσαρμοστεί μια συνάρτηση γνωστή ως _πολυώνυμο_ στα δεδομένα και να υπολογιστεί αυτό το πολυώνυμο σε πρόσθετα σημεία). Αυτό επιτρέπει την ανάκτηση των αρχικών δεδομένων από τα πλεονάζων δεδομένα όταν είναι απαραίτητο. Συνέπεια αυτής της δημιουργίας δεδομένων είναι ότι εάν _κάποια_ από τα αρχικά δεδομένα δεν είναι διαθέσιμα, τα _μισά_ από τα αναπτυγμένα δεδομένα θα λείπουν! Το ποσό των δειγμάτων δεδομένων που κατεβάζει κάθε κόμβος μπορεί να ρυθμιστεί έτσι ώστε να είναι _εξαιρετικά_ πιθανό ότι τουλάχιστον ένα από τα δείγματα δεδομένων που δειγματοληπτείται από κάθε πελάτη θα λείπει _εάν_ είναι λιγότερα από τα μισά δεδομένα είναι πραγματικά διαθέσιμα. + +Το DAS θα χρησιμοποιηθεί για να διασφαλιστεί ότι οι χειριστές του πακέτου ενημέρωσης καθιστούν τα δεδομένα των συναλλαγών τους διαθέσιμα μετά [την πλήρη εφαρμογή του Danksharding](/roadmap/danksharding/#what-is-danksharding). Οι κόμβοι Ethereum θα δειγματοληπτούν τυχαία τα δεδομένα συναλλαγών που παρέχονται σε blobs χρησιμοποιώντας το σχήμα περιττής πληροφορίας που εξηγήθηκε παραπάνω για να διασφαλίσουν ότι όλα τα δεδομένα υπάρχουν. Η ίδια τεχνική θα μπορούσε επίσης να χρησιμοποιηθεί για να διασφαλιστεί ότι οι παραγωγοί μπλοκ καθιστούν όλα τα δεδομένα τους διαθέσιμα για την ασφάλεια των ελαφρών πελατών. Παρομοίως, υπό τον [διαχωρισμό προτείνοντος - κατασκευαστή](/roadmap/pbs), μόνο ο κατασκευαστής μπλοκ θα απαιτείται να επεξεργαστεί ένα ολόκληρο μπλοκ, άλλοι επικυρωτές θα επαληθεύουν χρησιμοποιώντας δειγματοληψία διαθεσιμότητας δεδομένων. + +### Επιτροπές διαθεσιμότητας δεδομένων {#data-availability-committees} + +Οι Επιτροπές Διαθεσιμότητας Δεδομένων (DAC) είναι αξιόπιστα μέλη που παρέχουν ή πιστοποιούν τη διαθεσιμότητα δεδομένων. Οι DAC μπορούν να χρησιμοποιηθούν αντιθέτως [ή σε συνδυασμό με](https://hackmd.io/@vbuterin/sharding_proposal#Why-not-use-just-committees-and-not-DAS) DAS. Οι εγγυήσεις ασφαλείας που συνοδεύουν τις επιτροπές εξαρτώνται από τη συγκεκριμένη εγκατάσταση. Το Ethereum χρησιμοποιεί τυχαία δειγματοληπτικά υποσύνολα επικυρωτών για να πιστοποιήσουν τη διαθεσιμότητα δεδομένων για τους ελαφρούς κόμβους, για παράδειγμα. + +Οι DAC χρησιμοποιούνται επίσης από ορισμένα validiums. Το DAC είναι ένα αξιόπιστο σύνολο κόμβων που αποθηκεύει αντίγραφα δεδομένων εκτός σύνδεσης. Το DAC απαιτείται για να καταστήσει τα δεδομένα διαθέσιμα σε περίπτωση διαφωνίας. Τα μέλη του DAC δημοσιεύουν επίσης στην αλυσίδα πιστοποιήσεις για να αποδείξουν ότι τα συγκεκριμένα δεδομένα είναι πράγματι διαθέσιμα. Ορισμένα validiums αντικαθιστούν τα DAC με ένα σύστημα επικυρωτών απόδειξης συμμετοχής (PoS). Εδώ, ο καθένας μπορεί να γίνει επικυρωτής και να αποθηκεύσει δεδομένα εκτός αλυσίδας. Ωστόσο, πρέπει να παρέχουν ένα "δεσμό", το οποίο κατατίθεται σε ένα έξυπνο συμβόλαιο. Σε περίπτωση κακόβουλης συμπεριφοράς, όπως η παρακράτηση δεδομένων από τον επικυρωτή, ο δεσμός μπορεί να κοπεί. Οι επιτροπές διαθεσιμότητας δεδομένων απόδειξης συμμετοχής είναι σημαντικά πιο ασφαλείς από τα κανονικά DAC επειδή δίνουν άμεσα κίνητρα για ειλικρινή συμπεριφορά. + +## Διαθεσιμότητα δεδομένων και κόμβοι μικρού μεγέθους {#data-availability-and-light-nodes} + +[Οι κόμβοι μικρού μεγέθους](/developers/docs/nodes-and-clients/light-clients) πρέπει να επικυρώνουν την ορθότητα των επικεφαλίδων των μπλοκ που λαμβάνουν χωρίς να κάνουν λήψη των δεδομένων του μπλοκ. Το κόστος αυτού του μικρού μεγέθους είναι η αδυναμία ανεξάρτητης επαλήθευσης των κεφαλίδων μπλοκ με την εκ νέου εκτέλεση συναλλαγών τοπικά με τον τρόπο που κάνουν οι πλήρεις κόμβοι. + +Οι κόμβοι μικρού μεγέθους του Ethereum εμπιστεύονται τυχαία σύνολα 512 επικυρωτών που έχουν εκχωρηθεί σε μια _επιτροπή συγχρονισμού_. Η επιτροπή συγχρονισμού λειτουργεί ως μια DAC που ενημερώνει τους πελάτες μικρού μεγέθους ότι τα δεδομένα στην κεφαλίδα είναι σωστά χρησιμοποιώντας μια κρυπτογραφική υπογραφή. Κάθε μέρα, η επιτροπή συγχρονισμού ανανεώνεται. Κάθε κεφαλίδα μπλοκ ειδοποιεί τους ελαφρούς κόμβους σχετικά με τους επικυρωτές που αναμένεται να υπογράψουν το _επόμενο_ μπλοκ, ώστε να μην μπορούν να εξαπατηθούν παρέχοντας εμπιστοσύνη σε μια κακόβουλη ομάδα που προσποιείται ότι είναι η πραγματική επιτροπή συγχρονισμού. + +Ωστόσο, τι συμβαίνει εάν ένας επιτιθέμενος _καταφέρει_ κάποια στιγμή να περάσει μια κακόβουλη κεφαλίδα μπλοκ σε πελάτες μικρού μεγέθους και να τους πείσει ότι υπογράφηκε από μια ειλικρινή επιτροπή συγχρονισμού; Σε αυτήν την περίπτωση, ο επιτιθέμενος θα μπορούσε να συμπεριλάβει μη έγκυρες συναλλαγές και ο ελαφρύς πελάτης θα τις δεχόταν τυφλά, καθώς δεν ελέγχει ανεξάρτητα όλες τις αλλαγές κατάστασης που συνοψίζονται στην κεφαλίδα μπλοκ. Για να προστατευθεί από αυτό, ο ελαφρύς πελάτης θα μπορούσε να χρησιμοποιήσει αποδείξεις απάτης. + +Ο τρόπος με τον οποίο λειτουργούν αυτές οι αποδείξεις απάτης είναι ότι ένας πλήρης κόμβος, βλέποντας μια μη έγκυρη μετάβαση κατάστασης να διαδίδεται στο δίκτυο, θα μπορούσε γρήγορα να δημιουργήσει ένα μικρό κομμάτι δεδομένων που να αποδεικνύει ότι μια προτεινόμενη μετάβαση κατάστασης δε θα μπορούσε να προκύψει από ένα συγκεκριμένο σύνολο συναλλαγών και να μεταδώσει αυτά τα δεδομένα στους ομότιμους. Οι ελαφροί κόμβοι θα μπορούσαν να παραλάβουν αυτές τις αποδείξεις απάτης και να τις χρησιμοποιήσουν για να απορρίψουν κακές κεφαλίδες μπλοκ, εξασφαλίζοντας ότι παραμένουν στην ίδια ειλικρινή αλυσίδα με τους πλήρεις κόμβους. + +Αυτό βασίζεται στους πλήρεις κόμβους έχοντας πρόσβαση στα πλήρη δεδομένα συναλλαγών. Ένας επιτιθέμενος που διαδίδει μια κακή κεφαλίδα μπλοκ και επίσης αποτυγχάνει να καταστήσει διαθέσιμα τα δεδομένα της συναλλαγής θα μπορούσε να αποτρέψει τους πλήρεις κόμβους από το να δημιουργήσουν αποδείξεις απάτης. Οι πλήρεις κόμβοι μπορεί να είναι σε θέση να σημάνουν μια προειδοποίηση για ένα κακό μπλοκ, αλλά δε θα μπορούσαν να υποστηρίξουν την προειδοποίησή τους με απόδειξη, επειδή τα δεδομένα δεν κατέστησαν διαθέσιμα για να δημιουργηθεί η απόδειξη! + +Η λύση σε αυτό το πρόβλημα διαθεσιμότητας δεδομένων είναι το DAS. Οι ελαφροί κόμβοι κατεβάζουν πολύ μικρά τυχαία κομμάτια των δεδομένων της πλήρους κατάστασης και χρησιμοποιούν τα δείγματα για να επαληθεύσουν ότι το πλήρες σύνολο δεδομένων είναι διαθέσιμο. Η πραγματική πιθανότητα να υποτεθεί λανθασμένα η πλήρης διαθεσιμότητα δεδομένων μετά τη λήψη N τυχαίων τμημάτων μπορεί να υπολογιστεί ([για 100 τμήματα η πιθανότητα είναι 10^-30](https://dankradfeist.de/ethereum/2019/12/20/data-availability-checks.html), δηλαδή εξαιρετικά απίθανη). + +Ακόμα και σε αυτό το σενάριο, οι επιθέσεις που κατακρατούν μόνο λίγα byte θα μπορούσαν ενδεχομένως να περάσουν απαρατήρητες από τους πελάτες που κάνουν τυχαία αιτήματα δεδομένων. Η κωδικοποίηση διαγραφής το διορθώνει αυτό ανακατασκευάζοντας μικρά χαμένα κομμάτια δεδομένων που μπορούν να χρησιμοποιηθούν για να ελεγχθούν οι προτεινόμενες αλλαγές κατάστασης. Μια απόδειξη απάτης θα μπορούσε στη συνέχεια να κατασκευαστεί χρησιμοποιώντας τα ανακατασκευασμένα δεδομένα, εμποδίζοντας τους ελαφρούς κόμβους από το να αποδεχτούν κακές κεφαλίδες. + +**Σημείωση**: Το DAS και οι αποδείξεις απάτης δεν έχουν ακόμη υλοποιηθεί για τους ελαφρούς πελάτες με απόδειξη συμμετοχής στο Ethereum, αλλά βρίσκονται στο χρονοδιάγραμμα πιθανότατα λαμβάνοντας τη μορφή αποδείξεων βασισμένων σε ZK-SNARK. Οι σημερινοί ελαφροί πελάτες βασίζονται σε μια μορφή DAC: επαληθεύουν τις ταυτότητες της επιτροπής συγχρονισμού και στη συνέχεια εμπιστεύονται τις υπογεγραμμένες κεφαλίδες μπλοκ που λαμβάνουν. + +## Διαθεσιμότητα δεδομένων και πακέτα ενημέρωσης επιπέδου 2 {#data-availability-and-layer-2-rollups} + +[Λύσεις κλιμάκωσης επιπέδου 2](/layer-2/), όπως τα [πακέτα συναλλαγών ](/glossary/#rollups), μειώνουν το κόστος συναλλαγών και αυξάνουν την απόδοση του Ethereum επεξεργάζοντας συναλλαγές εκτός αλυσίδας. Τα πακέτα ενημέρωσης των συναλλαγών συμπιέζονται και δημοσιεύονται στο Ethereum σε παρτίδες. Οι παρτίδες αντιπροσωπεύουν χιλιάδες ατομικές συναλλαγές εκτός αλυσίδας σε μία μόνο συναλλαγή στο Ethereum. Αυτό μειώνει τη συμφόρηση στο βασικό επίπεδο καθώς και τα τέλη για τους χρήστες. + +Ωστόσο, είναι δυνατό να εμπιστευόμαστε μόνο τις συναλλαγές 'σύνοψης' που αναρτώνται στο Ethereum εάν η προτεινόμενη αλλαγή κατάστασης μπορεί να επαληθευτεί ανεξάρτητα και να επιβεβαιωθεί ότι είναι αποτέλεσμα της εφαρμογής όλων των μεμονωμένων εκτός αλυσίδας συναλλαγών. Εάν οι διαχειριστές των πακέτων ενημέρωσης δεν κάνουν διαθέσιμα τα δεδομένα συναλλαγής για αυτήν την επαλήθευση, τότε θα μπορούσαν να στείλουν εσφαλμένα δεδομένα στο Ethereum. + +Τα [Πακέτα ενημέρωσης Optimistic](/developers/docs/scaling/optimistic-rollups/) δημοσιεύουν συμπιεσμένα δεδομένα συναλλαγών στο Ethereum και περιμένουν κάποιο χρονικό διάστημα (συνήθως 7 ημέρες) για να επιτρέψουν σε ανεξάρτητους επαληθευτές να ελέγξουν τα δεδομένα. Εάν κάποιος εντοπίσει ένα πρόβλημα, μπορεί να δημιουργήσει ένα στοιχείο προστασίας από απάτη και να το χρησιμοποιήσει για να αμφισβητήσει το πακέτο ενημέρωσης. Αυτό θα προκαλούσε την ανατροπή της αλυσίδας και την παράλειψη του μη έγκυρου μπλοκ. Είναι δυνατό μόνο εάν υπάρχουν διαθέσιμα δεδομένα. Επί του παρόντος, υπάρχουν δύο τρόποι με τους οποίους τα πακέτα ενημέρωσης optimistic στέλνουν δεδομένα συναλλαγών στο L1. Ορισμένα πακέτα συναλλαγών κάνουν τα δεδομένα μόνιμα διαθέσιμα ως `CALDATA` που ζουν μόνιμα στην αλυσίδα. Με την εφαρμογή του EIP-4844, ορισμένα πακέτα ενημέρωσης δημοσιεύουν τα δεδομένα συναλλαγών τους σε φθηνότερο χώρο αποθήκευσης blob. Αυτό δεν αφορά μόνιμη αποθήκευση. Ανεξάρτητοι επαληθευτές πρέπει να εξετάσουν τα blobs και να θέσουν τις προκλήσεις τους εντός ~18 ημερών πριν διαγραφούν τα δεδομένα από το Ethereum επιπέδου 1. Η διαθεσιμότητα δεδομένων είναι εγγυημένη μόνο από το πρωτόκολλο Ethereum για αυτό το σύντομο σταθερό διάστημα. Μετά από αυτό, γίνεται ευθύνη άλλων οντοτήτων στο οικοσύστημα Ethereum. Οποιοσδήποτε κόμβος μπορεί να επαληθεύσει τη διαθεσιμότητα δεδομένων χρησιμοποιώντας το DAS, δηλαδή κατεβάζοντας μικρά, τυχαία δείγματα των δεδομένων blob. + +Τα [πακέτα ενημέρωσης Μηδενικής γνώσης (ZK)](/developers/docs/scaling/zk-rollups) δε χρειάζεται να δημοσιεύουν δεδομένα συναλλαγών, καθώς οι [αποδείξεις εγκυρότητας μηδενικής γνώσης](/glossary/#zk-proof) εγγυώνται την ορθότητα των μεταβάσεων κατάστασης. Ωστόσο, η διαθεσιμότητα δεδομένων εξακολουθεί να αποτελεί πρόβλημα, επειδή δεν μπορούμε να εγγυηθούμε τη λειτουργικότητα των πακέτων ενημέρωσης ZK (ή να αλληλεπιδράσουμε μαζί) χωρίς πρόσβαση στα δεδομένα κατάστασης. Για παράδειγμα, οι χρήστες δεν μπορούν να γνωρίζουν τα υπόλοιπά τους εάν ένας χειριστής παρακρατεί λεπτομέρειες σχετικά με την κατάσταση του πακέτου ενημέρωσης. Επίσης, δεν μπορούν να πραγματοποιήσουν ενημερώσεις κατάστασης χρησιμοποιώντας πληροφορίες που περιέχονται σε ένα μπλοκ που προστέθηκε πρόσφατα. + +## Διαθεσιμότητα ή ανάκτηση δεδομένων {#data-availability-vs-data-retrievability} + +Η διαθεσιμότητα δεδομένων είναι διαφορετική από την ανάκτηση δεδομένων. Η διαθεσιμότητα δεδομένων είναι η διαβεβαίωση ότι οι πλήρεις κόμβοι μπόρεσαν να έχουν πρόσβαση και επαληθεύουν το πλήρες σύνολο των συναλλαγών που σχετίζονται με συγκεκριμένο μπλοκ. Δε σημαίνει απαραίτητα ότι τα δεδομένα είναι προσβάσιμα για πάντα. + +Η ανάκτηση δεδομένων είναι η ικανότητα των κόμβων να ανακτούν _ιστορικές πληροφορίες_ από την κρυπτοαλυσίδα. Αυτά τα ιστορικά δεδομένα δε χρειάζονται για την επαλήθευση νέων μπλοκ, απαιτούνται μόνο για το συγχρονισμό των πλήρεις κόμβων από το μπλοκ γένεσης ή την εξυπηρέτηση συγκεκριμένων ιστορικών αιτημάτων. + +Το βασικό πρωτόκολλο Ethereum ασχολείται κυρίως με τη διαθεσιμότητα και όχι με την ανάκτηση δεδομένων. Η ανάκτηση δεδομένων μπορεί να παρέχεται από έναν μικρό πληθυσμό κόμβων αρχείου, που εκτελούνται από τρίτα μέρη ή μπορεί να διανεμηθεί σε όλο το δίκτυο χρησιμοποιώντας υπηρεσίες αποκεντρωμένης αποθήκευσης αρχείων, όπως το [Δίκτυο Portal](https://www.ethportal.net/). + +## Περαιτέρω πληροφορίες {#further-reading} + +- [Τι είναι η διαθεσιμότητα δεδομένων;](https://medium.com/blockchain-capital-blog/wtf-is-data-availability-80c2c95ded0f) +- [Τι είναι η διαθεσιμότητα δεδομένων;](https://coinmarketcap.com/alexandria/article/what-is-data-availability) +- [Το τοπίο διαθεσιμότητας δεδομένων εκτός αλυσίδας Ethereum](https://blog.celestia.org/ethereum-offchain-data-availability-landscape/) +- [Ένα primer για τους ελέγχους διαθεσιμότητας δεδομένων](https://dankradfeist.de/ethereum/2019/12/20/data-availability-checks.html) +- [Επεξήγηση της πρότασης διαμοιρασμού + DAS](https://hackmd.io/@vbuterin/sharding_proposal#ELI5-data-availability-sampling) +- [Σημείωση σχετικά με τη διαθεσιμότητα δεδομένων και την κωδικοποίηση διαγραφής](https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding#can-an-attacker-not-circumvent-this-scheme-by-releasing-a-full-unavailable-block-but-then-only-releasing-individual-bits-of-data-as-clients-query-for-them) +- [Επιτροπές διαθεσιμότητας δεδομένων.](https://medium.com/starkware/data-availability-e5564c416424) +- [Επιτροπές διαθεσιμότητας δεδομένων απόδειξης συμμετοχής.](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf) +- [Λύσεις στο πρόβλημα ανάκτησης δεδομένων](https://notes.ethereum.org/@vbuterin/data_sharding_roadmap#Who-would-store-historical-data-under-sharding) +- [Διαθεσιμότητα δεδομένων ή: Πώς τα πακέτα ενημέρωσης έμαθαν να σταματούν να ανησυχούν και να αγαπούν το Ethereum](https://research.2077.xyz/data-availability-or-how-rollups-learned-to-stop-worrying-and-love-ethereum) +- [EIP-7623: Αύξηση κόστους calldata](https://research.2077.xyz/eip-7623-increase-calldata-cost) diff --git a/public/content/translations/el/developers/docs/data-structures-and-encoding/index.md b/public/content/translations/el/developers/docs/data-structures-and-encoding/index.md new file mode 100644 index 00000000000..6388e8fc90c --- /dev/null +++ b/public/content/translations/el/developers/docs/data-structures-and-encoding/index.md @@ -0,0 +1,32 @@ +--- +title: Δομές δεδομένων και κωδικοποίηση +description: Επισκόπηση των θεμελιωδών δομών δεδομένων του Ethereum. +lang: el +sidebarDepth: 2 +--- + +Το Ethereum δημιουργεί, αποθηκεύει και μεταφέρει μεγάλο όγκο δεδομένων. Αυτά τα δεδομένα πρέπει να μορφοποιηθούν με τυποποιημένους και αποδοτικούς τρόπους αποθήκευσης, ώστε να επιτραπεί σε οποιονδήποτε να [εκτελέσει έναν κόμβο](/run-a-node/) με υλικά μεσαίας κατηγορίας. Για να επιτευχθεί αυτό, χρησιμοποιούνται αρκετές συγκεκριμένες δομές δεδομένων στη στοίβα του Ethereum. + +## Προαπαιτούμενα {#prerequisites} + +Θα πρέπει να κατανοείτε τα θεμελιώδη στοιχεία του Ethereum και της [εφαρμογής λογισμικού πελάτη](/developers/docs/nodes-and-clients/). Συνιστάται η εξοικείωση με το επίπεδο δικτύωσης και [τη λευκή βίβλο του Ethereum](/whitepaper/). + +## Δομές δεδομένων {#data-structures} + +### Patricia merkle tries {#patricia-merkle-tries} + +Το Patricia Merkle Tries είναι μια δομή δεδομένων που κωδικοποιεί τα ζεύγη κλειδιού-αξίας σε μια ντετερμινιστική και κρυπτογραφικά πιστοποιημένη κατάσταση. Χρησιμοποιούνται εκτενώς σε όλο το επίπεδο εκτέλεσης του Ethereum. + +[Περισσότερα για το Patricia Merkle Tries](/developers/docs/data-structures-and-encoding/patricia-merkle-trie) + +### Recursive Length Prefix {#recursive-length-prefix} + +Το Recursive Length Prefix (RLP) είναι μια μέθοδος σειριοποίησης που χρησιμοποιείται εκτενώς σε όλο το επίπεδο εκτέλεσης του Ethereum. + +[Περισσότερα για τα RLP](/developers/docs/data-structures-and-encoding/rlp) + +### Απλή σειριοποίηση {#simple-serialize} + +Η απλή σειριοποίηση (SSZ) είναι η κυρίαρχη μορφή σειριοποίησης στο επίπεδο συναίνεσης του Ethereum λόγω της συμβατότητάς του με merklelization. + +[Περισσότερα για SSZ](/developers/docs/data-structures-and-encoding/ssz) diff --git a/public/content/translations/el/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/el/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md new file mode 100644 index 00000000000..38da506fb89 --- /dev/null +++ b/public/content/translations/el/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md @@ -0,0 +1,263 @@ +--- +title: Merkle Patricia Trie +description: Εισαγωγή στο Merkle Patricia Trie. +lang: el +sidebarDepth: 2 +--- + +Η κατάσταση του Ethereum (το σύνολο όλων των λογαριασμών, υπολοίπων και έξυπνων συμβολαίων) κωδικοποιείται σε μια ειδική έκδοση της δομής δεδομένων που είναι γνωστή γενικά στην επιστήμη υπολογιστών ως Merkle Tree. Αυτή η δομή είναι χρήσιμη για πολλές εφαρμογές στην κρυπτογραφία επειδή δημιουργεί μια αποδεδειγμένη σχέση μεταξύ όλων των μεμονωμένων κομματιών δεδομένων που περιπλέκονται στο δέντρο, με αποτέλεσμα μια ενιαία τιμή **ρίζας** που μπορεί να χρησιμοποιηθεί για να αποδειχθούν πράγματα για τα δεδομένα. + +Η δομή δεδομένων του Ethereum είναι ένα 'τροποποιημένο Merkle-Patricia Trie', που ονομάζεται έτσι επειδή δανείζεται ορισμένα χαρακτηριστικά από το PATRICIA (ο πρακτικός αλγόριθμος για την ανάκτηση πληροφοριών κωδικοποιημένων αλφαριθμητικά) και επειδή έχει σχεδιαστεί για αποτελεσματική ανάκτηση δεδομένων **trie** που αποτελούν την κατάσταση Ethereum. + +A Merkle-Patricia trie is deterministic and cryptographically verifiable: The only way to generate a state root is by computing it from each individual piece of the state, and two states that are identical can be easily proven so by comparing the root hash and the hashes that led to it (_a Merkle proof_). Αντίθετα, δεν υπάρχει τρόπος να δημιουργηθούν δύο διαφορετικές καταστάσεις με το ίδιο hash ρίζας, και οποιαδήποτε προσπάθεια τροποποίησης της κατάστασης με διαφορετικές τιμές θα οδηγήσει σε διαφορετικό hash ρίζας κατάστασης. Θεωρητικά, αυτή η δομή παρέχει το 'ιερό δισκοπότηρο' της απόδοσης `O(log(n))` για εισαγωγές, αναζητήσεις και διαγραφές. + +Στο κοντινό μέλλον, το Ethereum σχεδιάζει να μεταφερθεί σε μια δομή [Verkle Tree](https://ethereum.org/en/roadmap/verkle-trees), η οποία θα ανοίξει πολλές νέες δυνατότητες για μελλοντικές βελτιώσεις του πρωτοκόλλου. + +## Προαπαιτούμενα {#prerequisites} + +Για να κατανοήσετε καλύτερα αυτή τη σελίδα, θα ήταν χρήσιμο να έχετε βασικές γνώσεις σχετικά με τα [hash](https://en.wikipedia.org/wiki/Hash_function), τα [δέντρα Merkle](https://en.wikipedia.org/wiki/Merkle_tree), τα [tries](https://en.wikipedia.org/wiki/Trie) και τη [σειριοποίηση](https://en.wikipedia.org/wiki/Serialization). Αυτό το άρθρο ξεκινά με μια περιγραφή ενός βασικού [δέντρου radix](https://en.wikipedia.org/wiki/Radix_tree), και στη συνέχεια εισάγει σταδιακά τις τροποποιήσεις που απαιτούνται για την πιο βελτιστοποιημένη δομή δεδομένων του Ethereum. + +## Βασικά δέντρα radix {#basic-radix-tries} + +Σε ένα βασικό δέντρο radix, κάθε κόμβος φαίνεται ως εξής: + +``` + [i_0, i_1 ... i_n, value] +``` + +Όπου `i_0 ... i_n` αντιπροσωπεύουν τα σύμβολα του αλφαβήτου (συχνά δυαδικά ή δεκαεξαδικά), η `τιμή` είναι η τελική τιμή στον κόμβο και οι τιμές στις θέσεις `i_0, i_1 ... i_n` είναι είτε `NULL` είτε δείκτες (στην περίπτωσή μας, hashes) άλλων κόμβων. Αυτό σχηματίζει ένα βασικό αποθηκευτικό χώρο `(κλειδί, τιμή)`. + +Ας υποθέσουμε ότι θέλετε να χρησιμοποιήσετε μια δομή δεδομένων δέντρου radix για την επιμονή μιας σειράς ζευγών κλειδιού-τιμής. Για να βρείτε την τιμή που αντιστοιχίζεται αυτήν τη στιγμή στο κλειδί `dog` στο trie, θα μετατρέπατε πρώτα το `dog` σε γράμματα του αλφαβήτου (δίδοντας `64 6f 67)` και στη συνέχεια θα κατεβαίνατε το trie ακολουθώντας αυτό το μονοπάτι μέχρι να βρείτε την τιμή. Αυτό σημαίνει ότι ξεκινάτε αναζητώντας τον hash της ρίζας σε μια επίπεδη βάση δεδομένων κλειδιού/τιμής για να βρείτε τον κόμβο ρίζας του trie. Αντιπροσωπεύεται ως ένας πίνακας κλειδιών που δείχνουν σε άλλους κόμβους. Θα χρησιμοποιούσατε την τιμή στο δείκτη `6` ως κλειδί και θα την αναζητούσατε στην επίπεδη βάση δεδομένων κλειδιού/τιμής για να πάρετε τον κόμβο ένα επίπεδο κάτω. Στη συνέχεια επιλέγετε το δείκτη `4` για να αναζητήσετε την επόμενη τιμή, στη συνέχεια επιλέγετε το δείκτη `6`, και ούτω καθεξής, μέχρι, αφού ακολουθήσετε το μονοπάτι: `root -> 6 -> 4 -> 6 -> 15 -> 6 -> 7`, θα αναζητούσατε την τιμή του κόμβου και θα επιστρέφατε το αποτέλεσμα. + +Υπάρχει μια διαφορά μεταξύ της αναζήτησης κάτι στο 'trie' και της υποκείμενης επίπεδης βάσης δεδομένων κλειδιού/τιμής 'DB'. Και τα δύο ορίζουν διατάξεις κλειδιού/τιμής, αλλά η υποκείμενη DB μπορεί να κάνει μια παραδοσιακή αναζήτηση ενός βήματος ενός κλειδιού. Η αναζήτηση ενός κλειδιού στο trie απαιτεί πολλές υποκείμενες αναζητήσεις DB για να φτάσει στην τελική τιμή που περιγράφεται παραπάνω. Ας αναφερθούμε στο τελευταίο ως ένα `μονοπάτι` για να εξαλείψουμε την ασάφεια. + +Οι λειτουργίες ενημέρωσης και διαγραφής για τα δέντρα radix μπορούν να οριστούν ως εξής: + +``` + def update(node_hash, path, value): + curnode = db.get(node_hash) if node_hash else [ NULL ] * 17 + newnode = curnode.copy() + if path == '': + newnode[-1] = value + else: + newindex = update(curnode[path[0]], path[1:], value) + newnode[path[0]] = newindex + db.put(hash(newnode), newnode) + return hash(newnode) + + def delete(node_hash, path): + if node_hash is NULL: + return NULL + else: + curnode = db.get(node_hash) + newnode = curnode.copy() + if path == '': + newnode[-1] = NULL + else: + newindex = delete(curnode[path[0]], path[1:]) + newnode[path[0]] = newindex + + if all(x is NULL for x in newnode): + return NULL + else: + db.put(hash(newnode), newnode) + return hash(newnode) +``` + +Ένα δέντρο Radix Merkle κατασκευάζεται συνδέοντας κόμβους χρησιμοποιώντας κρυπτογραφικά hash digests που παράγονται καθοριστικά. Αυτή η αντιστοίχιση περιεχομένου (στο κλειδί/τιμή DB `key == keccak256(rlp(value))`) παρέχει μια κρυπτογραφική εγγύηση ακεραιότητας των αποθηκευμένων δεδομένων. Εάν το hash ρίζας ενός δεδομένου trie είναι δημόσια γνωστό, τότε ο καθένας που έχει πρόσβαση στα υποκείμενα δεδομένα φύλλων μπορεί να κατασκευάσει μια απόδειξη ότι το trie περιλαμβάνει μια δεδομένη τιμή σε μια συγκεκριμένη διαδρομή παρέχοντας τα hash κάθε κόμβου που συνδέει μια συγκεκριμένη τιμή με τη ρίζα του δέντρου. + +Είναι αδύνατο για έναν επιτιθέμενο να παράσχει μια απόδειξη ενός ζεύγους `(διαδρομή, τιμή)` που δεν υπάρχει, καθώς το hash ρίζας βασίζεται τελικά σε όλα τα hash κάτω από αυτό. Οποιαδήποτε υποκείμενη τροποποίηση θα άλλαζε το hash ρίζας. Μπορείτε να σκεφτείτε το hash ως μια συμπιεσμένη αναπαράσταση δομικών πληροφοριών σχετικά με τα δεδομένα, ασφαλισμένη από την προστασία προ-εικόνας της συνάρτησης hashing. + +Θα αναφερόμαστε σε μια ατομική μονάδα ενός δέντρου radix (π.χ. ένας μόνο εξαδικός χαρακτήρας ή 4 δυαδικός αριθμός) ως "nibble". Κατά την παρακολούθηση μιας διαδρομής ένα nibble κάθε φορά, όπως περιγράφεται παραπάνω, οι κόμβοι μπορούν μέγιστα να αναφέρονται σε 16 παιδιά αλλά να περιλαμβάνουν ένα στοιχείο `τιμής`. Κατά συνέπεια, τους αντιπροσωπεύουμε ως έναν πίνακα μήκους 17. Αποκαλούμε αυτούς τους πίνακες 17 στοιχείων "κόμβοι κλάδου". + +## Merkle Patricia Trie {#merkle-patricia-trees} + +Οι radix tries έχουν ένα σημαντικό περιορισμό: είναι αναποτελεσματικές. Εάν θέλετε να αποθηκεύσετε μία δέσμη `(path, value)` όπου το path, όπως στο Ethereum, έχει μήκος 64 χαρακτήρες (τον αριθμό των nibbles σε `bytes32`), θα χρειαστούμε πάνω από ένα kilobyte επιπλέον χώρου για να αποθηκεύσουμε ένα επίπεδο ανά χαρακτήρα, και κάθε αναζήτηση ή διαγραφή θα χρειαστεί τα πλήρη 64 βήματα. Το Patricia trie που εισάγεται στη συνέχεια επιλύει αυτό το πρόβλημα. + +### Βελτιστοποίηση {#optimization} + +Ένας κόμβος σε μια Merkle Patricia trie είναι ένα από τα εξής: + +1. `NULL` (αντιπροσωπεύεται ως κενή συμβολοσειρά) +2. `branch` Ένας κόμβος 17 στοιχείων `[ v0 ... v15, vt ]` +3. `leaf` Ένας κόμβος 2 στοιχείων `[ encodedPath, value ]` +4. `extension` Ένας κόμβος 2 στοιχείων `[ encodedPath, key ]` + +Με διαδρομές 64 χαρακτήρων είναι αναπόφευκτο ότι μετά την διέλευση των πρώτων λίγων επιπέδων της trie, θα φτάσετε σε έναν κόμβο όπου δεν υπάρχει αποκλίνουσα διαδρομή για τουλάχιστον μέρος του δρόμου προς τα κάτω. Για να αποφύγουμε τη δημιουργία έως και 15 κενών κόμβων `NULL` κατά μήκος της διαδρομής, συντομεύουμε την κάθοδο δημιουργώντας έναν κόμβο `extension` της μορφής `[ encodedPath, key ]`, όπου το `encodedPath` περιέχει τη "μερική διαδρομή" για να παραλείψουμε μπροστά (χρησιμοποιώντας μια συμπαγή κωδικοποίηση που περιγράφεται παρακάτω) και το `key` είναι για την επόμενη αναζήτηση DB. + +Για έναν κόμβο `leaf`, ο οποίος μπορεί να επισημανθεί με μια σημαία στο πρώτο nibble του `encodedPath`, η διαδρομή κωδικοποιεί τα τμήματα διαδρομής όλων των προηγούμενων κόμβων και μπορούμε να αναζητήσουμε την `value` απευθείας. + +Αυτή η παραπάνω βελτιστοποίηση, ωστόσο, εισάγει ασάφεια. + +Κατά τη διέλευση διαδρομών σε nibbles, μπορεί να καταλήξουμε σε έναν περιττό αριθμό nibbles για διέλευση, αλλά επειδή όλα τα δεδομένα αποθηκεύονται σε μορφή `byte`. Δεν είναι δυνατό να διαφοροποιηθεί μεταξύ, για παράδειγμα, του nibble `1` και των nibbles `01` (και τα δύο πρέπει να αποθηκευτούν ως `<01>`). Για να καθοριστεί το περιττό μήκος, η μερική διαδρομή τροποποιείται με μια σημαία. + +### Προδιαγραφή: Συμπαγής κωδικοποίηση εξαγωνικής ακολουθίας με προαιρετικό τερματιστή {#specification} + +Η σηματοδότηση τόσο _της περιττής όσο και της άρτιας υπόλοιπης μερικής διαδρομής μήκους_ και του _κόμβου φύλλου ως κόμβου επέκτασης_ όπως περιγράφεται παραπάνω βρίσκεται στο πρώτο nibble της μερικής διαδρομής οποιουδήποτε κόμβου 2 στοιχείων. Αυτό έχει ως αποτέλεσμα τα εξής: + + hex char bits | node type partial path length + ---------------------------------------------------------- + 0 0000 | extension even + 1 0001 | extension odd + 2 0010 | terminating (leaf) even + 3 0011 | terminating (leaf) odd + +Για άρτιο υπόλοιπο μήκος διαδρομής (`0` ή `2`), ένα άλλο nibble "padding" `0` θα ακολουθεί πάντα. + +``` + def compact_encode(hexarray): + term = 1 if hexarray[-1] == 16 else 0 + if term: hexarray = hexarray[:-1] + oddlen = len(hexarray) % 2 + flags = 2 * term + oddlen + if oddlen: + hexarray = [flags] + hexarray + else: + hexarray = [flags] + [0] + hexarray + // hexarray now has an even length whose first nibble is the flags. + o = '' + for i in range(0,len(hexarray),2): + o += chr(16 * hexarray[i] + hexarray[i+1]) + return o +``` + +Παραδείγματα: + +``` + > [ 1, 2, 3, 4, 5, ...] + '11 23 45' + > [ 0, 1, 2, 3, 4, 5, ...] + '00 01 23 45' + > [ 0, f, 1, c, b, 8, 10] + '20 0f 1c b8' + > [ f, 1, c, b, 8, 10] + '3f 1c b8' +``` + +Ακολουθεί ο επεκταμένος κώδικας για την απόκτηση ενός κόμβου στο δέντρο Merkle Patricia: + +``` + def get_helper(node_hash,path): + if path == []: return node_hash + if node_hash == '': return '' + curnode = rlp.decode(node_hash if len(node_hash) < 32 else db.get(node_hash)) + if len(curnode) == 2: + (k2, v2) = curnode + k2 = compact_decode(k2) + if k2 == path[:len(k2)]: + return get(v2, path[len(k2):]) + else: + return '' + elif len(curnode) == 17: + return get_helper(curnode[path[0]],path[1:]) + + def get(node_hash,path): + path2 = [] + for i in range(len(path)): + path2.push(int(ord(path[i]) / 16)) + path2.push(ord(path[i]) % 16) + path2.push(16) + return get_helper(node_hash,path2) +``` + +### Παράδειγμα «Trie» {#example-trie} + +Ας υποθέσουμε ότι θέλουμε ένα trie που περιέχει τέσσερα ζεύγη διαδρομή/τιμή `('do', 'verb')`, `('dog', 'puppy')`, `('doge', 'coins')`, `('horse', 'stallion')`. + +Πρώτα, μετατρέπουμε τόσο τις διαδρομές όσο και τις τιμές σε `byte`. Παρακάτω, οι πραγματικές αναπαραστάσεις byte για τις _διαδρομές_ υποδεικνύονται με `<>`, αν και οι _τιμές_ εμφανίζονται ακόμα ως συμβολοσειρές, που υποδεικνύονται με `'`', για ευκολότερη κατανόηση (θα ήταν επίσης πραγματικά `byte`): + +``` + <64 6f> : 'verb' + <64 6f 67> : 'puppy' + <64 6f 67 65> : 'coins' + <68 6f 72 73 65> : 'stallion' +``` + +Τώρα, κατασκευάζουμε ένα τέτοιο trie με τα ακόλουθα ζεύγη κλειδί/τιμή στην υποκείμενη βάση δεδομένων: + +``` + rootHash: [ <16>, hashA ] + hashA: [ <>, <>, <>, <>, hashB, <>, <>, <>, [ <20 6f 72 73 65>, 'stallion' ], <>, <>, <>, <>, <>, <>, <>, <> ] + hashB: [ <00 6f>, hashC ] + hashC: [ <>, <>, <>, <>, <>, <>, hashD, <>, <>, <>, <>, <>, <>, <>, <>, <>, 'verb' ] + hashD: [ <17>, [ <>, <>, <>, <>, <>, <>, [ <35>, 'coins' ], <>, <>, <>, <>, <>, <>, <>, <>, <>, 'puppy' ] ] +``` + +Όταν ένας κόμβος αναφέρεται μέσα σε έναν άλλο κόμβο, αυτό που περιλαμβάνεται είναι `H(rlp.encode(node))`, όπου `H(x) = keccak256(x) if len(x) >= 32 αλλιώς `x και `rlp.encode` είναι η συνάρτηση κωδικοποίησης [RLP](/developers/docs/data-structures-and-encoding/rlp). + +Σημειώστε ότι κατά την ενημέρωση ενός trie, πρέπει να αποθηκεύσετε το ζεύγος κλειδί/τιμή `(keccak256(x), x)` σε έναν μόνιμο πίνακα αναζήτησης _εάν_ ο νεοδημιουργημένος κόμβος έχει μήκος >= 32. Ωστόσο, εάν ο κόμβος είναι μικρότερος από αυτό, δεν χρειάζεται να αποθηκεύσετε τίποτα, καθώς η συνάρτηση f(x) = x είναι αναστρέψιμη. + +## Τα Tries στο Ethereum {#tries-in-ethereum} + +Όλα τα merkle tries στο επίπεδο εκτέλεσης του Ethereum χρησιμοποιούν ένα Merkle Patricia Trie. + +Από μια κεφαλίδα μπλοκ υπάρχουν 3 ρίζες από 3 από αυτά τα tries. + +1. stateRoot +2. transactionsRoot +3. receiptsRoot + +### Κατάσταση Trie {#state-trie} + +Υπάρχει ένα παγκόσμιο trie κατάστασης και ενημερώνεται κάθε φορά που ένας πελάτης επεξεργάζεται ένα μπλοκ. Σε αυτό, μια `path` είναι πάντα: `keccak256(ethereumAddress)` και μια `τιμή` είναι πάντα: `rlp(ethereumAccount)`. Πιο συγκεκριμένα, ένας `account` ethereum είναι ένας πίνακας 4 στοιχείων από `[nonce,balance,storageRoot,codeHash]`. Σε αυτό το σημείο, αξίζει να σημειωθεί ότι αυτό το `storageRoot` είναι η ρίζα ενός άλλου trie πατρίσια: + +### Αποθηκευτικός χώρος «Trie» {#storage-trie} + +Το storage trie είναι όπου υπάρχουν _όλα_ τα δεδομένα συμβολαίου. Υπάρχει ένα ξεχωριστό storage trie για κάθε λογαριασμό. Για να ανακτήσετε τιμές σε συγκεκριμένες θέσεις αποθήκευσης σε μια δεδομένη διεύθυνση, απαιτούνται η διεύθυνση αποθήκευσης, η ακέραια θέση των αποθηκευμένων δεδομένων στην αποθήκευση και το αναγνωριστικό μπλοκ. Αυτά μπορούν στη συνέχεια να περαστούν ως ορίσματα στο `eth_getStorageAt` που ορίζεται στο API JSON-RPC, π.χ. για να ανακτήσετε τα δεδομένα στην υποδοχή αποθήκευσης 0 για τη διεύθυνση `0x295a70b2de5e3953354a6a8344e616ed314d7251`: + +``` +curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x0", "latest"], "id": 1}' localhost:8545 + +{"jsonrpc":"2.0","id":1,"result":"0x00000000000000000000000000000000000000000000000000000000000004d2"} + +``` + +Η ανάκτηση άλλων στοιχείων στην αποθήκευση είναι λίγο πιο περίπλοκη επειδή πρέπει πρώτα να υπολογιστεί η θέση στο storage trie. Η θέση υπολογίζεται ως το hash `keccak256` της διεύθυνσης και της θέσης αποθήκευσης, και τα δύο αριστερά γεμισμένα με μηδενικά σε μήκος 32 byte. Για παράδειγμα, η θέση για τα δεδομένα στην υποδοχή αποθήκευσης 1 για τη διεύθυνση `0x391694e7e0b0cce554cb130d723a9d27458f9298` είναι: + +``` +keccak256(decodeHex("000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001")) +``` + +Σε μια κονσόλα Geth, αυτό μπορεί να υπολογιστεί ως εξής: + +``` +> var key = "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001" +undefined +> web3.sha3(key, {"encoding": "hex"}) +"0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9" +``` + +Η `path` είναι επομένως `keccak256(<6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9>)`. Αυτό μπορεί τώρα να χρησιμοποιηθεί για να ανακτήσει τα δεδομένα από το trie αποθήκευσης όπως πριν: + +``` +curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9", "latest"], "id": 1}' localhost:8545 + +{"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000162e"} +``` + +Σημείωση: Το `storageRoot` για έναν λογαριασμό Ethereum είναι κενό από προεπιλογή εάν δεν είναι λογαριασμός συμβολαίου. + +### Συναλλαγές Trie {#transaction-trie} + +Υπάρχει ένα ξεχωριστό trie συναλλαγών για κάθε μπλοκ, αποθηκεύοντας και πάλι ζεύγη `(key, value)`. Μια διαδρομή εδώ είναι: `rlp(transactionIndex)` που αντιπροσωπεύει το κλειδί που αντιστοιχεί σε μια τιμή που καθορίζεται από: + +``` +if legacyTx: + value = rlp(tx) +else: + value = TxType | encode(tx) +``` + +Περισσότερες πληροφορίες σχετικά με αυτό μπορούν να βρεθούν στην τεκμηρίωση [EIP 2718](https://eips.ethereum.org/EIPS/eip-2718). + +### Αποδείξεις Trie {#receipts-trie} + +Κάθε μπλοκ έχει το δικό του trie αποδείξεων. Ένα `path` εδώ είναι: `rlp(transactionIndex)`. Το `transactionIndex` είναι ο δείκτης του μέσα στο μπλοκ όπου συμπεριλήφθηκε. Το trie αποδείξεων δεν ενημερώνεται ποτέ. Παρόμοια με το trie συναλλαγών, υπάρχουν τρέχουσες και παλιές αποδείξεις. Για να ερωτηθεί μια συγκεκριμένη απόδειξη στο trie αποδείξεων, απαιτείται ο δείκτης της συναλλαγής στο μπλοκ της, το φορτίο απόδειξης και ο τύπος συναλλαγής. Η επιστρεφόμενη απόδειξη μπορεί να είναι τύπου `Receipt` που ορίζεται ως η συνένωση του `TransactionType` και του `ReceiptPayload` ή μπορεί να είναι τύπου `LegacyReceipt` που ορίζεται ως `rlp([status, cumulativeGasUsed, logsBloom, logs])`. + +Περισσότερες πληροφορίες σχετικά με αυτό μπορούν να βρεθούν στην τεκμηρίωση [EIP 2718](https://eips.ethereum.org/EIPS/eip-2718). + +## Περισσότερες πληροφορίες {#further-reading} + +- [Τροποποιημένο δέντρο Merkle Patricia — Πώς το Ethereum αποθηκεύει μια κατάσταση](https://medium.com/codechain/modified-merkle-patricia-trie-how-ethereum-saves-a-state-e6d7555078dd) +- [Merkling στο Ethereum](https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/) +- [Κατανόηση του trie Ethereum](https://easythereentropy.wordpress.com/2014/06/04/understanding-the-ethereum-trie/) diff --git a/public/content/translations/el/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/translations/el/developers/docs/data-structures-and-encoding/rlp/index.md new file mode 100644 index 00000000000..3cb887907c4 --- /dev/null +++ b/public/content/translations/el/developers/docs/data-structures-and-encoding/rlp/index.md @@ -0,0 +1,163 @@ +--- +title: Σειριοποίηση Recursive-length prefix (RLP) +description: Ένας ορισμός της κωδικοποίησης rlp στο επίπεδο εκτέλεσης του Ethereum. +lang: el +sidebarDepth: 2 +--- + +Το Recursive Length Prefix (RLP) χρησιμοποιείται εκτενώς στους πελάτες εκτέλεσης του Ethereum. Το RLP τυποποιεί τη μεταφορά δεδομένων μεταξύ κόμβων σε μια μορφή αποδοτική στο χώρο. Ο σκοπός του RLP είναι να κωδικοποιεί αυθαίρετα ενσωματωμένους πίνακες δυαδικών δεδομένων και το RLP είναι η κύρια μέθοδος κωδικοποίησης που χρησιμοποιείται για τη σειριοποίηση αντικειμένων στο επίπεδο εκτέλεσης του Ethereum. Ο κύριος σκοπός του RLP είναι η κωδικοποίηση δομής με εξαίρεση τους θετικούς ακέραιους, το RLP αναθέτει την κωδικοποίηση συγκεκριμένων τύπων δεδομένων (π.χ. συμβολοσειρές, αριθμοί κινητής υποδιαστολής) σε πρωτόκολλα υψηλότερης τάξης. Οι θετικοί ακέραιοι πρέπει να αναπαρίστανται σε δυαδική μορφή big-endian χωρίς μηδενικά προηγούμενα (κάνοντας έτσι την τιμή ακέραιου μηδέν ισοδύναμη με τον κενό πίνακα byte). Οι αποσειριοποιημένοι θετικοί ακέραιοι με μηδενικά προηγούμενα πρέπει να αντιμετωπίζονται ως μη έγκυροι από οποιοδήποτε πρωτόκολλο υψηλότερης τάξης που χρησιμοποιεί RLP. + +Περισσότερες πληροφορίες στο [τεχνικές πληροφορίες του Ethereum (Παράρτημα Β)](https://ethereum.github.io/yellowpaper/paper.pdf#page=19). + +Για να χρησιμοποιήσετε το RLP για την κωδικοποίηση ενός λεξικού, οι δύο προτεινόμενες κανονικές μορφές είναι: + +- Χρησιμοποιήστε `[[k1,v1],[k2,v2]...]` με κλειδιά σε λεξικογραφική σειρά. +- Χρησιμοποιήστε την κωδικοποίηση δέντρου Patricia υψηλότερου επιπέδου όπως κάνει το Ethereum. + +## Επεξήγηση {#definition} + +Η συνάρτηση κωδικοποίησης RLP παίρνει ένα στοιχείο. Ένα στοιχείο ορίζεται ως εξής: + +- Μια συμβολοσειρά (δηλαδή πίνακας byte) είναι ένα στοιχείο. +- Μια λίστα στοιχείων είναι ένα αντικείμενο. +- Ένας θετικός ακέραιος είναι ένα αντικείμενο. + +Για παράδειγμα, όλα τα παρακάτω είναι αντικείμενα: + +- Μια κενή συμβολοσειρά. +- Η συμβολοσειρά που περιέχει τη λέξη "cat". +- Μια λίστα που περιέχει οποιοδήποτε αριθμό συμβολοσειρών. +- Και πιο πολύπλοκες δομές δεδομένων όπως `["cat", ["puppy", "cow"], "horse", [[]], "pig", [""], "sheep"]`. +- Ο αριθμός `100`. + +Σημειώστε ότι στο πλαίσιο της υπόλοιπης σελίδας, η "συμβολοσειρά" σημαίνει "ένας συγκεκριμένος αριθμός byte δεδομένων", δε χρησιμοποιούνται ειδικές κωδικοποιήσεις και δεν υπονοείται καμία γνώση σχετικά με το περιεχόμενο των συμβολοσειρών (εκτός από ό, τι απαιτείται από τον κανόνα κατά των μη ελάχιστων θετικών ακεραίων). + +Η κωδικοποίηση RLP ορίζεται ως εξής: + +- Για έναν θετικό ακέραιο, μετατρέπεται στον μικρότερο πίνακα byte του οποίου η ερμηνεία big-endian είναι ο ακέραιος και στη συνέχεια κωδικοποιείται ως συμβολοσειρά σύμφωνα με τους παρακάτω κανόνες. +- Για ένα μόνο byte του οποίου η τιμή βρίσκεται στο εύρος `[0x00, 0x7f]` (δεκαδικό `[0, 127]`), αυτό το byte είναι η δική του κωδικοποίηση RLP. +- Διαφορετικά, εάν μια συμβολοσειρά έχει μήκος 0-55 byte, η κωδικοποίηση RLP αποτελείται από ένα μόνο byte με τιμή **0x80** (δεκ. 128) συν το μήκος της συμβολοσειράς ακολουθούμενο από τη συμβολοσειρά. Το εύρος του πρώτου byte είναι έτσι `[0x80, 0xb7]` (δεκ. `[128, 183]`). +- Εάν μια συμβολοσειρά έχει μήκος μεγαλύτερο από 55 byte, η κωδικοποίηση RLP αποτελείται από ένα μόνο byte με τιμή **0xb7** (δεκ. 183) συν το μήκος σε byte του μήκους της συμβολοσειράς σε δυαδική μορφή, ακολουθούμενο από το μήκος της συμβολοσειράς, ακολουθούμενο από τη συμβολοσειρά. Για παράδειγμα, μια συμβολοσειρά μήκους 1024 byte θα κωδικοποιηθεί ως `\xb9\x04\x00` (δεκ. `185, 4, 0`) ακολουθούμενη από τη συμβολοσειρά. Εδώ, `0xb9` (183 + 2 = 185) ως το πρώτο byte, ακολουθούμενο από τα 2 byte `0x0400` (δεκ. 1024) που υποδηλώνουν το μήκος της πραγματικής συμβολοσειράς. Το εύρος του πρώτου byte είναι έτσι `[0xb8, 0xbf]` (δεκ. `[184, 191]`). +- Εάν μια συμβολοσειρά έχει μήκος 2^64 byte ή μεγαλύτερο, ενδέχεται να μην μπορεί να κωδικοποιηθεί. +- Εάν το συνολικό φορτίο μιας λίστας (δηλαδή το συνδυασμένο μήκος όλων των στοιχείων της που κωδικοποιούνται RLP) έχει μήκος 0-55 byte, η κωδικοποίηση RLP αποτελείται από ένα μόνο byte με τιμή **0xc0** συν το μήκος του φορτίου ακολουθούμενο από τη συνένωση των κωδικοποιήσεων RLP των στοιχείων. Το εύρος του πρώτου byte είναι έτσι `[0xc0, 0xf7]` (δεκ. `[192, 247]`). +- Εάν ο συνολικός όγκος μιας λίστας έχει μήκος μεγαλύτερο από 55 byte, η κωδικοποίηση RLP αποτελείται από ένα μόνο byte με τιμή **0xf7** συν το μήκος σε byte του φορτίου σε δυαδική μορφή, ακολουθούμενο από το μήκος του φορτίου, ακολουθούμενο από τη συνένωση των κωδικοποιήσεων RLP των στοιχείων. Το εύρος του πρώτου byte είναι έτσι `[0xf8, 0xff]` (δεκ. `[248, 255])`. + +Σε κώδικα, αυτό είναι: + +```python +def rlp_encode(input): + if isinstance(input,str): + if len(input) == 1 and ord(input) < 0x80: + return input + return encode_length(len(input), 0x80) + input + elif isinstance(input, list): + output = '' + for item in input: + output += rlp_encode(item) + return encode_length(len(output), 0xc0) + output + +def encode_length(L, offset): + if L < 56: + return chr(L + offset) + elif L < 256**8: + BL = to_binary(L) + return chr(len(BL) + offset + 55) + BL + raise Exception("input too long") + +def to_binary(x): + if x == 0: + return '' + return to_binary(int(x / 256)) + chr(x % 256) +``` + +## Παραδείγματα {#examples} + +- η συμβολοσειρά "dog" = [ 0x83, 'd', 'o', 'g' ] +- η λίστα [ "cat", "dog" ] = `[ 0xc8, 0x83, 'c', 'a', 't', 0x83, 'd', 'o', 'g' ]` +- η κενή συμβολοσειρά ('null') = `[ 0x80 ]` +- η κενή λίστα = `[ 0xc0 ]` +- ο ακέραιος 0 = `[ 0x80 ]` +- το byte '\\x00' = `[ 0x00 ]` +- το byte '\\x0f' = `[ 0x0f ]` +- τα bytes '\\x04\\x00' = `[ 0x82, 0x04, 0x00 ]` +- τα [σύνολα θεωρητικής αναπαράστασης](http://en.wikipedia.org/wiki/Set-theoretic_definition_of_natural_numbers) of three, `[ [], [[]], [ [], [[]] ] ] = [ 0xc7, 0xc0, 0xc1, 0xc0, 0xc3, 0xc0, 0xc1, 0xc0 ]` +- η συμβολοσειρά "Lorem ipsum dolor sit amet, consectetur adipisicing elit" = `[ 0xb8, 0x38, 'L', 'o', 'r', 'e', 'm', ' ', ... , 'e', 'l', 'i', 't' ]` + +## Αποκωδικοποίηση RLP {#rlp-decoding} + +Σύμφωνα με τους κανόνες και τη διαδικασία κωδικοποίησης RLP, η είσοδος της αποκωδικοποίησης RLP θεωρείται ως ένας πίνακας δυαδικών δεδομένων. Η διαδικασία αποκωδικοποίησης RLP είναι ως εξής: + +1. Σύμφωνα με το πρώτο byte (δηλαδή το πρόθεμα) των δεδομένων εισόδου και την αποκωδικοποίηση του τύπου δεδομένων, το μήκος των πραγματικών δεδομένων και την απόσταση. + +2. Σύμφωνα με τον τύπο και την απόσταση των δεδομένων, αποκωδικοποιήστε τα δεδομένα αντίστοιχα, τηρώντας τον ελάχιστο κανόνα κωδικοποίησης για θετικούς ακέραιους. + +3. συνεχίστε να αποκωδικοποιείτε το υπόλοιπο της εισόδου. + +Μεταξύ αυτών, οι κανόνες αποκωδικοποίησης των τύπων δεδομένων και της απόστασης είναι ως εξής: + +1. Τα δεδομένα είναι μια συμβολοσειρά εάν το εύρος του πρώτου byte (δηλαδή το πρόθεμα) είναι [0x00, 0x7f] και η συμβολοσειρά είναι το ίδιο το πρώτο byte ακριβώς. + +2. Τα δεδομένα είναι μια συμβολοσειρά εάν το εύρος του πρώτου byte είναι [0x80, 0xb7] και η συμβολοσειρά του οποίου το μήκος είναι ίσο με το πρώτο byte μείον 0x80 ακολουθεί το πρώτο byte. + +3. Τα δεδομένα είναι μια συμβολοσειρά εάν το εύρος του πρώτου byte είναι [0xb8, 0xbf] και το μήκος της συμβολοσειράς του οποίου το μήκος σε byte είναι ίσο με το πρώτο byte μείον 0xb7 ακολουθεί το πρώτο byte και η συμβολοσειρά ακολουθεί το μήκος της συμβολοσειράς. + +4. Τα δεδομένα είναι μια λίστα εάν το εύρος του πρώτου byte είναι [0xc0, 0xf7] και η σύμπλεξη των κωδικοποιήσεων RLP όλων των στοιχείων της λίστας των οποίων το συνολικό φορτίο είναι ίσο με το πρώτο byte μείον 0xc0 ακολουθεί το πρώτο byte. + +5. Τα δεδομένα είναι μια λίστα εάν το εύρος του πρώτου byte είναι [0xf8, 0xff] και το συνολικό φορτίο της λίστας του οποίου το μήκος είναι ίσο με το πρώτο byte μείον 0xf7 ακολουθεί το πρώτο byte και η σύμπλεξη των κωδικοποιήσεων RLP όλων των στοιχείων της λίστας ακολουθεί το συνολικό φορτίο της λίστας. + +Σε κώδικα, αυτό είναι: + +```python +def rlp_decode(input): + if len(input) == 0: + return + output = '' + (offset, dataLen, type) = decode_length(input) + if type is str: + output = instantiate_str(substr(input, offset, dataLen)) + elif type is list: + output = instantiate_list(substr(input, offset, dataLen)) + output += rlp_decode(substr(input, offset + dataLen)) + return output + +def decode_length(input): + length = len(input) + if length == 0: + raise Exception("input is null") + prefix = ord(input[0]) + if prefix <= 0x7f: + return (0, 1, str) + elif prefix <= 0xb7 and length > prefix - 0x80: + strLen = prefix - 0x80 + return (1, strLen, str) + elif prefix <= 0xbf and length > prefix - 0xb7 and length > prefix - 0xb7 + to_integer(substr(input, 1, prefix - 0xb7)): + lenOfStrLen = prefix - 0xb7 + strLen = to_integer(substr(input, 1, lenOfStrLen)) + return (1 + lenOfStrLen, strLen, str) + elif prefix <= 0xf7 and length > prefix - 0xc0: + listLen = prefix - 0xc0; + return (1, listLen, list) + elif prefix <= 0xff and length > prefix - 0xf7 and length > prefix - 0xf7 + to_integer(substr(input, 1, prefix - 0xf7)): + lenOfListLen = prefix - 0xf7 + listLen = to_integer(substr(input, 1, lenOfListLen)) + return (1 + lenOfListLen, listLen, list) + raise Exception("input does not conform to RLP encoding form") + +def to_integer(b): + length = len(b) + if length == 0: + raise Exception("input is null") + elif length == 1: + return ord(b[0]) + return ord(substr(b, -1)) + to_integer(substr(b, 0, -1)) * 256 +``` + +## Περισσότερες πληροφορίες {#further-reading} + +- [RLP στο Ethereum](https://medium.com/coinmonks/data-structure-in-ethereum-episode-1-recursive-length-prefix-rlp-encoding-decoding-d1016832f919) +- [Ethereum στα βάθη του: RLP](https://medium.com/coinmonks/ethereum-under-the-hood-part-3-rlp-decoding-df236dc13e58) +- [Coglio, A. (2020). Το Recursive Length Prefix του Ethereum στο ACL2. arXiv preprint arXiv:2009.13769.](https://arxiv.org/abs/2009.13769) + +## Σχετικά θέματα {#related-topics} + +- [Patricia merkle trie](/developers/docs/data-structures-and-encoding/patricia-merkle-trie) diff --git a/public/content/translations/el/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/el/developers/docs/data-structures-and-encoding/ssz/index.md new file mode 100644 index 00000000000..47dc7c2461a --- /dev/null +++ b/public/content/translations/el/developers/docs/data-structures-and-encoding/ssz/index.md @@ -0,0 +1,149 @@ +--- +title: Απλή σειριοποίηση +description: Επεξήγηση της μορφής SSZ του Ethereum. +lang: el +sidebarDepth: 2 +--- + +**Απλή σειριοποίηση (SSZ)** είναι η μέθοδος σειριοποίησης που χρησιμοποιείται στο Beacon Chain. Αντικαθιστά τη σειριοποίηση RLP που χρησιμοποιείται στο επίπεδο εκτέλεσης παντού στο επίπεδο συναίνεσης εκτός από το πρωτόκολλο ανακάλυψης ομότιμου. Για να μάθετε περισσότερα σχετικά με τη σειριοποίηση RLP, ανατρέξτε στην ενότητα [Πρόθεμα αναδρομικού μήκους (RLP)](/developers/docs/data-structures-and-encoding/rlp/). Το SSZ έχει σχεδιαστεί για να είναι ντετερμινιστικό και επίσης να είναι αποτελεσματικό στο merkleize. Το SSZ μπορεί να θεωρηθεί ότι έχει δύο στοιχεία: ένα σχήμα σειριοποίησης και ένα σχήμα Merkleization που έχει σχεδιαστεί για να λειτουργεί αποτελεσματικά με τη σειριακή δομή δεδομένων. + +## Πώς λειτουργεί το SSZ; {#how-does-ssz-work} + +### Σειριοποίηση {#serialization} + +Το SSZ είναι ένα σχήμα σειριοποίησης που δεν αυτοπεριγράφεται - μάλλον βασίζεται σε ένα σχήμα που πρέπει να είναι γνωστό εκ των προτέρων. Ο στόχος της σειριοποίησης SSZ είναι να αναπαραστούν αντικείμενα αυθαίρετης πολυπλοκότητας ως συμβολοσειρές bytes. Αυτή είναι μια πολύ απλή διαδικασία για «βασικούς τύπους». Το στοιχείο απλώς μετατρέπεται σε δεκαεξαδικά bytes. Οι βασικοί τύποι περιλαμβάνουν: + +- unsigned integers +- Booleans + +Για τους σύνθετους τύπους, η σειριοποίηση είναι πιο περίπλοκη επειδή ο σύνθετος τύπος περιέχει πολλαπλά στοιχεία που μπορεί να έχουν διαφορετικούς τύπους ή διαφορετικά μεγέθη ή και τα δύο. Όπου όλα αυτά τα αντικείμενα έχουν σταθερά μήκη (δηλαδή το μέγεθος των στοιχείων θα είναι πάντα σταθερό ανεξάρτητα από τις πραγματικές τους τιμές) η σειριοποίηση είναι απλώς μια μετατροπή κάθε στοιχείου στον σύνθετο τύπο ταξινομημένο σε bytestrings little-endian. Αυτά τα bytestrings ενώνονται μεταξύ τους. Το σειριοποιημένο αντικείμενο έχει την αναπαράσταση bytelist των στοιχείων σταθερού μήκους στην ίδια σειρά με την οποία εμφανίζονται στο αποσυσκευασμένο αντικείμενο. + +Για τύπους με μεταβλητά μήκη, τα πραγματικά δεδομένα αντικαθίστανται από μια τιμή "offset" στη θέση αυτού του στοιχείου στο σειριοποιημένο αντικείμενο. Τα πραγματικά δεδομένα προστίθενται σε έναν σωρό στο τέλος του σειριοποιημένου αντικειμένου. Η τιμή offset είναι ο δείκτης για την αρχή των πραγματικών δεδομένων στο σωρό, λειτουργώντας ως δείκτης στα σχετικά bytes. + +Το παρακάτω παράδειγμα απεικονίζει πώς λειτουργεί η μετατόπιση για έναν περιέκτη με στοιχεία σταθερού και μεταβλητού μήκους: + +```Rust + + struct Dummy { + + number1: u64, + number2: u64, + vector: Vec, + number3: u64 + } + + dummy = Dummy{ + + number1: 37, + number2: 55, + vector: vec![1,2,3,4], + number3: 22, + } + + serialized = ssz.serialize(dummy) + +``` + +Το `serialized` θα είχε την ακόλουθη δομή (εδώ συμπληρώνεται μόνο σε 4 bit, στην πραγματικότητα συμπληρώνεται σε 32 bit και διατηρείται η αναπαράσταση `int` για λόγους σαφήνειας): + +``` +[37, 0, 0, 0, 55, 0, 0, 0, 16, 0, 0, 0, 22, 0, 0, 0, 1, 2, 3, 4] +------------ ----------- ----------- ----------- ---------- + | | | | | + number1 number2 offset for number 3 value for + vector vector + +``` + +Χωρισμένο σε γραμμές για λόγους σαφήνειας: + +``` +[ + 37, 0, 0, 0, # little-endian encoding of `number1`. + 55, 0, 0, 0, # little-endian encoding of `number2`. + 16, 0, 0, 0, # The "offset" that indicates where the value of `vector` starts (little-endian 16). + 22, 0, 0, 0, # little-endian encoding of `number3`. + 1, 2, 3, 4, # The actual values in `vector`. +] +``` + +Αυτό εξακολουθεί να είναι μια απλοποίηση, οι ακέραιοι και τα μηδενικά στα παραπάνω σχήματα θα αποθηκεύονταν στην πραγματικότητα ως λίστες byte, όπως αυτή: + +``` +[ + 10100101000000000000000000000000 # little-endian encoding of `number1` + 10110111000000000000000000000000 # little-endian encoding of `number2`. + 10010000000000000000000000000000 # The "offset" that indicates where the value of `vector` starts (little-endian 16). + 10010110000000000000000000000000 # little-endian encoding of `number3`. + 10000001100000101000001110000100 # The actual value of the `bytes` field. +] +``` + +Έτσι, οι πραγματικές τιμές για τους τύπους μεταβλητού μήκους αποθηκεύονται σε ένα σωρό στο τέλος του σειριοποιημένου αντικειμένου με τις μετατοπίσεις τους αποθηκευμένες στις σωστές θέσεις τους στην ταξινομημένη λίστα των πεδίων. + +Υπάρχουν επίσης ορισμένες ειδικές περιπτώσεις που απαιτούν ειδική διαχείριση, όπως ο τύπος `BitList` που απαιτεί να προστεθεί ένα όριο μήκους κατά τη σειριοποίηση και να αφαιρεθεί κατά την αποσειριοποίηση. Πλήρεις λεπτομέρειες είναι διαθέσιμες στις [προδιαγραφές SSZ](https://github.com/ethereum/consensus-specs/blob/dev/ssz/simple-serialize.md). + +### Αποσειριοποίηση {#deserialization} + +Για να αποσειριοποιήσετε αυτό το αντικείμενο απαιτείται το σχήμα. Το σχήμα ορίζει την ακριβή διάταξη των σειριοποιημένων δεδομένων, έτσι ώστε κάθε συγκεκριμένο στοιχείο να μπορεί να αποσειριοποιηθεί από ένα blob byte σε κάποιο ουσιαστικό αντικείμενο με τα στοιχεία να έχουν τον σωστό τύπο, τιμή, μέγεθος και θέση. Είναι το σχήμα που λέει στον αποσειριοποιητή ποιες τιμές είναι πραγματικές τιμές και ποιες είναι μετατοπίσεις. Όλα τα ονόματα πεδίων εξαφανίζονται όταν ένα αντικείμενο σειριοποιείται, αλλά αποκαθίστανται κατά την αποσειριοποίηση σύμφωνα με το σχήμα. + +Δείτε το [ssz.dev](https://www.ssz.dev/overview) για μια διαδραστική εξήγηση σχετικά με αυτό. + +## Merkleization {#merkleization} + +Αυτό το σειριοποιημένο αντικείμενο SSZ μπορεί στη συνέχεια να μετατραπεί σε Merkle, δηλαδή να μετατραπεί σε μια αναπαράσταση Merkle-δέντρου των ίδιων δεδομένων. Πρώτον, προσδιορίζεται ο αριθμός των chunk των 32 byte στο σειριοποιημένο αντικείμενο. Αυτά είναι τα «φύλλα» του δέντρου. Ο συνολικός αριθμός των φύλλων πρέπει να είναι δύναμη του 2, έτσι ώστε ο τελικός συνδυασμός των φύλλων να παράγει τελικά μια μόνο ρίζα δέντρου κατακερματισμού. Εάν αυτό δεν συμβαίνει φυσικά, προστίθενται επιπλέον φύλλα που περιέχουν 32 byte μηδενικών. Διαγραμματικά: + +``` + hash tree root + / \ + / \ + / \ + / \ + hash of leaves hash of leaves + 1 and 2 3 and 4 + / \ / \ + / \ / \ + / \ / \ + leaf1 leaf2 leaf3 leaf4 +``` + +Υπάρχουν επίσης περιπτώσεις όπου τα φύλλα του δέντρου δεν κατανέμονται φυσικά ομοιόμορφα όπως στο παραπάνω παράδειγμα. Για παράδειγμα, το φύλλο 4 θα μπορούσε να είναι ένα δοχείο με πολλαπλά στοιχεία που απαιτούν την προσθήκη πρόσθετου "βάθους" στο δέντρο Merkle, δημιουργώντας ένα άνισο δέντρο. + +Αντί να αναφερόμαστε σε αυτά τα στοιχεία δέντρου ως φύλλο X, κόμβος X κ.λπ., μπορούμε να τους δώσουμε γενικευμένους δείκτες, ξεκινώντας από τη ρίζα = 1 και μετρώντας από αριστερά προς τα δεξιά σε κάθε επίπεδο. Αυτός είναι ο γενικευμένος δείκτης που εξηγήθηκε παραπάνω. Κάθε στοιχείο στη σειριασμένη λίστα έχει έναν γενικευμένο δείκτη ίσο με `2 ** depth + idx` όπου idx είναι η θέση του μηδενικού δείκτη στο σειριασμένο αντικείμενο και το βάθος είναι ο αριθμός των επιπέδων στο δέντρο Merkle, το οποίο μπορεί να προσδιοριστεί ως ο δυαδικός λογάριθμος του αριθμού των στοιχείων (φύλλα). + +## Γενικευμένοι δείκτες {#generalized-indices} + +Ένας γενικευμένος δείκτης είναι ένας ακέραιος που αντιπροσωπεύει έναν κόμβο σε ένα δυαδικό δέντρο Merkle όπου κάθε κόμβος έχει έναν γενικευμένο δείκτη `2 ** depth + δείκτης στη σειρά`. + +``` + 1 --depth = 0 2**0 + 0 = 1 + 2 3 --depth = 1 2**1 + 0 = 2, 2**1+1 = 3 + 4 5 6 7 --depth = 2 2**2 + 0 = 4, 2**2 + 1 = 5... + +``` + +Αυτή η αναπαράσταση αποδίδει έναν δείκτη κόμβου για κάθε κομμάτι δεδομένων στο δέντρο Merkle. + +## Πολλαπλές πιστοποιήσεις {#multiproofs} + +Η παροχή της λίστας των γενικευμένων δεικτών που αντιπροσωπεύουν ένα συγκεκριμένο στοιχείο μας επιτρέπει να το επαληθεύσουμε έναντι της ρίζας του δέντρου hash. Αυτή η ρίζα είναι η αποδεκτή έκδοση της πραγματικότητας από εμάς. Οποιαδήποτε δεδομένα μας παρέχονται μπορούν να επαληθευτούν έναντι αυτής της πραγματικότητας εισάγοντάς τα στη σωστή θέση στο δέντρο Merkle (καθορισμένη από τον γενικευμένο δείκτη του) και παρατηρώντας ότι η ρίζα παραμένει σταθερή. Υπάρχουν συναρτήσεις στις προδιαγραφές [εδώ](https://github.com/ethereum/consensus-specs/blob/dev/ssz/merkle-proofs.md#merkle-multiproofs) που δείχνουν πώς να υπολογίσουμε το ελάχιστο σύνολο κόμβων που απαιτούνται για την επαλήθευση του περιεχομένου ενός συγκεκριμένου συνόλου γενικευμένων δεικτών. + +Για παράδειγμα, για να επαληθεύσουμε δεδομένα στον δείκτη 9 στο παρακάτω δέντρο, χρειαζόμαστε το hash των δεδομένων στους δείκτες 8, 9, 5, 3, 1. Το hash του (8,9) πρέπει να ισούται με το hash (4), το οποίο κάνει hash με το 5 για να παράγει το 2, το οποίο κάνει hash με το 3 για να παράγει τη ρίζα του δέντρου 1. Εάν παρέχθηκαν εσφαλμένα δεδομένα για το 9, η ρίζα θα άλλαζε - θα το ανιχνεύαμε αυτό και θα αποτύχαμε να επαληθεύσουμε το κλάδο. + +``` +* = data required to generate proof + + 1* + 2 3* + 4 5* 6 7 +8* 9* 10 11 12 13 14 15 + +``` + +## Περισσότερες πληροφορίες {#further-reading} + +- [Αναβάθμιση Ethereum: SSZ](https://eth2book.info/altair/part2/building_blocks/ssz) +- [Αναβάθμιση Ethereum: Merkleization](https://eth2book.info/altair/part2/building_blocks/merkleization) +- [Υλοποιήσεις SSZ](https://github.com/ethereum/consensus-specs/issues/2138) +- [Υπολογιστής SSZ](https://simpleserialize.com/) +- [SSZ.dev](https://www.ssz.dev/) diff --git a/public/content/translations/el/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md b/public/content/translations/el/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md new file mode 100644 index 00000000000..7bf5aa691b4 --- /dev/null +++ b/public/content/translations/el/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md @@ -0,0 +1,189 @@ +--- +title: Ορισμός μυστικού αποθηκευτικού χώρου Web3 +description: Επίσημος ορισμός για τον μυστικό αποθηκευτικό χώρο web3 +lang: el +sidebarDepth: 2 +--- + +Για να κάνετε την εφαρμογή σας να λειτουργεί στο Ethereum, μπορείτε να χρησιμοποιήσετε το αντικείμενο web3 που παρέχεται από τη βιβλιοθήκη web3.js. Επικοινωνεί με έναν τοπικό κόμβο μέσω κλήσεων RPC. Το [web3](https://github.com/ethereum/web3.js/) λειτουργεί με οποιονδήποτε κόμβο Ethereum που εκθέτει ένα επίπεδο RPC. + +Το `web3` περιέχει το αντικείμενο `eth` - web3.eth. + +```js +var fs = require("fs") +var recognizer = require("ethereum-keyfile-recognizer") + +fs.readFile("keyfile.json", (err, data) => { + var json = JSON.parse(data) + var result = recognizer(json) +}) + +/** result + * [ 'web3', 3 ] web3 (v3) keyfile + * [ 'ethersale', undefined ] Ethersale keyfile + * null invalid keyfile + */ +``` + +Αυτό τεκμηριώνει το **version 3** του ορισμού μυστικού αποθηκευτικού χώρου Web3. + +## Επεξήγηση {#definition} + +Η πραγματική κωδικοποίηση και αποκωδικοποίηση του αρχείου παραμένει σε μεγάλο βαθμό αμετάβλητη από την έκδοση 1, εκτός από το ότι ο αλγόριθμος κρυπτογράφησης δεν είναι πλέον σταθερός στο AES-128-CBC (το AES-128-CTR είναι πλέον η ελάχιστη απαίτηση). Οι περισσότερες έννοιες/αλγόριθμοι είναι παρόμοιες με την έκδοση 1, εκτός από το `mac`, το οποίο δίνεται ως SHA3 (keccak-256) των συνδέσεων του δεύτερου πιο αριστερού 16 bytes του παραγόμενου κλειδιού μαζί με το πλήρες `ciphertext`. + +Τα αρχεία μυστικού κλειδιού αποθηκεύονται απευθείας στο `~/.web3/keystore` (για συστήματα τύπου Unix) και στο `~/AppData/Web3/keystore` (για Windows). Μπορεί να ονομάζονται οτιδήποτε, αλλά μια καλή σύμβαση είναι `.json`, όπου `` είναι το UUID 128-bit που δίνεται στο μυστικό κλειδί (ένα διατηρητέο - ιδιωτικό του μεσολαβητή για τη διεύθυνση του μυστικού κλειδιού). + +Όλα αυτά τα αρχεία έχουν σχετικό κωδικό πρόσβασης. Για να εξαγάγετε το μυστικό κλειδί ενός αρχείου `.json`, εξάγετε το κλειδί κρυπτογράφησης του. Αυτό γίνεται με τη λήψη του κωδικού πρόσβασης του αρχείου και τη διέλευση του μέσω μιας λειτουργίας παραγωγής κλειδιού όπως περιγράφεται από το κλειδί `kdf`. Οι στατικές και δυναμικές παράμετροι που εξαρτώνται από το KDF για τη λειτουργία KDF περιγράφονται στο κλειδί `kdfparams`. + +Το PBKDF2 πρέπει να υποστηρίζεται από όλες τις ελάχιστα συμβατές υλοποιήσεις, με την ένδειξη όμως: + +- `kdf`: `pbkdf2` + +Για PBKDF2, τα kdfparams συμπεριλαμβάνουν: + +- `prf`: Πρέπει να είναι `hmac-sha256` (μπορεί να επεκταθεί στο μέλλον)˙ +- `c`: αριθμός επαναλήψεων; +- `salt`: salt που μεταβιβάστηκε στο PBKDF +- `dklen`: μήκος για το προέρχοντα κλειδί. Πρέπει να είναι >= 32. + +Μόλις ληφθεί το κλειδί του αρχείου, θα πρέπει να επαληθευτεί μέσω της παραγωγής του MAC. Το MAC θα πρέπει να υπολογιστεί ως ο κατακερματισμός SHA3 (keccak-256) του πίνακα byte που σχηματίζεται ως συνενώσεις των 16 πιο αριστερών byte του παραγόμενου κλειδιού με τα περιεχόμενα του κλειδιού `ciphertext`, π.χ.: + +```js +KECCAK(DK[16..31] ++ ) +``` + +(όπου `++` είναι ο τελεστής συνένωσης) + +Αυτή η τιμή πρέπει να συγκριθεί με τα περιεχόμενα του κλειδιού `mac`. Εάν είναι διαφορετικοί, θα πρέπει να ζητηθεί εναλλακτικός κωδικός πρόσβασης (ή να ακυρωθεί η λειτουργία). + +Αφού επαληθευτεί το κλειδί του αρχείου, το κείμενο κρυπτογράφησης (το κλειδί `κρυπτογραφημένο κείμενο` στο αρχείο) μπορεί να αποκρυπτογραφηθεί χρησιμοποιώντας τον αλγόριθμο συμμετρικής κρυπτογράφησης που καθορίζεται από το κλειδί `κρυπτογράφηση` και παραμετροποιείται μέσω του κλειδιού `cipherparams`. Εάν το παραγόμενο μέγεθος κλειδιού και το μέγεθος κλειδιού του αλγορίθμου δεν ταιριάζουν, τα μηδενικά συμπληρωμένα, δεξιά byte του παραγόμενου κλειδιού θα πρέπει να χρησιμοποιηθούν ως κλειδί στον αλγόριθμο. + +Όλες οι ελάχιστα συμβατές υλοποιήσεις πρέπει να υποστηρίζουν τον αλγόριθμο AES-128-CTR, ο οποίος υποδηλώνεται ως εξής: + +- `cipher: aes-128-ctr` + +Αυτή η κρυπτογράφηση λαμβάνει τις ακόλουθες παραμέτρους, που δίνονται ως κλειδιά στο κλειδί cipherparams: + +- `iv`: Διάνυσμα αρχικοποίησης 128-bit για την κρυπτογράφηση. + +Το κλειδί για τον κρυπτογράφηση είναι τα αριστερά 16 byte του παραγόμενου κλειδιού, δηλαδή `DK[0..15]` + +Η δημιουργία/κρυπτογράφηση ενός μυστικού κλειδιού θα πρέπει να είναι ουσιαστικά το αντίστροφο αυτών των οδηγιών. Βεβαιωθείτε ότι τα `uuid`, `salt` και `iv` είναι πραγματικά τυχαία. + +Εκτός από το πεδίο `version`, το οποίο θα πρέπει να λειτουργεί ως "συμπαγές" αναγνωριστικό της έκδοσης, οι υλοποιήσεις μπορούν επίσης να χρησιμοποιούν την `minorversion` για την παρακολούθηση μικρότερων, μη παραβιαστικών αλλαγών στη μορφή. + +## Δοκιμαστικά Vectors {#test-vectors} + +Λεπτομέρειες: + +- `Address`: `008aeeda4d805471df9b2a5b0f38a0c3bcba786b` +- `ICAP`: `XE542A5PZHH8PYIZUBEJEO0MFWRAPPIL67` +- `UUID`: `3198bc9c-6672-5ab3-d9954942343ae5b6` +- `Password`: `testpassword` +- `Secret`: `7a28b5ba57c53603b0b07b56bba752f7784bf506fa95edc395f5cf6c7514fe9d` + +### PBKDF2-SHA-256 {#PBKDF2-SHA-256} + +Δοκιμή διανύσματος με χρήση `AES-128-CTR` και `PBKDF2-SHA-256`: + +Περιεχόμενο αρχείου του `~/.web3/keystore/3198bc9c-6672-5ab3-d9954942343ae5b6.json`: + +```json +{ + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "6087dab2f9fdbbfaddc31a909735c1e6" + }, + "ciphertext": "5318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46", + "kdf": "pbkdf2", + "kdfparams": { + "c": 262144, + "dklen": 32, + "prf": "hmac-sha256", + "salt": "ae3cd4e7013836a3df6bd7241b12db061dbe2c6785853cce422d148a624ce0bd" + }, + "mac": "517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2" + }, + "id": "3198bc9c-6672-5ab3-d995-4942343ae5b6", + "version": 3 +} +``` + +**Intermediates**: + +`Derived key`: `f06d69cdc7da0faffb1008270bca38f5e31891a3a773950e6d0fea48a7188551` `MAC Body`: `e31891a3a773950e6d0fea48a71885515318b4d5bcd28de64ee5559e671353e16f075ecae9f99c7a79a38af5f869aa46` `MAC`: `517ead924a9d0dc3124507e3393d175ce3ff7c1e96529c6c555ce9e51205e9b2` `Cipher key`: `f06d69cdc7da0faffb1008270bca38f5` + +### Scrypt {#scrypt} + +Δοκιμαστικό διάνυσμα χρησιμοποιώντας AES-128-CTR και Scrypt: + +```json +{ + "crypto": { + "cipher": "aes-128-ctr", + "cipherparams": { + "iv": "740770fce12ce862af21264dab25f1da" + }, + "ciphertext": "dd8a1132cf57db67c038c6763afe2cbe6ea1949a86abc5843f8ca656ebbb1ea2", + "kdf": "scrypt", + "kdfparams": { + "dklen": 32, + "n": 262144, + "p": 1, + "r": 8, + "salt": "25710c2ccd7c610b24d068af83b959b7a0e5f40641f0c82daeb1345766191034" + }, + "mac": "337aeb86505d2d0bb620effe57f18381377d67d76dac1090626aa5cd20886a7c" + }, + "id": "3198bc9c-6672-5ab3-d995-4942343ae5b6", + "version": 3 +} +``` + +**Intermediates**: + +`Derived key`: `7446f59ecc301d2d79bc3302650d8a5cedc185ccbb4bf3ca1ebd2c163eaa6c2d` `MAC Body`: `edc185ccbb4bf3ca1ebd2c163eaa6c2ddd8a1132cf57db67c038c6763afe2cbe6ea1949a86abc5843f8ca656ebbb1ea2` `MAC`: `337aeb86505d2d0bb620effe57f18381377d67d76dac1090626aa5cd20886a7c` `Cipher key`: `7446f59ecc301d2d79bc3302650d8a5c` + +## Αλλαγές από την 'Εκδοση 1 {#alterations-from-v2} + +Αυτή η έκδοση διορθώνει αρκετές ασυνέπειες με την έκδοση 1 που δημοσιεύτηκε [εδώ](https://github.com/ethereum/homestead-guide/blob/master/old-docs-for-reference/go-ethereum-wiki.rst/Passphrase-protected-key-store-spec.rst). Συνοπτικά αυτές είναι: + +- Η χρήση κεφαλαίων είναι αδικαιολόγητη και ασυνεπής (πεζά γράμματα κρυπτογράφησης, μικτά γράμματα Kdf, κεφαλαία MAC). +- Αντιμετωπίζει τα περιττά και θέτει σε κίνδυνο το απόρρητο. +- Το `Salt` είναι εγγενώς μια παράμετρος της συνάρτησης παραγωγής κλειδιού και αξίζει να συσχετιστεί με αυτό, όχι με το crypto γενικά. +- Το _SaltLen_ είναι περιττό (απλώς αντλήστε το από το Salt). +- Η συνάρτηση εξαγωγής κλειδιού δίνεται, ωστόσο ο αλγόριθμος κρυπτογράφησης είναι δύσκολο να καθοριστεί. +- Το `Version` είναι εγγενώς αριθμητικό, αλλά είναι συμβολοσειρά (η δομημένη έκδοση θα ήταν δυνατή με μια συμβολοσειρά, αλλά μπορεί να θεωρηθεί εκτός πεδίου εφαρμογής για μια σπάνια μεταβαλλόμενη μορφή αρχείου διαμόρφωσης). +- Το `KDF` και το `cipher` είναι πλασματικά αδερφικές έννοιες αλλά οργανώνονται διαφορετικά. +- Το `MAC` υπολογίζεται μέσω ενός αγνωστικού τμήματος δεδομένων κενού διαστήματος(!) + +Έχουν γίνει αλλαγές στη μορφοποίηση για να δοθεί στο ακόλουθο αρχείο, λειτουργικότητα ισοδύναμη με το παράδειγμα που δόθηκε στην προηγούμενη συνδεδεμένη σελίδα: + +```json +{ + "crypto": { + "cipher": "aes-128-cbc", + "ciphertext": "07533e172414bfa50e99dba4a0ce603f654ebfa1ff46277c3e0c577fdc87f6bb4e4fe16c5a94ce6ce14cfa069821ef9b", + "cipherparams": { + "iv": "16d67ba0ce5a339ff2f07951253e6ba8" + }, + "kdf": "scrypt", + "kdfparams": { + "dklen": 32, + "n": 262144, + "p": 1, + "r": 8, + "salt": "06870e5e6a24e183a5c807bd1c43afd86d573f7db303ff4853d135cd0fd3fe91" + }, + "mac": "8ccded24da2e99a11d48cda146f9cc8213eb423e2ea0d8427f41c3be414424dd", + "version": 1 + }, + "id": "0498f19a-59db-4d54-ac95-33901b4f1870", + "version": 2 +} +``` + +## Αλλαγές από την Έκδοση 2 {#alterations-from-v2} + +Η έκδοση 2 ήταν μια πρώιμη υλοποίηση της C++ με έναν αριθμό σφαλμάτων. Όλα τα βασικά παραμένουν αμετάβλητα από αυτό. diff --git a/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md new file mode 100644 index 00000000000..cd2fb8ea542 --- /dev/null +++ b/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -0,0 +1,218 @@ +--- +title: Βέλτιστες πρακτικές σχεδιασμού Αποκεντρωμένων Ανταλλακτηρίων (DEX) +description: Ένας οδηγός που εξηγεί τις αποφάσεις σχεδιασμού εμπειρίας χρήστη (UX) και διεπαφής χρήστη (UI) για την ανταλλαγή κρύπτο. +lang: el +--- + +Από την κυκλοφορία του Uniswap το 2018, έχουν κυκλοφορήσει εκατοντάδες αποκεντρωμένα ανταλλακτήρια σε δεκάδες διαφορετικές αλυσίδες. +Πολλά από αυτά έχουν εισαγάγει νέα στοιχεία ή έχουν προσθέσει τη δική τους πινελιά, αλλά η διεπαφή έχει παραμείνει γενικά η ίδια. + +Ένας λόγος για αυτό είναι ο [νόμος του Jakob][Jakob’s Law](https://lawsofux.com/jakobs-law/): + +> Οι χρήστες περνούν το μεγαλύτερο μέρος του χρόνου τους σε άλλους ιστότοπους. Αυτό σημαίνει ότι οι χρήστες προτιμούν ο ιστότοπός σας να λειτουργεί με τον ίδιο τρόπο όπως όλοι οι άλλοι ιστότοποι που ήδη γνωρίζουν. + +Χάρη σε πρώτους καινοτόμους όπως το Uniswap, το Pancakeswap και το Sushiswap, οι χρήστες DeFi έχουν μια συλλογική ιδέα για το πώς φαίνεται ένα DEX. +Για το λόγο αυτό, κάτι σαν «καλύτερη πρακτική» αναδύεται τώρα. Βλέπουμε όλο και περισσότερες αποφάσεις σχεδιασμού να τυποποιούνται σε όλους τους ιστότοπους. Μπορείτε να δείτε την εξέλιξη των DEX ως ένα τεράστιο παράδειγμα δοκιμής του ζωντανά. Τα πράγματα που δούλεψαν έμειναν, τα πράγματα που δεν δούλεψαν, πετάχτηκαν έξω. Υπάρχει ακόμα χώρος για προσωπικότητα, αλλά υπάρχουν ορισμένα πρότυπα που πρέπει να συμμορφώνεται ένα DEX. + +Αυτό το άρθρο είναι μια περίληψη του: + +- Τι να συμπεριλαμβάνει. +- Πώς να το κάνετε όσο πιο εύχρηστο γίνεται. +- Οι κύριοι τρόποι προσαρμογής του σχεδιασμού. + +Όλα τα παραδείγματα δημιουργήθηκαν ειδικά για αυτό το άρθρο, αν και όλα βασίζονται σε πραγματικά έργα. + +Το κιτ Figma περιλαμβάνεται επίσης στο κάτω μέρος, μη διστάσετε να το χρησιμοποιήσετε και να επιταχύνετε τα δικά σας καλώδια! + +## Βασική ανατομία ενός DEX {#basic-anatomy-of-a-dex} + +Το UI γενικά περιέχει τρία στοιχεία: + +1. Κύρια φόρμα +2. Κουμπί +3. Πίνακας λεπτομερειών + +![Generic DEX UI, showing the three main elements](./1.png) + +## Παραλλαγές {#variations} + +Αυτό θα είναι ένα κοινό θέμα σε αυτό το άρθρο, αλλά υπάρχουν διάφοροι διαφορετικοί τρόποι οργάνωσης αυτών των στοιχείων. Ο "πίνακας λεπτομερειών" μπορεί να είναι: + +- Πάνω από το κουμπί +- Κάτω από το κουμπί +- Κρυμμένο σε πάνελ ακορντεόν +- Και/ή σε τρόπο "προεπισκόπησης" + +Υ.Γ. Ο τρόπος "προεπισκόπησης" είναι προαιρετικός, αλλά αν εμφανίζετε πολύ λίγες λεπτομέρειες για το κύριο περιβάλλον χρήστη, είναι απαραίτητο. + +## Δομή της κύριας φόρμας {#structure-of-the-main-form} + +Αυτό είναι το πλαίσιο όπου επιλέγετε πραγματικά ποιο ψηφιακό στοιχείο θέλετε να ανταλλάξετε. Το στοιχείο αποτελείται από ένα πεδίο εισαγωγής και ένα μικρό κουμπί σε μία σειρά. + +Τα DEX συνήθως εμφανίζουν περισσότερες λεπτομέρειες σε μία γραμμή πάνω και μία γραμμή κάτω, αν και αυτό μπορεί να ρυθμιστεί διαφορετικά. + +![Σειρά εισαγωγής, με σειρά λεπτομερειών πάνω και κάτω](./2.png) + +## Παραλλαγές {#variations2} + +Δύο παραλλαγές διεπαφής χρήστη εμφανίζονται εδώ. Ένα χωρίς περιθώρια, δημιουργώντας ένα πολύ ανοιχτό σχέδιο και ένα όπου η γραμμή εισόδου έχει ένα περίγραμμα, δημιουργώντας μια εστίαση σε αυτό το στοιχείο. + +![Two UI variations of the main form](./3.png) + +Αυτή η βασική δομή επιτρέπει **τέσσερα βασικά κομμάτια πληροφοριών** να εμφανίζονται στο σχέδιο: ένα σε κάθε γωνία. Εάν υπάρχει μόνο μία πάνω/κάτω σειρά, τότε υπάρχουν μόνο δύο σημεία. + +Κατά τη διάρκεια της εξέλιξης του DeFi, πολλά διαφορετικά πράγματα έχουν συμπεριληφθεί εδώ. + +## Βασικές πληροφορίες για να συμπεριλαβετε {#key-info-to-include} + +- Υπόλοιπο στο πορτοφόλι +- Μέγιστο κουμπί +- Αντιστοιχία σε Fiat +- Επίπτωση της τιμής στο "ληφθέν" ποσό + +Στις πρώτες μέρες του DeFi, το αντίστοιχο fiat έλειπε συχνά. Εάν κατασκευάζετε οποιοδήποτε είδος έργου Web3, είναι απαραίτητο να εμφανίζεται ένα ισοδύναμο fiat. Οι χρήστες εξακολουθούν να σκέφτονται με όρους τοπικών νομισμάτων, επομένως για να ταιριάζουν με τα νοητικά μοντέλα του πραγματικού κόσμου, θα πρέπει να συμπεριληφθεί και αυτό. + +Στο δεύτερο πεδίο (αυτό στο οποίο επιλέγετε το ψηφιακό στοιχείο στο οποίο ανταλλάσσετε) μπορείτε επίσης να συμπεριλάβετε τον αντίκτυπο της τιμής δίπλα στο ποσό του νομίσματος fiat, υπολογίζοντας τη διαφορά μεταξύ του ποσού εισόδου και των εκτιμώμενων ποσών παραγωγής. Αυτή είναι μια πολύ χρήσιμη λεπτομέρεια που πρέπει να συμπεριληφθεί. + +Τα κουμπιά ποσοστού (π.χ. 25%, 50%, 75%) μπορεί να είναι μια χρήσιμη λειτουργία, αλλά καταλαμβάνουν περισσότερο χώρο, προσθέτουν περισσότερη παρότρυνση για ενέργειες και προσθέτουν περισσότερο ψυχικό φορτίο. Το ίδιο με τα ρυθμιστικά ποσοστού. Ορισμένες από αυτές τις αποφάσεις διεπαφής χρήστη θα εξαρτηθούν από την επωνυμία σας και τον τύπο χρήστη σας. + +Επιπλέον λεπτομέρειες μπορούν να εμφανίζονται κάτω από την κύρια φόρμα. Καθώς αυτός ο τύπος πληροφοριών είναι κυρίως για επαγγελματίες χρήστες, είναι λογικό να: + +- Το κρατήσετε όσο το δυνατόν ελάχιστο, ή +- Να το κρύψετε σε ένα αναδιπλούμενο πάνελ. + +![Details shown in the corners of that main form](./4.png) + +## Επιπλέον πληροφορίες για να συμπεριλαβετε {#extra-info-to-include} + +- Τιμή κρυπτονομίσματος +- Ολίσθηση +- Ελάχιστη λήψη +- Αναμενόμενο αποτέλεσμα +- Επίπτωση στην τιμή +- Εκτίμηση κόστους gas +- Άλλες κρατήσεις +- Κύκλος εντολών + +Αναμφισβήτητα, ορισμένες από αυτές τις λεπτομέρειες θα μπορούσαν να είναι προαιρετικές. + +Η δρομολόγηση εντολών είναι ενδιαφέρουσα, αλλά δεν κάνει μεγάλη διαφορά για τους περισσότερους χρήστες. + +Μερικές άλλες λεπτομέρειες απλώς επαναλαμβάνουν το ίδιο πράγμα με διαφορετικούς τρόπους. Για παράδειγμα, το "ελάχιστο που ελήφθη" και η "ολίσθηση" είναι δύο όψεις του ίδιου νομίσματος. Εάν έχετε ορίσει την ολίσθηση στο 1%, τότε το ελάχιστο που μπορείτε να περιμένετε να λάβετε = αναμενόμενη έξοδος-1%. Ορισμένα περιβάλλοντα χρήστη θα εμφανίζουν το αναμενόμενο ποσό, το ελάχιστο ποσό και την ολίσθηση… Πράγμα που είναι χρήσιμο, αλλά πιθανώς υπερβολικό. + +Οι περισσότεροι χρήστες θα αφήσουν την προεπιλεγμένη ολίσθηση ούτως ή άλλως. + +Το "αντίκτυπο τιμής" εμφανίζεται συχνά σε αγκύλες δίπλα στο ισοδύναμο fiat στο πεδίο "προς". Αυτή είναι μια εξαιρετική λεπτομέρεια εμπειρίας χρήστη που πρέπει να προστεθεί, αλλά αν εμφανίζεται εδώ, χρειάζεται πραγματικά να εμφανιστεί ξανά παρακάτω; Και στη συνέχεια επιστροφή στην προηγούμενη οθόνη; + +Πολλοί χρήστες (ειδικά αυτοί που ανταλλάσσουν μικρά ποσά) δε θα ενδιαφέρονται για αυτές τις λεπτομέρειες. Θα εισάγουν απλώς έναν αριθμό και θα πατήσουν ανταλλαγή. + +![Some details show the same thing](./5.png) + +Οι ακριβείς λεπτομέρειες που εμφανίζονται θα εξαρτηθούν από το κοινό σας και την αίσθηση που θέλετε να έχει η εφαρμογή. + +Εάν συμπεριλάβετε την ανοχή ολίσθησης στον πίνακα λεπτομερειών, θα πρέπει επίσης να την κάνετε επεξεργάσιμη απευθείας από εδώ. Αυτό είναι ένα καλό παράδειγμα ενός "επιταχυντή". Ένα έξυπνο κόλπο UX που μπορεί να επιταχύνει τις ροές των έμπειρων χρηστών, χωρίς να επηρεάζει τη γενική χρηστικότητα της εφαρμογής. + +![Slippage can be controlled from the details panel](./6.png) + +Είναι καλή ιδέα να σκεφτείτε προσεκτικά όχι μόνο μία συγκεκριμένη πληροφορία σε μία οθόνη, αλλά ολόκληρη τη ροή: Εισαγωγή αριθμών στην Κύρια Φόρμα → Σάρωση Λεπτομερειών → Κλικ στην Οθόνη Προεπισκόπησης (εάν έχετε οθόνη προεπισκόπησης). +Θα πρέπει ο πίνακας λεπτομερειών να είναι ορατός ανά πάσα στιγμή ή ο χρήστης πρέπει να κάνει κλικ για να τον επεκτείνει; +Θα πρέπει να δημιουργήσετε τριβή προσθέτοντας μια οθόνη προεπισκόπησης; Αυτό αναγκάζει τον χρήστη να επιβραδύνει και να εξετάσει τη συναλλαγή του, κάτι που μπορεί να είναι χρήσιμο. Αλλά θέλουν να δουν ξανά όλες τις ίδιες πληροφορίες; Τι είναι πιο χρήσιμο σε αυτούς σε αυτό το σημείο; + +## Επιλογές σχεδιασμού {#design-options} + +Όπως αναφέρθηκε, πολλά από αυτά καταλήγουν στο προσωπικό σας στυλ. Ποια είναι η χρήση σας; +Ποιος είναι ο τύπος σας; +Θέλετε ένα "επαγγελματικό" περιβάλλον εργασίας που να εμφανίζει κάθε λεπτομέρεια, ή θέλετε να είστε μινιμαλιστής; +Ακόμα κι αν στοχεύετε στους επαγγελματίες χρήστες που θέλουν όλες τις δυνατές πληροφορίες, θα πρέπει να θυμάστε τα σοφά λόγια του Alan Cooper: + +> Όσο όμορφο κι αν είναι, όσο cool κι αν είναι το περιβάλλον εργασίας σας, θα ήταν καλύτερα αν ήταν λιγότερο. + +### Δομή {#structure} + +- Ψηφιακά στοιχεία στα αριστερά ή στα δεξιά. +- Σε 2 σειρές ή 3. +- Λεπτομέρειες πάνω ή κάτω από το κουμπί. +- Οι λεπτομέρειες επεκτάθηκαν, ελαχιστοποιήθηκαν ή δεν εμφανίζονται. + +### Στυλ περιεχομένου {#component-style} + +- Κενό. +- Εκτός ορίου. +- Ολοκληρωμένο. + +Από καθαρής άποψης UX, το στυλ UI είναι λιγότερο σημαντικό από όσο νομίζετε. Οι οπτικές τάσεις έρχονται και φεύγουν σε κύκλους και πολλές προτιμήσεις είναι υποκειμενικές. + +Ο ευκολότερος τρόπος για να πάρετε μια αίσθηση για αυτό και να σκεφτείτε τις διαφορετικές διαμορφώσεις, είναι να ρίξετε μια ματιά σε μερικά παραδείγματα και στη συνέχεια να πειραματιστείτε από μόνοι σας. + +Το κιτ Figma που περιλαμβάνεται περιέχει κενά, περιγραμμένα και γεμάτα εξαρτήματα. + +Δείτε τα παρακάτω παραδείγματα για διαφορετικούς τρόπους με τους οποίους μπορείτε να τα συνδυάσετε όλα μαζί: + +![3 rows in a filled style](./7.png) + +![3 rows in a outlined style](./8.png) + +![2 rows in an empty style](./9.png) + +![3 rows in an outlined style, with a details panel](./10.png) + +![3 rows with the input row in an outlined style](./11.png) + +![2 rows in a filled style](./12.png) + +## Αλλά σε ποια πλευρά πρέπει να προχωρήσει το ψηφιακό στοιχείο; {#but-which-side-should-the-token-go-on} + +Η ουσία είναι ότι πιθανότατα δεν κάνει τεράστια διαφορά στη χρηστικότητα. Υπάρχουν μερικά πράγματα που πρέπει να έχετε κατά νου, ωστόσο, που μπορεί να σας επηρεάσουν προς τη μία ή την άλλη κατεύθυνση. + +Ήταν ενδιαφέρον να βλέπουμε την αλλαγή της μόδας με την πάροδο του χρόνου. Η Uniswap αρχικά είχε το token στα αριστερά, αλλά από τότε το έχει μετακινήσει στα δεξιά. Η Sushiswap έκανε επίσης αυτή την αλλαγή κατά τη διάρκεια μιας αναβάθμισης σχεδιασμού. Τα περισσότερα, αλλά όχι όλα, πρωτόκολλα έχουν ακολουθήσει το παράδειγμα. + +Η οικονομική σύμβαση παραδοσιακά τοποθετεί το σύμβολο του νομίσματος πριν από τον αριθμό, π.χ. $50, €50, £50, αλλά λέμε 50 δολάρια, 50 ευρώ, 50 λίρες. + +Για τον γενικό χρήστη, ειδικά κάποιον που διαβάζει από αριστερά προς τα δεξιά, από πάνω προς τα κάτω, το token στα δεξιά πιθανώς να φαίνεται πιο φυσικό. + +![Ένα UI με tokens στα αριστερά](./13.png) + +Η τοποθέτηση του token στα αριστερά και όλων των αριθμών στα δεξιά φαίνεται ευχάριστα συμμετρική, κάτι που είναι ένα πλεονέκτημα, αλλά υπάρχει και ένα άλλο μειονέκτημα σε αυτή τη διάταξη. + +Ο νόμος της εγγύτητας δηλώνει ότι τα στοιχεία που είναι κοντά μεταξύ τους αντιλαμβάνονται ως σχετικά. Κατά συνέπεια, θέλουμε να τοποθετήσουμε τα σχετικά στοιχεία το ένα δίπλα στο άλλο. Το υπόλοιπο του token σχετίζεται άμεσα με το ίδιο το token και θα αλλάζει κάθε φορά που επιλέγεται ένα νέο token. Επομένως, είναι ελαφρώς πιο λογικό το υπόλοιπο του token να βρίσκεται δίπλα στο κουμπί επιλογής token. Θα μπορούσε να μετακινηθεί κάτω από το token, αλλά αυτό σπάει τη συμμετρία της διάταξης. + +Τελικά, υπάρχουν πλεονεκτήματα και μειονεκτήματα και για τις δύο επιλογές, αλλά είναι ενδιαφέρον πώς η τάση φαίνεται να είναι προς το token στα δεξιά. + +# Συμπεριφορά κουμπιών {#button-behavior} + +Μην έχετε ξεχωριστό κουμπί για το Approve. Επίσης, μην έχετε ξεχωριστό κλικ για το Approve. Ο χρήστης θέλει να κάνει Swap, οπότε απλώς πείτε "swap" στο κουμπί και ξεκινήστε την έγκριση ως το πρώτο βήμα. Ένα modal μπορεί να δείξει την πρόοδο με ένα stepper, ή μια απλή ειδοποίηση "tx 1 από 2 - έγκριση". + +![A UI with separate buttons for approve and swap](./14.png) + +![Ένα UI με ένα κουμπί που λέει έγκριση](./15.png) + +## Κουμπί ως συμφραζόμενη βοήθεια {#button-as-contextual-help} + +Το κουμπί μπορεί να κάνει διπλή λειτουργία ως ειδοποίηση! + +Αυτό είναι στην πραγματικότητα ένα αρκετά ασυνήθιστο μοτίβο σχεδιασμού εκτός του Web3, αλλά έχει γίνει στάνταρ μέσα σε αυτό. Αυτή είναι μια καλή καινοτομία καθώς εξοικονομεί χώρο και διατηρεί την προσοχή εστιασμένη. + +Εάν η κύρια ενέργεια - SWAP - δεν είναι διαθέσιμη λόγω σφάλματος, ο λόγος μπορεί να εξηγηθεί με το κουμπί, π.χ.: + +- Εναλλαγή δικτύου +- Σύνδεση πορτοφολιού +- Γενικά σφάλματα + +Το κουμπί μπορεί επίσης να αντιστοιχιστεί στην ενέργεια που πρέπει να εκτελεστεί. Για παράδειγμα, εάν ο χρήστης δεν μπορεί να κάνει swap επειδή βρίσκεται στο λάθος δίκτυο, το κουμπί θα πρέπει να λέει "switch to Ethereum" και όταν ο χρήστης κάνει κλικ στο κουμπί, θα πρέπει να αλλάξει το δίκτυο σε Ethereum. Αυτό επιταχύνει σημαντικά τη ροή του χρήστη. + +![Βασικές ενέργειες που ξεκινούν από το κύριο CTA](./16.png) + +![Μήνυμα σφάλματος που εμφανίζεται στο κύριο CTA](./17.png) + +## Δημιουργήστε το δικό σας με αυτό το αρχείο figma {#build-your-own-with-this-figma-file} + +Χάρη στη σκληρή δουλειά πολλών πρωτοκόλλων, ο σχεδιασμός DEX έχει βελτιωθεί πολύ. Γνωρίζουμε ποιες πληροφορίες χρειάζεται ο χρήστης, πώς πρέπει να τις εμφανίζουμε και πώς να κάνουμε τη ροή όσο το δυνατόν πιο ομαλή. +Ας ελπίσουμε ότι αυτό το άρθρο παρέχει μια σταθερή επισκόπηση των αρχών UX. + +Εάν θέλετε να πειραματιστείτε, μη διστάσετε να χρησιμοποιήσετε το κιτ wireframe Figma. Διατηρείται όσο το δυνατόν πιο απλό, αλλά έχει αρκετή ευελιξία για να δημιουργήσει τη βασική δομή με διάφορους τρόπους. + +[Figma wireframe kit](https://www.figma.com/community/file/1393606680816807382/dex-wireframes-kit) + +Το DeFi θα συνεχίσει να εξελίσσεται και υπάρχει πάντα περιθώριο βελτίωσης. + +Καλή επιτυχία! diff --git a/public/content/translations/el/developers/docs/design-and-ux/heuristics-for-web3/index.md b/public/content/translations/el/developers/docs/design-and-ux/heuristics-for-web3/index.md new file mode 100644 index 00000000000..aab5a8628b3 --- /dev/null +++ b/public/content/translations/el/developers/docs/design-and-ux/heuristics-for-web3/index.md @@ -0,0 +1,138 @@ +--- +title: Επτά βασικοί κανόνες σχεδιασμού διεπαφής Web3 +description: Αρχές για τη βελτίωση χρηστικότητας του Web3. +lang: el +--- + +Οι κανόνες χρηστικότητας είναι γενικοί "κανόνες του αντίχειρα" που μπορείτε να χρησιμοποιήσετε για να μετρήσετε τη χρηστικότητα του ιστότοπού σας. +Οι 7 βασικοί κανόνες εδώ, είναι ειδικά προσαρμοσμένοι για το Web3 και θα πρέπει να χρησιμοποιούνται παράλληλα με τις 10 γενικές αρχές του Jakob Nielsen για τον [σχεδιασμό αλληλεπίδρασης](https://www.nngroup.com/articles/ten-usability-heuristics/). + +## Επτά βασικοί κανόνες ευχρηστίας για το web3 {#seven-usability-heuristics-for-web3} + +1. Τα σχόλια ακολουθούν τη δράση. +2. Ασφάλεια και εμπιστοσύνη. +3. Οι πιο σημαντικές πληροφορίες είναι προφανείς. +4. Κατανοητή ορολογία. +5. Οι ενέργειες είναι όσο το δυνατόν πιο σύντομες. +6. Οι συνδέσεις δικτύου είναι ορατές και ευέλικτες. +7. Έλεγχος από την εφαρμογή, όχι από το πορτοφόλι. + +## Ορισμοί και παραδείγματα {#definitions-and-examples} + +### 1. Τα σχόλια ακολουθούν την δράση {#feedback-follows-action} + +**Θα πρέπει να είναι προφανές όταν κάτι έχει συμβεί ή συμβαίνει.** + +Οι χρήστες αποφασίζουν για τα επόμενα βήματά τους με βάση το αποτέλεσμα των προηγούμενων βημάτων τους. Επομένως, είναι σημαντικό να παραμένουν ενημερωμένοι για την κατάσταση του συστήματος. Αυτό είναι ιδιαίτερα σημαντικό στο Web3, καθώς οι συναλλαγές μπορεί μερικές φορές να χρειαστούν λίγο χρόνο για να δεσμευτούν στην κρυπτοαλυσίδα. Εάν δεν υπάρχουν σχόλια που να τους ενημερώνουν να περιμένουν, οι χρήστες δεν είναι σίγουροι αν έχει συμβεί κάτι. + +**Συμβουλές:** + +- Ενημερώστε τον χρήστη μέσω μηνυμάτων και άλλων ειδοποιήσεων. +- Επικοινωνήστε σαφώς τους χρόνους αναμονής. +- Εάν μια ενέργεια πρόκειται να διαρκέσει περισσότερο από μερικά δευτερόλεπτα, καθησυχάστε τον χρήστη με ένα χρονόμετρο ή μια κινούμενη εικόνα για να νιώσει ότι κάτι συμβαίνει. +- Εάν υπάρχουν πολλά βήματα σε μια διαδικασία, δείξτε το κάθε βήμα. + +**Για παράδειγμα:** +Η εμφάνιση κάθε βήματος που εμπλέκεται σε μια συναλλαγή βοηθά τους χρήστες να γνωρίζουν πού βρίσκονται στη διαδικασία. Τα κατάλληλα εικονίδια ενημερώνουν τον χρήστη για την κατάσταση των ενεργειών του. + +![Informing the user about each step when swapping tokens](./Image1.png) + +### 2. Η ασφάλεια και η εμπιστοσύνη καλύπτονται στο {#security-and-trust-are-backed-in} + +Θα πρέπει να δοθεί προτεραιότητα στην ασφάλεια και αυτό θα πρέπει να τονιστεί για τον χρήστη. +Οι άνθρωποι ενδιαφέρονται πολύ για τα δεδομένα τους. Η ασφάλεια είναι συχνά πρωταρχική ανησυχία για τους χρήστες, επομένως θα πρέπει να λαμβάνεται υπόψη σε όλα τα επίπεδα του σχεδιασμού. Θα πρέπει πάντα να επιδιώκετε να κερδίσετε την εμπιστοσύνη των χρηστών σας, αλλά ο τρόπος που το κάνετε αυτό μπορεί να σημαίνει διαφορετικά πράγματα σε διαφορετικές εφαρμογές. Δεν θα πρέπει να είναι μια δευτερεούσα σκέψη, αλλά θα πρέπει να σχεδιάζεται συνειδητά καθ' όλη τη διάρκεια. Δημιουργήστε εμπιστοσύνη σε όλη την εμπειρία του χρήστη, συμπεριλαμβανομένων των κοινωνικών καναλιών και της τεκμηρίωσης, καθώς και του τελικού UI. Πράγματα όπως το επίπεδο αποκέντρωσης, η κατάσταση πολλαπλών υπογραφών του θησαυρού και το αν η ομάδα είναι doxxed, επηρεάζουν την εμπιστοσύνη των χρηστών. + +**Συμβουλές:** + +- Καταγράψτε τους ελέγχους σας με υπερηφάνεια. +- Λάβετε πολλαπλούς ελέγχους. +- Διαφημίστε τυχόν χαρακτηριστικά ασφαλείας που έχετε σχεδιάσει. +- Επισημάνετε τους πιθανούς κινδύνους, συμπεριλαμβανομένων των υποκείμενων ενσωματώσεων. +- Ενημερώστε για την πολυπλοκότητα των στρατηγικών. +- Λάβετε υπόψη ζητήματα που δεν αφορούν τη διεπαφή χρήστη που μπορεί να επηρεάσουν την αντίληψη των χρηστών σας για την ασφάλεια. + +**Παράδειγμα:** +Συμπεριλάβετε τους ελέγχους σας στο υποσέλιδο, σε εμφανές μέγεθος. + +![Audits refernced in the website footer](./Image2.png) + +### 3. Οι πιο σημαντικές πληροφορίες είναι προφανείς {#the-most-important-info-is-obvious} + +Για πολύπλοκα συστήματα, παρουσιάστε μόνο τα πιο σχετικά δεδομένα. Προσδιορίστε τι είναι πιο σημαντικό και δώστε προτεραιότητα στην εμφάνισή του. +Οι πάρα πολλές πληροφορίες λειτουργούν αρνητικά και οι χρήστες συνήθως "σκαλώνουν" σε μία πληροφορία όταν λαμβάνουν αποφάσεις. Στο DeFi, αυτό θα είναι πιθανώς το APR για τις εφαρμογές απόδοσης και το LTV για τις εφαρμογές δανεισμού. + +**Συμβουλές:** + +- Η έρευνα χρηστών θα αποκαλύψει την πιο σημαντική μετρική +- Κάντε τις βασικές πληροφορίες μεγάλες και τις άλλες λεπτομέρειες μικρές και διακριτικές +- Οι χρήστες δε διαβάζουν αλλά σαρώνουν; Βεβαιωθείτε ότι ο σχεδιασμός σας είναι συμβατός. + +**Παράδειγμα:** Τα μεγάλα ψηφιακά στοιχεία σε πλήρες χρώμα είναι εύκολο να βρεθούν κατά τη σάρωση. To APR είναι μεγάλο και επισημαίνεται με σχετικό χρωματισμό. + +![The token and APR are easy to find](./Image3.png) + +### 4. Καθαρή ορολογία {#clear-terminology} + +Η ορολογία πρέπει να είναι κατανοητή και κατάλληλη. +Η τεχνική ορολογία μπορεί να είναι τεράστια πρόκληση, γιατί απαιτεί την κατασκευή ενός εντελώς νέου νοητικού μοντέλου. Οι χρήστες δεν μπορούν να συσχετίσουν το σχέδιο με λέξεις, φράσεις και έννοιες που ήδη γνωρίζουν. Όλα φαίνονται μπερδεμένα και άγνωστα και υπάρχει μια απότομη καμπύλη μάθησης πριν καν επιχειρήσουν να το χρησιμοποιήσουν. Ένας χρήστης μπορεί να προσεγγίσει το DeFi θέλοντας να εξοικονομήσει χρήματα και αυτό που βρίσκει είναι: εξόρυξη, γεωργία, ποντάρισμα, εκπομπές ρύπων, δωροδοκίες, θησαυροφυλάκια, θυρίδες, veTokens, κατοχύρωση, εποχές, αποκεντρωμένοι αλγόριθμοι, ρευστότητα ιδιοκτησίας πρωτοκόλλου… +Προσπαθήστε να χρησιμοποιήσετε απλούς όρους που θα είναι κατανοητοί από την ευρύτερη ομάδα ανθρώπων. Μην εφευρίσκετε νέους όρους μόνο για το έργο σας. + +**Συμβουλές:** + +- Χρησιμοποιήστε απλή και συνεπή ορολογία +- Χρησιμοποιήστε την υπάρχουσα γλώσσα όσο το δυνατόν περισσότερο +- Μη δημιουργείτε τους δικούς σας όρους +- Ακολουθήστε τις συμβάσεις όπως εμφανίζονται. +- Εκπαιδεύστε τους χρήστες όσο το δυνατόν περισσότερο + +**Παράδειγμα:** +"Οι ανταμοιβές σας" είναι ένας ευρέως κατανοητός, ουδέτερος, όρος, δεν είναι μια νέα λέξη που φτιάχτηκε για αυτό το έργο. Οι ανταμοιβές εκφράζονται σε Δολάριο ΗΠΑ για να ταιριάζουν με τα ψυχικά μοντέλα του πραγματικού κόσμου, ακόμα και αν οι ίδιες οι ανταμοιβές είναι σε άλλο κρυπτονόμισμα. + +![Token rewards, displayed in U.S. δολάρια](./Image4.png) + +### 5. Οι ενέργειες είναι όσο το δυνατόν πιο σύντομες {#actions-are-as-short-as-possible} + +Επιταχύνετε τις αλληλεπιδράσεις του χρήστη ομαδοποιώντας υποενέργειες. +Αυτό μπορεί να γίνει σε επίπεδο έξυπνου συμβολαίου, καθώς και στο UI. Ο χρήστης δεν πρέπει να μετακινηθεί από το ένα μέρος του συστήματος στο άλλο – ή να εγκαταλείψει εντελώς το σύστημα – για να ολοκληρώσει μια κοινή ενέργεια. + +**Συμβουλές:** + +- Συνδυάστε το "Έγκριση" με άλλες ενέργειες όπου είναι δυνατόν +- Συγκεντρώστε τα βήματα για την υπογραφή συναλλαγής όσο πιο κοντά γίνεται. + +**Παράδειγμα:** Ο συνδυασμός "προσθήκη ρευστότητας" και "δέσμευση κεφαλαίου" είναι ένα απλό παράδειγμα επιταχυντή που εξοικονομεί χρόνο και gas σε έναν χρήστη. + +![Modal showing a switch to combine the deposit and stake actions](./Image5.png) + +### 6. Οι συνδέσεις δικτύου είναι ορατές και ευέλικτες {#network-connections-are-visible-and-flexible} + +Ενημερώστε τον χρήστη σχετικά με το δίκτυο στο οποίο είναι συνδεδεμένοι και παρέχετε σαφείς συντομεύσεις για αλλαγή δικτύου. +Ιδιαίτερα σημαντικό για εφαρμογές πολλαπλών αλυσίδων. Οι κύριες λειτουργίες της εφαρμογής θα πρέπει να εξακολουθούν να είναι ορατές όταν είναι αποσυνδεδεμένη ή συνδεδεμένη σε δίκτυο που δεν υποστηρίζεται. + +**Συμβουλές:** + +- Εμφάνιση όσο το δυνατόν μεγαλύτερου μέρους της εφαρμογής ενώ αποσυνδεδεμένος +- Δείξτε σε ποιο δίκτυο είναι συνδεδεμένος ο χρήστης αυτήν τη στιγμή +- Μην αναγκάζετε τον χρήστη να πάει στο πορτοφόλι του για να αλλάξει δίκτυο +- Εάν η εφαρμογή απαιτεί από τον χρήστη να αλλάξει δίκτυο, ζητήστε την ενέργεια από την κύρια διεπαφή για εφαρμογή. +- Εάν η εφαρμογή περιέχει αγορές ή θησαυροφυλάκια για πολλά δίκτυα, δηλώστε με σαφήνεια ποιο σετ χρησιμοποιεί ο χρήστης αυτήν τη στιγμή. + +**Παράδειγμα:** Δείξτε στον χρήστη σε ποιο δίκτυο είναι συνδεδεμένος και επιτρέψτε του να το αλλάξει στη γραμμή εφαρμογών. + +![Dropdown button showing the connected network](./Image6.png) + +### 7. Έλεγχος από την εφαρμογή και όχι από το πορτοφόλι {#control-from-the-app-not-the-wallet} + +Η διεπαφή χρήστη θα πρέπει να λέει στον χρήστη όλα όσα χρειάζεται να γνωρίζει και να του δίνει τον έλεγχο σε ό,τι χρειάζεται να κάνει. +Στο Web3, υπάρχουν ενέργειες που πραγματοποιείτε στη διεπαφή χρήστη και ενέργειες που πραγματοποιείτε στο πορτοφόλι. Γενικά, εκκινείτε μια ενέργεια στη διεπαφή χρήστη και στη συνέχεια, την επιβεβαιώνετε στο πορτοφόλι. Οι χρήστες μπορεί να αισθάνονται άβολα εάν αυτά τα δύο σκέλη δεν ενσωματωθούν προσεκτικά. + +**Συμβουλές:** + +- Κατάσταση επικοινωνίας συστήματος μέσω σχολίων στο UI +- Κρατήστε αρχείο του ιστορικού τους +- Παρέχετε συνδέσμους εξερευνητών πλοκ για παλιές συναλλαγές +- Παρέχετε συντομεύσεις για αλλαγή δικτύων. + +**Παράδειγμα:** Ένα ξεχωριστό κοντέινερ δείχνει στον χρήστη ποια σχετικά κρύπτο έχει στο πορτοφόλι του και το κύριο CTA παρέχει μια συντόμευση για την αλλαγή του δικτύου. + +![Main CTA is prompting the user to switch network](./Image7.png) diff --git a/public/content/translations/el/developers/docs/design-and-ux/index.md b/public/content/translations/el/developers/docs/design-and-ux/index.md new file mode 100644 index 00000000000..99648697a4e --- /dev/null +++ b/public/content/translations/el/developers/docs/design-and-ux/index.md @@ -0,0 +1,231 @@ +--- +title: Σχεδιασμός και UX στο web3 +description: Εισαγωγή του σχεδιασμού και έρευνας UX στον χώρο του web3 και Ethereum +lang: el +--- + +Είστε νέοι στον σχεδιασμό με το Ethereum; Αυτό είναι το κατάλληλο μέρος για εσάς. Η κοινότητα του Ethereum έχει γραπτούς πόρους για την εισαγωγή σας στα βασικά στοιχεία σχεδιασμού και έρευνας web3. Θα μάθετε τις βασικές έννοιες που μπορεί να διαφέρουν από άλλους σχεδιασμούς εφαρμογών που γνωρίζετε. + +Χρειάζεστε πρώτα μια πιο βασική κατανόηση του web3; Ρίξτε μια ματιά στο [**Κέντρο Μάθησης**](/learn/). + +## Ξεκινήστε με την έρευνα χρηστών {#start-with-user-research} + +Ο αποτελεσματικός σχεδιασμός υπερβαίνει τη δημιουργία των οπτικά ελκυστικών διεπαφών χρήστη. Περιλαμβάνει την απόκτηση βαθιάς κατανόησης των αναγκών, των στόχων και των κινητήριων παραγόντων του χρήστη. Επομένως, συνιστούμε ανεπιφύλακτα σε όλους τους σχεδιαστές να υιοθετήσουν μια διαδικασία σχεδιασμού, όπως το [**double diamond process**](https://en.wikipedia.org/wiki/Double_Diamond_(design_process_model)), για να διασφαλίσουν ότι η εργασία τους είναι σκόπιμη και εσκεμμένη. + +- [Το Web3 χρειάζεται περισσότερους ερευνητές και σχεδιαστές UX](https://blog.akasha.org/akasha-conversations-9-web3-needs-more-ux-researchers-and-designers) - Μια επισκόπηση της τρέχουσας ωριμότητας σχεδιασμού +- [Ένας απλός οδηγός για την έρευνα UX στο web3](https://uxplanet.org/a-complete-guide-to-ux-research-for-web-3-0-products-d6bead20ebb1) - Απλός οδηγός για το πώς να κάνετε έρευνα +- [Πώς να προσεγγίσετε αποφάσεις UX στο Web3](https://archive.devcon.org/archive/watch/6/data-empathy-how-to-approach-ux-decisions-in-web3/) - Μια σύντομη επισκόπηση της ποσοτικής και ποιοτικής έρευνας και οι διαφορές μεταξύ των δύο (βίντεο, 6 λεπτά) +- [Ερευνητής UX στο Web3](https://medium.com/@georgia.rakusen/what-its-like-being-a-user-researcher-in-web3-6a4bcc096849) - Μια προσωπική άποψη για το πώς είναι να είσαι ερευνητής UX στο web3 + +## Ερευνητικές μελέτες στο web3 {#research-in-web3} + +Αυτή είναι μια επιμελημένη λίστα έρευνας χρηστών που έγινε στο web3 που μπορεί να βοηθήσει με αποφάσεις σχεδιασμού και προϊόντων ή να λειτουργήσει ως έμπνευση για τη διεξαγωγή δικής σας μελέτης. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Περιοχή εστίασης + + Όνομα +
+ Προετοιμασία Κρύπτο + + The Reown Pulse 2024: Καταναλωτικό Συναίσθημα Κρύπτο & Χρήση +
+ Προετοιμασία Κρύπτο + + CRADL: UX στα κρυπτονομίσματα +
+ Προετοιμασία Κρύπτο + + CRADL: Ενσωμάτωση σε κρυπτονομίσματα +
+ Προετοιμασία Κρύπτο + + Αναφορά Bitcoin UX +
+ Προετοιμασία Κρύπτο + + ConSensys: Η κατάσταση αντίληψης του Web3 σε όλο τον κόσμο 2023 +
+ Προετοιμασία Κρύπτο + + NEAR: Επιτάχυνση του ταξιδιού προς την υιοθέτηση +
+ Staking (αποθήκευση) + + OpenUX: Rocket Pool Node Operator UX +
+ Staking (αποθήκευση) + + Αποθήκευση: Βασικές τάσεις, εκδόσεις και προβλέψεις - Eth Staker +
+ Staking (αποθήκευση) + + Δέσμευση κεφαλαίου σε πολλαπλές εφαρμογές +
+ DAO + + Έρευνα DAO 2022: Τι χρειάζονται οι δημιουργοί DAO; +
+ DeFi + + Coverage pools +
+ DeFi + + ConSensys: Αναφορά Έρευνας Χρηστών DeFi 2022 +
+ Metaverse + + Metaverse: Αναφορά έρευνας χρήστη +
+ Metaverse + + Συνεχίζοντας το Safari: Έρευνα χρηστών στο Metaverse (βίντεο, 27 λεπτά) +
+ Στατιστικά UX του Ethereum.org + + Πίνακας ελέγχου έρευνας ευχρηστίας και ικανοποίησης χρηστών - Ethereum.org +
+ +## Σχεδίαση για web3 {#design-for-web3} + +- [Web3 UX Design Handbook](https://web3ux.design/) - Πρακτικός οδηγός για το σχεδιασμό εφαρμογών Web3 +- [Web3 Design Principles](https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1) - Ένα πλαίσιο κανόνων UX για dapp που βασίζονται σε blockchain +- [Blockchain Design Principles](https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e) - Διδάγματα από την ομάδα σχεδιασμού blockchain της IBM +- [Neueux.com](https://neueux.com/apps) - Βιβλιοθήκη UI ροών χρηστών με διάφορες επιλογές φιλτραρίσματος +- [Web3's Usability Crisis: What You NEED to Know!](https://www.youtube.com/watch?v=oBSXT_6YDzg) - Συζήτηση σε πάνελ σχετικά με τις παγίδες της δημιουργίας έργων με επίκεντρο τους προγραμματιστές (βίντεο, 34 λεπτά) + +## Ξεκινώντας {#getting-started} + +- [Κατευθυντήριες αρχές για το Web3](/developers/docs/design-and-ux/heuristics-for-web3/) - 7 Κατευθυντήριες αρχές για τον σχεδιασμό διεπαφών Web3 +- [Βέλτιστες πρακτικές σχεδιασμού DEX](/developers/docs/design-and-ux/dex-design-best-practice/) - Ένας οδηγός για τον σχεδιασμό Αποκεντρωμένων Ανταλλαγών + +## Μελέτες περιπτώσεων σχεδιασμού Web3 {#design-case-studies} + +- [Deep Work Studio](https://deepwork.studio/case-studies/) +- [Πώληση NFT στο OpenSea](https://builtformars.com/case-studies/opensea) +- [Πορτοφόλι UX καταρρίπτει πώς πρέπει να αλλάξουν τα πορτοφόλια](https://www.youtube.com/watch?v=oTpuxYj8JWI&ab_channel=ETHDenver) (βίντεο, 20 λεπτά) + +## Σχεδιασμός Ερευνών {#bounties} + +- [Dework](https://app.dework.xyz/bounties) +- [Buildbox hackathons](https://app.buidlbox.io/) +- [ETHGlobal hackathons](https://ethglobal.com/) + +## DAO και κοινότητες σχεδιασμού {#design-daos-and-communities} + +Συμμετέχετε σε επαγγελματικούς οργανισμούς με γνώμονα την κοινότητα ή εγγραφείτε σε ομάδες σχεδιασμού για να συζητήσετε θέματα και τάσεις σχετικά με τον σχεδιασμό και την έρευνα με άλλα μέλη. + +- [Vectordao.com](https://vectordao.com/) +- [Deepwork.studio](https://www.deepwork.studio/) +- [We3.co](https://we3.co/) +- [Openux.xyz](https://openux.xyz/) +- [Web3Design ανοιχτού κώδικα](https://www.web3designers.org/) + +## Συστήματα σχεδίασης και άλλοι πόροι σχεδιασμού {#design-systems-and-resources} + +- [Σχεδιασμός Optimism](https://www.figma.com/@optimism) (Figma) +- [Σύστημα σχεδιασμού Ethereum.org](https://www.figma.com/@ethdotorg) (Figma) +- [Finity, ένα σύστημα σχεδιασμού από το Polygon](https://www.figma.com/community/file/1073921725197233598/finity-design-system) (Figma) +- [Σύστημα σχεδιασμού Kleros](https://www.figma.com/community/file/999852250110186964/kleros-design-system) (Figma) +- [Σύστημα σχεδιασμού Safe](https://www.figma.com/community/file/1337417127407098506/safe-design-system) (Figma) +- [Σύστημα σχεδιασμού ENS](https://thorin.ens.domains/) +- [Σύστημα σχεδίασης αντιγράφου](https://degen-xyz.vercel.app/) + +**Τα άρθρα και τα έργα που αναφέρονται σε αυτήν τη σελίδα δεν αποτελούν επίσημες εγκρίσεις** και παρέχονται μόνο για ενημερωτικούς σκοπούς. Προσθέτουμε συνδέσμους σε αυτήν τη σελίδα βάσει κριτηρίων της [πολιτικής δημοσίευσής](/contributing/design/adding-design-resources) μας. Εάν θέλετε να προσθέσουμε ένα έργο ή άρθρο, επεξεργαστείτε αυτήν τη σελίδα στο [GitHub](https://github.com/ethereum/ethereum-org-website/blob/dev/public/content/developers/docs/design-and-ux/index.md). diff --git a/public/content/translations/el/developers/docs/development-networks/index.md b/public/content/translations/el/developers/docs/development-networks/index.md index e8349ee860d..18621b855ab 100644 --- a/public/content/translations/el/developers/docs/development-networks/index.md +++ b/public/content/translations/el/developers/docs/development-networks/index.md @@ -47,10 +47,9 @@ _θα μπορούσατε_ [να εκτελέσετε έναν κόμβο](/dev ### Δημόσιες αλυσίδες δοκιμών Ethereum {#public-beacon-testchains} -Υπάρχουν επίσης δύο διατηρούμενες δημόσιες εφαρμογές δοκιμών του Ethereum: το Goerli και το Sepolia. Το προτεινόμενο δίκτυο δοκιμών με μακροπρόθεσμη υποστήριξη είναι το Goerli, στο οποίο ο καθένας έχει δυνατότητα να επικυρώσει. Το Sepolia είναι μια νεότερη, μικρότερη αλυσίδα που αναμένεται επίσης να διατηρηθεί για το άμεσο μέλλον, με ένα επιτρεπόμενο σύνολο επικυρωτών (που σημαίνει ότι δεν υπάρχει γενική πρόσβαση σε νέους επικυρωτές σε αυτό το δίκτυο δοκιμών). Η αλυσίδα Ropsten αναμένεται να καταργηθεί το 4ο τρίμηνο του 2022 και η αλυσίδα Rinkeby αναμένεται να καταργηθεί το 2ο-3ο τρίμηνο του 2023. +Υπάρχουν επίσης δύο διατηρούμενες δημόσιες εφαρμογές δοκιμών του Ethereum: το Sepolia και το Hoodi. Το προτεινόμενο δίκτυο δοκιμών με μακροπρόθεσμη υποστήριξη είναι το Hoodi, στο οποίο ο καθένας έχει δυνατότητα να επικυρώσει. Το Sepolia χρησιμοποιεί ένα σύνολο επικυρωτών με δικαιώματα, που σημαίνει ότι δεν υπάρχει γενική πρόσβαση σε νέους επικυρωτές σε αυτό το δίκτυο δοκιμών. -- [Πλατφόρμα εκκίνησης αποθήκευσης κεφαλαίου Goerli](https://goerli.launchpad.ethereum.org/) -- [Ανακοίνωση κατάργησης Ropsten, Rinkeby & Kiln](https://blog.ethereum.org/2022/06/21/testnet-deprecation) +- [Πλατφόρμα εκκίνησης αποθήκευσης κεφαλαίου Hoodi](https://hoodi.launchpad.ethereum.org/) ### Πακέτο Kurtosis Ethereum {#kurtosis} diff --git a/public/content/translations/el/developers/docs/mev/index.md b/public/content/translations/el/developers/docs/mev/index.md new file mode 100644 index 00000000000..599a6e04217 --- /dev/null +++ b/public/content/translations/el/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: Μέγιστη τιμή εξαγωγής (MEV) +description: Εισαγωγή για τη μέγιστη αξία εξαγωγής (MEV) +lang: el +--- + +Η μέγιστη εξαχθείσα αξία (MEV) αναφέρεται στη μέγιστη αξία που μπορεί να εξαχθεί από την παραγωγή μπλοκ πέραν της τυπικής ανταμοιβής μπλοκ και των τελών gas με τη συμπερίληψη, εξαίρεση και αλλαγή της σειράς των συναλλαγών σε ένα μπλοκ. + +## Μέγιστη εξαχθείσα αξία {#maximal-extractable-value} + +Η μέγιστη εξαχθείσα αξία εφαρμόστηκε αρχικά στο πλαίσιο της [απόδειξης εργασίας](/developers/docs/consensus-mechanisms/pow/) και αρχικά αναφερόταν ως «εξαχθείσα αξία από κρυπτορύχους». Αυτό συμβαίνει επειδή στην απόδειξη εργασίας, οι κρυπτορύχοι ελέγχουν τη συμπερίληψη, την εξαίρεση και τη σειρά των συναλλαγών. Ωστόσο, από τη μετάβαση στην απόδειξη συμμετοχής μέσω [Της Συγχώνευσης](/roadmap/merge), οι επικυρωτές είναι υπεύθυνοι για αυτούς τους ρόλους και η κρυπτόρυξη δεν αποτελεί πλέον μέρος του πρωτοκόλλου Ethereum. Οι μέθοδοι εξαγωγής αξίας εξακολουθούν να υπάρχουν, επομένως χρησιμοποιείται πλέον ο όρος «Μέγιστη εξαχθέα αξία». + +## Προαπαιτούμενα {#prerequisites} + +Βεβαιωθείτε ότι είστε εξοικειωμένοι με τις [συναλλαγές](/developers/docs/transactions/), τα [μπλοκ](/developers/docs/blocks/), την [απόδειξη συμμετοχής](/developers/docs/consensus-mechanisms/pos) και το [gas](/developers/docs/gas/). Η εξοικείωση με τις [dapps](/dapps/) και [DeFi](/defi/) είναι επίσης χρήσιμη. + +## Εξαγωγή MEV {#mev-extraction} + +Στη θεωρία, το MEV αποδίδεται εξ ολοκλήρου στους επικυρωτές επειδή είναι το μόνο μέρος που μπορεί να εγγυηθεί την εκτέλεση μιας κερδοφόρας ευκαιρίας MEV. Στην πράξη, ωστόσο, ένα μεγάλο μέρος της MEV εξάγεται από ανεξάρτητους συμμετέχοντες δικτύου που ονομάζονται «αναζητητές». Οι αναζητητές εκτελούν σύνθετους αλγόριθμους σε δεδομένα blockchain για να εντοπίσουν κερδοφόρες ευκαιρίες MEV και έχουν bots για να υποβάλλουν αυτόματα αυτές τις κερδοφόρες συναλλαγές στο δίκτυο. + +Οι επικυρωτές λαμβάνουν πάντως ένα μέρος του συνολικού ποσού MEV επειδή οι αναζητητές είναι πρόθυμοι να πληρώσουν υψηλές αμοιβές gas (οι οποίες πηγαίνουν στον επικυρωτή) σε αντάλλαγμα για υψηλότερη πιθανότητα συμπερίληψης των κερδοφόρων συναλλαγών τους σε ένα μπλοκ. Υποθέτοντας ότι οι αναζητητές είναι οικονομικά ορθολογικοί, η αμοιβή gas που είναι πρόθυμος να πληρώσει ένας αναζητητής θα είναι ένα ποσό έως και 100% του MEV του αναζητητή (επειδή εάν η αμοιβή αερίου ήταν υψηλότερη, ο αναζητητής θα έχανε χρήματα). + +Με αυτό, για ορισμένες ιδιαίτερα ανταγωνιστικές ευκαιρίες MEV, όπως το [arbitrage DEX](#mev-examples-dex-arbitrage), οι αναζητητές μπορεί να πρέπει να πληρώσουν το 90% ή και περισσότερο από το συνολικό έσοδο MEV τους σε αμοιβές gas στον επικυρωτή επειδή τόσοι πολλοί άνθρωποι θέλουν να εκτελέσουν το ίδιο κερδοφόρο εμπόριο arbitrage. Αυτό συμβαίνει επειδή ο μόνος τρόπος για να εγγυηθεί κανείς ότι η συναλλαγή arbitrage τους θα εκτελεστεί είναι εάν υποβάλει τη συναλλαγή με την υψηλότερη τιμή gas. + +### Gas golfing {#mev-extraction-gas-golfing} + +Αυτή η δυναμική έχει κάνει το να είσαι καλός στο "gas golfing" - τον προγραμματισμό συναλλαγών έτσι ώστε να χρησιμοποιούν την ελάχιστη ποσότητα gas, ένα ανταγωνιστικό πλεονέκτημα, επειδή επιτρέπει στους αναζητητές να ορίσουν μια υψηλότερη τιμή gas διατηρώντας σταθερές τις συνολικές αμοιβές αερίου (αφού οι αμοιβές gas = τιμή gas \* gas που χρησιμοποιείται). + +Μερικές γνωστές τεχνικές gas golfing περιλαμβάνουν: τη χρήση διευθύνσεων που ξεκινούν με μια μακρά σειρά μηδενικών (π.χ. [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) καθώς καταλαμβάνουν λιγότερο χώρο (και συνεπώς αέριο) για αποθήκευση και αφήνοντας μικρά υπόλοιπα token [ERC-20](/developers/docs/standards/tokens/erc-20/) σε συμβόλαια, καθώς κοστίζει περισσότερο gas να αρχικοποιηθεί μια θέση αποθήκευσης (η περίπτωση εάν η ισορροπία είναι 0) από το να ενημερωθεί μια θέση αποθήκευσης. Η εύρεση περισσότερων τεχνικών για τη μείωση της χρήσης gas είναι ένας ενεργός τομέας έρευνας μεταξύ των αναζητητών. + +### Γενικευμένοι frontrunners {#mev-extraction-generalized-frontrunners} + +Αντί να προγραμματίζουν πολύπλοκους αλγόριθμους για την ανίχνευση κερδοφόρων ευκαιριών MEV, ορισμένοι αναζητητές εκτελούν γενικευμένους frontrunners. Οι γενικευμένοι frontrunners είναι bots που παρακολουθούν το mempool για να εντοπίσουν κερδοφόρες συναλλαγές. Ο frontrunner θα αντιγράψει τον κώδικα της πιθανώς κερδοφόρας συναλλαγής, θα αντικαταστήσει τις διευθύνσεις με τη διεύθυνση του frontrunner και θα εκτελέσει τη συναλλαγή τοπικά για να επαληθεύσει διπλά ότι η τροποποιημένη συναλλαγή έχει ως αποτέλεσμα κέρδος για τη διεύθυνση του frontrunner. Εάν η συναλλαγή είναι πράγματι κερδοφόρα, ο frontrunner θα υποβάλει την τροποποιημένη συναλλαγή με την διεύθυνση που αντικατέστησε και υψηλότερη τιμή gas, "frontrunning" την αρχική συναλλαγή και αποκτώντας το MEV του αρχικού αναζητητή. + +### Flashbots {#mev-extraction-flashbots} + +Τα Flashbots είναι ένα ανεξάρτητο έργο που επεκτείνει τους πελάτες εκτέλεσης με μια υπηρεσία που επιτρέπει στους αναζητητές να υποβάλλουν συναλλαγές MEV στους επικυρωτές χωρίς να τις αποκαλύπτουν στο δημόσιο mempool. Αυτό αποτρέπει τις συναλλαγές από το να γίνουν frontrun από γενικευμένους frontrunners. + +## Παραδείγματα MEV {#mev-examples} + +Η MEV προκύπτει στην κρυπτοαλυσίδα με μερικούς τρόπους. + +### DEX arbitrage {#mev-examples-dex-arbitrage} + +Το αρμπιτράζ [αποκεντρωμένου ανταλλακτηρίου](/glossary/#dex) (DEX) είναι η πιο απλή και γνωστή ευκαιρία MEV. Ως αποτέλεσμα, είναι επίσης η πιο ανταγωνιστική. + +Λειτουργεί ως εξής: εάν δύο DEX προσφέρουν ένα token σε δύο διαφορετικές τιμές, κάποιος μπορεί να αγοράσει το token από το DEX με χαμηλότερη τιμή και να το πουλήσει στο DEX με υψηλότερη τιμή σε μια ενιαία, ατομική συναλλαγή. Χάρη στους μηχανισμούς της κρυπτοαλυσίδας, αυτό είναι αληθινό, χωρίς κίνδυνο αρμπιτράζ. + +[Ακολουθεί ένα παράδειγμα](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) μιας κερδοφόρας συναλλαγής αρμπιτράζ όπου ένας ερευνητής μετατρέπει 1.000 ETH σε 1.045 ETH εκμεταλλευόμενος τις διαφορετικές τιμές του ζεύγους ETH/DAI στο Uniswap έναντι του Sushiswap. + +### Ρευστοποιήσεις {#mev-examples-liquidations} + +Οι ρευστοποιήσεις πρωτοκόλλων δανεισμού παρουσιάζουν μια άλλη γνωστή ευκαιρία MEV. + +Τα πρωτόκολλα δανεισμού όπως το Maker και το Aave απαιτούν από τους χρήστες να καταθέσουν κάποια εξασφάλιση (π.χ. ETH). Αυτή η κατατεθειμένη εξασφάλιση χρησιμοποιείται στη συνέχεια για να δανείσει σε άλλους χρήστες. + +Οι χρήστες μπορούν στη συνέχεια να δανείζονται περιουσιακά στοιχεία και token από άλλους, ανάλογα με το τι χρειάζονται (π.χ. μπορείτε να δανειστείτε MKR εάν θέλετε να ψηφίσετε σε μια πρόταση διακυβέρνησης MakerDAO) έως ένα συγκεκριμένο ποσοστό της κατατεθειμένης εξασφάλισης τους. Για παράδειγμα, εάν το ποσό δανεισμού είναι μέγιστο 30%, ένας χρήστης που καταθέτει 100 DAI στο πρωτόκολλο μπορεί να δανείσει έως και 30 DAI αξίας ενός άλλου περιουσιακού στοιχείου. Το πρωτόκολλο καθορίζει το ακριβές ποσοστό δανειακής ισχύος. + +Καθώς η αξία της εξασφάλισης ενός δανειολήπτη κυμαίνεται, έτσι και η δανειακή του ισχύς. Εάν, λόγω των διακυμάνσεων της αγοράς η αξία των δανεισμένων περιουσιακών στοιχείων υπερβαίνει για παράδειγμα το 30% της αξίας της εγγύησής τους, (και πάλι, το ακριβές ποσοστό καθορίζεται από το πρωτόκολλο), το πρωτόκολλο συνήθως επιτρέπει σε οποιονδήποτε να ρευστοποιήσει την εγγύηση, αποπληρώνοντας αμέσως τους δανειστές (αυτό είναι παρόμοιο με το πώς λειτουργούν οι [κλήσεις margin](https://www.investopedia.com/terms/m/margincall.asp) στα παραδοσιακά χρηματοοικονομικά). Εάν ρευστοποιηθεί, ο δανειολήπτης συνήθως πρέπει να καταβάλει μια σημαντική αμοιβή ρευστοποίησης, μέρος της οποίας πηγαίνει στον ρευστοποιητή, αυτό είναι όπου εμφανίζεται η ευκαιρία MEV. + +Οι ερευνητές ανταγωνίζονται για την ανάλυση δεδομένων κρυπτοαλυσίδας όσο το δυνατόν γρηγορότερα για να προσδιορίσουν ποιους δανειολήπτες μπορούν να ρευστοποιηθούν και να είναι οι πρώτοι που θα υποβάλουν μια συναλλαγή ρευστοποίησης και θα συλλέξουν την αμοιβή ρευστοποίησης για τον εαυτό τους. + +### Sandwich trading {#mev-examples-sandwich-trading} + +Η συναλλαγή Sandwich είναι μια άλλη κοινή μέθοδος εξαγωγής MEV. + +Για να κάνει sandwich, ένας αναζητητής θα παρακολουθεί το mempool για μεγάλες συναλλαγές DEX. Για παράδειγμα, ας υποθέσουμε ότι κάποιος θέλει να αγοράσει 10.000 UNI με DAI στο Uniswap. Μια συναλλαγή αυτού του μεγέθους θα έχει μια σημαντική επίδραση στο ζεύγος UNI/DAI, πιθανώς αυξάνοντας σημαντικά την τιμή του UNI σε σχέση με το DAI. + +Ένας αναζητητής μπορεί να υπολογίσει την κατά προσέγγιση επίδραση τιμής αυτής της μεγάλης συναλλαγής στο ζεύγος UNI/DAI και να εκτελέσει μια βέλτιστη εντολή αγοράς αμέσως _πριν_ από τη μεγάλη συναλλαγή, αγοράζοντας UNI φθηνά, και στη συνέχεια να εκτελέσει μια εντολή πώλησης αμέσως _μετά_ τη μεγάλη συναλλαγή, για την υψηλότερη τιμή που προκαλείται από τη μεγάλη εντολή. + +Ωστόσο, το Sandwich είναι πιο επικίνδυνο καθώς δεν είναι ατομικό (σε αντίθεση με το arbitrage DEX, όπως περιγράφεται παραπάνω) και είναι επιρρεπές σε μια [επίθεση salmonella](https://github.com/Defi-Cartel/salmonella). + +### NFT MEV {#mev-examples-nfts} + +Το MEV στον χώρο των NFT είναι ένα αναδυόμενο φαινόμενο και δεν είναι απαραίτητα κερδοφόρο. + +Ωστόσο, δεδομένου ότι οι συναλλαγές NFT συμβαίνουν στην ίδια κρυπτοαλυσίδα που μοιράζονται όλες οι άλλες συναλλαγές Ethereum, οι αναζητητές μπορούν να χρησιμοποιήσουν παρόμοιες τεχνικές με αυτές που χρησιμοποιούνται στις παραδοσιακές ευκαιρίες MEV στην αγορά NFT. + +Για παράδειγμα, εάν υπάρχει μια δημοφιλής πτώση NFT και ένας αναζητητής θέλει ένα συγκεκριμένο NFT ή σύνολο NFT, μπορεί να προγραμματίσει μια συναλλαγή έτσι ώστε να είναι ο πρώτος στη σειρά για να αγοράσει το NFT ή μπορεί να αγοράσει ολόκληρο το σύνολο των NFT σε μια ενιαία συναλλαγή. Ή εάν ένα NFT είναι [κατά λάθος εισηγμένο σε χαμηλή τιμή](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), ένας αναζητητής μπορεί να προλάβει άλλους αγοραστές και να το αρπάξει φθηνά. + +Ένα εμφανές παράδειγμα NFT MEV συνέβη όταν ένας αναζητητής δαπάνησε 7 εκατομμύρια δολάρια για να [αγοράσει](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) κάθε ένα Cryptopunk στην τιμή εκκίνησης. Ένας ερευνητής blockchain [εξήγησε στο Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) πώς ο αγοραστής συνεργάστηκε με έναν πάροχο MEV για να κρατήσει την αγορά του μυστική. + +### The long tail {#mev-examples-long-tail} + +Το arbitrage DEX, οι εκκαθαρίσεις και το sandwich trading είναι όλες πολύ γνωστές ευκαιρίες MEV και είναι απίθανο να είναι κερδοφόρες για νέους αναζητητές. Ωστόσο, υπάρχει μια μακρύς δρόμος από λιγότερο γνωστές ευκαιρίες MEV (το NFT MEV είναι πιθανώς μια τέτοια ευκαιρία). + +Οι αναζητητές που μόλις ξεκινούν μπορεί να είναι σε θέση να βρουν περισσότερη επιτυχία αναζητώντας MEV σε αυτή τη μεγαλύτερο δρόμο. Ο [πίνακας εργασιών MEV](https://github.com/flashbots/mev-job-board) της Flashbot αναφέρει κάποιες αναδυόμενες ευκαιρίες. + +## Επιδράσεις MEV {#effects-of-mev} + +Το MEV δεν είναι καθόλου κακό — υπάρχουν θετικές και αρνητικές συνέπειες για το MEV στο Ethereum. + +### Τα θετικά {#effects-of-mev-the-good} + +Πολλά έργα DeFi βασίζονται σε οικονομικά ορθολογικούς παράγοντες για να εξασφαλίσουν τη χρησιμότητα και τη σταθερότητα των πρωτοκόλλων τους. Για παράδειγμα, το arbitrage DEX εξασφαλίζει ότι οι χρήστες λαμβάνουν τις καλύτερες και πιο σωστές τιμές για τα token τους, και τα πρωτόκολλα δανεισμού βασίζονται σε γρήγορες εκκαθαρίσεις όταν οι δανειολήπτες πέφτουν κάτω από τους λόγους εξασφάλισης για να εξασφαλίσουν ότι οι δανειστές πληρώνονται. + +Χωρίς ορθολογικούς αναζητητές που να αναζητούν και να διορθώνουν οικονομικές ανεπάρκειες και να εκμεταλλεύονται τα οικονομικά κίνητρα των πρωτοκόλλων, τα πρωτόκολλα DeFi και οι εφαρμογές DeFi γενικά ενδέχεται να μην είναι τόσο ισχυρά όσο είναι σήμερα. + +### Τα αρνητικά {#effects-of-mev-the-bad} + +Στο επίπεδο εφαρμογής, ορισμένες μορφές MEV, όπως το sandwich trading, έχουν ως αποτέλεσμα μια σαφώς χειρότερη εμπειρία για τους χρήστες. Οι χρήστες που είναι sandwiched αντιμετωπίζουν αυξημένη ολίσθηση και χειρότερη εκτέλεση στις συναλλαγές τους. + +Στο επίπεδο δικτύου, οι γενικευμένοι frontrunners και οι δημοπρασίες τιμής gas στις οποίες συχνά συμμετέχουν (όταν δύο ή περισσότεροι frontrunners ανταγωνίζονται για τη συναλλαγή τους να συμπεριληφθεί στο επόμενο μπλοκ ανεβάζοντας προοδευτικά την τιμή gas των δικών τους συναλλαγών) οδηγούν σε συμφόρηση δικτύου και υψηλές τιμές gas για όλους τους άλλους που προσπαθούν να εκτελέσουν κανονικές συναλλαγές. + +Εκτός από αυτό που συμβαίνει _εντός_ των μπλοκ, το MEV μπορεί να έχει επιζήμιες επιπτώσεις _μεταξύ_ των μπλοκ. Εάν το MEV που είναι διαθέσιμο σε ένα μπλοκ υπερβαίνει σημαντικά την τυπική ανταμοιβή μπλοκ, οι επικυρωτές ενδέχεται να έχουν κίνητρα να αναδιοργανώσουν τα μπλοκ και να κατακτήσουν το MEV για τον εαυτό τους, προκαλώντας αναδιοργάνωση της κρυπτοαλυσίδας και αστάθεια συναίνεσης. + +Η πιθανότητα αναδιοργάνωσης της κρυπτοαλυσίδας έχει [διερευνηθεί προηγουμένως στην κρυπτοαλυσίδα του Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Καθώς η ανταμοιβή μπλοκ του Bitcoin μειώνεται στο μισό και τα τέλη συναλλαγής αποτελούν όλο και μεγαλύτερο μέρος της ανταμοιβής μπλοκ, προκύπτουν καταστάσεις όπου γίνεται οικονομικά λογικό για τους κρυπτορύχους να παρατήσουν την ανταμοιβή του επόμενου μπλοκ και αντίθετα να επανακρυπτορύξουν παλιά μπλοκ με υψηλότερα τέλη. Με την ανάπτυξη του MEV, θα μπορούσε να συμβεί η ίδια κατάσταση στο Ethereum, απειλώντας την ακεραιότητα της κρυπτοαλυσίδας. + +## Κατάσταση MEV {#state-of-mev} + +Η εξαγωγή MEV διογκώθηκε στις αρχές του 2021, οδηγώντας σε εξαιρετικά υψηλές τιμές αερίου τους πρώτους μήνες του έτους. Η εμφάνιση του MEV relay της Flashbots έχει μειώσει την αποτελεσματικότητα των γενικευμένων frontrunners και έχει μεταφέρει τους πλειστηριασμούς τιμών gas εκτός αλυσίδας, μειώνοντας τις τιμές gas για τους κανονικούς χρήστες. + +Ενώ πολλοί αναζητητές εξακολουθούν να κερδίζουν καλά χρήματα από το MEV, καθώς οι ευκαιρίες γίνονται πιο γνωστές και όλο και περισσότεροι αναζητητές ανταγωνίζονται για την ίδια ευκαιρία, οι επικυρωτές θα κατακτούν όλο και περισσότερο συνολικό έσοδο MEV (επειδή οι ίδιοι τύποι πλειστηριασμών gas όπως περιγράφηκαν αρχικά συμβαίνουν επίσης στο Flashbots, αν και ιδιωτικά, και οι επικυρωτές θα κατακτούν το προκύπτον έσοδο gas). Το MEV δεν είναι επίσης μοναδικό για το Ethereum και καθώς οι ευκαιρίες γίνονται πιο ανταγωνιστικές στο Ethereum, οι αναζητητές μετακινούνται σε εναλλακτικές αλυσίδες μπλοκ όπως το Binance Smart Chain, όπου υπάρχουν παρόμοιες ευκαιρίες MEV με αυτές στο Ethereum με λιγότερο ανταγωνισμό. + +Από την άλλη πλευρά, η μετάβαση από την απόδειξη εργασίας στην απόδειξη συμμετοχής και η συνεχιζόμενη προσπάθεια κλιμάκωσης του Ethereum χρησιμοποιώντας rollups αλλάζουν το τοπίο του MEV με τρόπους που είναι ακόμη κάπως ασαφείς. Δεν είναι ακόμη καλά κατανοητό ότι το να έχουμε εγγυημένους προτείνοντες μπλοκ γνωστούς εκ των προτέρων, αλλάζει τη δυναμική εξαγωγής MEV σε σύγκριση με το πιθανολογικό μοντέλο στην απόδειξη εργασίας ή πώς αυτό θα διαταραχθεί όταν εφαρμοστεί η [εκλογή μυστικού ηγέτη](https://ethresear.ch/t/secret-non-single-leader-election/11789) και η [τεχνολογία κατανεμημένου επικυρωτή](/staking/dvt/). Ομοίως, μένει να φανεί ποιες ευκαιρίες MEV υπάρχουν όταν η περισσότερη δραστηριότητα των χρηστών μεταφέρεται μακριά από το Ethereum και στα επίπεδα 2 rollups και shards του. + +## MEV στο Ethereum της Απόδειξης Συμμετοχής (PoS) {#mev-in-ethereum-proof-of-stake} + +Όπως εξηγήθηκε, το MEV έχει αρνητικές επιπτώσεις στη συνολική εμπειρία χρήστη και την ασφάλεια του επιπέδου συναίνεσης. Αλλά η μετάβαση του Ethereum σε μια συναίνεση απόδειξης συμμετοχής (που ονομάζεται "The Merge") ενδεχομένως εισάγει νέους κινδύνους που σχετίζονται με το MEV: + +### Κεντρικοποίηση Επικυρωτών {#validator-centralization} + +Στο Ethereum μετά το Merge, οι επικυρωτές (που έχουν κάνει καταθέσεις ασφαλείας 32 ETH) καταλήγουν σε συναίνεση σχετικά με την εγκυρότητα των μπλοκ που προστίθενται στην αλυσίδα Beacon. Δεδομένου ότι τα 32 ETH μπορεί να είναι εκτός της εμβέλειας πολλών, η [συμμετοχή σε μια δεξαμενή αποθήκευσης κεφαλαίου](/staking/pools/) μπορεί να είναι μια πιο εφικτή επιλογή. Ωστόσο, μια υγιής κατανομή της [ατομικής αποθήκευσης κεφαλαίου](/staking/solo/) είναι ιδανική, καθώς μετριάζει την κεντρικοποίηση των επικυρωτών και βελτιώνει την ασφάλεια του Ethereum. + +Ωστόσο, πιστεύεται ότι η εξαγωγή MEV είναι ικανή να επιταχύνει την κεντρικοποίηση των επικυρωτών. Αυτό οφείλεται εν μέρει στο ότι, καθώς οι επικυρωτές [κερδίζουν λιγότερα για την πρόταση μπλοκ](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) από ότι οι κρυπτορύκτες στο παρελθόν, η εξαγωγή MEV έχει [επηρέασε πολύ τα κέρδη των επικυρωτών](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) από τη [Η συγχώνευση](/roadmap/merge/). + +Οι μεγαλύτερες δεξαμενές αποθήκευσης κεφαλαίου θα έχουν πιθανώς περισσότερους πόρους για να επενδύσουν στις απαραίτητες βελτιστοποιήσεις για να κατακτήσουν τις ευκαιρίες MEV. Όσο περισσότερο MEV εξάγουν αυτές οι δεξαμενές, τόσο περισσότερους πόρους έχουν για να βελτιώσουν τις δυνατότητες εξαγωγής MEV τους (και να αυξήσουν το συνολικό έσοδο), δημιουργώντας ουσιαστικά [οικονομίες κλίμακας](https://www.investopedia.com/terms/e/economiesofscale.asp#). + +Με λιγότερους πόρους στη διάθεσή τους, οι χρήστες με ατομική αποθήκευση ενδέχεται να μην είναι σε θέση να επωφεληθούν από τις ευκαιρίες MEV. Αυτό μπορεί να αυξήσει την πίεση στους ανεξάρτητους επικυρωτές να συμμετάσχουν σε ισχυρές δεξαμενές αποθήκευσης για να ενισχύσουν τα κέρδη τους, μειώνοντας την αποκέντρωση στο Ethereum. + +### Mempool με Άδειες {#permissioned-mempools} + +Ως απάντηση στις επιθέσεις sandwiching και frontrunning, οι έμποροι ενδέχεται να αρχίσουν να πραγματοποιούν συναλλαγές εκτός αλυσίδας με επικυρωτές για την ιδιωτικότητα των συναλλαγών. Αντί να στείλει μια πιθανή συναλλαγή MEV στο δημόσιο mempool, ο έμπορος τη στέλνει απευθείας στον επικυρωτή, ο οποίος τη συμπεριλαμβάνει σε ένα μπλοκ και μοιράζεται τα κέρδη με τον έμπορο. + +Οι "σκοτεινές δεξαμενές" είναι μια μεγαλύτερη έκδοση αυτής της συμφωνίας και λειτουργούν ως mempool με άδειες, προσβάσιμες μόνο σε χρήστες που είναι πρόθυμοι να πληρώσουν ορισμένες αμοιβές. Αυτή η τάση θα μειώσει την ανάγκη άδειας και την έλλειψη εμπιστοσύνης του Ethereum και ενδεχομένως θα μετατρέψει το blockchain σε έναν μηχανισμό "πληρώνω για να παίξω" που ευνοεί τον υψηλότερο πλειοδότη. + +Τα επιτρεπόμενα mempools θα επιτάχυναν επίσης τους κινδύνους κεντρικοποίησης που περιγράφονται στην προηγούμενη ενότητα. Οι μεγάλες δεξαμενές που εκτελούν πολλούς επικυρωτές θα ωφεληθούν πιθανώς από την προσφορά ιδιωτικότητας συναλλαγών σε εμπόρους και χρήστες, αυξάνοντας τα έσοδα MEV τους. + +Η καταπολέμηση αυτών των προβλημάτων που σχετίζονται με το MEV στο Ethereum μετά το Merge αποτελεί βασικό τομέα έρευνας. Μέχρι σήμερα, δύο προτεινόμενες λύσεις για τη μείωση του αρνητικού αντίκτυπου του MEV στην αποκέντρωση και την ασφάλεια του Ethereum μετά το Merge είναι ο [**διαχωρισμός προτείνοντος-κατασκευαστή (PBS)**](/roadmap/pbs/) και το [**API κατασκευαστή**](https://github.com/ethereum/builder-specs). + +### Διαχωρισμός Προτείνοντος-Κατασκευαστή {#proposer-builder-separation} + +Τόσο στην απόδειξη εργασίας όσο και στην απόδειξη συμμετοχής, ένας κόμβος που κατασκευάζει ένα μπλοκ το προτείνει για προσθήκη στην αλυσίδα σε άλλους κόμβους που συμμετέχουν στη συναίνεση. Ένα νέο μπλοκ γίνεται μέρος της κανονικής αλυσίδας αφού ένας άλλος κρυπτορύχος χτίσει πάνω του (σε PoW) ή λαμβάνει βεβαιώσεις από την πλειοψηφία των επικυρωτών (σε PoS). + +Ο συνδυασμός των ρόλων παραγωγού μπλοκ και προτείνοντος μπλοκ είναι αυτός που εισάγει τα περισσότερα από τα προβλήματα που σχετίζονται με το MEV που περιγράφονται προηγουμένως. Για παράδειγμα, οι κόμβοι συναίνεσης έχουν κίνητρα να προκαλέσουν αναδιοργανώσεις αλυσίδας σε [επιθέσεις χρονικού περιορισμού](https://www.mev.wiki/attack-examples/time-bandit-attack) για να μεγιστοποιήσουν τα έσοδα MEV. + +Ο [διαχωρισμός προτείνοντος-κατασκευαστή](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) έχει σχεδιαστεί για να μετριάσει τον αντίκτυπο του MEV, ειδικά στο επίπεδο συναίνεσης. Το κύριο χαρακτηριστικό του PBS είναι ο διαχωρισμός των κανόνων παραγωγού μπλοκ και προτείνοντος μπλοκ. Οι επικυρωτές εξακολουθούν να είναι υπεύθυνοι για την πρόταση και την ψήφιση μπλοκ, αλλά μια νέα κατηγορία εξειδικευμένων οντοτήτων, που ονομάζονται **κατασκευαστές μπλοκ**, αναλαμβάνουν την ευθύνη της ταξινόμησης συναλλαγών και της κατασκευής μπλοκ. + +Στο πλαίσιο του PBS, ένας κατασκευαστής μπλοκ δημιουργεί ένα πακέτο συναλλαγών και υποβάλλει μια προσφορά για τη συμπερίληψή του σε ένα μπλοκ αλυσίδας Beacon (ως "φορτίο εκτέλεσης"). Ο επικυρωτής που επιλέγεται για να προτείνει το επόμενο μπλοκ ελέγχει στη συνέχεια τις διαφορετικές προσφορές και επιλέγει το πακέτο με την υψηλότερη αμοιβή. Το PBS δημιουργεί ουσιαστικά μια αγορά πλειστηριασμού, όπου οι κατασκευαστές διαπραγματεύονται με τους επικυρωτές που πωλούν χώρο μπλοκ. + +Τα τρέχοντα σχέδια PBS χρησιμοποιούν ένα [σχέδιο δέσμευσης-αποκάλυψης](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) στο οποίο οι κατασκευαστές δημοσιεύουν μόνο μια κρυπτογραφική δέσμευση στο περιεχόμενο ενός μπλοκ (επικεφαλίδα μπλοκ) μαζί με τις προσφορές τους. Μετά την αποδοχή της νικητήριας προσφοράς, ο προτείνων δημιουργεί μια υπογεγραμμένη πρόταση μπλοκ που περιλαμβάνει την επικεφαλίδα του μπλοκ. Ο κατασκευαστής του μπλοκ αναμένεται να δημοσιεύσει το πλήρες σώμα του μπλοκ αφού δει την υπογεγραμμένη πρόταση μπλοκ και πρέπει επίσης να λάβει αρκετές [βεβαιώσεις](/glossary/#attestation) από επικυρωτές πριν ολοκληρωθεί. + +#### Πώς η Διαχωρισμός Προτείνων-Κατασκευαστών Μειώνει τον Αντίκτυπο της MEV; {#how-does-pbs-curb-mev-impact} + +Η διαχωρισμός εντός πρωτοκόλλου προτείνων - κατασκευαστών μειώνει την επίδραση του MEV στη συναίνεση αφαιρώντας την εξαγωγή MEV από το πεδίο των επικυρωτών. Αντίθετα, οι κατασκευαστές μπλοκ που εκτελούν εξειδικευμένο υλικό θα καταγράφουν ευκαιρίες MEV στο μέλλον. + +Αυτό δεν αποκλείει εντελώς τους επικυρωτές από τα έσοδα που σχετίζονται με το MEV, καθώς οι κατασκευαστές πρέπει να προσφέρουν υψηλές τιμές για να γίνουν τα μπλοκ τους αποδεκτά από τους επικυρωτές. Ωστόσο, με τους επικυρωτές να μην επικεντρώνονται πλέον άμεσα στη βελτιστοποίηση των εσόδων MEV, η απειλή των επιθέσεων time-bandit μειώνεται. + +Η διαχωρισμός προτείνων-κατασκευαστών μειώνει επίσης τους κινδύνους συγκέντρωσης του MEV. Για παράδειγμα, η χρήση ενός σχεδίου δέσμευσης - αποκάλυψης καταργεί την ανάγκη για τους κατασκευαστές να εμπιστεύονται τους επικυρωτές να μην κλέψουν την ευκαιρία MEV ή να την εκθέσουν σε άλλους κατασκευαστές. Αυτό μειώνει το εμπόδιο για τους μεμονωμένους παίκτες να επωφεληθούν από το MEV, διαφορετικά, οι κατασκευαστές θα έτειναν να ευνοούν μεγάλες δεξαμενές με φήμη εκτός αλυσίδας και να κάνουν συμφωνίες εκτός αλυσίδας μαζί τους. + +Ομοίως, οι επικυρωτές δε χρειάζεται να εμπιστεύονται τους κατασκευαστές να μην κρατήσουν τα σώματα των μπλοκ ή να δημοσιεύσουν μη έγκυρα μπλοκ επειδή η πληρωμή είναι άνευ όρων. Η αμοιβή του επικυρωτή εξακολουθεί να επεξεργάζεται ακόμα κι αν το προτεινόμενο μπλοκ είναι μη διαθέσιμο ή κηρυχθεί άκυρο από άλλους επικυρωτές. Στην τελευταία περίπτωση, το μπλοκ απλώς απορρίπτεται, αναγκάζοντας τον κατασκευαστή του μπλοκ να χάσει όλα τα τέλη συναλλαγών και τα έσοδα MEV. + +### API Κατασκευαστή {#builder-api} + +Ενώ η διαχωρισμός προτείνοντος - κατασκευαστή υπόσχεται να μειώσει τις επιπτώσεις της εξαγωγής MEV, η εφαρμογή του απαιτεί αλλαγές στο πρωτόκολλο συναίνεσης. Ειδικότερα, ο κανόνας [επιλογής fork](/developers/docs/consensus-mechanisms/pos/#fork-choice) στην αλυσίδα Beacon θα πρέπει να ενημερωθεί. Το [API κατασκευαστή](https://github.com/ethereum/builder-specs) είναι μια προσωρινή λύση που στοχεύει στην παροχή μιας λειτουργικής εφαρμογής του διαχωρισμού προτείνοντος - κατασκευαστή, αν και με υψηλότερες υποθέσεις εμπιστοσύνης. + +Το API κατασκευαστή είναι μια τροποποιημένη έκδοση του [API μηχανής](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) που χρησιμοποιείται από τους πελάτες του επιπέδου συναίνεσης για να ζητήσουν φορτία εκτέλεσης από τους πελάτες του επιπέδου εκτέλεσης. Όπως περιγράφεται στην [προδιαγραφή ειλικρινούς επικυρωτή](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), οι επικυρωτές που επιλέγονται για τα καθήκοντα του προτείνων μπλοκ, ζητούν ένα πακέτο συναλλαγών από έναν συνδεδεμένο πελάτη εκτέλεσης, το οποίο περιλαμβάνουν στο προτεινόμενο μπλοκ αλυσίδας Beacon. + +Το API κατασκευαστή λειτουργεί επίσης ως ενδιάμεσο λογισμικό μεταξύ των επικυρωτών και των πελατών επιπέδου εκτέλεσης, αλλά διαφέρει επειδή επιτρέπει στους επικυρωτές στην αλυσίδα Beacon να προμηθεύονται μπλοκ από εξωτερικές οντότητες (αντί να κατασκευάζουν ένα μπλοκ τοπικά χρησιμοποιώντας έναν πελάτη εκτέλεσης). + +Παρακάτω παρατίθεται μια επισκόπηση του τρόπου λειτουργίας του API κατασκευαστή: + +1. Το Builder API συνδέει τον επικυρωτή με ένα δίκτυο κατασκευαστών μπλοκ που εκτελούν πελάτες επιπέδου εκτέλεσης. Όπως στο PBS, οι κατασκευαστές είναι εξειδικευμένα μέρη που επενδύουν σε καταναλωτικούς πόρους κατασκευής μπλοκ και χρησιμοποιούν διαφορετικές στρατηγικές για να μεγιστοποιήσουν τα έσοδα που αποκτώνται από το MEV + τις συμβουλές προτεραιότητας. + +2. Ένας επικυρωτής (που εκτελεί έναν πελάτη επιπέδου συναίνεσης) ζητά φορτία εκτέλεσης μαζί με προσφορές από το δίκτυο των κατασκευαστών. Οι προσφορές από τους κατασκευαστές θα περιέχουν την κεφαλίδα φορτίου εκτέλεσης, μια κρυπτογραφική δέσμευση στο περιεχόμενο του φορτίου, και μια αμοιβή που θα καταβληθεί στον επικυρωτή. + +3. Ο επικυρωτής εξετάζει τις εισερχόμενες προσφορές και επιλέγει το φορτίο εκτέλεσης με την υψηλότερη αμοιβή. Χρησιμοποιώντας το Builder API, ο επικυρωτής δημιουργεί μια "τυφλή" πρόταση μπλοκ Beacon που περιλαμβάνει μόνο την υπογραφή του και την κεφαλίδα φορτίου εκτέλεσης και τη στέλνει στον κατασκευαστή. + +4. Ο κατασκευαστής που εκτελεί το Builder API αναμένεται να απαντήσει με το πλήρες φορτίο εκτέλεσης όταν δει την τυφλή πρόταση μπλοκ. Αυτό επιτρέπει στον επικυρωτή να δημιουργήσει ένα "υπογεγραμμένο" μπλοκ Beacon, το οποίο διαδίδει στο δίκτυο. + +5. Ένας επικυρωτής που χρησιμοποιεί το Builder API αναμένεται ακόμα να δημιουργήσει ένα μπλοκ τοπικά σε περίπτωση που ο κατασκευαστής μπλοκ δεν ανταποκριθεί άμεσα, ώστε να μη χάσει τις ανταμοιβές πρότασης μπλοκ. Ωστόσο, ο επικυρωτής δεν μπορεί να δημιουργήσει ένα άλλο μπλοκ χρησιμοποιώντας είτε τις τώρα αποκαλυφθείσες συναλλαγές είτε ένα άλλο σύνολο, καθώς αυτό θα ισοδυναμούσε με _ισοδυναμία_ (υπογραφή δύο μπλοκ στο ίδιο χρονικό διάστημα), που είναι μια τιμωρήσιμη παράβαση. + +Ένα παράδειγμα εφαρμογής του Builder API είναι το [MEV Boost](https://github.com/flashbots/mev-boost), μια βελτίωση του [μηχανισμού δημοπρασίας Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) που σχεδιάστηκε για να περιορίσει τις αρνητικές εξωτερικότητες του MEV στο Ethereum. Η δημοπρασία Flashbots επιτρέπει στους επικυρωτές στην απόδειξη συμμετοχής να αναθέσουν το έργο της κατασκευής κερδοφόρων μπλοκ σε εξειδικευμένα μέρη που ονομάζονται **αναζητητές**. ![Ένα διάγραμμα που δείχνει τη ροή MEV λεπτομερώς](./mev.png) + +Οι αναζητητές ψάχνουν για κερδοφόρες ευκαιρίες MEV και στέλνουν πακέτα συναλλαγών στους προτείνοντες μπλοκ μαζί με μια [σφραγισμένη προσφορά τιμής](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) για συμπερίληψη στο μπλοκ. Ο επικυρωτής που εκτελεί το mev-geth, μια έκδοση fork του πελάτη go-ethereum (Geth) πρέπει μόνο να επιλέξει το πακέτο με το μεγαλύτερο κέρδος και να το συμπεριλάβει ως μέρος του νέου μπλοκ. Για να προστατεύσουν τους προτείνοντες μπλοκ (επικυρωτές) από ανεπιθύμητα μηνύματα και μη έγκυρες συναλλαγές, τα πακέτα συναλλαγών περνούν από **μεσολαβητές** για επαλήθευση πριν φτάσουν στον προτείνων. + +Το MEV Boost διατηρεί τους ίδιους τρόπους λειτουργίας της αρχικής δημοπρασίας Flashbots, αν και με νέες λειτουργίες σχεδιασμένες για τη μετάβαση του Ethereum σε απόδειξη συμμετοχής. Οι αναζητητές εξακολουθούν να βρίσκουν κερδοφόρες συναλλαγές MEV για συμπερίληψη σε μπλοκ, αλλά μια νέα κατηγορία εξειδικευμένων μερών, που ονομάζονται **δημιουργοί**, είναι υπεύθυνοι για τη συναθροίσεις συναλλαγών και πακέτων σε μπλοκ. Ένας κατασκευαστής αποδέχεται σφραγισμένες προσφορές τιμών από αναζητητές και εκτελεί βελτιστοποιήσεις για να βρει την πιο κερδοφόρα σειρά. + +Ο μεσολαβητής εξακολουθεί να είναι υπεύθυνος για την επαλήθευση των πακέτων συναλλαγών πριν τα παραδώσει στον προτείνων. Ωστόσο, το MEV Boost εισάγει **εγγυήσεις** που είναι υπεύθυνες για την παροχή [διαθεσιμότητας δεδομένων](/developers/docs/data-availability/) αποθηκεύοντας τα σώματα μπλοκ που στέλνονται από τους κατασκευαστές και τις κεφαλίδες μπλοκ που στέλνονται από τους επικυρωτές. Εδώ, ένας επικυρωτής που είναι συνδεδεμένος με έναν μεσολαβητή ζητά διαθέσιμα φορτία εκτέλεσης και χρησιμοποιεί τον αλγόριθμο ταξινόμησης του MEV Boost για να επιλέξει την κεφαλίδα φορτίου με την υψηλότερη προσφορά + συμβουλές MEV. + +#### Πώς το Builder API μετριάζει τον αντίκτυπο του MEV; {#how-does-builder-api-curb-mev-impact} + +Το βασικό όφελος του Builder API είναι η δυνατότητά του να δημοκρατικοποιήσει την πρόσβαση στις ευκαιρίες MEV. Η χρήση σχημάτων commit-reveal εξαλείφει τις υποθέσεις εμπιστοσύνης και μειώνει τα εμπόδια εισόδου για τους επικυρωτές που επιθυμούν να επωφεληθούν από το MEV. Αυτό θα πρέπει να μειώσει την πίεση στους μεμονωμένους επικυρωτές να ενσωματωθούν σε μεγάλες ομάδες με αποθηκευμένο κεφάλαιο για να ενισχύσουν τα κέρδη MEV. + +Η ευρεία εφαρμογή του Builder API θα ενθαρρύνει μεγαλύτερο ανταγωνισμό μεταξύ των κατασκευαστών μπλοκ, γεγονός που αυξάνει την αντίσταση στη λογοκρισία. Καθώς οι επικυρωτές εξετάζουν προσφορές από πολλούς κατασκευαστές, ένας κατασκευαστής που σκοπεύει να λογοκρίνει μία ή περισσότερες συναλλαγές χρηστών πρέπει να προσφέρει μεγαλύτερη προσφορά από όλους τους άλλους μη λογοκριτικούς κατασκευαστές για να πετύχει. Αυτό αυξάνει δραματικά το κόστος λογοκρισίας των χρηστών και αποθαρρύνει την πρακτική. + +Ορισμένα έργα, όπως το MEV Boost, χρησιμοποιούν το Builder API ως μέρος μιας συνολικής δομής σχεδιασμένης για να παρέχει ιδιωτικότητα συναλλαγών σε ορισμένα μέρη, όπως οι έμποροι που προσπαθούν να αποφύγουν τις επιθέσεις frontrunning/sandwiching. Αυτό επιτυγχάνεται μέσω της παροχής ενός ιδιωτικού καναλιού επικοινωνίας μεταξύ των χρηστών και των κατασκευαστών μπλοκ. Σε αντίθεση με τα προαναφερθέντα επιτρεπόμενα mempools, αυτή η προσέγγιση είναι επωφελής για τους ακόλουθους λόγους: + +1. Η ύπαρξη πολλαπλών κατασκευαστών στην αγορά καθιστά τον λογοκρισμό μη πρακτικό, προς όφελος των χρηστών. Αντιθέτως, η ύπαρξη συγκεντρωτικών και βασισμένων στην εμπιστοσύνη σκοτεινών pool θα συγκέντρωνε την εξουσία στα χέρια λίγων κατασκευαστών μπλοκ και θα αύξανε την πιθανότητα λογοκρισίας. + +2. Το λογισμικό του Builder API είναι ανοιχτού κώδικα, επιτρέποντας σε οποιονδήποτε να προσφέρει υπηρεσίες κατασκευαστή μπλοκ. Αυτό σημαίνει ότι οι χρήστες δεν αναγκάζονται να χρησιμοποιήσουν κάποιο συγκεκριμένο κατασκευαστή μπλοκ και βελτιώνει την ουδετερότητα και την άδεια του Ethereum. Επιπλέον, οι traders που αναζητούν MEV δε θα συμβάλλουν άθελά τους στη συγκέντρωση χρησιμοποιώντας ιδιωτικά κανάλια συναλλαγών. + +## Σχετικοί Πόροι {#related-resources} + +- [Έγγραφα Flashbots](https://docs.flashbots.net/) +- [Flashbots GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) - _Πίνακας εργαλείων και live εξερευνητής συναλλαγών για συναλλαγές MEV_ +- [mevboost.org](https://www.mevboost.org/) - _Παρακολούθηση με στατιστικά σε πραγματικό χρόνο για relays MEV-Boost και κατασκευαστές μπλοκ_ + +## Περισσότερες πληροφορίες {#further-reading} + +- [Τι είναι η Εξαχθείσα Αξία Κρυπτορύχου (MEV);](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [Η MEV και Εγώ](https://www.paradigm.xyz/2021/02/mev-and-me) +- [Το Ethereum είναι ένα Σκοτεινό Δάσος](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Απόδραση από το Σκοτεινό Δάσος](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: Ξεπερνώντας την Κρίση MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [Συζητήσεις MEV του @bertcmiller](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: Αρχιτεκτονική Flashbots Έτοιμη για Συγχώνευση](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [Τι είναι το MEV Boost](https://www.alchemy.com/overviews/mev-boost) +- [Γιατί να εκτελέσετε mev-boost;](https://writings.flashbots.net/writings/why-run-mevboost/) +- [Οδηγός εξερεύνησης Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/el/developers/docs/networking-layer/index.md b/public/content/translations/el/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..a7a4f554ccf --- /dev/null +++ b/public/content/translations/el/developers/docs/networking-layer/index.md @@ -0,0 +1,155 @@ +--- +title: Επίπεδο δικτύωσης +description: Μια εισαγωγή στο επίπεδο δικτύωσης του Ethereum. +lang: el +sidebarDepth: 2 +--- + +Το Ethereum είναι ένα δίκτυο peer-to-peer με χιλιάδες κόμβους που πρέπει να μπορούν να επικοινωνούν μεταξύ τους χρησιμοποιώντας τυποποιημένα πρωτόκολλα. Το "επίπεδο δικτύωσης" είναι η στοίβα πρωτοκόλλων που επιτρέπουν σε αυτούς τους κόμβους να βρίσκουν ο ένας τον άλλον και να ανταλλάσσουν πληροφορίες. Αυτό περιλαμβάνει τη "διασπορά" πληροφοριών (επικοινωνία ένας προς πολλούς) μέσω του δικτύου καθώς και την ανταλλαγή αιτημάτων και απαντήσεων μεταξύ συγκεκριμένων κόμβων (επικοινωνία ένας προς έναν). Κάθε κόμβος πρέπει να συμμορφώνεται με συγκεκριμένους κανόνες δικτύωσης για να διασφαλίσει ότι στέλνει και λαμβάνει τις σωστές πληροφορίες. + +Υπάρχουν δύο μέρη στο λογισμικό πελάτη (πελάτες εκτέλεσης και πελάτες συναίνεσης), καθένα με τη δική του ξεχωριστή στοίβα δικτύωσης. Εκτός από την επικοινωνία με άλλους κόμβους Ethereum, οι πελάτες εκτέλεσης και συναίνεσης πρέπει να επικοινωνούν μεταξύ τους. Αυτή η σελίδα δίνει μια εισαγωγική εξήγηση των πρωτοκόλλων που επιτρέπουν αυτήν την επικοινωνία. + +Οι πελάτες εκτέλεσης διασπείρουν συναλλαγές μέσω του δικτύου peer-to-peer εκτέλεσης. Αυτό απαιτεί κρυπτογραφημένη επικοινωνία μεταξύ πιστοποιημένων ομότιμων. Όταν επιλεγεί ένας επικυρωτής για να προτείνει ένα μπλοκ, οι συναλλαγές από το τοπικό pool συναλλαγών του κόμβου θα μεταβιβαστούν στους πελάτες συναίνεσης μέσω μιας τοπικής σύνδεσης RPC, η οποία θα συσκευαστεί σε μπλοκ Beacon. Οι πελάτες συναίνεσης θα διασπείρουν στη συνέχεια τα μπλοκ Beacon μέσω του δικτύου τους p2p. Αυτό απαιτεί δύο ξεχωριστά δίκτυα p2p: ένα που συνδέει τους πελάτες εκτέλεσης για τη διασπορά συναλλαγών και ένα που συνδέει τους πελάτες συναίνεσης για τη διασπορά μπλοκ. + +## Προαπαιτούμενα {#prerequisites} + +Μερικές γνώσεις για τους [κόμβους και τους πελάτες](/developers/docs/nodes-and-clients/) Ethereum θα είναι χρήσιμες για την κατανόηση αυτής της σελίδας. + +## Το επίπεδο εκτέλεσης {#execution-layer} + +Τα πρωτόκολλα δικτύωσης του επιπέδου εκτέλεσης χωρίζονται σε δύο στοίβες: + +- Τη στοίβα ανακάλυψης: χτισμένη πάνω από το UDP και επιτρέπει σε έναν νέο κόμβο να βρει ομότιμους για σύνδεση. + +- Τη στοίβα DevP2P: βρίσκεται πάνω από το TCP και επιτρέπει στους κόμβους να ανταλλάσσουν πληροφορίες. + +Και οι δύο στοίβες λειτουργούν παράλληλα. Η στοίβα ανακάλυψης τροφοδοτεί νέους συμμετέχοντες δικτύου στο δίκτυο, και η στοίβα DevP2P επιτρέπει τις αλληλεπιδράσεις τους. + +### Εξερεύνηση {#discovery} + +Η ανακάλυψη είναι η διαδικασία εύρεσης άλλων κόμβων στο δίκτυο. Αυτό ξεκινά με τη χρήση ενός μικρού συνόλου κόμβων εκκίνησης (κόμβοι των οποίων οι διευθύνσεις είναι [ενσωματωμένες](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) στον πελάτη, ώστε να μπορούν να βρεθούν αμέσως και να συνδέσουν τον πελάτη με ομότιμους). Αυτοί οι κόμβοι εκκίνησης υπάρχουν μόνο για να εισαγάγουν έναν νέο κόμβο σε ένα σύνολο ομότιμων καθώς αυτή είναι η μόνη τους λειτουργία, δε συμμετέχουν σε κανονικές εργασίες πελάτη όπως ο συγχρονισμός της αλυσίδας και χρησιμοποιούνται μόνο την πρώτη φορά που ένας πελάτης ξεκινά. + +Το πρωτόκολλο που χρησιμοποιείται για τις αλληλεπιδράσεις κόμβου-bootnode είναι μια τροποποιημένη μορφή του [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) που χρησιμοποιεί έναν [κατανεμημένο πίνακα κατακερματισμού](https://en.wikipedia.org/wiki/Distributed_hash_table) για να μοιράζεται λίστες κόμβων. Κάθε κόμβος έχει μια έκδοση αυτού του πίνακα που περιέχει τις πληροφορίες που απαιτούνται για τη σύνδεση με τους πλησιέστερους ομότιμους του. Αυτή η "εγγύτητα" δεν είναι γεωγραφική, η απόσταση ορίζεται από την ομοιότητα του αναγνωριστικού του κόμβου. Ο πίνακας κάθε κόμβου ανανεώνεται τακτικά ως μέτρο ασφαλείας. Για παράδειγμα, στο πρωτόκολλο ανακάλυψης [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), οι κόμβοι μπορούν επίσης να στέλνουν "διαφημίσεις" που εμφανίζουν τα υπο πρωτόκολλα που υποστηρίζει ο πελάτης, επιτρέποντας στους ομότιμους να διαπραγματευτούν σχετικά με τα πρωτόκολλα που μπορούν και οι δύο να χρησιμοποιήσουν για επικοινωνία. + +Η ανακάλυψη ξεκινά με ένα παιχνίδι PING-PONG. Ένα επιτυχημένο PING-PONG "δένει" τον νέο κόμβο με ένα bootnode. Το αρχικό μήνυμα που ειδοποιεί ένα bootnode για την ύπαρξη ενός νέου κόμβου που εισέρχεται στο δίκτυο είναι ένα `PING`. Αυτό το `PING` περιλαμβάνει κατακερματισμένες πληροφορίες σχετικά με τον νέο κόμβο, το bootnode και μια χρονική σφραγίδα λήξης. Το bootnode λαμβάνει το `PING` και επιστρέφει ένα `PONG` που περιέχει τον κατακερματισμό `PING`. Εάν οι κατακερματισμοί `PING` και `PONG` ταιριάζουν, τότε η σύνδεση μεταξύ του νέου κόμβου και του bootnode επαληθεύεται και λέγεται ότι έχουν "δεθεί". + +Μόλις συνδεθεί, ο νέος κόμβος μπορεί να στείλει μια αίτηση `FIND-NEIGHBOURS` στο bootnode. Τα δεδομένα που επιστρέφονται από το bootnode περιλαμβάνουν μια λίστα ομότιμων με τους οποίους μπορεί να συνδεθεί ο νέος κόμβος. Εάν οι κόμβοι δεν είναι δεμένοι, η αίτηση `FIND-NEIGHBOURS` θα αποτύχει, οπότε ο νέος κόμβος δε θα μπορεί να εισέλθει στο δίκτυο. + +Μόλις ο νέος κόμβος λάβει μια λίστα γειτόνων από τον κόμβο εκκίνησης, ξεκινά μια ανταλλαγή PING-PONG με καθέναν από αυτούς. Οι επιτυχημένες ανταλλαγές PING-PONG συνδέουν τον νέο κόμβο με τους γείτονές του, επιτρέποντας την ανταλλαγή μηνυμάτων. + +``` +start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours +``` + +Οι πελάτες εκτέλεσης χρησιμοποιούν αυτήν τη στιγμή το πρωτόκολλο ανακάλυψης [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) και υπάρχει μια ενεργή προσπάθεια μετανάστευσης στο πρωτόκολλο [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5). + +#### ENR: Εγγραφές κόμβου Ethereum {#enr} + +Η [εγγραφή κόμβου Ethereum (ENR)](/developers/docs/networking-layer/network-addresses/) είναι ένα αντικείμενο που περιέχει τρία βασικά στοιχεία: μια υπογραφή (hash του περιεχομένου της εγγραφής που δημιουργείται σύμφωνα με κάποιο συμφωνημένο σχέδιο ταυτοποίησης), έναν αριθμό ακολουθίας που παρακολουθεί τις αλλαγές στην εγγραφή και μια αυθαίρετη λίστα ζευγών κλειδιού:τιμής. Αυτή είναι μια μελλοντική μορφή που επιτρέπει την ευκολότερη ανταλλαγή πληροφοριών ταυτοποίησης μεταξύ νέων ομότιμων και είναι η προτιμώμενη μορφή [διεύθυνσης δικτύου](/developers/docs/networking-layer/network-addresses) για τους κόμβους Ethereum. + +#### Γιατί η ανακάλυψη είναι χτισμένη στο UDP; {#why-udp} + +Το UDP δεν υποστηρίζει κανέναν έλεγχο σφαλμάτων, επαναστολή αποτυχημένων πακέτων ή δυναμικό άνοιγμα και κλείσιμο συνδέσεων - αντίθετα, πυροβολεί ένα συνεχές ρεύμα πληροφοριών σε έναν στόχο, ανεξάρτητα από το αν έχει ληφθεί με επιτυχία. Αυτή η ελάχιστη λειτουργικότητα μεταφράζεται επίσης σε ελάχιστο επιπλέον κόστος, καθιστώντας αυτό το είδος σύνδεσης πολύ γρήγορο. Για την ανακάλυψη, όπου ένας κόμβος απλά θέλει να γνωστοποιήσει την παρουσία του για να δημιουργήσει στη συνέχεια μια επίσημη σύνδεση με έναν ομότιμο, το UDP είναι επαρκές. Ωστόσο, για την υπόλοιπη στοίβα δικτύωσης, το UDP δεν είναι κατάλληλο για τον σκοπό αυτό. Η ανταλλαγή πληροφοριών μεταξύ των κόμβων είναι αρκετά περίπλοκη και επομένως χρειάζεται ένα πιο πλήρες πρωτόκολλο που μπορεί να υποστηρίξει επαναστολή, έλεγχο σφαλμάτων κ.λπ. Το πρόσθετο κόστος που σχετίζεται με το TCP αξίζει την πρόσθετη λειτουργικότητα. Επομένως, το μεγαλύτερο μέρος της στοίβας P2P λειτουργεί μέσω TCP. + +### DevP2P {#devp2p} + +Το DevP2P είναι από μόνο του μια ολόκληρη στοίβα πρωτοκόλλων που υλοποιεί το Ethereum για να δημιουργήσει και να διατηρήσει το δίκτυο peer-to-peer. Μετά την είσοδο νέων κόμβων στο δίκτυο, οι αλληλεπιδράσεις τους διέπονται από πρωτόκολλα στη στοίβα [DevP2P](https://github.com/ethereum/devp2p). Όλα αυτά βρίσκονται πάνω από το TCP και περιλαμβάνουν το πρωτόκολλο μεταφοράς RLPx, το πρωτόκολλο καλωδίωσης και αρκετά υποπρωτόκολλα. Το [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) είναι το πρωτόκολλο που διέπει την έναρξη, την πιστοποίηση και τη διατήρηση των συνεδριών μεταξύ των κόμβων. Το RLPx κωδικοποιεί μηνύματα χρησιμοποιώντας RLP (Recursive Length Prefix), το οποίο είναι μια πολύ αποδοτική μέθοδος κωδικοποίησης δεδομένων σε μια ελάχιστη δομή για αποστολή μεταξύ κόμβων. + +Μια συνεδρία RLPx μεταξύ δύο κόμβων ξεκινά με μια αρχική κρυπτογραφημένη επικοινωνία. Αυτό περιλαμβάνει την αποστολή ενός μηνύματος auth από τον κόμβο, το οποίο στη συνέχεια επαληθεύεται από τον ομότιμο. Μετά την επιτυχή επαλήθευση, ο ομότιμος δημιουργεί ένα μήνυμα auth-acknowledgement για να επιστρέψει στον κόμβο εκκίνησης. Αυτή είναι μια διαδικασία ανταλλαγής κλειδιών που επιτρέπει στους κόμβους να επικοινωνούν ιδιωτικά και με ασφάλεια. Μια επιτυχημένη κρυπτογραφημένη επικοινωνία ενεργοποιεί και τους δύο κόμβους να στείλουν ένα μήνυμα "hello" ο ένας στον άλλο "on the wire". Το πρωτόκολλο καλωδίωσης ξεκινά με μια επιτυχή ανταλλαγή μηνυμάτων hello. + +Τα μηνύματα hello περιέχουν: + +- έκδοση πρωτοκόλλου +- ID πελάτη +- θύρα +- ID κόμβου +- λίστα με τα υποστηριζόμενα υπό πρωτόκολλα + +Αυτές είναι οι πληροφορίες που απαιτούνται για μια επιτυχημένη αλληλεπίδραση, καθώς ορίζουν ποιες δυνατότητες μοιράζονται μεταξύ των δύο κόμβων και ρυθμίζουν την επικοινωνία. Υπάρχει μια διαδικασία διαπραγμάτευσης υπο-πρωτοκόλλου όπου συγκρίνονται οι λίστες των υπο-πρωτοκόλλων που υποστηρίζονται από κάθε κόμβο και αυτά που είναι κοινά και στους δύο κόμβους και μπορούν να χρησιμοποιηθούν στη συνεδρία. + +Μαζί με τα μηνύματα hello, το πρωτόκολλο καλωδίωσης μπορεί επίσης να στείλει ένα μήνυμα "αποσύνδεσης" που δίνει προειδοποίηση σε έναν ομότιμο ότι η σύνδεση θα τερματιστεί. Το πρωτόκολλο καλωδίωσης περιλαμβάνει επίσης μηνύματα PING και PONG που αποστέλλονται περιοδικά για να διατηρηθεί ανοιχτή μια συνεδρία. Οι ανταλλαγές πρωτοκόλλου RLPx και καλωδίωσης επομένως δημιουργούν τις βάσεις της επικοινωνίας μεταξύ κόμβων, παρέχοντας τη δυνατότητα για ανταλλαγή χρήσιμων πληροφοριών σύμφωνα με ένα συγκεκριμένο υπο-πρωτόκολλο. + +### Δευτερεύοντα πρωτόκολλα {#sub-protocols} + +#### Το πρωτόκολλο Wire {#wire-protocol} + +Μόλις συνδεθούν οι ομότιμοι και ξεκινήσει μια συνεδρία RLPx, το πρωτόκολλο καλωδίωσης ορίζει τον τρόπο επικοινωνίας τους. Αρχικά, το πρωτόκολλο καλωδίωσης ορίζει τρεις κύριες εργασίες: τον συγχρονισμό αλυσίδας, τη διάδοση μπλοκ και την ανταλλαγή συναλλαγών. Ωστόσο, μόλις το Ethereum άλλαξε σε απόδειξη συμμετοχής, η διάδοση μπλοκ και ο συγχρονισμός αλυσίδας έγιναν μέρος του επιπέδου συναίνεσης. Η ανταλλαγή συναλλαγών εξακολουθεί να εμπίπτει στην αρμοδιότητα των πελατών εκτέλεσης. Η ανταλλαγή συναλλαγών αναφέρεται στην ανταλλαγή εκκρεμών συναλλαγών μεταξύ κόμβων, ώστε οι κατασκευαστές μπλοκ να μπορούν να επιλέξουν μερικές από αυτές για συμπερίληψη στο επόμενο μπλοκ. Λεπτομερείς πληροφορίες σχετικά με αυτές τις εργασίες είναι διαθέσιμες [εδώ](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Οι πελάτες που υποστηρίζουν αυτά τα υπο-πρωτόκολλα τα εκθέτουν μέσω του [JSON-RPC](/developers/docs/apis/json-rpc/). + +#### les (light ethereum subprotocol) {#les} + +Αυτό είναι ένα ελάχιστο πρωτόκολλο για το συγχρονισμό πελατών μικρού μεγέθους. Παραδοσιακά, αυτό το πρωτόκολλο έχει χρησιμοποιηθεί σπάνια επειδή απαιτούνται πλήρεις κόμβοι για να εξυπηρετήσουν δεδομένα σε πελάτες μικρού μεγέθους χωρίς να παρέχεται κίνητρο. Η προεπιλεγμένη συμπεριφορά των πελατών εκτέλεσης είναι να μην εξυπηρετούν δεδομένα ελαφρού πελάτη μέσω του les. Περισσότερες πληροφορίες είναι διαθέσιμες στις προδιαγραφές les [spec](https://github.com/ethereum/devp2p/blob/master/caps/les.md). + +#### Snap {#snap} + +Το [πρωτόκολλο snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) είναι μια προαιρετική επέκταση που επιτρέπει στους ομότιμους να ανταλλάσσουν στιγμιότυπα πρόσφατων καταστάσεων, επιτρέποντας στους ομότιμους να επαληθεύουν δεδομένα λογαριασμού και αποθήκευσης χωρίς να χρειάζεται να κατεβάσουν ενδιάμεσους κόμβους Merkle trie. + +#### Wit (πρωτόκολλο μάρτυρα) {#wit} + +Το [πρωτόκολλο μάρτυρα](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) είναι μια προαιρετική επέκταση που επιτρέπει την ανταλλαγή μαρτύρων κατάστασης μεταξύ ομότιμων, βοηθώντας στο συγχρονισμό των πελατών στην κορυφή της αλυσίδας. + +#### Whisper {#whisper} + +Το Whisper ήταν ένα πρωτόκολλο που στοχεύει στην παροχή ασφαλούς ανταλλαγής μηνυμάτων μεταξύ ομότιμων χωρίς να γράφει καμία πληροφορία στην αλυσίδα μπλοκ. Ήταν μέρος του πρωτοκόλλου καλωδίωσης DevP2P αλλά τώρα έχει καταργηθεί. Υπάρχουν άλλα [σχετικά έργα](https://wakunetwork.com/) με παρόμοιους στόχους. + +## Το επίπεδο συναίνεσης {#consensus-layer} + +Οι πελάτες συναίνεσης συμμετέχουν σε ένα ξεχωριστό δίκτυο ομότιμων με διαφορετικές προδιαγραφές. Οι πελάτες συναίνεσης πρέπει να συμμετέχουν στη διάδοση μπλοκ ώστε να μπορούν να λαμβάνουν νέα μπλοκ από ομότιμους και να τα μεταδίδουν όταν είναι η σειρά τους ως προτείνων μπλοκ. Παρόμοια με το επίπεδο εκτέλεσης, αυτό απαιτεί πρώτα ένα πρωτόκολλο ανακάλυψης ώστε ένας κόμβος να μπορεί να βρει ομότιμους και να δημιουργήσει ασφαλείς συνεδρίες για ανταλλαγή μπλοκ, πιστοποιήσεων κ.λπ. + +### Εξερεύνηση {#consensus-discovery} + +Παρόμοια με τους πελάτες εκτέλεσης, οι πελάτες συναίνεσης χρησιμοποιούν το [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) μέσω UDP για την εύρεση ομότιμων κόμβων. Η υλοποίηση του discv5 στο επίπεδο συναίνεσης διαφέρει από αυτή των πελατών εκτέλεσης μόνο στο ότι περιλαμβάνει έναν προσαρμογέα που συνδέει το discv5 σε μια στοίβα [libP2P](https://libp2p.io/), καταργώντας το DevP2P. Οι συνεδρίες RLPx του επιπέδου εκτέλεσης καταργούνται υπέρ του ασφαλούς χειρισμού καναλιού θορύβου του libP2P. + +### ENRs {#consensus-enr} + +Το ENR για τους κόμβους συναίνεσης περιλαμβάνει το δημόσιο κλειδί του κόμβου, τη διεύθυνση IP, τις θύρες UDP και TCP και δύο πεδία συγκεκριμένα για τη συναίνεση: το bitfield υποδικτύου απόδειξης και το κλειδί `eth2`. Το πρώτο διευκολύνει τους κόμβους να βρίσκουν ομότιμους κόμβους που συμμετέχουν σε συγκεκριμένα υποδίκτυα ενημέρωσης. Το κλειδί `eth2` περιέχει πληροφορίες σχετικά με την έκδοση της αναβάθμισης Ethereum που χρησιμοποιεί ο κόμβος, εξασφαλίζοντας ότι οι ομότιμοι συνδέονται με το σωστό Ethereum. + +### libP2P {#libp2p} + +Η στοίβα libP2P υποστηρίζει όλες τις επικοινωνίες μετά την ανακάλυψη. Οι πελάτες μπορούν να καλούν και να ακούν σε IPv4 και/ή IPv6 όπως ορίζεται στο ENR τους. Τα πρωτόκολλα στο επίπεδο libP2P μπορούν να υποδιαιρεθούν στους τομείς ενημέρωσης και req/resp. + +### Gossip {#gossip} + +Ο τομέας ενημέρωσης περιλαμβάνει όλες τις πληροφορίες που πρέπει να εξαπλωθούν γρήγορα σε όλο το δίκτυο. Αυτό περιλαμβάνει beacon μπλοκ, αποδείξεις, πιστοποιήσεις, εξόδους και περικοπές. Αυτό μεταδίδεται χρησιμοποιώντας το libP2P gossipsub v1 και βασίζεται σε διάφορα μεταδεδομένα που αποθηκεύονται τοπικά σε κάθε κόμβο, συμπεριλαμβανομένου του μέγιστου μεγέθους των φορτίων ενημέρωσης για λήψη και μετάδοση. Λεπτομερείς πληροφορίες σχετικά με τον τομέα ενημέρωσης είναι διαθέσιμες [εδώ](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). + +### Αίτηση-Απάντηση {#request-response} + +Ο τομέας αίτησης-απάντησης περιέχει πρωτόκολλα για πελάτες που ζητούν συγκεκριμένες πληροφορίες από τους ομότιμούς τους. Παραδείγματα περιλαμβάνουν τη ζήτηση συγκεκριμένων μπλοκ Beacon που ταιριάζουν με συγκεκριμένες ρίζες hash ή μέσα σε ένα εύρος διαστημάτων. Οι απαντήσεις επιστρέφονται πάντα ως συμπιεσμένα με snappy bytes κωδικοποιημένα SSZ. + +## Γιατί ο πελάτης συναίνεσης προτιμά το SSZ από το RLP; {#ssz-vs-rlp} + +Το SSZ σημαίνει απλή σειριοποίηση. Χρησιμοποιεί σταθερές μετατοπίσεις που διευκολύνουν την αποκωδικοποίηση μεμονωμένων τμημάτων ενός κωδικοποιημένου μηνύματος χωρίς να χρειάζεται να αποκωδικοποιηθεί ολόκληρη η δομή, κάτι που είναι πολύ χρήσιμο για τον πελάτη συναίνεσης καθώς μπορεί να αρπάξει αποτελεσματικά συγκεκριμένα κομμάτια πληροφοριών από κωδικοποιημένα μηνύματα. Είναι επίσης σχεδιασμένο ειδικά για να ενσωματωθεί με πρωτόκολλα Merkle, με σχετικές αποδόσεις για τη Merkleization. Δεδομένου ότι όλες οι κατακερματισμοί στο επίπεδο συναίνεσης είναι ρίζες Merkle, αυτό οδηγεί σε μια σημαντική βελτίωση. Το SSZ εγγυάται επίσης μοναδικές αναπαραστάσεις τιμών. + +## Σύνδεση του πελάτη εκτέλεσης και του πελάτη συναίνεσης {#connecting-clients} + +Τόσο ο πελάτης συναίνεσης όσο και ο πελάτης εκτέλεσης εκτελούνται παράλληλα. Πρέπει να συνδεθούν ώστε ο πελάτης συναίνεσης να μπορεί να παρέχει οδηγίες στον πελάτη εκτέλεσης και ο πελάτης εκτέλεσης να μπορεί να μεταβιβάσει δεσμίδες συναλλαγών στον πελάτη συναίνεσης για συμπερίληψη σε μπλοκ Beacon. Η επικοινωνία μεταξύ των δύο πελατών μπορεί να επιτευχθεί χρησιμοποιώντας μια τοπική σύνδεση RPC. Ένα API γνωστό ως ['Engine-API'](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) ορίζει τις οδηγίες που αποστέλλονται μεταξύ των δύο πελατών. Δεδομένου ότι και οι δύο πελάτες βρίσκονται πίσω από μια ενιαία ταυτότητα δικτύου, μοιράζονται ένα ENR (Ethereum node record) το οποίο περιέχει ένα ξεχωριστό κλειδί για κάθε πελάτη (κλειδί eth1 και κλειδί eth2). + +Μια περίληψη της ροής ελέγχου παρουσιάζεται παρακάτω, με τη σχετική στοίβα δικτύωσης σε παρένθεση. + +### Όταν ο πελάτης consensus δεν είναι παραγωγός μπλοκ: {#when-consensus-client-is-not-block-producer} + +- Ο πελάτης consensus λαμβάνει ένα μπλοκ μέσω του πρωτοκόλλου ανταλλαγής κουτσομπολιού μπλοκ (consensus p2p). +- Ο πελάτης consensus προ-επαληθεύει το μπλοκ, δηλαδή διασφαλίζει ότι έφτασε από έναν έγκυρο αποστολέα με σωστά μεταδεδομένα. +- Οι συναλλαγές στο μπλοκ αποστέλλονται στο επίπεδο εκτέλεσης ως ωφέλιμο φορτίο εκτέλεσης (τοπική σύνδεση RPC). +- Το επίπεδο εκτέλεσης εκτελεί τις συναλλαγές και επικυρώνει την κατάσταση στον επικεφαλίδα του μπλοκ (δηλ. ελέγχει αν τα hash ταιριάζουν). +- Το επίπεδο εκτέλεσης διαβιβάζει τα δεδομένα επικύρωσης πίσω στο επίπεδο consensus, το μπλοκ θεωρείται πλέον επικυρωμένο (τοπική σύνδεση RPC). +- Το επίπεδο consensus προσθέτει το μπλοκ στην κορυφή του δικού του blockchain και το πιστοποιεί, μεταδίδοντας την πιστοποίηση μέσω του δικτύου (consensus p2p). + +### Όταν ο πελάτης συναίνεσης είναι παραγωγός μπλοκ: {#when-consensus-client-is-block-producer} + +- Ο πελάτης consensus λαμβάνει ειδοποίηση ότι είναι ο επόμενος παραγωγός μπλοκ (consensus p2p). +- Το επίπεδο consensus καλεί τη μέθοδο `create block` στον πελάτη εκτέλεσης (τοπική RPC). +- Το επίπεδο εκτέλεσης αποκτά πρόσβαση στο mempool συναλλαγών που έχει συμπληρωθεί από το πρωτόκολλο ανταλλαγής κουτσομπολιού συναλλαγών (εκτέλεση p2p). +- Ο πελάτης εκτέλεσης ομαδοποιεί τις συναλλαγές σε ένα μπλοκ, εκτελεί τις συναλλαγές και δημιουργεί ένα hash μπλοκ. +- Ο πελάτης consensus λαμβάνει τις συναλλαγές και το hash μπλοκ από τον πελάτη εκτέλεσης και τα προσθέτει στο μπλοκ beacon (τοπική RPC). +- Ο πελάτης consensus μεταδίδει το μπλοκ μέσω του πρωτοκόλλου ανταλλαγής κουτσομπολιού μπλοκ (consensus p2p). +- Άλλοι πελάτες λαμβάνουν το προτεινόμενο μπλοκ μέσω του πρωτοκόλλου ανταλλαγής κουτσομπολιού μπλοκ και το επικυρώνουν όπως περιγράφεται παραπάνω (consensus p2p). + +Μόλις το μπλοκ πιστοποιηθεί από αρκετούς επικυρωτές, προστίθεται στην κορυφή της αλυσίδας, δικαιολογείται και τελικά οριστικοποιείται. + +![](cons_client_net_layer.png) ![](exe_client_net_layer.png) + +Σχέδιο δικτύου για πελάτες consensus και εκτέλεσης, από το [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248). + +## Περισσότερες πληροφορίες {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [Προδιαγραφές επιπέδου συναίνεσης δικτύου](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [kademlia στο discv5](https://vac.dev/kademlia-to-discv5) [τεκμηρίωση kademlia](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [εισαγωγή στο Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) [σχέσεις eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [βίντεο με λεπτομέρειες πελάτη της συγχώνευσης και eth2](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/public/content/translations/el/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/el/developers/docs/networking-layer/network-addresses/index.md new file mode 100644 index 00000000000..8eac5f715e0 --- /dev/null +++ b/public/content/translations/el/developers/docs/networking-layer/network-addresses/index.md @@ -0,0 +1,40 @@ +--- +title: Διευθύνσεις δικτύου +description: Μια εισαγωγή στις διευθύνσεις δικτύου. +lang: el +sidebarDepth: 2 +--- + +Οι κόμβοι του Ethereum πρέπει να αναγνωρίζονται μεταξύ τους με κάποιες βασικές πληροφορίες, για να συνδεθούν με τους χρήστες. Για να διασφαλιστεί ότι οποιαδήποτε εφαρμογή χρήστη μπορεί να ερμηνεύσει αυτές τις πληροφορίες, μεταδίδεται σε μία από τις τρεις τυποποιημένες μορφές που μπορεί να καταλάβει ένας κόμβος Ethereum: multiaddr, enode ή Ethereum Node Records (ENRs). Οι ENR είναι το τρέχον πρότυπο για τις διευθύνσεις του δικτύου Ethereum. + +## Προαπαιτούμενα {#prerequisites} + +Απαιτείται η κατανόηση του [επιπέδου δικτύωσης](/developers/docs/networking-layer/) του Ethereum, για να κατανοήσουμε αυτή τη σελίδα. + +## Multiaddr {#multiaddr} + +Η αρχική μορφή διεύθυνσης κόμβου Ethereum ήταν η «multiaddr» (συντόμευση του «multi-addresses»). Το «Multiaddr» είναι μια γενική μορφή σχεδιασμένη για ομότιμα δίκτυα. Οι διευθύνσεις αναπαρίστανται ως ζεύγη τιμής-κλειδιού με κλειδιά και τιμές διαχωρισμένες με μια κάθετο προς τα εμπρός. Για παράδειγμα, το «multiaddr» για έναν κόμβο με διεύθυνση IPv4 `192.168.22.27` στη θύρα TCP `33000` συντάσσεται ως: + +`/ip4/192.168.22.27/tcp/33000` + +Για έναν κόμβο Ethereum, το «multiaddr» περιέχει το «node-ID» (ένα αναγνωριστικό του δημόσιου κλειδιού τους): + +`/ip4/192.168.22.27/tcp/33000/p2p/5t7Nv7dG2d6ffbvAiewVsEwWweU3LdebSqX2y1bPrW8br` + +## Enode {#enode} + +Ένα «enode» είναι ένας τρόπος για να αναγνωρίσετε έναν κόμβο Ethereum χρησιμοποιώντας μια μορφή διεύθυνσης URL. Το δεκαεξαδικό αναγνωριστικό κόμβου (node-ID) κωδικοποιείται στο τμήμα ονόματος χρήστη της διεύθυνσης URL που διαχωρίζεται από τον κεντρικό υπολογιστή χρησιμοποιώντας ένα σύμβολο «@». Το όνομα υπολογιστή μπορεί να δοθεί μόνο ως διεύθυνση IP. Τα ονόματα DNS δεν επιτρέπονται. Η θύρα στην ενότητα όνομα υπολογιστή είναι η θύρα ακρόασης TCP. Εάν οι θύρες TCP και UDP (ανακάλυψης) διαφέρουν, η θύρα UDP καθορίζεται ως παράμετρος ερωτήματος "discport". + +Στο παρακάτω παράδειγμα, η διεύθυνση URL του κόμβου περιγράφει έναν κόμβο με διεύθυνση IP `10.3.58.`, τη θύρα TCP `30303` και τη θύρα εξεύρεσης UDP `30301`. + +`enode://6f8a80d14311c39f35f516fa664deaaaa13e85b2f7493f37f6144d86991ec012937307647bd3b9a82abe2974e1407241d54947bbb39763a4cac9f77166ad92a0@10.3.58.6:30303?discport=30301` + +## Εγγραφές Κόμβων Ethereum (ENRs) {#enr} + +Οι εγγραφές κόμβων Ethereum (ENRs) είναι μια τυποποιημένη μορφή για διευθύνσεις δικτύου στο Ethereum. Υπερισχύουν τις multiaddr και τα enodes. Είναι ιδιαίτερα χρήσιμα επειδή επιτρέπουν μεγαλύτερη ανταλλαγή πληροφοριών μεταξύ των κόμβων. Το ENR περιέχει μια υπογραφή, έναν αύξοντα αριθμό και πεδία που περιγράφουν λεπτομερώς το σύστημα ταυτότητας, που χρησιμοποιείται για τη δημιουργία και την επικύρωση των υπογραφών. Το ENR μπορεί επίσης να συμπληρωθεί με αυθαίρετα δεδομένα που οργανώνονται ως ζεύγη κλειδιού-τιμής. Αυτά τα ζεύγη τιμής-κλειδιού περιέχουν τη διεύθυνση IP του κόμβου και πληροφορίες σχετικά με τα υπο-πρωτόκολλα που μπορεί να χρησιμοποιήσει ο κόμβος. Οι εφαρμογές πελάτη συναίνεσης χρησιμοποιούν μια [συγκεκριμένη δομή ENR](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) για να αναγνωρίσουν τους βασικούς κόμβους και περιλαμβάνουν επίσης ένα πεδίο `eth2` που περιέχει πληροφορίες σχετικά με τις τρέχουσες αναβαθμίσεις του Ethereum και το υποδίκτυο βεβαίωσης επικοινωνίας (αυτό συνδέει τον κόμβο με ένα συγκεκριμένο σύνολο ομότιμων των οποίων οι βεβαιώσεις συγκεντρώνονται μαζί). + +## Περισσότερες πληροφορίες {#further-reading} + +- [EIP-778: Εγγραφές Κόμβων Ethereum (ENRs)](https://eips.ethereum.org/EIPS/eip-778) +- [Διευθύνσεις δικτύου στο Ethereum](https://dean.eigenmann.me/blog/2020/01/21/network-addresses-in-ethereum/) +- [LibP2P: Multiaddr-Enode-ENR?!](https://consensys.net/diligence/blog/2020/09/libp2p-multiaddr-enode-enr/) diff --git a/public/content/translations/el/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/el/developers/docs/networking-layer/portal-network/index.md new file mode 100644 index 00000000000..c3de39b0e92 --- /dev/null +++ b/public/content/translations/el/developers/docs/networking-layer/portal-network/index.md @@ -0,0 +1,89 @@ +--- +title: Το δίκτυο Portal +description: Μια επισκόπηση του Δικτύου Portal - ενός δικτύου υπό ανάπτυξη που έχει σχεδιαστεί για την υποστήριξη πελατών χαμηλών πόρων. +lang: el +--- + +Το Ethereum είναι ένα δίκτυο που αποτελείται από υπολογιστές που εκτελούν το λογισμικό πελάτη Ethereum. Καθένας από αυτούς τους υπολογιστές ονομάζεται «κόμβος». Το λογισμικό εκτέλεσης επιτρέπει σε έναν κόμβο να στέλνει και να λαμβάνει δεδομένα στο δίκτυο Ethereum και επαληθεύει δεδομένα σύμφωνα με τους κανόνες του πρωτοκόλλου Ethereum. Οι κόμβοι διατηρούν πολλά ιστορικά δεδομένα στον αποθηκευτικό χώρο του δίσκου τους και προσθέτουν σε αυτά νέα πακέτα πληροφοριών, γνωστά ως μπλοκ, από άλλους κόμβους του δικτύου. Αυτό είναι απαραίτητο για να ελέγχεται πάντα ότι ένας κόμβος έχει πληροφορίες συνεπής με το υπόλοιπο δίκτυο. Αυτό σημαίνει ότι η εκτέλεση ενός κόμβου μπορεί να απαιτεί πολύ χώρο στο δίσκο. Ορισμένες λειτουργίες κόμβου μπορεί να απαιτούν αρκετή χρήση μνήμης RAM. + +Για να ξεπεραστεί αυτό το πρόβλημα αποθηκευτικού χώρου στο δίσκο, έχουν αναπτυχθεί «ελαφροί» κόμβοι που ζητούν πληροφορίες από πλήρεις κόμβους αντί να τις αποθηκεύουν όλες οι ίδιοι. Ωστόσο, αυτό σημαίνει ότι ο ελαφρύς κόμβος δεν επαληθεύει ανεξάρτητα τις πληροφορίες και εμπιστεύεται έναν άλλο κόμβο. Σημαίνει επίσης ότι οι πλήρεις κόμβοι πρέπει να αναλάβουν επιπλέον εργασία για την εξυπηρέτηση αυτών των ελαφρών κόμβων. + +Το Δίκτυο Portal είναι ένας νέος σχεδιασμός δικτύωσης για το Ethereum που στοχεύει να λύσει το πρόβλημα διαθεσιμότητας δεδομένων για «ελαφρούς» κόμβους χωρίς να χρειάζεται να εμπιστευόμαστε ή να επιβαρύνουμε τους πλήρεις κόμβους, μοιράζοντας τα απαραίτητα δεδομένα σε μικρά κομμάτια στο δίκτυο. + +Περισσότερα για [κόμβους και πελάτες](/developers/docs/nodes-and-clients/) + +## Γιατί χρειαζόμαστε το Δίκτυο Portal {#why-do-we-need-portal-network} + +Οι κόμβοι Ethereum αποθηκεύουν το δικό τους πλήρες ή μερικό αντίγραφο του Ethereum blockchain. Αυτό το τοπικό αντίγραφο χρησιμοποιείται για την επικύρωση συναλλαγών και τη διασφάλιση ότι ο κόμβος ακολουθεί τη σωστή αλυσίδα. Αυτά τα τοπικά αποθηκευμένα δεδομένα επιτρέπουν στους κόμβους να επαληθεύουν ανεξάρτητα ότι τα εισερχόμενα δεδομένα είναι έγκυρα και σωστά χωρίς να χρειάζεται να εμπιστεύονται οποιαδήποτε άλλη οντότητα. + +Αυτό το τοπικό αντίγραφο του blockchain και των σχετικών δεδομένων κατάστασης και παραλαβής καταλαμβάνει πολύ χώρο στον σκληρό δίσκο του κόμβου. Για παράδειγμα, ένας σκληρός δίσκος 2TΒ συνιστάται για την εκτέλεση ενός κόμβου χρησιμοποιώντας το [Geth](https://geth.ethereum.org) σε συνδυασμό με έναν πελάτη συναίνεσης. Χρησιμοποιώντας "snap sync", το οποίο αποθηκεύει μόνο δεδομένα αλυσίδας από ένα σχετικά πρόσφατο σύνολο μπλοκ, το Geth καταλαμβάνει συνήθως περίπου 650GB χώρου στο δίσκο, αλλά αυξάνεται περίπου στα 14GB/εβδομάδα (μπορείτε να περικόψετε τον κόμβο στα 650GB περιοδικά). + +Αυτό σημαίνει ότι η εκτέλεση κόμβων μπορεί να είναι ακριβή, επειδή ένας μεγάλος χώρος στο δίσκο πρέπει να αφιερωθεί στο Ethereum. Υπάρχουν μερικές λύσεις για αυτό το πρόβλημα στον οδικό χάρτη του Ethereum, συμπεριλαμβανομένων των [history expiry](/roadmap/statelessness/#history-expiry), [state expiry](/roadmap/statelessness/#state-expiry) και [statelessness](/roadmap/statelessness/). Ωστόσο, είναι πιθανό να απέχουν αρκετά χρόνια από την εφαρμογή τους. Υπάρχουν επίσης [ελαφροί κόμβοι](/developers/docs/nodes-and-clients/light-clients/) που δεν αποθηκεύουν το δικό τους αντίγραφο των δεδομένων της αλυσίδας, έτσι ζητούν τα δεδομένα που χρειάζονται από πλήρεις κόμβους. Ωστόσο, αυτό σημαίνει ότι οι ελαφροί κόμβοι πρέπει να εμπιστεύονται τους πλήρεις κόμβους για να παρέχουν ειλικρινή δεδομένα και επίσης τονίζει τους πλήρεις κόμβους που πρέπει να εξυπηρετούν τα δεδομένα που χρειάζονται οι ελαφροί κόμβοι. + +Το Δίκτυο Portal στοχεύει να παρέχει έναν εναλλακτικό τρόπο για τους ελαφρούς κόμβους να λαμβάνουν τα δεδομένα τους που δεν απαιτεί εμπιστοσύνη ή σημαντική προσθήκη στην εργασία που πρέπει να γίνει από τους πλήρεις κόμβους. Ο τρόπος με τον οποίο θα γίνει αυτό είναι να συσταθεί ένας νέος τρόπος για τους κόμβους Ethereum να μοιράζονται δεδομένα σε όλο το δίκτυο. + +## Πώς λειτουργεί το Δίκτυο Portal; {#how-does-portal-network-work} + +Οι κόμβοι Ethereum έχουν αυστηρά πρωτόκολλα που καθορίζουν τον τρόπο επικοινωνίας μεταξύ τους. Οι πελάτες εκτέλεσης επικοινωνούν χρησιμοποιώντας ένα σύνολο υπό πρωτοκόλλων γνωστών ως [DevP2P](/developers/docs/networking-layer/#devp2p), ενώ οι πελάτες συναίνεσης χρησιμοποιούν μια διαφορετική στοίβα υπό πρωτοκόλλων που ονομάζεται [libP2P](/developers/docs/networking-layer/#libp2p). Αυτά ορίζουν τους τύπους δεδομένων που μπορούν να διαβιβαστούν μεταξύ των κόμβων. + +![devP2P και libP2P](portal-network-devp2p-libp2p.png) + +Οι κόμβοι μπορούν επίσης να εξυπηρετούν συγκεκριμένα δεδομένα μέσω του [JSON-RPC API](/developers/docs/apis/json-rpc/), με τον οποίο οι εφαρμογές και τα πορτοφόλια ανταλλάσσουν πληροφορίες με κόμβους Ethereum. Ωστόσο, κανένα από αυτά δεν είναι ιδανικά πρωτόκολλα για την εξυπηρέτηση δεδομένων σε ελαφρούς πελάτες. + +Οι ελαφροί πελάτες δεν μπορούν αυτή τη στιγμή να ζητήσουν συγκεκριμένα κομμάτια δεδομένων αλυσίδας μέσω DevP2P ή libP2p επειδή αυτά τα πρωτόκολλα έχουν σχεδιαστεί μόνο για να επιτρέπουν τον συγχρονισμό αλυσίδας και τη διάδοση μπλοκ και συναλλαγών. Οι πελάτες μικρού μεγέθους δε θέλουν να κατεβάσουν αυτές τις πληροφορίες επειδή αυτό θα τους εμπόδιζε να είναι "μικροί". + +Το API JSON-RPC δεν είναι μια ιδανική επιλογή για αιτήματα δεδομένων ελαφρών πελατών, επειδή βασίζεται σε μια σύνδεση με έναν συγκεκριμένο πλήρη κόμβο ή κεντρικό πάροχο RPC που μπορεί να εξυπηρετήσει τα δεδομένα. Αυτό σημαίνει ότι ο ελαφρύς πελάτης πρέπει να εμπιστεύεται ότι ο συγκεκριμένος κόμβος/πάροχος είναι ειλικρινής και επίσης ο πλήρης κόμβος μπορεί να χρειαστεί να χειριστεί πολλά αιτήματα από πολλούς ελαφρούς πελάτες, αυξάνοντας τις απαιτήσεις του σε εύρος ζώνης. + +Το σημείο του Portal Network είναι να επανασχεδιάσει ολόκληρη τη σχεδίαση, κατασκευάζοντας ειδικά για ελαφρότητα, εκτός των περιορισμών σχεδιασμού των υπαρχόντων πελατών Ethereum. + +Η βασική ιδέα του Portal Network είναι να λάβει τα καλύτερα κομμάτια της τρέχουσας στοίβας δικτύωσης επιτρέποντας πληροφορίες που χρειάζονται οι ελαφροί πελάτες, όπως τα ιστορικά δεδομένα και η ταυτότητα της τρέχουσας κεφαλής της αλυσίδας, να εξυπηρετούνται μέσω ενός ελαφρού δικτύου peer-to-peer τύπου DevP2P χρησιμοποιώντας ένα [DHT](https://en.wikipedia.org/wiki/Distributed_hash_table) (παρόμοιο με το Bittorrent). + +Η ιδέα είναι να προστεθούν μικρά μέρη των συνολικών ιστορικών δεδομένων Ethereum και ορισμένες συγκεκριμένες ευθύνες κόμβου σε κάθε κόμβο. Στη συνέχεια, τα αιτήματα εξυπηρετούνται αναζητώντας τους κόμβους που αποθηκεύουν τα συγκεκριμένα δεδομένα που ζητήθηκαν και ανακτώντας τα από αυτούς. + +Αυτό αντιστρέφει το κανονικό μοντέλο των ελαφρών κόμβων που βρίσκουν έναν μόνο κόμβο και τους ζητούν να φιλτράρουν και να εξυπηρετούν μεγάλους όγκους δεδομένων. Αντίθετα, φιλτράρουν γρήγορα ένα μεγάλο δίκτυο κόμβων που ο καθένας χειρίζεται μικρές ποσότητες δεδομένων. + +Ο στόχος είναι να επιτραπεί σε ένα αποκεντρωμένο δίκτυο ελαφρών πελατών του Portal να: + +- Παρακολουθεί την αρχή της αλυσίδας. +- Συγχρονίζει τα πρόσφατα και ιστορικά δεδομένα αλυσίδας. +- Λαμβάνει τα δεδομένα κατάστασης. +- Μεταδίδει συναλλαγές. +- Εκτελεί συναλλαγές χρησιμοποιώντας την [EVM](/developers/docs/evm/). + +Τα πλεονεκτήματα αυτού του σχεδιασμού δικτύου είναι: + +- Μείωση της εξάρτησης από κεντρικούς παρόχους +- Μείωση χρήσης εύρους διαδικτύου +- Ελαχιστοποίηση ή μηδενικός συγχρονισμός +- Προσβάσιμο σε συσκευές με περιορισμένους πόρους (\<1 GB RAM, \<100 MB χώρος δίσκου, 1 CPU) + +Το παρακάτω διάγραμμα δείχνει τις λειτουργίες των υπάρχοντων πελατών που μπορούν να παραδοθούν από το Δίκτυο Πύλης, επιτρέποντας στους χρήστες να έχουν πρόσβαση σε αυτές τις λειτουργίες σε συσκευές πολύ χαμηλών πόρων. + +### Το δίκτυο Portal + +| Ελαφρύς πελάτης Beacon | Κατάσταση δικτύου | Ενημέρωση συναλλαγής | Δίκτυο ιστορικού | +| ---------------------- | ---------------------------------------------- | --------------------- | ---------------- | +| Beacon chain light | Αποθηκευτικός χώρος λογαριασμού και συμβολαίου | Μικρό μέγεθος mempool | Επικεφαλίδες | +| Δεδομένα πρωτοκόλλου | | | Κορμός μπλοκ | +| | | | Αποδείξεις | + +## Ποικιλομορφία Πελατών από προεπιλογή {#client-diversity-as-default} + +Οι προγραμματιστές του Δικτύου Portal έκαναν επίσης την επιλογή σχεδιασμού να κατασκευάσουν τρεις ξεχωριστούς πελάτες Δικτύου Portal από την πρώτη ημέρα. + +Οι πελάτες του Δικτύου Portal είναι: + +- [Trin](https://github.com/ethereum/trin): γραμμένο σε Rust +- [Fluffy](https://nimbus.team/docs/fluffy.html): γραμμένο σε Nim +- [Ultralight](https://github.com/ethereumjs/ultralight): γραμμένο σε Typescript +- [Shisui](https://github.com/optimism-java/shisui): γραμμένο σε Go + +Η ύπαρξη πολλαπλών ανεξάρτητων υλοποιήσεων πελατών ενισχύει την ανθεκτικότητα και την αποκέντρωση του δικτύου Ethereum. + +Εάν ένας πελάτης αντιμετωπίζει προβλήματα ή ευπάθειες, άλλοι πελάτες μπορούν να συνεχίσουν να λειτουργούν ομαλά, αποτρέποντας ένα ενιαίο σημείο αποτυχίας. Επιπλέον, οι διαφορετικές υλοποιήσεις πελατών ενθαρρύνουν την καινοτομία και τον ανταγωνισμό, οδηγώντας σε βελτιώσεις και μειώνοντας τον κίνδυνο μονοκαλλιέργειας μέσα στο οικοσύστημα. + +## Περισσότερες πληροφορίες {#further-reading} + +- [Το Δίκτυο Portal (Piper Merriam στο Devcon Bogota)](https://www.youtube.com/watch?v=0stc9jnQLXA). +- [Το Discord του Δικτύου Portal](https://discord.gg/CFFnmE7Hbs) +- [Ο ιστότοπος του Δικτύου Portal](https://www.ethportal.net/) diff --git a/public/content/translations/el/developers/docs/networks/index.md b/public/content/translations/el/developers/docs/networks/index.md index 69718a5cca4..d0c300cd779 100644 --- a/public/content/translations/el/developers/docs/networks/index.md +++ b/public/content/translations/el/developers/docs/networks/index.md @@ -34,15 +34,11 @@ lang: el #### Ποιo δοκιμαστικό δίκτυο να χρησιμοποιήσω; -Τα δύο δημόσια δοκιμαστικά δίκτυα που διατηρούν επί του παρόντος οι προγραμματιστές είναι το Sepolia και το Goerli. Το Sepolia είναι ένα δίκτυο ώστε οι προγραμματιστές συμβολαίων και εφαρμογών να δοκιμάζουν τις εφαρμογές τους. Το δίκτυο Goerli επιτρέπει στους προγραμματιστές πρωτοκόλλων να δοκιμάζουν τις αναβαθμίσεις του δικτύου και επιτρέπει στους συμμετέχοντες να δοκιμάζουν τους επικυρωτές. +Τα δύο δημόσια δοκιμαστικά δίκτυα που διατηρούν επί του παρόντος οι προγραμματιστές είναι το Sepolia και το Hoodi. Το Sepolia είναι ένα δίκτυο ώστε οι προγραμματιστές συμβολαίων και εφαρμογών να δοκιμάζουν τις εφαρμογές τους. Το δίκτυο Hoodi επιτρέπει στους προγραμματιστές πρωτοκόλλων να δοκιμάζουν τις αναβαθμίσεις του δικτύου και επιτρέπει στους συμμετέχοντες να δοκιμάζουν τους επικυρωτές. #### Sepolia {#sepolia} -**Το Sepolia είναι το προτεινόμενο προεπιλεγμένο δοκιμαστικό δίκτυο για την ανάπτυξη εφαρμογών**. Το δίκτυο Sepolia χρησιμοποιεί ένα σύνολο επικυρωτών με άδεια. Είναι αρκετά νέο, που σημαίνει ότι η κατάσταση και η ιστορία του είναι και τα δύο αρκετά μικρά. Αυτό σημαίνει ότι το δίκτυο συγχρονίζεται γρήγορα και ότι η εκτέλεση ενός κόμβου σε αυτό απαιτεί λιγότερο χώρο αποθήκευσης. Αυτό είναι χρήσιμο για χρήστες που θέλουν να εκτελέσουν γρήγορα έναν κόμβο και να αλληλεπιδράσουν απευθείας με το δίκτυο. - -- Κλειστό σύνολο επικυρωτών, ελεγχόμενο από πελάτη & ομάδες δοκιμών -- Νέο δοκιμαστικό δίκτυο, με λιγότερες αναπτυσσόμενες εφαρμογές από άλλα δοκιμαστικά δίκτυα -- Με γρήγορο συγχρονισμό και εκτέλεση κόμβου που απαιτεί ελάχιστο χώρο στο δίσκο +**Το Sepolia είναι το προτεινόμενο προεπιλεγμένο δοκιμαστικό δίκτυο για την ανάπτυξη εφαρμογών**. Το δίκτυο Sepolia χρησιμοποιεί ένα σύνολο επικυρωτών με δικαιώματα που ελέγχεται από ομάδες πελατών και δοκιμών. ##### Πηγές @@ -54,73 +50,110 @@ lang: el ##### Faucets -- [Sepolia faucet στο QuickNode](https://faucet.quicknode.com/drip) +- [Πηγή QuickNode Sepolia](https://faucet.quicknode.com/ethereum/sepolia) - [Grabteeth](https://grabteeth.xyz/) -- [PoW faucet](https://sepolia-faucet.pk910.de/) -- [Coinbase Wallet faucet | Sepolia](https://coinbase.com/faucets/ethereum-sepolia-faucet) -- [Sepolia faucet στο Alchemy](https://sepoliafaucet.com/) -- [Sepolia faucet στο Infura](https://www.infura.io/faucet) -- [Sepolia faucet στο Chainstack](https://faucet.chainstack.com/sepolia-faucet) -- [Faucet στο οικοσύστημα Ethereum](https://www.ethereum-ecosystem.com/faucets/ethereum-sepolia) +- [Πηγή PoW](https://sepolia-faucet.pk910.de/) +- [Πηγή Alchemy Sepolia](https://www.alchemy.com/faucets/ethereum-sepolia) +- [Πηγή Infura Sepolia](https://www.infura.io/faucet) +- [Πηγή Chainstack Sepolia](https://faucet.chainstack.com/sepolia-testnet-faucet) +- [Πηγή Ethereum Ecosystem](https://www.ethereum-ecosystem.com/faucets/ethereum-sepolia) +- [Πηγή Google Cloud Web3 Sepolia](https://cloud.google.com/application/web3/faucet/ethereum/sepolia) + +#### Hoodi {#hoodi} -#### Goerli _(μακροπρόθεσμη υποστήριξη)_ {#goerli} +Το Hoodi είναι ένα δοκιμαστικό δίκτυο για δοκιμές επικύρωσης και αποθήκευσης. Το δίκτυο Hoodi είναι ανοιχτό για χρήστες που θέλουν να εκτελέσουν ένα πρόγραμμα επικύρωσης δοκιμαστικού δικτύου. Επομένως, οι συμμετέχοντες που επιθυμούν να δοκιμάσουν αναβαθμίσεις πρωτοκόλλου πριν από την ανάπτυξή τους στο βασικό δίκτυο θα πρέπει να χρησιμοποιούν το Hoodi. -_Σημείωση: [το δοκιμαστικό δίκτυο Goerli έχει καταργηθεί](https://ethereum-magicians.org/t/proposal-predictable-ethereum-testnet-lifecycle/11575/17) και θα αντικατασταθεί από το [Holesovice](https://github.com/eth-clients/holesovice) το 2023. Παρακαλώ λάβετε υπόψη τη μετεγκατάσταση των εφαρμογών σας στο Sepolia._ +- Ελεύθερο σύνολο επικυρωτή, οι χρήστες με δεσμευμένο κεφάλαιο μπορούν να δοκιμάσουν αναβαθμίσεις δικτύου +- Μεγάλη κατάσταση, χρήσιμη για τον έλεγχο σύνθετων αλληλεπιδράσεων έξυπνων συμβολαίων +- Περισσότερος χρόνος συγχρονισμού και απαιτείται περισσότερος χώρος αποθήκευσης για την εκτέλεση ενός κόμβου -Το Goerli είναι ένα δοκιμαστικό δίκτυο για δοκιμές επικύρωσης και αποθήκευσης. Το δίκτυο Goerli είναι ανοιχτό για χρήστες που θέλουν να εκτελέσουν ένα πρόγραμμα επικύρωσης δοκιμαστικού δικτύου. Επομένως, οι συμμετέχοντες που επιθυμούν να δοκιμάσουν αναβαθμίσεις πρωτοκόλλου πριν από την ανάπτυξή τους στο βασικό δίκτυο θα πρέπει να χρησιμοποιούν το Goerli. +##### Πηγές -- Ανοιχτό σετ επικυρωτή, οι συμμετέχοντες μπορούν να δοκιμάσουν αναβαθμίσεις δικτύου -- Μεγάλη κατάσταση, χρήσιμη για τη δοκιμή σύνθετων αλληλεπιδράσεων έξυπνων συμβολαίων -- Μεγαλύτερη διάρκεια συγχρονισμού και περισσότερη αποθήκευση για τη λειτουργία ενός κόμβου +- [Ιστότοπος](https://hoodi.ethpandaops.io/) +- [GitHub](https://github.com/eth-clients/hoodi) +- [Εξερευνητής](https://explorer.hoodi.ethpandaops.io/) +- [Συγχρονισμός σημείου αναφοράς](https://checkpoint-sync.hoodi.ethpandaops.io/) +- [Otterscan](https://hoodi.otterscan.io/) +- [Etherscan](https://hoodi.etherscan.io/) +- [Blockscout](https://hoodi.cloud.blockscout.com/) + +##### Faucets + +- [Hoodi Faucet](https://hoodi.ethpandaops.io/) +- [Πηγή PoW](https://hoodi-faucet.pk910.de/) + +#### Holesky {#holesky} + +Το δίκτυο δοκιμών Holesky θα [καταργηθεί τον Σεπτέμβριο του 2025](https://blog.ethereum.org/en/2025/03/18/hoodi-holesky). Οι πάροχοι δέσμευσης κεφαλαίου και οι πάροχοι υποδομών θα πρέπει να χρησιμοποιούν το Hoodi για δοκιμές επικύρωσης. ##### Πηγές -- [Ιστότοπος](https://goerli.net/) -- [GitHub](https://github.com/eth-clients/goerli) -- [Etherscan](https://goerli.etherscan.io) -- [Blockscout](https://eth-goerli.blockscout.com/) +- [Ιστότοπος](https://holesky.ethpandaops.io/) +- [GitHub](https://github.com/eth-clients/holesky) +- [Otterscan](https://holesky.otterscan.io/) +- [Etherscan](https://holesky.etherscan.io/) +- [Blockscout](https://eth-holesky.blockscout.com/) ##### Faucets -- [Goerli faucet στο QuickNode](https://faucet.quicknode.com/drip) -- [Grabteeth](https://grabteeth.xyz/) -- [PoW faucet](https://goerli-faucet.pk910.de/) -- [Paradigm faucet](https://faucet.paradigm.xyz/) -- [Alchemy Goerli faucet](https://goerlifaucet.com/) -- [Goerli faucet στο All That Node](https://www.allthatnode.com/faucet/ethereum.dsrv) -- [Coinbase Wallet Faucet | Goerli](https://coinbase.com/faucets/ethereum-goerli-faucet) -- [Goerli faucet στο Chainstack](https://faucet.chainstack.com/goerli-faucet) +- [Πηγή QuickNode Holesky](https://faucet.quicknode.com/ethereum/holesky) +- [Πηγή PoW](https://holesky-faucet.pk910.de/) +- [Πηγή Alchemy Holesky](https://www.alchemy.com/faucets/ethereum-holesky) +- [Πηγή Chainstack Holesky](https://faucet.chainstack.com/holesky-testnet-faucet) +- [Πηγή Ethereum Ecosystem](https://www.ethereum-ecosystem.com/faucets/ethereum-holesky) +- [Πηγή Google Cloud Web3 Holesky](https://cloud.google.com/application/web3/faucet/ethereum/holesky) -Για να εκκινήσετε έναν επικυρωτή στο δίκτυο δοκιμών Holesky, χρησιμοποιήστε την [πλατφόρμα «φτηνού επικυρωτή Holesky»](https://holesky.launchpad.ethstaker.cc/en/) του ethstaker. +Για να ξεκινήσετε έναν επικυρωτή στο Hoodi testnet, χρησιμοποιήστε το [Hoodi launchpad](https://hoodi.launchpad.ethereum.org/en/). ### Δίκτυα δοκιμών Layer 2 {#layer-2-testnets} Το [επίπεδο 2 (L2)](/layer-2/) είναι ένας συλλογικός όρος που περιγράφει ένα συγκεκριμένο σύνολο λύσεων κλιμάκωσης Ethereum. Το επίπεδο 2 είναι μια ξεχωριστή αλυσίδα συστοιχιών που επεκτείνει το Ethereum και κληρονομεί τις εγγυήσεις ασφαλείας του Ethereum. Τα δοκιμαστικά δίκτυα επιπέδου 2 είναι συνήθως στενά συνδεδεμένα με δημόσια δοκιμαστικά δίκτυα Ethereum. -#### Arbitrum Goerli {#arbitrum-goerli} +#### Arbitrum Sepolia {#arbitrum-sepolia} Ένα δίκτυο δοκιμών για το [Arbitrum](https://arbitrum.io/). +##### Πηγές + +- [Etherscan](https://sepolia.arbiscan.io/) +- [Blockscout](https://sepolia-explorer.arbitrum.io/) + ##### Faucets -- [Πάροχος Chainlink](https://faucets.chain.link/) +- [Πηγή Chainlink](https://faucets.chain.link/arbitrum-sepolia) +- [Alchemy faucet](https://www.alchemy.com/faucets/arbitrum-sepolia) +- [Πηγή QuickNode Arbitrum Sepolia](https://faucet.quicknode.com/arbitrum/sepolia) +- [Πηγή Alchemy Arbitrum Sepolia](https://www.alchemy.com/faucets/arbitrum-sepolia) +- [Πηγή Chainlink Arbitrum Sepolia](https://faucets.chain.link/arbitrum-sepolia) -#### Optimistic Goerli {#optimistic-goerli} +#### Optimistic Sepolia {#optimistic-sepolia} Ένα δίκτυο δοκιμών για το [Optimism](https://www.optimism.io/). +##### Πηγές + +- [Etherscan](https://sepolia-optimistic.etherscan.io/) +- [Blockscout](https://optimism-sepolia.blockscout.com/) + ##### Faucets -- [Paradigm faucet](https://faucet.paradigm.xyz/) -- [Coinbase Wallet Faucet | Optimism Goerli](https://coinbase.com/faucets/optimism-goerli-faucet) +- [Πηγή Chainlink](https://faucets.chain.link/optimism-sepolia) +- [Alchemy faucet](https://www.alchemy.com/faucets/optimism-sepolia) +- [Πηγές δικτύων δοκιμών](https://docs.optimism.io/builders/tools/build/faucets) -#### Starknet Goerli {#starknet-goerli} +#### Starknet Sepolia {#starknet-sepolia} Ένα δοκιμαστικό δίκτυο για το [Starknet](https://www.starknet.io). +##### Πηγές + +- [Starkscan](https://sepolia.starkscan.co/) + ##### Faucets -- [Starknet faucet](https://faucet.goerli.starknet.io) +- [Alchemy faucet](https://www.alchemy.com/faucets/starknet-sepolia) +- [Starknet faucet](https://starknet-faucet.vercel.app/) +- [Πηγή Blast Starknet Sepolia](https://blastapi.io/faucets/starknet-sepolia-eth) ## Ιδιωτικά δίκτυα {#private-networks} @@ -140,10 +173,10 @@ _Σημείωση: [το δοκιμαστικό δίκτυο Goerli έχει κ ## Σχετικά εργαλεία {#related-tools} -- Κατάλογος [Chainlist](https://chainlist.org/) _δικτύων EVM που συνδέουν πορτοφόλια και παρόχους στην κατάλληλη ταυτότητα αλυσίδας και ταυτότητα δικτύου_ -- [Αλυσίδες που βασίζονται σε EVM](https://github.com/ethereum-lists/chains) _Αποθετήριο GitHub μεταδεδομένων αλυσίδας που ενεργοποιεί το Chainlist_ +- [Chainlist](https://chainlist.org/) _λίστα δικτύων EVM για τη σύνδεση πορτοφολιών και παρόχων με το κατάλληλο Chain ID και Network ID_ +- [Αλυσίδες που βασίζονται σε EVM](https://github.com/ethereum-lists/chains) _Αποθετήριο μεταδεδομένων αλυσίδας GitHub που υποστηρίζει το Chainlist_ ## Περισσότερες πληροφορίες {#further-reading} -- [Πρόταση: Προβλέψιμος κύκλος ζωής του δοκιμαστικού δικτύου Ethereum](https://ethereum-magicians.org/t/proposal-predictable-ethereum-testnet-lifecycle/11575/17) -- [Η εξέλιξη των δοκιμαστικών δικτύων Ethereum](https://etherworld.co/2022/08/19/the-evolution-of-ethereum-testnet/) +- [Πρόταση: Προβλέψιμος κύκλος ζωής Ethereum Testnet](https://ethereum-magicians.org/t/proposal-predictable-ethereum-testnet-lifecycle/11575/17) +- [Η Εξέλιξη των Δοκιμαστικών Δικτύων Ethereum](https://etherworld.co/2022/08/19/the-evolution-of-ethereum-testnet/) diff --git a/public/content/translations/el/developers/docs/oracles/index.md b/public/content/translations/el/developers/docs/oracles/index.md new file mode 100644 index 00000000000..752a6fe510d --- /dev/null +++ b/public/content/translations/el/developers/docs/oracles/index.md @@ -0,0 +1,435 @@ +--- +title: Oracle +description: Η Oracle παρέχει στα έξυπνα συμβόλαια Ethereum πρόσβαση σε δεδομένα πραγματικού κόσμου, ξεκλειδώνοντας περισσότερες περιπτώσεις χρήσης και μεγαλύτερη αξία για τους χρήστες. +lang: el +--- + +Οι oracles είναι εφαρμογές που παράγουν ροές δεδομένων εκτός αλυσίδας που καθιστούν διαθέσιμες τις εξωτερικές πηγές δεδομένων στο blockchain για έξυπνα συμβόλαια. Αυτό είναι απαραίτητο επειδή τα έξυπνα συμβόλαια που βασίζονται στο Ethereum δεν μπορούν, από προεπιλογή, να έχουν πρόσβαση σε πληροφορίες που αποθηκεύονται εκτός του δικτύου κρυπτοαλυσίδας. + +Η παροχή δυνατότητας στα έξυπνα συμβόλαια να εκτελούνται χρησιμοποιώντας δεδομένα εκτός αλυσίδας, επεκτείνει τη χρησιμότητα και την αξία των αποκεντρωμένων εφαρμογών. Για παράδειγμα, οι αγορές προβλέψεων στην αλυσίδα βασίζονται σε χρησμούς για την παροχή πληροφοριών σχετικά με αποτελέσματα που χρησιμοποιούν για την επικύρωση των προβλέψεων των χρηστών. Ας υποθέσουμε ότι η Alice στοιχηματίζει 20 ETH για το ποιος θα γίνει ο επόμενος Πρόεδρος των ΗΠΑ. Πρόεδρος. Σε αυτήν την περίπτωση, η εφαρμογή αγοράς προβλέψεων χρειάζεται έναν χρησμό για να επιβεβαιώσει τα αποτελέσματα των εκλογών και να καθορίσει εάν η Alice δικαιούται πληρωμή. + +## Προαπαιτούμενα {#prerequisites} + +Αυτή η σελίδα υποθέτει ότι ο αναγνώστης είναι εξοικειωμένος με τα βασικά του Ethereum, συμπεριλαμβανομένων των [κόμβων](/developers/docs/nodes-and-clients/), των [μηχανισμών συναίνεσης](/developers/docs/consensus-mechanisms/) και του [EVM](/developers/docs/evm/). Πρέπει επίσης να έχετε καλή κατανόηση των [έξυπνων συμβολαίων](/developers/docs/smart-contracts/) και της [ανατομίας των έξυπνων συμβολαίων](/developers/docs/smart-contracts/anatomy/), ειδικά των [συμβάντων](/glossary/#events). + +## Τι είναι ένα oracle blockchain; {#what-is-a-blockchain-oracle} + +Τα oracles είναι εφαρμογές που προμηθεύουν, επαληθεύουν και μεταδίδουν εξωτερικές πληροφορίες (δηλαδή πληροφορίες που αποθηκεύονται εκτός αλυσίδας) σε έξυπνα συμβόλαια που εκτελούνται στην κρυπτοαλυσίδα. Εκτός από την "άντληση" δεδομένων εκτός αλυσίδας και τη μετάδοσή τους στο Ethereum, τα oracles μπορούν επίσης να "σπρώχνουν" πληροφορίες από την κρυπτοαλυσίδα σε εξωτερικά συστήματα, π.χ. ξεκλειδώνοντας μια έξυπνη κλειδαριά όταν ο χρήστης στέλνει μια αμοιβή μέσω μιας συναλλαγής Ethereum. + +Χωρίς oracle, ένα έξυπνο συμβόλαιο θα περιοριζόταν εξ ολοκλήρου σε δεδομένα εντός αλυσίδας. + +Τα oracles διαφέρουν με βάση την πηγή δεδομένων (μία ή πολλές πηγές), τα μοντέλα εμπιστοσύνης (κεντρικά ή αποκεντρωμένα) και την αρχιτεκτονική συστήματος (άμεση ανάγνωση, δημοσίευση-εγγραφή και αίτηση-απάντηση). Μπορούμε επίσης να διακρίνουμε μεταξύ των oracles με βάση το εάν ανακτούν εξωτερικά δεδομένα για χρήση από συμβόλαια εντός αλυσίδας (oracle εισόδου), στέλνουν πληροφορίες από την κρυπτοαλυσίδα στις εφαρμογές εκτός αλυσίδας (oracle εξόδου) ή εκτελούν υπολογιστικά καθήκοντα εκτός αλυσίδας (υπολογιστικά oracles). + +## Γιατί τα έξυπνα συμβόλαια χρειάζονται oracles; {#why-do-smart-contracts-need-oracles} + +Πολλοί προγραμματιστές βλέπουν τα έξυπνα συμβόλαια ως κώδικα που εκτελείται σε συγκεκριμένες διευθύνσεις στην κρυπτοαλυσίδα. Ωστόσο, μια πιο [γενική άποψη των έξυπνων συμβολαίων](/smart-contracts/) είναι ότι πρόκειται για αυτοεκτελούμενα λογισμικά προγράμματα ικανά να επιβάλλουν συμφωνίες μεταξύ των μερών όταν πληρούνται συγκεκριμένες προϋποθέσεις, εξ ου και ο όρος "έξυπνα συμβόλαια". + +Αλλά η χρήση έξυπνων συμβολαίων για την επιβολή συμφωνιών μεταξύ ανθρώπων δεν είναι απλή, δεδομένου ότι το Ethereum είναι καθοριστικό. Ένα [καθοριστικό σύστημα](https://en.wikipedia.org/wiki/Deterministic_algorithm) είναι ένα σύστημα που παράγει πάντα τα ίδια αποτελέσματα δεδομένης μιας αρχικής κατάστασης και μιας συγκεκριμένης εισόδου, που σημαίνει ότι δεν υπάρχει τυχαιότητα ή διακύμανση στη διαδικασία υπολογισμού των εξόδων από τις εισόδους. + +Για να επιτευχθεί καθοριστική εκτέλεση, οι κρυπτοαλυσίδες περιορίζουν τους κόμβους να καταλήγουν σε συναίνεση σε απλές δυαδικές (αληθές/ψευδές) ερωτήσεις χρησιμοποιώντας _μόνο_ δεδομένα που αποθηκεύονται στην ίδια την κρυπτοαλυσίδα. Παραδείγματα τέτοιων ερωτήσεων περιλαμβάνουν: + +- «Υπέγραψε ο κάτοχος του λογαριασμού (ταυτοποιημένος από ένα δημόσιο κλειδί) αυτή τη συναλλαγή με το ζεύγος ιδιωτικού κλειδιού;» +- «Έχει αυτός ο λογαριασμός αρκετά κεφάλαια για να καλύψει τη συναλλαγή;» +- «Είναι αυτή η συναλλαγή έγκυρη στο πλαίσιο αυτού του έξυπνου συμβολαίου;» κ.λπ. + +Εάν οι κρυπτοαλυσίδες λάμβαναν πληροφορίες από εξωτερικές πηγές (δηλαδή από τον πραγματικό κόσμο), θα ήταν αδύνατο να επιτευχθεί ο καθορισμός, εμποδίζοντας τους κόμβους να συμφωνήσουν σχετικά με τη νομιμότητα των αλλαγών στην κατάσταση της κρυπτοαλυσίδας. Λάβετε για παράδειγμα ένα έξυπνο συμβόλαιο που εκτελεί μια συναλλαγή με βάση την τρέχουσα ισοτιμία ETH-USD που λαμβάνεται από ένα παραδοσιακό API τιμών. Αυτό το νούμερο είναι πιθανό να αλλάζει συχνά (μην αναφέρουμε ότι το API θα μπορούσε να καταργηθεί ή να παραβιαστεί), που σημαίνει ότι οι κόμβοι που εκτελούν τον ίδιο κώδικα συμβολαίου θα καταλήξουν σε διαφορετικά αποτελέσματα. + +Για μια δημόσια κρυπτοαλυσίδα όπως το Ethereum, με χιλιάδες κόμβους σε όλο τον κόσμο που επεξεργάζονται συναλλαγές, ο καθορισμός είναι κρίσιμος. Χωρίς κεντρική αρχή που να χρησιμεύει ως πηγή αλήθειας, οι κόμβοι χρειάζονται μηχανισμούς για να καταλήξουν στην ίδια κατάσταση μετά την εφαρμογή των ίδιων συναλλαγών. Μια περίπτωση όπου ο κόμβος Α εκτελεί τον κώδικα ενός έξυπνου συμβολαίου και παίρνει "3" ως αποτέλεσμα, ενώ ο κόμβος Β παίρνει "7" μετά την εκτέλεση της ίδιας συναλλαγής θα προκαλούσε τη διάλυση της συναίνεσης και θα εξάλειψε την αξία του Ethereum ως αποκεντρωμένη πλατφόρμα υπολογισμού. + +Αυτό το σενάριο επισημαίνει επίσης το πρόβλημα με το σχεδιασμό κρυπτοαλυσίδων για την άντληση πληροφοριών από εξωτερικές πηγές. Ωστόσο, τα oracle επιλύουν αυτό το πρόβλημα λαμβάνοντας πληροφορίες από πηγές εκτός αλυσίδας και αποθηκεύοντάς τις στην κρυπτοαλυσίδα για κατανάλωση από έξυπνα συμβόλαια. Δεδομένου ότι οι πληροφορίες που αποθηκεύονται εντός αλυσίδας είναι αναλλοίωτες και δημόσια διαθέσιμες, οι κόμβοι Ethereum μπορούν να χρησιμοποιήσουν με ασφάλεια τα δεδομένα που εισάγονται εκτός αλυσίδας από το oracle για να υπολογίσουν αλλαγές κατάστασης χωρίς να διακόψουν τη συναίνεση. + +Για να γίνει αυτό, ένα oracle αποτελείται συνήθως από ένα έξυπνο συμβόλαιο που εκτελείται στην αλυσίδα και ορισμένα στοιχεία εκτός αλυσίδας. Το συμβόλαιο εντός αλυσίδας λαμβάνει αιτήματα για δεδομένα από άλλα έξυπνα συμβόλαια, τα οποία μεταβιβάζει στο στοιχείο εκτός αλυσίδας (που ονομάζεται κόμβος oracle). Αυτός ο κόμβος oracle μπορεί να ερωτήσει πηγές δεδομένων — χρησιμοποιώντας διεπαφές προγραμματισμού εφαρμογών (API), για παράδειγμα και να στείλει συναλλαγές για να αποθηκεύσει τα ζητηθέντα δεδομένα στην αποθήκευση του έξυπνου συμβολαίου. + +Ουσιαστικά, ένα oracle κρυπτοαλυσίδας γεφυρώνει το κενό πληροφοριών μεταξύ της κρυπτοαλυσίδας και του εξωτερικού περιβάλλοντος, δημιουργώντας «υβριδικά έξυπνα συμβόλαια». Ένα υβριδικό έξυπνο συμβόλαιο είναι ένα που λειτουργεί με βάση έναν συνδυασμό κώδικα συμβολαίου στην αλυσίδα και υποδομής εκτός αλυσίδας. Οι αποκεντρωμένες αγορές πρόβλεψης είναι ένα εξαιρετικό παράδειγμα υβριδικών έξυπνων συμβολαίων. Άλλα παραδείγματα μπορεί να περιλαμβάνουν έξυπνα συμβόλαια ασφάλισης καλλιεργειών που αποδίδουν όταν ένα σύνολο oracles καθορίσει ότι έχουν συμβεί ορισμένα καιρικά φαινόμενα. + +## Τι είναι το πρόβλημα του oracle; {#the-oracle-problem} + +Τα oracles επιλύουν ένα σημαντικό πρόβλημα, αλλά εισάγουν επίσης κάποιες επιπλοκές, π.χ.: + +- Πώς μπορούμε να επαληθεύσουμε ότι οι εγχυόμενες πληροφορίες εξαχθήκαν από τη σωστή πηγή ή δεν έχουν παραποιηθεί; + +- Πώς μπορούμε να διασφαλίσουμε ότι αυτά τα δεδομένα είναι πάντα διαθέσιμα και ενημερώνονται τακτικά; + +Το λεγόμενο «πρόβλημα του oracle» δείχνει τα ζητήματα που προκύπτουν από τη χρήση oracles κρυπτοαλυσίδας για την αποστολή εισόδων σε έξυπνα συμβόλαια. Τα δεδομένα από ένα oracle πρέπει να είναι σωστά για να εκτελεστεί σωστά ένα έξυπνο συμβόλαιο. Επιπλέον, το να πρέπει να «εμπιστεύεσαι» τους χειριστές oracle για την παροχή ακριβών πληροφοριών υπονομεύει την «αξιόπιστη» πτυχή των έξυπνων συμβολαίων. + +Διαφορετικά oracles προσφέρουν διαφορετικές λύσεις στο πρόβλημα oracle, το οποίο θα εξερευνήσουμε αργότερα. Τα oracles αξιολογούνται συνήθως ως προς το πόσο καλά μπορούν να χειριστούν τις ακόλουθες προκλήσεις: + +1. **Ορθότητα**: Ένα oracle δεν πρέπει να προκαλεί στα έξυπνα συμβόλαια να ενεργοποιήσουν αλλαγές κατάστασης με βάση μη έγκυρα δεδομένα εκτός αλυσίδας. Ένα oracle πρέπει να εγγυάται την _αυθεντικότητα_ και την _ακεραιότητα_ των δεδομένων. Η αυθεντικότητα σημαίνει ότι τα δεδομένα προέρχονται από τη σωστή πηγή, ενώ η ακεραιότητα σημαίνει ότι τα δεδομένα παρέμειναν ανέπαφα (δηλαδή δεν άλλαξαν) πριν σταλούν στην αλυσίδα. + +2. **Διαθεσιμότητα**: Ένα oracle δεν πρέπει να καθυστερεί ή να εμποδίζει τα έξυπνα συμβόλαια να εκτελούν ενέργειες και να ενεργοποιούν αλλαγές κατάστασης. Αυτό σημαίνει ότι τα δεδομένα από ένα oracle πρέπει να είναι _διαθέσιμα κατόπιν αιτήματος_ χωρίς διακοπή. + +3. **Συμβατότητα κινήτρων**: Ένα oracle θα πρέπει να δίνει κίνητρα στους παρόχους δεδομένων εκτός αλυσίδας να υποβάλλουν σωστές πληροφορίες σε έξυπνα συμβόλαια. Η συμβατότητα κινήτρων περιλαμβάνει την _αποδιδόμενη_ και την _ευθύνη_. Η αποδιδόμενη επιτρέπει τη σύνδεση ενός κομματιού εξωτερικών πληροφοριών με τον πάροχό του, ενώ η ευθύνη συνδέει τους παρόχους δεδομένων με τις πληροφορίες που δίνουν, ώστε να μπορούν να ανταμειφθούν ή να τιμωρηθούν με βάση την ποιότητα των παρεχόμενων πληροφοριών. + +## Πώς λειτουργεί μια υπηρεσία oracle κρυπτοαλυσίδας; {#how-does-a-blockchain-oracle-service-work} + +### Χρήστες {#users} + +Οι χρήστες είναι οντότητες (π.χ., έξυπνα συμβόλαια) που χρειάζονται πληροφορίες εξωτερικές από την κρυπτοαλυσίδα για να ολοκληρώσουν συγκεκριμένες ενέργειες. Η βασική ροή εργασίας μιας υπηρεσίας oracle ξεκινά με τον χρήστη που στέλνει ένα αίτημα δεδομένων στο συμβόλαιο oracle. Τα αιτήματα δεδομένων θα απαντούν συνήθως σε ορισμένες ή όλες τις ακόλουθες ερωτήσεις: + +1. Ποιες πηγές μπορούν να συμβουλευτούν οι κόμβοι εκτός αλυσίδας για τις ζητούμενες πληροφορίες; + +2. Με ποιο τρόπο οι δημοσιογράφοι επεξεργάζονται τις πληροφορίες από τις πηγές δεδομένων και εξάγουν χρήσιμα σημεία δεδομένων; + +3. Πόσοι κόμβοι oracle μπορούν να συμμετάσχουν στην ανάκτηση των δεδομένων; + +4. Πώς θα πρέπει να διαχειρίζονται οι αποκλίσεις στις αναφορές oracle; + +5. Ποια μέθοδος θα πρέπει να εφαρμοστεί για το φιλτράρισμα των υποβολών και τις συναθροίσεις αναφορών σε μια ενιαία τιμή; + +### Συμβόλαιο Oracle {#oracle-contract} + +Το συμβόλαιο oracle είναι το στοιχείο στην αλυσίδα για την υπηρεσία oracle. Αναμένει αιτήματα δεδομένων από άλλα συμβόλαια, μεταφέρει ερωτήματα δεδομένων σε κόμβους oracle και μεταδίδει τα επιστρεφόμενα δεδομένα σε συμβόλαια πελατών. Αυτό το συμβόλαιο μπορεί επίσης να εκτελέσει ορισμένους υπολογισμούς στα επιστρεφόμενα σημεία δεδομένων για να παράγει μια συγκεντρωτική τιμή που θα σταλεί στο συμβόλαιο που ζητά. + +Το συμβόλαιο oracle εκθέτει ορισμένες λειτουργίες που καλούν τα συμβόλαια πελατών όταν κάνουν ένα αίτημα δεδομένων. Κατά την παραλαβή μιας νέας ερώτησης, το έξυπνο συμβόλαιο θα εκπέμπει ένα [συμβάν καταγραφής](/developers/docs/smart-contracts/anatomy/#events-and-logs) με λεπτομέρειες του αιτήματος δεδομένων. Αυτό ειδοποιεί τους κόμβους εκτός αλυσίδας που είναι εγγεγραμμένοι στο αρχείο καταγραφής (συνήθως χρησιμοποιώντας κάτι σαν την εντολή JSON-RPC `eth_subscribe`), οι οποίοι προχωρούν στην ανάκτηση δεδομένων που ορίζονται στο συμβάν καταγραφής. + +Παρακάτω είναι ένα [παράδειγμα συμβολαίου oracle](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) από τον Pedro Costa. Αυτή είναι μια απλή υπηρεσία oracle που μπορεί να επικοινωνήσει με API εκτός αλυσίδας κατόπιν αιτήματος άλλων έξυπνων συμβολαίων και να αποθηκεύσει τις ζητούμενες πληροφορίες στην κρυπτοαλυσίδα: + +```solidity +pragma solidity >=0.4.21 <0.6.0; + +contract Oracle { + Request[] requests; //list of requests made to the contract + uint currentId = 0; //increasing request id + uint minQuorum = 2; //minimum number of responses to receive before declaring final result + uint totalOracleCount = 3; // Hardcoded oracle count + + // defines a general api request + struct Request { + uint id; //request id + string urlToQuery; //API url + string attributeToFetch; //json attribute (key) to retrieve in the response + string agreedValue; //value from key + mapping(uint => string) answers; //answers provided by the oracles + mapping(address => uint) quorum; //oracles which will query the answer (1=oracle hasn't voted, 2=oracle has voted) + } + + //event that triggers oracle outside of the blockchain + event NewRequest ( + uint id, + string urlToQuery, + string attributeToFetch + ); + + //triggered when there's a consensus on the final result + event UpdatedRequest ( + uint id, + string urlToQuery, + string attributeToFetch, + string agreedValue + ); + + function createRequest ( + string memory _urlToQuery, + string memory _attributeToFetch + ) + public + { + uint length = requests.push(Request(currentId, _urlToQuery, _attributeToFetch, "")); + Request storage r = requests[length-1]; + + // Hardcoded oracles address + r.quorum[address(0x6c2339b46F41a06f09CA0051ddAD54D1e582bA77)] = 1; + r.quorum[address(0xb5346CF224c02186606e5f89EACC21eC25398077)] = 1; + r.quorum[address(0xa2997F1CA363D11a0a35bB1Ac0Ff7849bc13e914)] = 1; + + // launch an event to be detected by oracle outside of blockchain + emit NewRequest ( + currentId, + _urlToQuery, + _attributeToFetch + ); + + // increase request id + currentId++; + } + + //called by the oracle to record its answer + function updateRequest ( + uint _id, + string memory _valueRetrieved + ) public { + + Request storage currRequest = requests[_id]; + + //check if oracle is in the list of trusted oracles + //and if the oracle hasn't voted yet + if(currRequest.quorum[address(msg.sender)] == 1){ + + //marking that this address has voted + currRequest.quorum[msg.sender] = 2; + + //iterate through "array" of answers until a position if free and save the retrieved value + uint tmpI = 0; + bool found = false; + while(!found) { + //find first empty slot + if(bytes(currRequest.answers[tmpI]).length == 0){ + found = true; + currRequest.answers[tmpI] = _valueRetrieved; + } + tmpI++; + } + + uint currentQuorum = 0; + + //iterate through oracle list and check if enough oracles(minimum quorum) + //have voted the same answer as the current one + for(uint i = 0; i < totalOracleCount; i++){ + bytes memory a = bytes(currRequest.answers[i]); + bytes memory b = bytes(_valueRetrieved); + + if(keccak256(a) == keccak256(b)){ + currentQuorum++; + if(currentQuorum >= minQuorum){ + currRequest.agreedValue = _valueRetrieved; + emit UpdatedRequest ( + currRequest.id, + currRequest.urlToQuery, + currRequest.attributeToFetch, + currRequest.agreedValue + ); + } + } + } + } + } +} +``` + +### Κόμβοι Oracle {#oracle-nodes} + +Ο κόμβος oracle είναι το στοιχείο εκτός αλυσίδας της υπηρεσίας oracle. Εξάγει πληροφορίες από εξωτερικές πηγές, όπως API που φιλοξενούνται σε διακομιστές τρίτων, και τις τοποθετεί για χρήση από έξυπνα συμβόλαια στην αλυσίδα. Οι κόμβοι oracle παρακολουθούν γεγονότα από το συμβόλαιο oracle στην αλυσίδα και προχωρούν στην ολοκλήρωση της εργασίας που περιγράφεται στο αρχείο καταγραφής. + +Μια κοινή εργασία για τους κόμβους oracle είναι η αποστολή μιας αίτησης [HTTP GET](https://www.w3schools.com/tags/ref_httpmethods.asp) σε μια υπηρεσία API, η ανάλυση της απόκρισης για εξαγωγή σχετικών δεδομένων, το αποτέλεσμα αναγνώσιμο από κρυπτοαλυσίδα και η αποστολή στην αλυσίδα συμπεριλαμβάνοντας τη σε μια συναλλαγή στο συμβόλαιο oracle. Ένας κόμβος oracle μπορεί επίσης να απαιτείται να πιστοποιήσει τη γνησιότητα και την ακεραιότητα των υποβαλλόμενων πληροφοριών χρησιμοποιώντας "αποδείξεις αυθεντικότητας", τις οποίες θα εξετάσουμε αργότερα. + +Οι υπολογισμοί oracles βασίζονται επίσης σε κόμβους εκτός αλυσίδας για την εκτέλεση υπολογιστικών εργασιών που θα ήταν ανέφικτο να εκτελεστούν στην αλυσίδα, δεδομένων των εξόδων gas και των περιορισμών μεγέθους μπλοκ. Για παράδειγμα, ο κόμβος oracle μπορεί να ανατεθεί να δημιουργήσει έναν επαληθεύσιμο τυχαίο αριθμό (π.χ. για παιχνίδια βασισμένα σε κρυπτοαλυσίδα). + +## Πρότυπα σχεδιασμού oracle {#oracle-design-patterns} + +Τα oracles έρχονται σε διαφορετικούς τύπους, συμπεριλαμβανομένων των _άμεσης ανάγνωσης_, _δημοσίευσης-εγγραφής_ και _αιτήματος-απόκρισης_, με τα δύο τελευταία να είναι τα πιο δημοφιλή μεταξύ των έξυπνων συμβολαίων Ethereum. Εδώ περιγράφουμε εν συντομία τα μοντέλα δημοσίευσης - εγγραφής και αιτήματος - απόκρισης. + +### Oracles δημοσίευσης-εγγραφής {#publish-subscribe-oracles} + +Αυτός ο τύπος oracle εκθέτει μια "ροή δεδομένων" την οποία άλλα συμβόλαια μπορούν να διαβάζουν τακτικά για πληροφορίες. Τα δεδομένα σε αυτήν την περίπτωση αναμένεται να αλλάζουν συχνά, επομένως τα συμβόλαια πελατών πρέπει να παρακολουθούν για ενημερώσεις των δεδομένων στον αποθηκευτικό χώρο του oracle. Ένα παράδειγμα είναι ένα oracle που παρέχει τις πιο πρόσφατες πληροφορίες τιμής ETH-USD στους χρήστες. + +### Οι προσφορές αίτησης-απάντησης {#request-response-oracles} + +Μια ρύθμιση αίτησης - απάντησης επιτρέπει στο έξυπνο συμβόλαιο πελάτη να ζητήσει αυθαίρετα δεδομένα εκτός από αυτά που παρέχονται από μια δημοσίευση - εγγραφή. Οι oracles αίτησης - απάντησης είναι ιδανικές όταν το σύνολο δεδομένων είναι πολύ μεγάλο για να αποθηκευτεί στον αποθηκευτικό χώρο ενός έξυπνου συμβολαίου και/ή οι χρήστες θα χρειάζονται μόνο ένα μικρό μέρος των δεδομένων ανά πάσα στιγμή. + +Αν και είναι πιο περίπλοκες από τα μοντέλα δημοσίευσης - εγγραφής, οι oracles αίτησης - απάντησης είναι ουσιαστικά αυτό που περιγράψαμε στην προηγούμενη ενότητα. Μια oracle θα έχει ένα στοιχείο στην αλυσίδα που λαμβάνει ένα αίτημα δεδομένων και το μεταβιβάζει σε έναν κόμβο για επεξεργασία εκτός αλυσίδας. + +Οι χρήστες που ξεκινούν ερωτήματα δεδομένων πρέπει να καλύψουν το κόστος ανάκτησης πληροφοριών από την πηγή στην αλυσίδα. Το έξυπνο συμβόλαιο πελάτη πρέπει επίσης να παρέχει κεφάλαια για την κάλυψη των εξόδων αερίου που προκαλούνται από το έξυπνο συμβόλαιο προφορικού κατά την επιστροφή της απάντησης μέσω της συνάρτησης ανάκλησης που καθορίζεται στο αίτημα. + +## Κεντρικά έναντι αποκεντρωμένα oracles {#types-of-oracles} + +### Κεντρικοί oracles {#centralized-oracles} + +Μια κεντρική oracle ελέγχεται από μια ενιαία οντότητα που είναι υπεύθυνη για τη συγκέντρωση πληροφοριών εκτός αλυσίδας και την ενημέρωση των δεδομένων του έξυπνου συμβολαίου oracle κατόπιν αιτήματος. Οι κεντρικοί oracles είναι αποτελεσματικοί καθώς βασίζονται σε μια ενιαία πηγή αλήθειας. Μπορεί να λειτουργούν καλύτερα σε περιπτώσεις όπου τα ιδιόκτητα σύνολα δεδομένων δημοσιεύονται απευθείας από τον ιδιοκτήτη με μια ευρέως αποδεκτή υπογραφή. Ωστόσο, υπάρχουν επίσης μειονεκτήματα: + +#### Χαμηλές εγγυήσεις ορθότητας {#low-correctness-guarantees} + +Με κεντρικές oracle, δεν υπάρχει τρόπος να επιβεβαιώσετε εάν οι παρεχόμενες πληροφορίες είναι σωστές ή όχι. Ακόμη και οι "αξιόπιστοι" πάροχοι μπορούν να γίνουν απατεώνες ή να υποστούν hacking. Εάν η oracle διαφθαρεί, τα έξυπνα συμβόλαια θα εκτελεστούν σύμφωνα με λάθος δεδομένα. + +#### Κακή διαθεσιμότητα {#poor-availability} + +Οι oracle με κεντρική διαχείριση δεν εγγυώνται ότι θα διαθέτουν πάντα δεδομένα εκτός αλυσίδας σε άλλα έξυπνα συμβόλαια. Εάν ο πάροχος αποφασίσει να απενεργοποιήσει την υπηρεσία ή ένας χάκερ υποκλέψει στοιχεία εκτός αλυσίδας, το έξυπνο συμβόλαιό σας διατρέχει κίνδυνο επίθεσης άρνησης υπηρεσίας (DoS). + +#### Κακή συμβατότητα κινήτρων {#poor-incentive-compatibility} + +Οι κεντρικοί oracle συχνά έχουν κακώς σχεδιασμένα ή ανύπαρκτα κίνητρα για τον πάροχο δεδομένων να στείλει ακριβείς/αλλαγμένες πληροφορίες. Η πληρωμή ενός oracle για ορθότητα δεν εγγυάται την ειλικρίνεια. Αυτό το πρόβλημα μεγαλώνει καθώς αυξάνεται το ποσό της αξίας που ελέγχεται από τα έξυπνα συμβόλαια. + +### Αποκεντρωμένα oracle {#decentralized-oracles} + +Τα αποκεντρωμένα oracle σχεδιάζονται για να ξεπεράσουν τους περιορισμούς των κεντρικών oracle εξαλείφοντας τα ενιαία σημεία αποτυχίας. Μια αποκεντρωμένη υπηρεσία oracle αποτελείται από πολλούς συμμετέχοντες σε ένα δίκτυο peer-to-peer που σχηματίζουν συναίνεση για δεδομένα εκτός αλυσίδας πριν τα στείλουν σε ένα έξυπνο συμβόλαιο. + +Ένα αποκεντρωμένο oracle θα πρέπει (ιδανικά) να είναι χωρίς την ανάγκη άδειας, έμπιστο και απαλλαγμένο από τη διαχείριση από μια κεντρική υπηρεσία. Στην πραγματικότητα, η αποκέντρωση μεταξύ των oracle βρίσκεται στο ίδιο φάσμα. Υπάρχουν ημι-αποκεντρωμένα δίκτυα oracle όπου μπορεί να συμμετάσχει οποιοσδήποτε, αλλά με έναν "ιδιοκτήτη" που εγκρίνει και αφαιρεί κόμβους με βάση την απόδοση του στο παρελθόν. Υπάρχουν επίσης πλήρως αποκεντρωμένα δίκτυα oracle όπου συνήθως λειτουργούν ως ανεξάρτητες κρυπτοαλυσίδες και έχουν καθορισμένους μηχανισμούς συναίνεσης για τον συντονισμό των κόμβων και την τιμωρία κακής συμπεριφοράς. + +Η χρήση αποκεντρωμένων oracle συνοδεύεται από τα ακόλουθα οφέλη: + +### Υψηλές εγγυήσεις ορθότητας {#high-correctness-guarantees} + +Τα αποκεντρωμένα oracle επιχειρούν να επιτύχουν ορθότητα των δεδομένων χρησιμοποιώντας διαφορετικές προσεγγίσεις. Αυτό περιλαμβάνει τη χρήση αποδείξεων που πιστοποιούν την αυθεντικότητα και την ακεραιότητα των παρεχόμενων πληροφοριών και την απαίτηση πολλών οντοτήτων να συμφωνήσουν συλλογικά σχετικά με τη γνησιότητα των δεδομένων εκτός αλυσίδας. + +#### Αποδείξεις αυθεντικότητας {#authenticity-proofs} + +Οι αποδείξεις αυθεντικότητας είναι κρυπτογραφικοί μηχανισμοί που επιτρέπουν την ανεξάρτητη επαλήθευση πληροφοριών που ανακτώνται από εξωτερικές πηγές. Αυτές οι αποδείξεις μπορούν να επικυρώσουν την πηγή των πληροφοριών και να εντοπίσουν πιθανές αλλαγές στα δεδομένα μετά την ανάκτηση. + +Παραδείγματα αποδείξεων αυθεντικότητας περιλαμβάνουν: + +**Αποδείξεις Transport Layer Security (TLS)**: Οι κόμβοι oracle συχνά ανακτούν δεδομένα από εξωτερικές πηγές χρησιμοποιώντας μια ασφαλή σύνδεση HTTP που βασίζεται στο πρωτόκολλο Transport Layer Security (TLS). Ορισμένοι αποκεντρωμένοι oracle χρησιμοποιούν αποδείξεις αυθεντικότητας για να επαληθεύσουν τις συνεδρίες TLS (δηλαδή, να επιβεβαιώσουν την ανταλλαγή πληροφοριών μεταξύ ενός κόμβου και ενός συγκεκριμένου διακομιστή) και να επιβεβαιώσουν ότι το περιεχόμενο της συνεδρίας δεν άλλαξε. + +**Βεβαιώσεις περιβάλλοντος αξιόπιστης εκτέλεσης (TEE)**: Ένα [περιβάλλον αξιόπιστης εκτέλεσης](https://en.wikipedia.org/wiki/Trusted_execution_environment) (TEE) είναι ένα απομονωμένο υπολογιστικό περιβάλλον που είναι απομονωμένο από τις λειτουργικές διεργασίες του συστήματος υποδοχής του. Τα TEE διασφαλίζουν ότι οποιοσδήποτε κώδικας εφαρμογής ή δεδομένα που αποθηκεύονται/χρησιμοποιούνται στο περιβάλλον υπολογισμού διατηρούν την ακεραιότητα, την εμπιστευτικότητα και την αμεταβλητότητα. Οι χρήστες μπορούν επίσης να δημιουργήσουν μια βεβαίωση για να αποδείξουν ότι μια συνεδρία εφαρμογής εκτελείται μέσα στο περιβάλλον αξιόπιστης εκτέλεσης. + +Ορισμένες κατηγορίες αποκεντρωμένων oracle απαιτούν από τους χειριστές κόμβων oracle να παρέχουν βεβαιώσεις TEE. Αυτό επιβεβαιώνει σε έναν χρήστη ότι ο χειριστής του κόμβου εκτελεί μια παρουσία πελάτη oracle σε ένα περιβάλλον αξιόπιστης εκτέλεσης. Τα TEE εμποδίζουν τις εξωτερικές διεργασίες να αλλάζουν ή να διαβάζουν τον κώδικα και τα δεδομένα μιας εφαρμογής, επομένως, αυτές οι βεβαιώσεις αποδεικνύουν ότι ο κόμβος oracle έχει διατηρήσει τις πληροφορίες ανέπαφες και εμπιστευτικές. + +#### Επαλήθευση πληροφοριών με βάση τη συναίνεση {#consensus-based-validation-of-information} + +Οι κεντρικοί oracle βασίζονται σε μια ενιαία πηγή αλήθειας κατά την παροχή δεδομένων σε έξυπνα συμβόλαια, γεγονός που εισάγει τη δυνατότητα δημοσίευσης ανακριβών πληροφοριών. Οι αποκεντρωμένοι oracle επιλύουν αυτό το πρόβλημα βασίζοντας σε πολλούς κόμβους oracle για να λάβουν πληροφορίες εκτός αλυσίδας. Συγκρίνοντας δεδομένα από πολλές πηγές, οι αποκεντρωμένοι oracle μειώνουν τον κίνδυνο μετάδοσης μη έγκυρων πληροφοριών σε συμβόλαια εντός αλυσίδας. + +Ωστόσο, οι αποκεντρωμένοι oracle πρέπει να αντιμετωπίσουν αποκλίσεις στις πληροφορίες που ανακτώνται από πολλές εξωτερικές πηγές. Για να ελαχιστοποιηθούν οι διαφορές στις πληροφορίες και να διασφαλιστεί ότι τα δεδομένα που μεταβιβάζονται στο συμβόλαιο oracle αντικατοπτρίζουν τη συλλογική γνώμη των κόμβων oracle, οι αποκεντρωμένοι oracle χρησιμοποιούν τους ακόλουθους μηχανισμούς: + +##### Ψηφοφορία/δέσμευση για την ακρίβεια των δεδομένων + +Μερικά αποκεντρωμένα δίκτυα oracle απαιτούν από τους συμμετέχοντες να ψηφίσουν ή να κάνουν staking για την ακρίβεια των απαντήσεων σε ερωτήματα δεδομένων (π.χ. "Ποιος κέρδισε τις εκλογές των ΗΠΑ το 2020;") χρησιμοποιώντας το εγγενές κρυπτονόμισμα του δικτύου. Ένα πρωτόκολλο συναθροίσεων στη συνέχεια συγκεντρώνει τις ψήφους και τα stakes και παίρνει την απάντηση που υποστηρίζεται από την πλειοψηφία ως έγκυρη. + +Οι κόμβοι των οποίων οι απαντήσεις αποκλίνουν από την απάντηση της πλειοψηφίας τιμωρούνται με την κατανομή των tokens τους σε άλλους που παρέχουν πιο σωστές τιμές. Η υποχρέωση των κόμβων να παρέχουν μια εγγύηση πριν παρέχουν δεδομένα δημιουργεί κίνητρα για ειλικρινείς απαντήσεις καθώς υποτίθεται ότι είναι ρεαλιστικοί οικονομικοί παράγοντες που επιδιώκουν τη μεγιστοποίηση των αποδόσεων. + +Το staking/ψηφοφορία προστατεύει επίσης τα αποκεντρωμένα oracles από [επιθέσεις Sybil](/glossary/#sybil-attack) όπου κακόβουλοι παράγοντες δημιουργούν πολλαπλές ταυτότητες για να χειραγωγήσουν το σύστημα συναίνεσης. Ωστόσο, η αποθήκευση κεφαλαίου δεν μπορεί να αποτρέψει το "freeloading" (οι κόμβοι oracle αντιγράφουν πληροφορίες από άλλους) και την "τεμπέλικη επικύρωση" (οι κόμβοι oracle ακολουθούν την πλειοψηφία χωρίς να επαληθεύουν μόνοι τους τις πληροφορίες). + +##### Μηχανισμοί σημείου Schelling + +Το [σημείο Schelling](https://en.wikipedia.org/wiki/Focal_point_(game_theory)) είναι μια έννοια της θεωρίας παιγνίων που υποθέτει ότι πολλές οντότητες θα προεπιλέγουν πάντα μια κοινή λύση σε ένα πρόβλημα χωρίς καμία επικοινωνία. Οι μηχανισμοί σημείου Schelling χρησιμοποιούνται συχνά σε αποκεντρωμένα δίκτυα oracle για να επιτρέπουν στους κόμβους να επιτυγχάνουν συναίνεση στις απαντήσεις σε αιτήματα δεδομένων. + +Μια πρώιμη ιδέα για αυτό ήταν το [SchellingCoin](https://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/), μια προτεινόμενη ροή δεδομένων όπου οι συμμετέχοντες υποβάλλουν απαντήσεις σε "κλιμακωτές" ερωτήσεις (ερωτήσεις των οποίων οι απαντήσεις περιγράφονται από μέγεθος, π.χ. "ποια είναι η τιμή του ETH;"), μαζί με μια κατάθεση. Οι χρήστες που παρέχουν τιμές μεταξύ του 25ου και 75ου [εκατοστημόριου](https://en.wikipedia.org/wiki/Percentile) ανταμείβονται, ενώ εκείνοι των οποίων οι τιμές αποκλίνουν σε μεγάλο βαθμό από τη μέση τιμή τιμωρούνται. + +Ενώ το SchellingCoin δεν υπάρχει σήμερα, ένας αριθμός αποκεντρωμένων oracles - ιδιαίτερα τα [Maker Protocol’s Oracles](https://docs.makerdao.com/smart-contract-modules/oracle-module) - χρησιμοποιούν τον μηχανισμό σημείου schelling για να βελτιώσουν την ακρίβεια των δεδομένων oracle. Κάθε Oracle Maker αποτελείται από ένα εκτός αλυσίδας P2P δίκτυο κόμβων ("μεταφορείς" και "τροφές") που υποβάλλουν τιμές αγοράς για περιουσιακά στοιχεία ενεχύρων και ένα εντός αλυσίδας συμβόλαιο "Medianizer" που υπολογίζει τη μέση τιμή όλων των παρεχόμενων τιμών. Μόλις παρέλθει η καθορισμένη περίοδος καθυστέρησης, αυτή η μέση τιμή γίνεται η νέα τιμή αναφοράς για το σχετικό περιουσιακό στοιχείο. + +Άλλα παραδείγματα oracle που χρησιμοποιούν μηχανισμούς σημείου Schelling περιλαμβάνουν το [Chainlink OffChain Reporting](https://docs.chain.link/docs/offchain-reporting/) και το [Witnet](https://witnet.io/). Σε αυτά τα δύο συστήματα, οι απαντήσεις από τους κόμβους oracle στο δίκτυο από χρήστη σε χρήστη συγκεντρώνονται σε μία ενιαία συνολική τιμή, όπως μια μέση τιμή ή διάμεσος. Οι κόμβοι επιβραβεύονται ή τιμωρούνται ανάλογα με τον βαθμό στον οποίο οι απαντήσεις τους ευθυγραμμίζονται ή αποκλίνουν από τη συνολική τιμή. + +Οι μηχανισμοί σημείου Schelling είναι ελκυστικοί επειδή ελαχιστοποιούν το αποτύπωμα στην αλυσίδα (απαιτείται να σταλεί μόνο μία συναλλαγή) ενώ εγγυώνται την αποκέντρωση. Το τελευταίο είναι δυνατό επειδή οι κόμβοι πρέπει να υπογράψουν τη λίστα των υποβληθέντων απαντήσεων πριν αυτή τροφοδοτηθεί στον αλγόριθμο που παράγει τη μέση/διάμεση τιμή. + +### Διαθεσιμότητα {#availability} + +Οι αποκεντρωμένες υπηρεσίες oracle εξασφαλίζουν υψηλή διαθεσιμότητα δεδομένων εκτός αλυσίδας σε έξυπνα συμβόλαια. Αυτό επιτυγχάνεται μέσω της αποκέντρωσης τόσο της πηγής των πληροφοριών εκτός αλυσίδας όσο και των κόμβων που είναι υπεύθυνοι για τη μεταφορά των πληροφοριών στην αλυσίδα. + +Αυτό εξασφαλίζει την αντοχή σε σφάλματα καθώς το έξυπνο συμβόλαιο oracle μπορεί να βασίζεται σε πολλούς κόμβους (οι οποίοι επίσης βασίζονται σε πολλές πηγές δεδομένων) για να εκτελέσει ερωτήματα από άλλα συμβόλαια. Η αποκέντρωση στο επίπεδο της πηγής _και_ του χειριστή κόμβου είναι κρίσιμη - ένα δίκτυο κόμβων oracle που εξυπηρετεί πληροφορίες που ανακτώνται από την ίδια πηγή θα αντιμετωπίσει το ίδιο πρόβλημα με ένα κεντρικό oracle. + +Είναι επίσης δυνατό για τα oracle με βάση συμμετοχή να μειώσουν τους χειριστές κόμβων που δεν ανταποκρίνονται γρήγορα σε αιτήματα δεδομένων. Αυτό ενθαρρύνει σημαντικά τους κόμβους oracle να επενδύσουν σε υποδομή ανθεκτική σε σφάλματα και να παρέχουν δεδομένα έγκαιρα. + +### Καλή συμβατότητα κινήτρων {#good-incentive-compatibility} + +Τα αποκεντρωμένα oracle εφαρμόζουν διάφορους σχεδιασμούς κινήτρων για την πρόληψη της [Byzantine](https://en.wikipedia.org/wiki/Byzantine_fault) συμπεριφοράς μεταξύ των κόμβων oracle. Ειδικότερα, επιτυγχάνουν την _αποδοσιμότητα_ και την _λογοδοσία_: + +1. Οι αποκεντρωμένοι κόμβοι oracle απαιτείται συχνά να υπογράφουν τα δεδομένα που παρέχουν σε απάντηση σε αιτήματα δεδομένων. Αυτές οι πληροφορίες βοηθούν στην αξιολόγηση της ιστορικής απόδοσης των κόμβων oracle, έτσι ώστε οι χρήστες να μπορούν να φιλτράρουν τους μη αξιόπιστους κόμβους oracle κατά την υποβολή αιτημάτων δεδομένων. Ένα παράδειγμα είναι το [Αλγοριθμικό Σύστημα Φήμης του Witnet](https://docs.witnet.io/intro/about/architecture#algorithmic-reputation-system). + +2. Τα αποκεντρωμένα oracle - όπως εξηγήθηκε προηγουμένως - μπορεί να απαιτούν από τους κόμβους να δεσμεύσουν ένα κεφάλαιο για εξασφάλιση της αξιοπιστίας τους για την αλήθεια των δεδομένων που υποβάλλουν. Εάν ο ισχυρισμός ελεγχθεί, αυτό το δεσμευμένο κεφάλαιο μπορεί να επιστραφεί μαζί με ανταμοιβές για ειλικρινή εξυπηρέτηση. Αλλά μπορεί επίσης να περικοπεί σε περίπτωση που οι πληροφορίες είναι εσφαλμένες, γεγονός που παρέχει κάποιο μέτρο λογοδοσίας. + +## Εφαρμογές των oracle σε έξυπνα συμβόλαια {#applications-of-oracles-in-smart-contracts} + +Οι ακόλουθες είναι κοινές περιπτώσεις χρήσης για oracle στο Ethereum: + +### Ανάκτηση οικονομικών δεδομένων {#retrieving-financial-data} + +Οι [αποκεντρωμένες χρηματοοικονομικές](/defi/) (DeFi) εφαρμογές επιτρέπουν τη δανειοδότηση από ομότιμο σε ομότιμο, τον δανεισμό και το εμπόριο περιουσιακών στοιχείων. Αυτό συχνά απαιτεί τη λήψη διαφορετικών οικονομικών πληροφοριών, συμπεριλαμβανομένων δεδομένων συναλλαγματικών ισοτιμιών (για τον υπολογισμό της αξίας fiat των κρυπτονομισμάτων ή τη σύγκριση τιμών token) και δεδομένων κεφαλαιαγορών (για τον υπολογισμό της αξίας των tokenized περιουσιακών στοιχείων, όπως ο χρυσός ή το δολάριο ΗΠΑ). + +Ένα πρωτόκολλο δανεισμού DeFi, για παράδειγμα, πρέπει να ρωτήσει τις τρέχουσες τιμές αγοράς για τα περιουσιακά στοιχεία (π.χ., ETH) που κατατέθηκαν ως εξασφάλιση. Αυτό επιτρέπει στο έξυπνο συμβόλαιο να καθορίσει την αξία των περιουσιακών στοιχείων εξασφάλισης και να καθορίσει πόσα μπορεί να δανειστεί από το σύστημα. + +Δημοφιλείς «τιμές oracle» (όπως συχνά αποκαλούνται) στο DeFi περιλαμβάνουν τα Chainlink Price Feeds, το [Open Price Feed](https://compound.finance/docs/prices) του Compound Protocol, τις [Time-Weighted Average Prices (TWAPs)](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) του Uniswap και τα [Maker Oracles](https://docs.makerdao.com/smart-contract-modules/oracle-module). + +Οι κατασκευαστές θα πρέπει να κατανοήσουν τις προειδοποιήσεις που συνοδεύουν αυτά τα oracle τιμών πριν τα ενσωματώσουν στο έργο τους. Αυτό το [άρθρο](https://blog.openzeppelin.com/secure-smart-contract-guidelines-the-dangers-of-price-oracles/) παρέχει μια λεπτομερή ανάλυση τι πρέπει να λάβετε υπόψη όταν σχεδιάζετε να χρησιμοποιήσετε οποιοδήποτε από τα αναφερόμενα oracle τιμών. + +Παρακάτω είναι ένα παράδειγμα του πώς μπορείτε να ανακτήσετε την τελευταία τιμή ETH στο έξυπνο συμβόλαιό σας χρησιμοποιώντας την ενημέρωση τιμών του Chainlink: + +```solidity +pragma solidity ^0.6.7; + +import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol"; + +contract PriceConsumerV3 { + + AggregatorV3Interface internal priceFeed; + + /** + * Network: Kovan + * Aggregator: ETH/USD + * Address: 0x9326BFA02ADD2366b30bacB125260Af641031331 + */ + constructor() public { + priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331); + } + + /** + * Returns the latest price + */ + function getLatestPrice() public view returns (int) { + ( + uint80 roundID, + int price, + uint startedAt, + uint timeStamp, + uint80 answeredInRound + ) = priceFeed.latestRoundData(); + return price; + } +} +``` + +### Δημιουργώντας επαληθεύσιμη τυχαιότητα {#generating-verifiable-randomness} + +Ορισμένες εφαρμογές κρυπτοαλυσίδας, όπως τα παιχνίδια που βασίζονται σε κρυπτοαλυσίδα ή τα σχέδια λαχειοφόρων αγορών, απαιτούν υψηλό επίπεδο απρόβλεπτου και τυχαιότητας για να λειτουργούν αποτελεσματικά. Ωστόσο, η καθοριστική εκτέλεση των κρυπτοαλυσίδων εξαλείφει την τυχαιότητα. + +Η αρχική προσέγγιση ήταν να χρησιμοποιηθούν ψευδοτυχαίες κρυπτογραφικές συναρτήσεις, όπως το `blockhash`, αλλά αυτές μπορούσαν να [χειραγωγηθούν από κρυπτορύχους](https://ethereum.stackexchange.com/questions/3140/risk-of-using-blockhash-other-miners-preventing-attack#:~:text=So%20while%20the%20miners%20can,to%20one%20of%20the%20players.) που έλυναν τον αλγόριθμο απόδειξης εργασίας. Επίσης, η μετάβαση του Ethereum σε [απόδειξη συμμετοχής](/roadmap/merge/) σημαίνει ότι οι προγραμματιστές δεν μπορούν πλέον να βασίζονται στο `blockhash` για τυχαιότητα επί της αλυσίδας. Ο [μηχανισμός RANDAO](https://eth2book.info/altair/part2/building_blocks/randomness) της αλυσίδας Beacon παρέχει μια εναλλακτική πηγή τυχαιότητας. + +Είναι δυνατό να δημιουργηθεί η τυχαία τιμή εκτός αλυσίδας και να σταλεί εντός αλυσίδας, αλλά αυτό επιβάλλει υψηλές απαιτήσεις εμπιστοσύνης στους χρήστες. Πρέπει να πιστεύουν ότι η τιμή δημιουργήθηκε πραγματικά μέσω απρόβλεπτων μηχανισμών και δεν άλλαξε κατά τη μεταφορά. + +Τα oracle που σχεδιάστηκαν για υπολογισμούς εκτός αλυσίδας επιλύουν αυτό το πρόβλημα δημιουργώντας με ασφάλεια τυχαία αποτελέσματα εκτός αλυσίδας, τα οποία μεταδίδουν εντός αλυσίδας μαζί με κρυπτογραφικές αποδείξεις που πιστοποιούν την απρόβλεπτη φύση της διαδικασίας. Ένα παράδειγμα είναι το [Chainlink VRF](https://docs.chain.link/docs/chainlink-vrf/) (Verifiable Random Function), το οποίο είναι μια αποδεδειγμένα δίκαιη και ανθεκτική σε παραβιάσεις τυχαία γεννήτρια αριθμών (RNG), χρήσιμη για την κατασκευή αξιόπιστων έξυπνων συμβολαίων για εφαρμογές που βασίζονται σε απρόβλεπτα αποτελέσματα. Ένα άλλο παράδειγμα είναι το [API3 QRNG](https://docs.api3.org/explore/qrng/) που παρέχει τη γεννήτρια κβαντικών τυχαίων αριθμών (QRNG) είναι μια δημόσια μέθοδος Web3 RNG που βασίζεται σε κβαντικά φαινόμενα, που παρέχεται με την ευγένεια του Αυστραλιανού Εθνικού Πανεπιστημίου (ANU). + +### Λήψη αποτελεσμάτων για γεγονότα {#getting-outcomes-for-events} + +Με τα oracle, η δημιουργία έξυπνων συμβολαίων που ανταποκρίνονται σε πραγματικά γεγονότα είναι εύκολη. Οι υπηρεσίες oracle το καθιστούν αυτό δυνατό επιτρέποντας στα συμβόλαια να συνδέονται με εξωτερικά API μέσω στοιχείων εκτός αλυσίδας και να χρησιμοποιούν πληροφορίες από αυτές τις πηγές δεδομένων. Για παράδειγμα, η προαναφερθείσα εφαρμογή πρόβλεψης μπορεί να ζητήσει από ένα oracle να επιστρέψει τα αποτελέσματα εκλογών από μια αξιόπιστη πηγή εκτός αλυσίδας (π.χ., το Associated Press). + +Η χρήση oracle για την ανάκτηση δεδομένων με βάση πραγματικά αποτελέσματα επιτρέπει άλλες πρωτοποριακές περιπτώσεις χρήσης. Για παράδειγμα, ένα αποκεντρωμένο ασφαλιστικό προϊόν χρειάζεται ακριβείς πληροφορίες για τον καιρό, καταστροφές κ. λπ. για να λειτουργήσει αποτελεσματικά. + +### Αυτόματη εκτέλεση έξυπνων συμβολαίων {#automating-smart-contracts} + +Τα έξυπνα συμβόλαια δεν εκτελούνται αυτόματα, αλλά ένας εξωτερικά κατεχόμενος λογαριασμός (EOA) ή ένας άλλος λογαριασμός συμβολαίου πρέπει να ενεργοποιήσει τις σωστές συναρτήσεις για να εκτελέσει τον κώδικα του συμβολαίου. Στις περισσότερες περιπτώσεις, το μεγαλύτερο μέρος των συναρτήσεων του συμβολαίου είναι δημόσιες και μπορούν να κληθούν από EOA και άλλα συμβόλαια. + +Υπάρχουν όμως και _ιδιωτικές συναρτήσεις_ μέσα σε ένα συμβόλαιο που είναι απρόσιτες για άλλους, αλλά είναι κρίσιμες για τη συνολική λειτουργικότητα μιας εφαρμογής. Παραδείγματα περιλαμβάνουν μια συνάρτηση `mintERC721Token()` που δημιουργεί περιοδικά νέα NFT για τους χρήστες, μια συνάρτηση για την απονομή πληρωμών σε μια αγορά πρόβλεψης ή μια συνάρτηση για το ξεκλείδωμα των δεσμευμένων ψηφιακών στοιχείων σε ένα DEX. + +Οι προγραμματιστές θα πρέπει να ενεργοποιούν τέτοιες συναρτήσεις σε διαστήματα για να διατηρούν την ομαλή λειτουργία της εφαρμογής. Ωστόσο, αυτό μπορεί να οδηγήσει σε περισσότερες ώρες να χάνονται σε βαρετές εργασίες για τους προγραμματιστές, γι' αυτό η αυτοματοποίηση της εκτέλεσης έξυπνων συμβολαίων είναι ελκυστική. + +Ορισμένα αποκεντρωμένα δίκτυα oracle προσφέρουν υπηρεσίες αυτοματισμού, οι οποίες επιτρέπουν στους κόμβους oracle εκτός αλυσίδας να ενεργοποιούν συναρτήσεις έξυπνου συμβολαίου σύμφωνα με τις παραμέτρους που ορίζει ο χρήστης. Τυπικά, αυτό απαιτεί την "εγγραφή" του συμβολαίου προορισμού στην υπηρεσία oracle, την παροχή κεφαλαίων για την πληρωμή του χειριστή oracle και τον καθορισμό των συνθηκών ή των χρονικών στιγμών ενεργοποίησης του συμβολαίου. + +Το [Keeper Network](https://chain.link/keepers) της Chainlink παρέχει επιλογές για τα έξυπνα συμβόλαια να εξωτερικεύσουν τις τακτικές εργασίες συντήρησης με ελαχιστοποιημένη εμπιστοσύνη και αποκεντρωμένο τρόπο. Διαβάστε την επίσημη [τεκμηρίωση του Keeper](https://docs.chain.link/docs/chainlink-keepers/introduction/) για πληροφορίες σχετικά με τη δημιουργία του συμβολαίου σας συμβατό με Keeper και χρήση της υπηρεσίας Upkeep. + +## Πώς να χρησιμοποιήσετε oracles κρυπτοαλυσίδας {#use-blockchain-oracles} + +Υπάρχουν πολλές εφαρμογές oracle που μπορείτε να ενσωματώσετε στο έξυπνο συμβόλαιο Ethereum σας: + +**[Chainlink](https://chain.link/)** - _Τα αποκεντρωμένα δίκτυα oracle της Chainlink παρέχουν αμετάβλητες εισόδους, εξόδους και υπολογισμούς για την υποστήριξη προηγμένων έξυπνων συμβολαίων σε οποιαδήποτε κρυπτοαλυσίδα._ + +**[RedStone Oracles](https://redstone.finance/)** - _Το RedStone είναι ένα αποκεντρωμένο αρθρωτό oracle που παρέχει τροφοδοσίες δεδομένων βελτιστοποιημένες για gas. Εξειδικεύεται στην προσφορά ροών τιμών για αναδυόμενα περιουσιακά στοιχεία, όπως ρευστότητα κρύπτο αποθήκευσης κεφαλαίου (LST), στοιχεία επαναδιαθέσεως ρευστότητας (LRT) και παράγωγα αποθήκευσης κεφαλαίου Bitcoin._ + +**[Chronicle](https://chroniclelabs.org/)** - _Η Chronicle ξεπερνά τους τρέχοντες περιορισμούς της μεταφοράς δεδομένων στην αλυσίδα αναπτύσσοντας πραγματικά κλιμακωτά, οικονομικά αποδοτικά, αποκεντρωμένα και επαληθεύσιμα oracles._ + +**[Witnet](https://witnet.io/)** - _Το Witnet είναι ένα ανεξάρτητο, αποκεντρωμένο και ανθεκτικό στη λογοκρισία oracle που βοηθά τα έξυπνα συμβόλαια να αντιδρούν σε πραγματικά γεγονότα με ισχυρές εγγυήσεις κρυπτο-οικονομίας._ + +**[Oracle UMA](https://uma.xyz)** - _Το optimistic oracle της UMA επιτρέπει στα έξυπνα συμβόλαια να λαμβάνουν γρήγορα οποιοδήποτε είδος δεδομένων για διαφορετικές εφαρμογές, συμπεριλαμβανομένων των ασφαλίσεων, των χρηματοοικονομικών παραγώγων και των αγορών προβλέψεων._ + +**[Tellor](https://tellor.io/)** - _Το Tellor είναι ένα διαφανές και ανεξάρτητο πρωτόκολλο oracle για το έξυπνο συμβόλαιό σας για να λαμβάνει εύκολα οποιαδήποτε δεδομένα όποτε τα χρειάζεται._ + +**[Band Protocol](https://bandprotocol.com/)** - _Το Band Protocol είναι μια διαλειτουργική πλατφόρμα δεδομένων oracle που συγκεντρώνει και συνδέει πραγματικά δεδομένα και API με έξυπνα συμβόλαια._ + +**[Paralink](https://paralink.network/)** - _Η Paralink παρέχει μια ανοιχτού κώδικα και αποκεντρωμένη πλατφόρμα oracle για έξυπνα συμβόλαια που εκτελούνται στο Ethereum και σε άλλες δημοφιλείς κρυπτοαλυσίδες._ + +**[Δίκτυο Pyth](https://pyth.network/)** - _Το δίκτυο Pyth είναι ένα δίκτυο οικονομικών oracle πρώτου μέρους σχεδιασμένο να δημοσιεύει συνεχώς πραγματικά δεδομένα στην αλυσίδα σε ένα ανθεκτικό στην παραβίαση, αποκεντρωμένο και αυτοβιώσιμο περιβάλλον_. + +**[API3 DAO](https://www.api3.org/)** - _Το API3 DAO παρέχει λύσεις oracle πρώτου μέρους που προσφέρουν μεγαλύτερη διαφάνεια πηγής, ασφάλεια και κλιμακωσιμότητα σε μια αποκεντρωμένη λύση για έξυπνα συμβόλαια._ + +**[Supra](https://supra.com/)** - Ένα κάθετα ενσωματωμένο κιτ εργαλείων λύσεων διαλειτουργικότητας που συνδέει όλες τις κρυπτοαλυσίδες, δημόσιες (L1 και L2) ή ιδιωτικές (επιχειρήσεις), παρέχοντας αποκεντρωμένες ροές τιμών oracle που μπορούν να χρησιμοποιηθούν για περιπτώσεις χρήσης στην αλυσίδα ή εκτός αλυσίδας. + +## Περισσότερες πληροφορίες {#further-reading} + +**Άρθρα** + +- [Τι είναι μια oracle κρυπτοαλυσίδα;](https://chain.link/education/blockchain-oracles) — _Chainlink_ +- [Τι είναι μια oracle κρυπτοαλυσίδα;](https://betterprogramming.pub/what-is-a-blockchain-oracle-f5ccab8dbd72) — _Patrick Collins_ +- [Αποκεντρωμένες oracles: μια ολοκληρωμένη επισκόπηση](https://medium.com/fabric-ventures/decentralised-oracles-a-comprehensive-overview-d3168b9a8841) — _Julien Thevenard_ +- [Υλοποίηση μιας oracle κρυπτοαλυσίδας στο Ethereum](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) – _Pedro Costa_ +- [Γιατί τα έξυπνα συμβόλαια δεν μπορούν να κάνουν κλήσεις API;](https://ethereum.stackexchange.com/questions/301/why-cant-contracts-make-api-calls) — _StackExchange_ +- [Γιατί χρειαζόμαστε αποκεντρωμένα oracles](https://newsletter.banklesshq.com/p/why-we-need-decentralized-oracles) — _Bankless_ +- [Άρα θέλετε να χρησιμοποιήσετε ένα oracle τιμής](https://samczsun.com/so-you-want-to-use-a-price-oracle/) — _samczsun_ + +**Βίντεο** + +- [Oracles και η επέκταση της χρησιμότητας της κρυπτοαλυσίδας](https://youtu.be/BVUZpWa8vpw) — _Real Vision Finance_ +- [Οι διαφορές μεταξύ των oracles πρώτου και τρίτου μέρους](https://blockchainoraclesummit.io/first-party-vs-third-party-oracles/) - _Blockchain Oracle Summit_ + +**Σεμινάρια** + +- [Πώς να λάβετε την τρέχουσα τιμή του Ethereum σε Solidity](https://blog.chain.link/fetch-current-crypto-price-data-solidity/) — _Chainlink_ +- [Κατανάλωση δεδομένων Oracle](https://docs.chroniclelabs.org/Developers/tutorials/Remix) — _Chronicle_ + +**Παραδείγματα έργων** + +- [Πλήρες έργο εκκίνησης Chainlink για Ethereum σε Solidit](https://github.com/hackbg/chainlink-fullstack) — _HackBG_ diff --git a/public/content/translations/el/developers/docs/programming-languages/python/index.md b/public/content/translations/el/developers/docs/programming-languages/python/index.md index 1936a9fa275..9612ae475a6 100644 --- a/public/content/translations/el/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/el/developers/docs/programming-languages/python/index.md @@ -19,31 +19,40 @@ incomplete: true - [Κατανοώντας τα έξυπνα συμβόλαια](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) - [Συντάξτε το πρώτο σας έξυπνο συμβόλαιο](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) - [Μάθετε ανάπτυξη και μεταγλώττιση με τη Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) +- [Η κατάσταση της Python στην κρυπτοαλυσίδα, έκθεση του 2023](https://tradingstrategy.ai/blog/the-state-of-python-in-blockchain-in-2023) ## Άρθρα για αρχάριους {#beginner-articles} +- [Επισκόπηση web3.py](https://web3py.readthedocs.io/en/latest/overview.html) +- [Περιήγηση στο οικοσύστημα Ethereum Python](https://snakecharmers.ethereum.org/python-ecosystem/) - [Οδηγίες Προγραμματιστή (Python) για το Ethereum](https://snakecharmers.ethereum.org/a-developers-guide-to-ethereum-pt-1/) -- [Η κατάσταση της Python στην κρυπτοαλυσίδα, έκθεση του 2023](https://tradingstrategy.ai/blog/the-state-of-python-in-blockchain-in-2023) +- [Άξιο βραβείου: Ένας οδηγός για το Ethereum Python Hackathon](https://snakecharmers.ethereum.org/prize-worthy/) - [Εισαγωγή στα έξυπνα συμβόλαια με Vyper](https://kauri.io/#collections/Getting%20Started/an-introduction-to-smart-contracts-with-vyper/) -- [Αναπτύξτε το δικό σας κρυπτονόμισμα ERC20 με Python και Brownie](https://betterprogramming.pub/python-blockchain-token-deployment-tutorial-create-an-erc20-77a5fd2e1a58) - [Πώς μπορείτε να αναπτύξετε ένα συμβόλαιο Ethereum με το Python Flask;](https://medium.com/coinmonks/how-to-develop-ethereum-contract-using-python-flask-9758fe65976e) - [Εισαγωγή στο Web3.py · Ethereum για προγραμματιστές Python](https://www.dappuniversity.com/articles/web3-py-intro) - [Πώς να χρησιμοποιήσετε τη λειτουργία έξυπνου συμβολαίου με Python και web3.py](https://stackoverflow.com/questions/57580702/how-to-call-a-smart-contract-function-using-python-and-web3-py) ## Άρθρα μεσαίας δυσκολίας {#intermediate-articles} +- [Φίλοι του web3.py: Εισαγωγή στο Ape](https://snakecharmers.ethereum.org/intro-to-ape/) - [Ανάπτυξη Dapp για προγραμματιστές Python](https://levelup.gitconnected.com/dapps-development-for-python-developers-f52b32b54f28) - [Δημιουργώντας μια διεπαφή Python στο Ethereum: Μέρος 1](https://hackernoon.com/creating-a-python-ethereum-interface-part-1-4d2e47ea0f4d) - [Έξυπνα συμβόλαια Ethereum σε Python: ένας περιληπτικός οδηγός](https://hackernoon.com/ethereum-smart-contracts-in-python-a-comprehensive-ish-guide-771b03990988) -- [Χρήση των Brownie και Python για την ανάπτυξη έξυπνων συμβολαίων](https://dev.to/patrickalphac/using-brownie-for-to-deploy-smart-contracts-1kkp) -- [Δημιουργία NFTs στο OpenSea με Brownie](https://www.freecodecamp.org/news/how-to-make-an-nft-and-render-on-opensea-marketplace/) ## Πρότυπα χρήσης για προχωρημένους {#advanced-use-patterns} +- [Μοτίβα web3.py: Συνδρομές σε συμβάντα σε πραγματικό χρόνο](https://snakecharmers.ethereum.org/subscriptions/) +- [web3.py Patterns: WebSocketProvider](https://snakecharmers.ethereum.org/websocketprovider/) - [Μεταγλώττιση, ανάπτυξη και κλήση έξυπνου συμβολαίου Ethereum χρησιμοποιώντας την Python](https://yohanes.gultom.id/2018/11/28/compiling-deploying-and-calling-ethereum-smartcontract-using-python/) - [Αναλύστε τα έξυπνα συμβόλαια με τη Solidity με το Slither](https://kauri.io/#collections/DevOps/analyze-solidity-smart-contracts-with-slither/#analyze-solidity-smart-contracts-with-slither) - [Οδηγός Blockchain Fintech: Δάνειο και δανεισμός με Python](https://blog.chain.link/blockchain-fintech-defi-tutorial-lending-borrowing-python/) +## Αρχειοθετημένα άρθρα + +- [Αναπτύξτε το δικό σας κρυπτονόμισμα ERC20 με Python και Brownie](https://betterprogramming.pub/python-blockchain-token-deployment-tutorial-create-an-erc20-77a5fd2e1a58) +- [Χρήση των Brownie και Python για την ανάπτυξη έξυπνων συμβολαίων](https://dev.to/patrickalphac/using-brownie-for-to-deploy-smart-contracts-1kkp) +- [Δημιουργία NFTs στο OpenSea με Brownie](https://www.freecodecamp.org/news/how-to-make-an-nft-and-render-on-opensea-marketplace/) + ## Έργα και εργαλεία της Python {#python-projects-and-tools} ### Ενεργά: {#active} diff --git a/public/content/translations/el/developers/docs/scaling/index.md b/public/content/translations/el/developers/docs/scaling/index.md new file mode 100644 index 00000000000..0129b4e84bc --- /dev/null +++ b/public/content/translations/el/developers/docs/scaling/index.md @@ -0,0 +1,115 @@ +--- +title: Επεκτασιμότητα +description: Μια εισαγωγή στις διαφορετικές επιλογές επεκτασιμότητας που αναπτύσσονται αυτή τη στιγμή από την κοινότητα του Ethereum. +lang: el +sidebarDepth: 3 +--- + +## Επισκόπηση επεκτασιμότητας {#scaling-overview} + +Καθώς μεγαλώνει ο αριθμός των ατόμων που χρησιμοποιούν το Ethereum, το blockchain έχει αρκετούς περιορισμούς λόγω χωρητικότητας. Γι αυτό το λόγο έχει αυξηθεί το κόστος χρήσης του δικτύου, δημιουργώντας την ανάγκη για «λύσεις επεκτασιμότητας». Υπάρχουν πολλαπλές λύσεις που εξετάζονται, δοκιμάζονται και εφαρμόζονται ακολουθώντας διαφορετικές προσεγγίσεις για την επίτευξη παρόμοιων στόχων. + +Ο κύριος στόχος της επεκτασιμότητας είναι να αυξήσει την ταχύτητα συναλλαγής (γρηγορότερη οριστικότητα) και τη διεκπεραίωση συναλλαγών (μεγαλύτερος αριθμός συναλλαγών ανά δευτερόλεπτο) χωρίς να θυσιάζεται η αποκέντρωση ή η ασφάλεια (περισσότερα για το [Ethereum vision](/roadmap/vision/)). Στο επίπεδο 1 του Ethereum blockchain, η υψηλή ζήτηση οδηγεί σε καθυστερήσεις των συναλλαγών και αρκετά υψηλές [τιμές των κρατήσεων](/developers/docs/gas/). Η αύξηση της χωρητικότητας του δικτύου όσον αφορά την ταχύτητα και τη διακίνηση, είναι θεμελιώδους σημασίας για την ουσιαστική και μαζική υιοθέτηση του Ethereum. + +Καθώς η ταχύτητα και η απόδοση είναι σημαντικές, είναι σημαντικό οι λύσεις επεκτασιμότητας που επιτρέπουν αυτούς τους στόχους να παραμείνουν αποκεντρωμένες και ασφαλείς. Η διατήρηση των απαιτήσεων εισόδου σε χαμηλά επίπεδα για τους χειριστές των κόμβων είναι κρίσιμη για την πρόληψη της προόδου προς την κεντρική και επισφαλή υπολογιστική ισχύ. + +Εννοιολογικά, αρχικά κατηγοριοποιούμε την κλιμάκωση εκτός είτε εντός αλυσίδας. + +## Προαπαιτούμενα {#prerequisites} + +Θα πρέπει να έχετε να κατανοείτε αρκετά καλά όλα τα βασικά θέματα. Η εφαρμογή λύσεων επεκτασιμότητας είναι προηγμένη καθώς η τεχνολογία είναι λιγότερο δοκιμασμένη στη μάχη και συνεχίζει να ερευνάται και να αναπτύσσεται. + +## Κλιμάκωση εντός αλυσίδας {#onchain-scaling} + +Η κλιμάκωση εντός αλυσίδας απαιτεί αλλαγές στο πρωτόκολλο Ethereum (επίπεδο 1 [Mainnet](/glossary/#mainnet)). Για αρκετό διάστημα, η τμηματοποίηση αναμενόταν να αναβαθμίσει το Ethereum. Αυτό επρόκειτο να συμπεριλάβει τον διαχωρισμό του blockchain σε διακριτά κομμάτια (τμήματα) που θα επαληθευόταν από υποσύνολα επικυρωτών. Ωστόσο, η κλιμάκωση με πακέτα ενημέρωσης επιπέδου 2 έχει γίνει η κύρια τεχνική κλιμάκωσης. Αυτό υποστηρίζεται από την προσθήκη νέας φθηνότερης μορφής δεδομένων που συνδέονται με τα Ethereum μπλοκ, η οποία είναι ειδικά σχεδιασμένη για να κάνει τα πακέτα ενημέρωσης φθηνά για τους χρήστες. + +### Τμηματοποίηση {#sharding} + +Το sharding είναι η διαδικασία διαίρεσης μιας βάσης δεδομένων. Υποσύνολα επικυρωτών θα ήταν υπεύθυνα για μεμονωμένα τμήματα αντί να παρακολουθούν ολόκληρο το Ethereum. Το sharding ήταν στον [οδικό χάρτη](/roadmap/) του Ethereum για μεγάλο χρονικό διάστημα και κάποτε προοριζόταν να αποσταλεί πριν από τη μετάβαση σε απόδειξη συμμετοχής. Ωστόσο, η ταχεία ανάπτυξη των λύσεων [rollup επιπέδου 2](#layer-2-scaling) και η εφεύρεση του [Danksharding](/roadmap/danksharding) (προσθήκη μπλοκ δεδομένων rollup σε μπλοκ Ethereum που μπορούν να επαληθευτούν πολύ αποτελεσματικά από τους επικυρωτές) οδήγησαν την κοινότητα Ethereum να προτιμήσει την κλιμάκωση με επίκεντρο τα rollup αντί της κλιμάκωσης με sharding. Αυτό θα βοηθήσει επίσης να διατηρηθεί απλούστερη η λογική συναίνεσης του Ethereum. + +## Κλιμάκωση εκτός αλυσίδας {#offchain-scaling} + +Οι λύσεις εκτός αλυσίδας εφαρμόζονται ξεχωριστά από το Mainnet επιπέδου 1 και δεν απαιτούν καμία αλλαγή στο υπάρχον πρωτόκολλο Ethereum. Ορισμένες λύσεις, γνωστές ως λύσεις "επιπέδου 2", αντλούν την ασφάλειά τους απευθείας από τη συναίνεση του Ethereum επιπέδου 1, όπως τα [optimistic rollup](/developers/docs/scaling/optimistic-rollups/), τα [rollup μηδενικής γνώσης](/developers/docs/scaling/zk-rollups/) ή τα [κανάλια κατάστασης](/developers/docs/scaling/state-channels/). Άλλες λύσεις περιλαμβάνουν τη δημιουργία νέων αλυσίδων σε διάφορες μορφές που αντλούν την ασφάλειά τους ξεχωριστά από το Mainnet, όπως οι [sidechains](#sidechains), τα [validiums](#validium) ή οι [αλυσίδες plasma](#plasma). Αυτές οι λύσεις επικοινωνούν με το Mainnet αλλά αντλούν την ασφάλειά τους διαφορετικά για να επιτύχουν μια ποικιλία στόχων. + +### Επεκτασιμότητα επιπέδου 2 {#layer-2-scaling} + +Αυτή η κατηγορία λύσεων εκτός αλυσίδας αντλεί την ασφάλειά της από το Mainnet Ethereum. + +Το επίπεδο 2 είναι ένας συλλογικός όρος για λύσεις σχεδιασμένες να βοηθήσουν στην κλιμάκωση της εφαρμογής σας χειρίζοντας συναλλαγές εκτός του Ethereum Mainnet (επίπεδο 1) ενώ εκμεταλλεύονται το ισχυρό αποκεντρωμένο μοντέλο ασφάλειας του Mainnet. Η ταχύτητα συναλλαγών υποφέρει όταν το δίκτυο είναι απασχολημένο, καθιστώντας την εμπειρία χρήστη κακή για ορισμένους τύπους dapps. Και καθώς το δίκτυο γίνεται πιο απασχολημένο, οι τιμές του αερίου αυξάνονται καθώς οι αποστολείς συναλλαγών στοχεύουν να υπερισχύσουν ο ένας τον άλλον. Αυτό μπορεί να κάνει τη χρήση του Ethereum πολύ δαπανηρή. + +Οι περισσότερες λύσεις επιπέδου 2 επικεντρώνονται σε έναν διακομιστή ή σε ένα cluster διακομιστών, από τους οποίους ο καθένας μπορεί να αναφέρεται ως κόμβος, επικυρωτής, χειριστής, ακολουθία, παραγωγός μπλοκ ή παρόμοιος όρος. Ανάλογα με την εφαρμογή, αυτοί οι κόμβοι επιπέδου 2 μπορούν να εκτελούνται από τα άτομα, τις επιχειρήσεις ή τα νομικά πρόσωπα που τα χρησιμοποιούν ή από έναν χειριστή τρίτου μέρους ή από μια μεγάλη ομάδα ατόμων (παρόμοια με το Mainnet). Γενικά, οι συναλλαγές υποβάλλονται σε αυτούς τους κόμβους επιπέδου 2 αντί να υποβάλλονται απευθείας στο επίπεδο 1 (Mainnet). Για ορισμένες λύσεις, η παρουσία επιπέδου 2 στη συνέχεια τις συσκευάζει σε ομάδες πριν τις συνδέσει στο επίπεδο 1, μετά την οποία εξασφαλίζονται από το επίπεδο 1 και δεν μπορούν να αλλάξουν. Οι λεπτομέρειες του τρόπου με τον οποίο γίνεται αυτό ποικίλλουν σημαντικά μεταξύ διαφορετικών τεχνολογιών και εφαρμογών επιπέδου 2. + +Μια συγκεκριμένη παρουσία επιπέδου 2 μπορεί να είναι ανοιχτή και κοινόχρηστη από πολλές εφαρμογές ή μπορεί να αναπτυχθεί από ένα έργο και να αφιερωθεί στην υποστήριξη μόνο της εφαρμογής τους. + +#### Γιατί χρειάζεται το επίπεδο 2; {#why-is-layer-2-needed} + +- Αύξηση των συναλλαγών ανά δευτερόλεπτο βελτιώνει σημαντικά την εμπειρία χρήστη και μειώνει τη συμφόρηση δικτύου στο Mainnet Ethereum. +- Οι συναλλαγές συγκεντρώνονται σε μία ενιαία συναλλαγή στο Mainnet Ethereum, μειώνοντας τα τέλη αερίου για τους χρήστες και καθιστώντας το Ethereum πιο συμπεριληπτικό και προσβάσιμο για όλους. +- Οποιαδήποτε ενημέρωση στην κλιμακωσιμότητα δεν πρέπει να γίνεται σε βάρος της αποκέντρωσης ή της ασφάλειας - το επίπεδο 2 χτίζει πάνω από το Ethereum. +- Υπάρχουν δίκτυα επιπέδου 2 ειδικά για εφαρμογές που φέρνουν το δικό τους σύνολο αποτελεσματικότητας όταν εργάζονται με περιουσιακά στοιχεία σε κλίμακα. + +[Περισσότερα για το επίπεδο 2](/layer-2/). + +#### Πακέτα ενημέρωσης {#rollups} + +Τα rollups εκτελούν τις συναλλαγές εκτός του επιπέδου 1 και στη συνέχεια τα δεδομένα δημοσιεύονται στο επίπεδο 1 όπου επιτυγχάνεται συναίνεση. Καθώς τα δεδομένα συναλλαγών περιλαμβάνονται στα μπλοκ επιπέδου 1, αυτό επιτρέπει στα rollups να εξασφαλίζονται από την εγγενή ασφάλεια του Ethereum. + +Υπάρχουν δύο τύποι rollups με διαφορετικά μοντέλα ασφάλειας: + +- **Optimistic rollups**: υποθέτουν ότι οι συναλλαγές είναι έγκυρες από προεπιλογή και εκτελούν υπολογισμούς μόνο μέσω μιας [**απόδειξης απάτης**](/glossary/#fraud-proof) σε περίπτωση πρόκλησης. [Περισσότερα για τα Optimistic rollups](/developers/docs/scaling/optimistic-rollups/). +- **Rollups μηδενικής γνώσης**: εκτελούν υπολογισμούς εκτός αλυσίδας και υποβάλλουν μια [**απόδειξη εγκυρότητας**](/glossary/#validity-proof) στην αλυσίδα. [Περισσότερα για τα rollups μηδενικής γνώσης](/developers/docs/scaling/zk-rollups/). + +#### Κανάλια κατάστασης {#channels} + +Τα κανάλια κατάστασης χρησιμοποιούν συμβόλαια πολλαπλών υπογραφών για να επιτρέπουν στους συμμετέχοντες να πραγματοποιούν συναλλαγές γρήγορα και ελεύθερα εκτός αλυσίδας και στη συνέχεια να διευθετούν την οριστικότητα με το Mainnet. Αυτό ελαχιστοποιεί τη συμφόρηση του δικτύου, τις αμοιβές και τις καθυστερήσεις. Οι δύο τύποι καναλιών είναι επί του παρόντος τα κανάλια κατάστασης και τα κανάλια πληρωμής. + +Μάθετε περισσότερα για τα [κανάλια κατάστασης](/developers/docs/scaling/state-channels/). + +### Πλευρικές αλυσίδες {#sidechains} + +Μια πλευρική αλυσίδα είναι μια ανεξάρτητη κρυπτοαλυσίδα συμβατή με EVM που εκτελείται παράλληλα με το Mainnet. Αυτές είναι συμβατές με το Ethereum μέσω γεφυρών δύο κατευθύνσεων και εκτελούνται υπό τους δικούς τους επιλεγμένους κανόνες συναίνεσης και παραμέτρους μπλοκ. + +Μάθετε περισσότερα για τις [Πλευρικές αλυσίδες](/developers/docs/scaling/sidechains/). + +### Πλάσμα {#plasma} + +Μια αλυσίδα πλάσματος είναι μια ξεχωριστή κρυπτοαλυσίδα που είναι αγκυρωμένη στην κύρια αλυσίδα Ethereum και χρησιμοποιεί αποδείξεις απάτης (όπως τα [optimistic rollups](/developers/docs/scaling/optimistic-rollups/)) για να ελέγχει τις διαφωνίες. + +Μάθετε περισσότερα για το [Πλάσμα](/developers/docs/scaling/plasma/). + +### Validium {#validium} + +Μια αλυσίδα Validium χρησιμοποιεί αποδείξεις εγκυρότητας όπως τα rollups μηδενικής γνώσης αλλά τα δεδομένα δεν αποθηκεύονται στο κύριο επίπεδο 1 της αλυσίδας Ethereum. Αυτό μπορεί να οδηγήσει σε 10.000 συναλλαγές ανά δευτερόλεπτο ανά αλυσίδα Validium και πολλές αλυσίδες μπορούν να εκτελεστούν παράλληλα. + +Μάθετε περισσότερα για τo [Validium](/developers/docs/scaling/validium/). + +## Γιατί χρειάζονται τόσες πολλές λύσεις κλιμάκωσης; {#why-do-we-need-these} + +- Πολλαπλές λύσεις μπορούν να βοηθήσουν στη μείωση της συνολικής συμφόρησης σε οποιοδήποτε μέρος του δικτύου και επίσης να αποτρέψουν ενιαία σημεία αποτυχίας. +- Το σύνολο είναι μεγαλύτερο από το άθροισμα των μερών του. Διαφορετικές λύσεις μπορούν να υπάρξουν και να λειτουργήσουν αρμονικά, επιτρέποντας ένα εκθετικό αποτέλεσμα στην ταχύτητα και απόδοση μελλοντικών συναλλαγών. +- Δεν απαιτείται όλες οι λύσεις να χρησιμοποιούν άμεσα τον αλγόριθμο συναίνεσης Ethereum και οι εναλλακτικές λύσεις μπορούν να προσφέρουν οφέλη που θα ήταν δύσκολο να επιτευχθούν διαφορετικά. +- Καμία λύση κλιμάκωσης δεν είναι αρκετή για να εκπληρώσει το [όραμα του Ethereum](/roadmap/vision/). + +## Περισσότερα από έναν εικονικό μαθητή; {#visual-learner} + + + +_Σημειώστε ότι η εξήγηση στο βίντεο χρησιμοποιεί τον όρο "Επίπεδο 2" για να αναφερθεί σε όλες τις λύσεις κλιμάκωσης εκτός αλυσίδας, ενώ διαφοροποιούμε το "Επίπεδο 2" ως μια λύση εκτός αλυσίδας που αντλεί την ασφάλειά της μέσω της συναίνεσης του κύριου δικτύου επιπέδου 1._ + + + +## Περισσότερες πληροφορίες {#further-reading} + +- [Ένας οδικός χάρτης Ethereum επικεντρωμένος στα rollup](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) του _Vitalik Buterin_ +- [Ενημερωμένες αναλύσεις για λύσεις κλιμάκωσης επιπέδου 2 για το Ethereum](https://www.l2beat.com/) +- [Αξιολόγηση λύσεων κλιμάκωσης επιπέδου 2 Ethereum: Ένα πλαίσιο σύγκρισης](https://medium.com/matter-labs/evaluating-ethereum-l2-scaling-solutions-a-comparison-framework-b6b2f410f955) +- [Ένας ελλιπής οδηγός για τα rollup](https://vitalik.eth.limo/general/2021/01/05/rollup.html) +- [Ethereum-powered ZK-Rollups: Παγκόσμιοι πρωταθλητές](https://hackmd.io/@canti/rkUT0BD8K) +- [Πακέτα ενημέρωσης Optimistic ή ZK](https://limechain.tech/blog/optimistic-rollups-vs-zk-rollups/) +- [Κλιμάκωση blockchain μηδενικής γνώσης](https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf) +- [Γιατί τα rollup και τα τμήματα δεδομένων είναι η μόνη βιώσιμη λύση για υψηλή κλιμάκωση](https://polynya.medium.com/why-rollups-data-shards-are-the-only-sustainable-solution-for-high-scalability-c9aabd6fbb48) +- [Τι είδους επίπεδα 3 έχουν νόημα;](https://vitalik.eth.limo/general/2022/09/17/layer_3.html) +- [Διαθεσιμότητα δεδομένων ή: Πώς τα πακέτα ενημέρωσης έμαθαν να σταματούν να ανησυχούν και να αγαπούν το Ethereum](https://research.2077.xyz/data-availability-or-how-rollups-learned-to-stop-worrying-and-love-ethereum) +- [Πρακτικός οδηγός για τα πακέτα ενημέρωσης Ethereum.](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) + +_Γνωρίζετε κάποιο πόρο της κοινότητας που σας βοήθησε; Επεξεργαστείτε αυτή τη σελίδα και προσθέστε το!_ diff --git a/public/content/translations/el/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/el/developers/docs/scaling/optimistic-rollups/index.md new file mode 100644 index 00000000000..f8bca7cd71e --- /dev/null +++ b/public/content/translations/el/developers/docs/scaling/optimistic-rollups/index.md @@ -0,0 +1,265 @@ +--- +title: Πακέτα ενημέρωσης Optimistic +description: Μια εισαγωγή στα optimistic rollups — μια λύση κλιμάκωσης που χρησιμοποιείται από την κοινότητα του Ethereum. +lang: el +--- + +Τα πακέτα ενημέρωσης (rollups) optimistic είναι πρωτόκολλα επιπέδου 2 (L2) που έχουν σχεδιαστεί για να επεκτείνουν την απόδοση του βασικού επιπέδου του Ethereum. Μειώνουν τον υπολογισμό στην κύρια αλυσίδα Ethereum μέσω της επεξεργασίας των συναλλαγών εκτός αλυσίδας, γεγονός το οποίο προσφέρει σημαντικές βελτιώσεις στις ταχύτητες επεξεργασίας. Σε αντίθεση με άλλες λύσεις κλιμάκωσης, όπως [πλευρικές αλυσίδες](/developers/docs/scaling/sidechains/), τα πακέτα ενημέρωσης optimistic παίρνουν ασφάλεια από το Mainnet, δημοσιεύοντας αποτελέσματα συναλλαγών στην αλυσίδα ή τις [αλυσίδες plasma](/developers/docs/scaling/plasma/), οι οποίες επαληθεύουν επίσης συναλλαγές στο Ethereum με αποδείξεις απάτης, αλλά αποθηκεύουν δεδομένα συναλλαγών αλλού. + +Καθώς ο υπολογισμός είναι το αργό, δαπανηρό μέρος της χρήσης του Ethereum, τα πακέτα ενημέρωσης optimistic μπορούν να προσφέρουν έως και 10-100x βελτιώσεις στην επεκτασιμότητα. Τα πακέτα ενημέρωσης optimistic καταχωρούν επίσης συναλλαγές στο Ethereum ως `calldata` ή σε [blobs](/roadmap/danksharding/), μειώνοντας το κόστος gas για τους χρήστες. + +## Προαπαιτούμενα {#prerequisites} + +Θα πρέπει να έχετε διαβάσει και κατανοήσει τις σελίδες μας σχετικά με την [κλιμάκωση Ethereum](/developers/docs/scaling/) και το [επίπεδο 2](/layer-2/). + +## Τι είναι ένα πακέτο ενημέρωσης optimistic; {#what-is-an-optimistic-rollup} + +Ένα πακέτο ενημέρωσης optimistic είναι μια προσέγγιση για την κλιμάκωση του Ethereum που περιλαμβάνει μετακίνηση υπολογισμού και της αποθήκευσης κατάστασης εκτός αλυσίδας. Τα πακέτα ενημέρωσης optimistic εκτελούν συναλλαγές έξω από το Ethereum, αλλά δημοσιεύουν δεδομένα συναλλαγών στο Κεντρικό δίκτυο ως `calldata` ή σε [blobs](/roadmap/danksharding/). + +Οι χειριστές του πακέτου ενημέρωσης optimistic ομαδοποιούν πολλές συναλλαγές εκτός αλυσίδας σε μεγάλες παρτίδες πριν τις υποβάλουν στο Ethereum. Αυτή η προσέγγιση επιτρέπει την κατανομή του σταθερού κόστους σε πολλαπλές συναλλαγές σε κάθε παρτίδα, μειώνοντας τα τέλη για τους τελικούς χρήστες. Τα πακέτα ενημέρωσης optimistic χρησιμοποιούν επίσης τεχνικές συμπίεσης για να μειώσουν τον όγκο των δεδομένων που δημοσιεύονται στο Ethereum. + +Τα πακέτα ενημέρωσης optimistic θεωρούνται «optimistic» επειδή υποθέτουν ότι οι συναλλαγές εκτός αλυσίδας είναι έγκυρες και δε δημοσιεύουν αποδείξεις εγκυρότητας για παρτίδες συναλλαγών που δημοσιεύονται στην αλυσίδα. Αυτό διαχωρίζει τα πακέτα ενημέρωσης optimistic από τα [πακέτα ενημέρωσης μηδενικής γνώσης](/developers/docs/scaling/zk-rollups) που δημοσιεύουν κρυπτογραφικές [αποδείξεις εγκυρότητας](/glossary/#validity-proof) για συναλλαγές εκτός αλυσίδας. + +Τα πακέτα ενημέρωσης optimistic βασίζονται σε ένα σύστημα απόδειξης απάτης για τον εντοπισμό περιπτώσεων όπου οι συναλλαγές δεν υπολογίζονται σωστά. Μετά την υποβολή ενός συνόλου πακέτων ενημέρωσης στο Ethereum, υπάρχει ένα χρονικό παράθυρο (που ονομάζεται περίοδος πρόκλησης) κατά τη διάρκεια του οποίου οποιοσδήποτε μπορεί να αμφισβητήσει τα αποτελέσματα μιας συναλλαγής πακέτου ενημέρωσης, υπολογίζοντας μια [απόδειξη απάτης](/glossary/#fraud-proof). + +Εάν η απόδειξη απάτης είναι επιτυχής, το πρωτόκολλο πακέτου ενημέρωσης εκτελεί ξανά τις συναλλαγές και ενημερώνει την κατάσταση του πακέτου ενημέρωσης αναλόγως. Το άλλο αποτέλεσμα μιας επιτυχημένης απόδειξης απάτης είναι ότι ο sequencer που είναι υπεύθυνος για τη συμπερίληψη της εσφαλμένα εκτελεσθείσας συναλλαγής σε ένα μπλοκ λαμβάνει μια ποινή. + +Εάν η παρτίδα πακέτου ενημέρωσης παραμείνει χωρίς αμφισβήτηση (δηλαδή, όλες οι συναλλαγές εκτελούνται σωστά) μετά την πάροδο της περιόδου πρόκλησης, θεωρείται έγκυρη και αποδεκτή στο Ethereum. Οι υπόλοιποι μπορούν να συνεχίσουν να βασίζονται σε ένα μη επιβεβαιωμένο πακέτο ενημέρωσης μπλοκ, αλλά με μια προειδοποίηση: τα αποτελέσματα των συναλλαγών θα αντιστραφούν εάν βασίζονται σε μια εσφαλμένα εκτελεσθείσα συναλλαγή που δημοσιεύτηκε προηγουμένως. + +## Πώς αλληλεπιδρούν τα πακέτα ενημέρωσης optimistic με το Ethereum; {#optimistic-rollups-and-Ethereum} + +Τα πακέτα ενημέρωσης optimistic είναι [λύσεις κλιμάκωσης εκτός αλυσίδας](/developers/docs/scaling/#offchain-scaling) που έχουν σχεδιαστεί για να λειτουργούν πάνω από το Ethereum. Κάθε πακέτο ενημέρωσης optimistic διαχειρίζεται ένα σύνολο έξυπνων συμβολαίων που αναπτύσσονται στο δίκτυο Ethereum. Τα πακέτα ενημέρωσης optimistic επεξεργάζονται συναλλαγές εκτός της κύριας αλυσίδας Ethereum, αλλά δημοσιεύει τις συναλλαγές εκτός αλυσίδας (σε παρτίδες) σε ένα συμβόλαιο πακέτου ενημέρωσης στην αλυσίδα. Όπως η κρυπτοαλυσίδα Ethereum, αυτή η εγγραφή συναλλαγών είναι αμετάβλητη και αποτελεί την «αλυσίδα πακέτου ενημέρωσης optimistic». + +Η αρχιτεκτονική ενός πακέτου ενημέρωσης optimistic περιλαμβάνει τα ακόλουθα μέρη: + +**Συμβόλαια επί της αλυσίδας**: Η λειτουργία των πακέτων ενημέρωσης optimistic ελέγχεται από έξυπνα συμβόλαια που εκτελούνται στο Ethereum. Αυτό περιλαμβάνει συμβόλαια που αποθηκεύουν πακέτα ενημέρωσης μπλοκ, παρακολουθούν τις ενημερώσεις κατάστασης στο πακέτο και παρακολουθούν τις καταθέσεις των χρηστών. Υπό αυτή την έννοια, το Ethereum χρησιμεύει ως το βασικό στρώμα ή το «επίπεδο 1» για τα πακέτα ενημέρωσης optimistic. + +**Εικονική μηχανή (VM) εκτός αλυσίδας**: Αν και τα συμβόλαια που διαχειρίζονται το πρωτόκολλο πακέτου ενημέρωσης optimistic εκτελούνται στο Ethereum, το πρωτόκολλο πακέτου ενημέρωσης εκτελεί υπολογισμούς και αποθήκευση της κατάστασης σε άλλη εικονική μηχανή ξεχωριστά από την [Εικονική μηχανή Ethereum](/developers/docs/evm/). Οι VM εκτός αλυσίδας είναι το σημείο όπου υπάρχουν οι εφαρμογές και εκτελούνται οι αλλαγές κατάστασης και χρησιμεύει ως το ανώτερο στρώμα ή «επίπεδο 2» για ένα πακέτο ενημέρωσης optimistic. + +Καθώς τα πακέτα ενημέρωσης optimistic έχουν σχεδιαστεί για την εκτέλεση προγραμμάτων είτε γραμμένων είτε μεταγλωττισμένων για το EVM, η VM εκτός αλυσίδας ενσωματώνει πολλές προδιαγραφές σχεδίασης EVM. Επιπλέον, οι αποδείξεις απάτης που υπολογίζονται στην αλυσίδα επιτρέπουν στο δίκτυο Ethereum να επιβάλλει την εγκυρότητα των αλλαγών κατάστασης που υπολογίζονται στην VM εκτός αλυσίδας. + +Τα πακέτα ενημέρωσης optimistic περιγράφονται ως «υβριδικές λύσεις κλιμάκωσης» επειδή, ενώ υπάρχουν ως ξεχωριστά πρωτόκολλα, οι ιδιότητες ασφαλείας τους προέρχονται από το Ethereum. Μεταξύ άλλων, το Ethereum εγγυάται την ορθότητα του υπολογισμού του πακέτου ενημέρωσης εκτός αλυσίδας και τη διαθεσιμότητα δεδομένων πίσω από τον υπολογισμό. Αυτό καθιστά τα πακέτα ενημέρωσης optimistic πιο ασφαλή από τα αγνά πρωτόκολλα κλιμάκωση εκτός αύσίδας (π.χ., [sidechains](/developers/docs/scaling/sidechains/)) που δε βασίζονται στο Ethereum για ασφάλεια. + +Τα πακέτα ενημέρωσης optimistic βασίζονται στο κύριο πρωτόκολλο Ethereum για τα ακόλουθα: + +### Διαθεσιμότητα δεδομένων {#data-availability} + +Όπως αναφέρθηκε, τα πακέτα ενημέρωσης optimistic δημοσιεύουν δεδομένα συναλλαγών στο Ethereum ως `calldata` ή [blobs](/roadmap/danksharding/). Δεδομένου ότι η εκτέλεση του πακέτου ενημέρωσης αλυσίδας βασίζεται σε υποβληθείσες συναλλαγές, οποιοσδήποτε μπορεί να χρησιμοποιήσει αυτές τις πληροφορίες οι οποίες που είναι αγκυρωμένες στο βασικό επίπεδο του Ethereum, για να εκτελέσει την κατάσταση του πακέτου ενημέρωσης και να επαληθεύσει την ορθότητα των μεταβάσεων κατάστασης. + +Η [διαθεσιμότητα δεδομένων](/developers/docs/data-availability/) είναι κρίσιμης σημασίας, διότι χωρίς πρόσβαση σε δεδομένα κατάστασης, αυτοί που θα αμφισβητήσουν δεν μπορούν να δημιουργήσουν αποδείξεις απάτης για τις μη έγκυρες λειτουργίες των πακέτων ενημέρωσης. Με το Ethereum να παρέχει διαθεσιμότητα δεδομένων, μειώνεται ο κίνδυνος να ξεφύγουν οι χειριστές των πακέτων ενημέρωσης με κακόβουλες ενέργειες (π.χ. υποβολή μη έγκυρων μπλοκ). + +### Αντίσταση στη Λογοκρισία {#censorship-resistance} + +Τα πακέτα ενημέρωσης optimistic βασίζονται επίσης στο Ethereum για αντίσταση στη λογοκρισία. Σε ένα πακέτο ενημέρωσης optimistic, μια κεντρική οντότητα (ο χειριστής) είναι υπεύθυνος για την επεξεργασία των συναλλαγών και την υποβολή των πακέτων ενημέρωσης μπλοκ στο Ethereum. Αυτό έχει κάποιες συνέπειες: + +- Οι χειριστές των πακέτων ενημέρωσης μπορούν να λογοκρίνουν τους χρήστες με το να βγουν εντελώς εκτός σύνδεσης ή με την άρνησή τους να δημιουργήσουν μπλοκ που περιλαμβάνουν ορισμένες συναλλαγές σε αυτά. + +- Οι χειριστές των πακέτων ενημέρωσης μπορούν να αποτρέψουν τους χρήστες από το να κάνουν ανάληψη χρημάτων που έχουν κατατεθεί στη συμβόλαιο του πακέτου ενημέρωσης μέσω της δέσμευσης των δεδομένων κατάστασης που είναι απαραίτητα για τα αποδεικτικά ιδιοκτησίας Merkle. Η δέσμευση δεδομένων κατάστασης μπορεί επίσης να αποκρύψει την κατάσταση του πακέτου ενημέρωσης από τους χρήστες και να τους εμποδίσει να αλληλεπιδράσουν με το πακέτο ενημέρωσης. + +Τα πακέτα ενημέρωσης optimistic λύνουν αυτό το πρόβλημα αναγκάζοντας τους χειριστές να δημοσιεύουν δεδομένα που σχετίζονται με ενημερώσεις κατάστασης στο Ethereum. Η δημοσίευση δεδομένων rollup στην αλυσίδα έχει τα ακόλουθα πλεονεκτήματα: + +- Εάν ένας χειριστής πακέτου ενημέρωσης optimistic βρεθεί εκτός σύνδεσης ή σταματήσει να παράγει παρτίδες συναλλαγών, ένας άλλος κόμβος μπορεί να χρησιμοποιήσει τα διαθέσιμα δεδομένα για να αναπαραγάγει την τελευταία κατάσταση του πακέτου ενημέρωσης και να συνεχίσει την παραγωγή μπλοκ. + +- Οι χρήστες μπορούν να χρησιμοποιήσουν δεδομένα συναλλαγών για να δημιουργήσουν αποδεικτικά Merkle που αποδεικνύουν την ιδιοκτησία κεφαλαίων και να αποσύρουν τα περιουσιακά τους στοιχεία από το πακέτο ενημέρωσης. + +- Οι χρήστες μπορούν επίσης να υποβάλουν τις συναλλαγές τους στο L1 αντί για τον sequencer. Στην περίπτωση αυτή, ο sequencer πρέπει να συμπεριλάβει τη συναλλαγή εντός συγκεκριμένου χρονικού ορίου για να συνεχίσει να παράγει έγκυρα μπλοκ. + +### Διακανονισμός {#settlement} + +Ένας άλλος ρόλος που διαδραματίζει το Ethereum στο πλαίσιο των πακέτων ενημέρωσης optimistic είναι αυτός του επιπέδου διακανονισμού. Ένα επίπεδο διακανονισμού αγκυρώνει ολόκληρο το οικοσύστημα blockchain, δημιουργεί ασφάλεια και παρέχει αντικειμενική οριστικότητα εάν προκύψει μια διαφωνία σε μια άλλη αλυσίδα (στα πακέτα ενημέρωσης optimistic σε αυτή την περίπτωση) που απαιτεί διαιτησία. + +Το Κεντρικό Δίκτυο του Ethereum παρέχει έναν κόμβο για τα πακέτα ενημέρωσης optimistic για την επαλήθευση των αποδεικτικών απάτης και την επίλυση διαφορών. Επιπλέον, οι συναλλαγές που πραγματοποιούνται στο πακέτο ενημέρωσης είναι τελικές μόνο _αφού_ το μπλοκ του πακέτου ενημέρωσης γίνει αποδεκτό στο Ethereum. Μόλις δεσμευτεί μια συναλλαγή rollup στο βασικό επίπεδο του Ethereum, δεν μπορεί να αναιρεθεί (εκτός από την εξαιρετικά απίθανη περίπτωση αναδιοργάνωσης της αλυσίδας). + +## Πώς λειτουργούν τα πακέτα ενημέρωσης optimistic; {#how-optimistic-rollups-work} + +### Εκτέλεση και συγκέντρωση συναλλαγών {#transaction-execution-and-aggregation} + +Οι χρήστες υποβάλλουν συναλλαγές σε «χειριστές», οι οποίοι είναι κόμβοι υπεύθυνοι για την επεξεργασία των συναλλαγών στο πακέτο ενημέρωσης optimistic. Γνωστός και ως «επικυρωτής» ή «συσσωρευτής», ο χειριστής συγκεντρώνει συναλλαγές, συμπιέζει τα υποκείμενα δεδομένα και δημοσιεύει το μπλοκ στο Ethereum. + +Παρόλο που οποιοσδήποτε μπορεί να γίνει επικυρωτής, οι επικυρωτές πακέτων ενημέρωσης optimistic πρέπει να παρέχουν έναν δεσμό πριν από την παραγωγή μπλοκ, όπως ένα [σύστημα απόδειξης συμμετοχής](/developers/docs/consensus-mechanisms/pos/). Αυτός ο δεσμός μπορεί να κοπεί εάν ο επικυρωτής δημοσιεύσει ένα μη έγκυρο μπλοκ ή χτίσει σε ένα παλιό αλλά μη έγκυρο μπλοκ (ακόμα και αν το μπλοκ του είναι έγκυρο). Με αυτόν τον τρόπο τα πακέτα ενημέρωσης optimistic χρησιμοποιούν κρυπτοοικονομικά κίνητρα για να εξασφαλίσουν ότι οι επικυρωτές ενεργούν με ειλικρίνεια. + +Άλλοι επικυρωτές στην αλυσίδα των πακέτων ενημέρωσης optimistic αναμένεται να εκτελέσουν τις υποβληθείσες συναλλαγές χρησιμοποιώντας το αντίγραφο της κατάστασης του πακέτου ενημέρωσης. Εάν η τελική κατάσταση ενός επικυρωτή είναι διαφορετική από την προτεινόμενη κατάσταση του χειριστή, μπορεί να ξεκινήσει μια πρόκληση και να υπολογίσει ένα αποδεικτικό απάτης. + +Ορισμένα πακέτα ενημέρωσης optimistic μπορεί να απέχουν από ένα σύστημα επικύρωσης χωρίς άδεια και να χρησιμοποιούν έναν μεμονωμένο «sequencer» για την εκτέλεση της αλυσίδας. Όπως ένας επικυρωτής, ο sequencer επεξεργάζεται συναλλαγές, παράγει μπλοκ πακέτων ενημέρωσης και υποβάλλει συναλλαγές rollup στην αλυσίδα L1 (Ethereum). + +Ο sequencer διαφέρει από έναν κανονικό χειριστή πακέτων ενημέρωσης, επειδή ασκεί μεγαλύτερο έλεγχο στη διάταξη των συναλλαγών. Επίσης, ο sequencer έχει πρόσβαση κατά προτεραιότητα στην αλυσίδα πακέτου ενημέρωσης και είναι η μόνη οντότητα που είναι εξουσιοδοτημένη να υποβάλλει συναλλαγές στο συμβόλαιο στην αλυσίδα. Οι συναλλαγές από κόμβους που δεν εκτελούν καθήκοντα sequencer ή από τακτικούς χρήστες απλώς τοποθετούνται σε ουρά σε ξεχωριστά εισερχόμενα inbox μέχρι ο sequencer να τις συμπεριλάβει σε μια νέα παρτίδα. + +#### Υποβολή μπλοκ πακέτων ενημέρωσης στο Ethereum {#submitting-blocks-to-ethereum} + +Όπως αναφέρθηκε, ο χειριστής ενός πακέτου ενημέρωσης optimistic δεσμεύει τις συναλλαγές εκτός αλυσίδας σε μια παρτίδα και τις στέλνει στο Ethereum για συμβολαιογραφική επικύρωση. Αυτή η διαδικασία περιλαμβάνει τη συμπίεση δεδομένων που σχετίζονται με τις συναλλαγές και τη δημοσίευσή τους στο Ethereum ως `calldata` ή σε blob. + +Τα `calldata` είναι μια μη τροποποιήσιμη, μη εμμένουσα περιοχή σε ένα έξυπνο συμβόλαιο που συμπεριφέρεται κυρίως σαν [memory](/developers/docs/smart-contracts/anatomy/#memory). Ενώ τα `calldata` παραμένουν στην αλυσίδα ως μέρος των [history logs](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs) του blockchain, δεν αποθηκεύονται ως μέρος της κατάστασης του Ethereum. Επειδή το `calldata` δεν αγγίζει κανένα μέρος της κατάστασης του Ethereum, είναι φθηνότερο από την αποθήκευση δεδομένων κατάστασης στην αλυσίδα. + +Η λέξη-κλειδί `calldata` χρησιμοποιείται επίσης στο Solidity για τη μεταβίβαση ορισμάτων σε μια συνάρτηση έξυπνου συμβόλαιου κατά τον χρόνο εκτέλεσης. Το `calldata` προσδιορίζει τη λειτουργία που καλείται κατά τη διάρκεια μιας συναλλαγής και διατηρεί εισόδους στη λειτουργία με τη μορφή μιας αυθαίρετης ακολουθίας byte. + +Στο πλαίσιο των πακέτων ενημέρωσης optimistic, το `calldata` χρησιμοποιείται για την αποστολή συμπιεσμένων δεδομένων συναλλαγών στο συμβόλαιο στην αλυσίδα. Ο χειριστής του πακέτου ενημέρωσης προσθέτει μια νέα παρτίδα με την κλήση της απαιτούμενης λειτουργίας στο συμβόλαιο του πακέτου ενημέρωσης και τη μεταβίβαση των συμπιεσμένων δεδομένων ως ορισμάτων λειτουργίας. Η χρήση `calldata` μειώνει τις χρεώσεις χρήστη, καθώς το μεγαλύτερο κόστος που επιβαρύνει τα πακέτα ενημέρωσης προέρχεται από την αποθήκευση δεδομένων στην αλυσίδα. + +Ακολουθεί [ένα παράδειγμα](https://etherscan.io/tx/0x9102bfce17c58b5fc1c974c24b6bb7a924fb5fbd7c4cd2f675911c27422a5591) μιας υποβολής παρτίδας πακέτων ενημέρωσης για να παρουσιαστεί πώς λειτουργεί αυτή η ιδέα. Ο sequencer κάλεσε τη μέθοδο `appendSequencerBatch()` και πέρασε τα συμπιεσμένα δεδομένα συναλλαγής ως δεδομένα εισόδου με τη χρήση `calldata`. + +Ορισμένα πακέτα ενημέρωσης χρησιμοποιούν πλέον blob για να δημοσιεύουν παρτίδες συναλλαγών στο Ethereum. + +Τα blob είναι μη τροποποιήσιμα και μη εμμένοντα (ακριβώς όπως το `calldata`), αλλά αφαιρούνται από το ιστορικό μετά από ~18 ημέρες. Για περισσότερες πληροφορίες σχετικά με τα blob, διαβάστε το [Danksharding](/roadmap/danksharding). + +### Δεσμεύσεις κατάστασης {#state-commitments} + +Σε οποιαδήποτε χρονική στιγμή, η κατάσταση του πακέτου ενημέρωσης optimistic (λογαριασμοί, υπόλοιπα, κώδικας συμβολαίου κ.λπ.) οργανώνεται ως [δέντρο Merkle](/whitepaper/#merkle-trees) που ονομάζεται «δέντρο κατάστασης». Η ρίζα αυτού του δέντρου Merkle (κατάσταση ρίζας), η οποία αναφέρεται στην πιο πρόσφατη κατάσταση του πακέτου ενημέρωσης, κατακερματίζεται και αποθηκεύεται στο συμβόλαιο πακέτου ενημέρωσης. Κάθε μετάβαση κατάστασης στην αλυσίδα παράγει μια νέα κατάσταση πακέτου ενημέρωσης, στην οποία ένας χειριστής δεσμεύεται υπολογίζοντας ένα νέο root κατάστασης. + +Ο χειριστής υποχρεούται να υποβάλλει τόσο τις παλιές ρίζες κατάστασης όσο και τις νέες ρίζες κατάστασης κατά την ανάρτηση παρτίδων. Εάν η παλιά κατάσταση ρίζας ταιριάζει με την υπάρχουσα κατάσταση ρίζας στο συμβόλαιο στην αλυσίδα, η τελευταία απορρίπτεται και αντικαθίσταται με τη νέα κατάσταση ρίζας. + +Ο χειριστής του πακέτου ενημέρωσης απαιτείται επίσης να δεσμεύσει μια ρίζα Merkle για την ίδια τη δέσμη συναλλαγών. Αυτό επιτρέπει σε οποιονδήποτε να αποδείξει τη συμπερίληψη μιας συναλλαγής στη δέσμη (στο L1) με την παρουσίαση μιας [απόδειξης Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/). + +Οι δεσμεύσεις κατάστασης, ιδιαίτερα οι καταστάσεις ρίζας, είναι απαραίτητες για την απόδειξη της ορθότητας των αλλαγών κατάστασης σε ένα πακέτο ενημέρωσης optimistic. Το συμβόλαιο πακέτου ενημέρωσης δέχεται νέες καταστάσεις ρίζες από τους χειριστές αμέσως μετά τη δημοσίευσή τους, αλλά μπορεί αργότερα να διαγράψει μη έγκυρες καταστάσεις ρίζας για να επαναφέρει το πακέτο ενημέρωσης στη σωστή του κατάσταση. + +### Απόδειξη απάτης {#fraud-proving} + +Όπως εξηγείται, τα πακέτα ενημέρωσης optimistic επιτρέπουν σε οποιονδήποτε να δημοσιεύει μπλοκ χωρίς να παρέχει αποδείξεις εγκυρότητας. Ωστόσο, για να διασφαλιστεί ότι η αλυσίδα παραμένει ασφαλής, τα πακέτα ενημέρωσης optimistic καθορίζουν ένα χρονικό παράθυρο κατά το οποίο οποιοσδήποτε μπορεί να αμφισβητήσει μια μετάβαση κατάστασης. Ως εκ τούτου, τα μπλοκ πακέτων ενημέρωσης ονομάζονται «ισχυρισμοί», καθώς ο οποιοσδήποτε μπορεί να αμφισβητήσει την εγκυρότητά τους. + +Εάν κάποιος αμφισβητήσει έναν ισχυρισμό, τότε το πρωτόκολλο πακέτου ενημέρωσης θα ξεκινήσει τον υπολογισμό απόδειξης απάτης. Κάθε τύπος απόδειξης απάτης είναι αλληλεπιδραστικός —κάποιος πρέπει να δημοσιεύσει έναν ισχυρισμό πριν κάποιος άλλος μπορέσει να τον αμφισβητήσει. Η διαφορά έγκειται στο πόσοι γύροι αλληλεπίδρασης απαιτούνται για τον υπολογισμό της απόδειξης απάτης. + +Αλληλεπιδραστικά συστήματα απόδειξης ενός γύρου επαναλαμβάνουν αμφισβητούμενες συναλλαγές στο L1 για τον εντοπισμό μη έγκυρων ισχυρισμών. Το πρωτόκολλο πακέτου ενημέρωσης μιμείται την εκ νέου εκτέλεση της αμφισβητούμενης συναλλαγής στο L1 (Ethereum) χρησιμοποιώντας ένα συμβόλαιο επαληθευτή, με την υπολογισμένη ρίζα κατάστασης να καθορίζει ποιος κερδίζει την πρόκληση. Εάν ο ισχυρισμός αυτού που αμφισβητεί σχετικά με τη σωστή κατάσταση του πακέτου ενημέρωσης είναι σωστός, ο χειριστής τιμωρείται με περικοπή του δεσμού του. + +Ωστόσο, η επανεκτέλεση συναλλαγών στο L1 για τον εντοπισμό απάτης απαιτεί τη δημοσίευση δεσμεύσεων κατάστασης για μεμονωμένες συναλλαγές και αυξάνει τα δεδομένα που πρέπει να δημοσιεύουν τα πακέτα ενημέρωσης στην αλυσίδα. Η επανάληψη των συναλλαγών συνεπάγεται επίσης σημαντικό κόστος gas. Για αυτούς τους λόγους, γίνεται μετάβαση των πακέτων ενημερώσεων optimistic σε αλληλεπιδραστική απόδειξη πολλαπλών γύρων, η οποία επιτυγχάνει τον ίδιο στόχο (δηλαδή τον εντοπισμό μη έγκυρων λειτουργιών πακέτων ενημερώσεων) με μεγαλύτερη αποτελεσματικότητα. + +#### Διαδραστική απόδειξη πολλαπλών κύκλων {#multi-round-interactive-proving} + +Η διαδραστική απόδειξη πολλαπλών γύρων περιλαμβάνει ένα πρωτόκολλο εμπρός-πίσω μεταξύ αυτού που υποβάλλει τον ισχυρισμό και αυτού που τον αμφισβητεί, υπό την επίβλεψη ενός συμβολαίου επαληθευτή L1, το οποίο τελικά αποφασίζει το ψευδές μέρος. Αφού ένας κόμβος L2 αμφισβητήσει έναν ισχυρισμό, αυτός που υποβάλλει τον ισχυρισμό πρέπει να διαιρέσει τον αμφισβητούμενο ισχυρισμό σε δύο ισοδύναμα μισά μέρη. Κάθε μεμονωμένος ισχυρισμός σε αυτή την περίπτωση θα περιέχει όσα βήματα υπολογισμού έχει και ο άλλος. + +Αυτός που τον αμφισβητεί θα επιλέξει, στη συνέχεια, τον συγκεκριμένο ισχυρισμό που θέλει να αμφισβητήσει. Η διαδικασία διαίρεσης (που ονομάζεται «πρωτόκολλο διχοτόμησης») συνεχίζεται μέχρι και τα δύο μέλη αμφισβητήσουν έναν ισχυρισμό σχετικά με ένα _μεμονωμένο_ βήμα εκτέλεσης. Σε αυτό το σημείο, το συμβόλαιο L1 θα επιλύσει τη διαφορά μέσω της αξιολόγησης της οδηγίας (και του αποτελέσματός της) για να πιάσει το δόλιο μέρος. + +Ο διεκδικητής πρέπει να παράσχει μια «απόδειξη ενός βήματος» που επαληθεύει την εγκυρότητα του αμφισβητούμενου υπολογισμού ενός σταδίου. Εάν ο διεκδικητής αποτύχει να παράσχει την απόδειξη ενός βήματος ή ο επαληθευτής L1 κρίνει ότι η απόδειξη δεν είναι έγκυρη, χάνει την πρόκληση. + +Μερικές σημειώσεις σχετικά με αυτό το είδος απόδειξης απάτης: + +1. Η διαδραστική απόδειξη απάτης πολλαπλών γύρων θεωρείται αποτελεσματική επειδή ελαχιστοποιεί το έργο που πρέπει να κάνει η αλυσίδα L1 στη διαιτησία διαφορών. Αντί να επαναλαμβάνει ολόκληρη τη συναλλαγή, η αλυσίδα L1 χρειάζεται να επαναλάβει μόνο ένα βήμα στην εκτέλεση του πακέτου ενημέρωσης. + +2. Τα πρωτόκολλα διχοτόμησης μειώνουν τον όγκο των δεδομένων που δημοσιεύονται στην αλυσίδα (δε χρειάζεται να δημοσιεύονται δεσμεύσεις κατάστασης για κάθε συναλλαγή). Επίσης, τα optimistic πακέτα ενημέρωσης δεν περιορίζονται από το όριο gas του Ethereum. Αντίθετα, τα πακέτα ενημέρωσης optimistic που εκτελούν εκ νέου συναλλαγές πρέπει να διασφαλίζουν ότι μια συναλλαγή L2 έχει ένα χαμηλότερο όριο gas για να μιμηθεί την εκτέλεσή της σε μία μεμονωμένη συναλλαγή Ethereum. + +3. Μέρος του δεσμού του κακόβουλου χρήστη απονέμεται στον αμφισβητία, ενώ το άλλο μέρος καίγεται. Το κάψιμο αποτρέπει τη συμπαιγνία μεταξύ επικυρωτών. Εάν δύο επικυρωτές συνεννοηθούν για να ξεκινήσουν ψευδείς προκλήσεις, θα χάσουν ένα σημαντικό κομμάτι ολόκληρου του δεσμευμένου κεφαλαίου. + +4. Η διαδραστική απόδειξη πολλαπλών γύρων απαιτεί από τα δύο μέρη (τον διεκδικητή και τον αμφισβητία) να κάνουν κινήσεις εντός του καθορισμένου χρονικού παραθύρου. Η παράλειψη ενεργοποίησης πριν από τη λήξη της προθεσμίας αναγκάζει τον παραβάτη να χάσει την αμφισβήτηση. + +#### Γιατί οι αποδείξεις απάτης έχουν σημασία για τα πακέτα ενημέρωσης optimistic {#fraud-proof-benefits} + +Οι αποδείξεις απάτης είναι σημαντικές επειδή διευκολύνουν την _αξιόπιστη οριστικότητα_ στα πακέτα ενημέρωσης optimistic. Η αξιόπιστη οριστικότητα είναι μια ποιότητα πακέτων ενημέρωσης optimistic που εγγυάται ότι μια συναλλαγή —εφόσον είναι έγκυρη— θα επιβεβαιωθεί τελικά. + +Οι κακόβουλοι κόμβοι μπορούν να προσπαθήσουν να καθυστερήσουν την επιβεβαίωση ενός έγκυρου πακέτου ενημέρωσης μπλοκ ξεκινώντας ψευδείς προκλήσεις. Ωστόσο, οι αποδείξεις απάτης θα αποδείξουν τελικά την εγκυρότητα του μπλοκ rollup και θα οδηγήσουν στην επιβεβαίωσή του. + +Αυτό σχετίζεται επίσης με ένα άλλο χαρακτηριστικό ασφαλείας των optimistic rollup: η εγκυρότητα της αλυσίδας βασίζεται στην ύπαρξη _ενός_ ειλικρινούς κόμβου. Ο ειλικρινής κόμβος μπορεί να προωθήσει σωστά την αλυσίδα είτε δημοσιεύοντας έγκυρους ισχυρισμούς είτε αμφισβητώντας μη έγκυρους ισχυρισμούς. Όποια και αν είναι η περίπτωση, οι κακόβουλοι κόμβοι που διαφωνούν με έναν ειλικρινή κόμβο θα χάσουν τα μερίδια τους κατά τη διαδικασία απόδειξης απάτης. + +### Διαλειτουργικότητα L1/L2 {#l1-l2-interoperability} + +Τα optimistic rollup έχουν σχεδιαστεί για διαλειτουργικότητα με το Κεντρικό Δίκτυο του Ethereum και επιτρέπουν στους χρήστες να μεταφέρουν μηνύματα και αυθαίρετα δεδομένα μεταξύ L1 και L2. Είναι επίσης συμβατά με το EVM, ώστε να μπορείτε να μεταφέρετε υπάρχουσες [dapp](/developers/docs/dapps/) σε optimistic rollup ή να δημιουργείτε νέες dapp χρησιμοποιώντας εργαλεία ανάπτυξης Ethereum. + +#### 1. Κίνηση κεφαλαίου {#asset-movement} + +##### Προσθήκη πακέτου ενημέρωσης + +Για να χρησιμοποιήσουν ένα optimistic rollup, οι χρήστες καταθέτουν ETH, token ERC-20 και άλλα αποδεκτά στοιχεία στο συμβόλαιο [γέφυρας](/developers/docs/bridges/) του rollup στο L1. Το συμβόλαιο γέφυρας θα μεταφέρει τη συναλλαγή στο L2, όπου ένα ισοδύναμο ποσό περιουσιακών στοιχείων κόβεται και αποστέλλεται στη διεύθυνση που έχει επιλέξει ο χρήστης στο optimistic rollup. + +Οι συναλλαγές που δημιουργούνται από τους χρήστες (όπως μια κατάθεση L1 > L2) συνήθως τοποθετούνται σε ουρά μέχρι ο sequencer να τις υποβάλει ξανά στο συμβόλαιο rollup. Ωστόσο, για να διατηρηθεί η αντίσταση στη λογοκρισία, τα πακέτα ενημέρωσης optimistic επιτρέπουν στους χρήστες να υποβάλουν μια συναλλαγή απευθείας στο συμβόλαιο στην αλυσίδα εάν έχει καθυστερήσει πέραν του μέγιστου επιτρεπόμενου χρόνου. + +Ορισμένα optimistic rollup υιοθετούν μια πιο απλή προσέγγιση για να αποτρέψουν τους sequencer από το να λογοκρίνουν τους χρήστες. Εδώ, ένα μπλοκ ορίζεται από όλες τις συναλλαγές που υποβάλλονται στο συμβόλαιο L1 από το προηγούμενο μπλοκ (π.χ. καταθέσεις) επιπλέον των συναλλαγών που υποβάλλονται για επεξεργασία στην αλυσίδα rollup. Εάν ένας sequencer αγνοήσει μια συναλλαγή L1, θα δημοσιεύσει την (αποδεδειγμένα) λάθος ρίζα κατάστασης. Συνεπώς, οι sequencer δεν μπορούν να καθυστερήσουν τα μηνύματα που δημιουργούνται από τον χρήστη μόλις αναρτηθούν στο L1. + +##### Έξοδος από το rollup + +Η ανάληψη από ένα optimistic rollup στο Ethereum είναι πιο δύσκολη λόγω του συστήματος απόδειξης απάτης. Εάν ένας χρήστης εκκινήσει μια συναλλαγή L2 > L1για ανάληψη κεφαλαίων που έχουν δεσμευτεί στο L1, πρέπει να περιμένει μέχρι να παρέλθει η περίοδος πρόκλησης, η οποία διαρκεί περίπου επτά ημέρες. Ωστόσο, η ίδια η διαδικασία ανάληψης είναι αρκετά απλή. + +Αφού εκκινηθεί το αίτημα ανάληψης στο rollup του L2, η συναλλαγή περιλαμβάνεται στην επόμενη παρτίδα, ενώ τα περιουσιακά στοιχεία του χρήστη στο rollup καίγονται. Μόλις δημοσιευτεί η παρτίδα στο Ethereum, ο χρήστης μπορεί να υπολογίσει μια απόδειξη Merkle που επαληθεύει τη συμπερίληψη της συναλλαγής εξόδου του στο μπλοκ. Στη συνέχεια, το μόνο που μένει να κάνει είναι να περιμένει την περίοδο καθυστέρησης για την οριστικοποίηση της συναλλαγής στο L1 και την ανάληψη χρημάτων στο Κεντρικό Δίκτυο. + +Για να αποφύγετε την αναμονή μιας εβδομάδας πριν από την ανάληψη κεφαλαίων στο Ethereum, οι χρήστες των optimistic rollup μπορούν να χρησιμοποιήσουν έναν **πάροχο ρευστότητας** (liquidity provider, LP). Ένας πάροχος ρευστότητας αναλαμβάνει την ιδιοκτησία μιας εκκρεμούς ανάληψης L2 και πληρώνει τον χρήστη στο L1 (με αντάλλαγμα την πληρωμή μιας αμοιβής). + +Οι πάροχοι ρευστότητας μπορούν να ελέγξουν την εγκυρότητα του αιτήματος ανάληψης του χρήστη (με το να εκτελέσουν οι ίδιοι την αλυσίδα) πριν αποδεσμεύσουν κεφάλαια. Με αυτόν τον τρόπο έχουν διαβεβαιώσεις ότι η συναλλαγή θα επιβεβαιωθεί τελικά (δηλαδή, αδιαμφισβήτητη οριστικότητα). + +#### 2. Συμβατότητα EVM {#evm-compatibility} + +Για τους προγραμματιστές, το πλεονέκτημα των optimistic rollup είναι η συμβατότητά τους —ή, ακόμα καλύτερα, η ισοδυναμία τους— με το [Εικονικό μηχάνημα του Ethereum (EVM)](/developers/docs/evm/). Τα συμβατά με EVM rollup συμμορφώνονται με τις προδιαγραφές στην [Κίτρινη Βίβλο του Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf) και υποστηρίζουν το EVM σε επίπεδο bytecode. + +Η συμβατότητα με EVM σε optimistic rollup έχει τα ακόλουθα πλεονεκτήματα: + +i. Οι προγραμματιστές μπορούν να μετεγκαταστήσουν τα υπάρχοντα έξυπνα συμβόλαια στο Ethereum σε αλυσίδες optimistic rollup χωρίς να χρειάζεται να τροποποιήσουν εκτενώς τις βάσεις κώδικα. Αυτό μπορεί να εξοικονομήσει χρόνο στις ομάδες ανάπτυξης κατά τη δημοσίευση έξυπνων συμβολαίων Ethereum στο L2. + +ii. Οι προγραμματιστές και οι ομάδες έργων που χρησιμοποιούν optimistic rollup μπορούν να επωφεληθούν από την υποδομή του Ethereum. Αυτό περιλαμβάνει γλώσσες προγραμματισμού, βιβλιοθήκες κώδικα, εργαλεία δοκιμών, λογισμικό πελάτη, υποδομή ανάπτυξης και άλλα. + +Η χρήση υφιστάμενων εργαλείων είναι σημαντική επειδή αυτά τα εργαλεία έχουν ελεγχθεί εκτενώς, διορθωθεί και βελτιωθεί με τα χρόνια. Εξαλείφει επίσης την ανάγκη να μάθουν οι προγραμματιστές του Ethereum πώς να κατασκευάζουν με μια εντελώς νέα στοίβα ανάπτυξης. + +#### 3. Κλήσεις συμβολαίων διασταυρούμενων αλυσίδων {#cross-chain-contract-calls} + +Οι χρήστες (λογαριασμοί υπό καθεστώς εξωτερικής ιδιοκτησίας) αλληλεπιδρούν με συμβόλαια L2 υποβάλλοντας μια συναλλαγή στο πακέτο ενημέρωσης ή ζητώντας από έναν sequencer ή επικυρωτή να το κάνει εκ μέρους τους. Τα optimistic rollup επιτρέπουν επίσης στους λογαριασμούς συμβολαίων στο Ethereum να αλληλεπιδρούν με συμβόλαια L2 χρησιμοποιώντας συμβόλαια γεφύρωσης για τη μετάδοση μηνυμάτων και τη μεταφορά δεδομένων μεταξύ L1 και L2. Αυτό σημαίνει ότι μπορείτε να προγραμματίσετε ένα συμβόλαιο L1 στο Κεντρικό Δίκτυο του Ethereum για να καλέσετε συναρτήσεις που ανήκουν σε συμβόλαια σε optimistic rollup L2. + +Οι κλήσεις συμβολαίων διασταυρούμενων αλυσίδων πραγματοποιούνται ασύγχρονα —αυτό σημαίνει ότι πρώτα ξεκινά η κλήση και μετά εκτελείται σε μεταγενέστερο χρόνο. Αυτό διαφέρει από τις κλήσεις μεταξύ των δύο συμβολαίων στο Ethereum, όπου η κλήση παράγει αποτελέσματα αμέσως. + +Ένα παράδειγμα κλήσης συμβολαίου cross-chain είναι η συμβολική κατάθεση που περιγράφηκε προηγουμένως. Ένα συμβόλαιο στο L1 δεσμεύει τα κρυπτονομίσματα του χρήστη και στέλνει ένα μήνυμα σε ένα συζευγμένο συμβόλαιο L2 για να κόψει ισοδύναμο αριθμό κρύπτο στο πακέτο ενημέρωσης. + +Καθώς οι κλήσεις μηνυμάτων διασταυρούμενων αλυσίδων καταλήγουν στην εκτέλεση του συμβολαίου, ο αποστολέας συνήθως καλείται να καλύψει το [κόστος gas ](/developers/docs/gas/) για τον υπολογισμό. Συνιστάται να ορίσετε ένα υψηλό όριο gas για να αποτρέψετε την αποτυχία της συναλλαγής στη στοχευμένη αλυσίδα. Το σενάριο της γεφύρωσης κρύπτο είναι ένα καλό παράδειγμα. Εάν η πλευρά L1 της συναλλαγής (κατάθεση των κρύπτο) λειτουργεί, αλλά η πλευρά L2 (κοπή νέων κρύπτο) αποτύχει λόγω χαμηλού gas, η κατάθεση γίνεται μη αναστρέψιμη. + +Τέλος, να σημειώσουμε ότι οι κλήσεις μηνυμάτων L2 > L1 μεταξύ συμβολαίων πρέπει να λάβουν υπόψη τις καθυστερήσεις (οι κλήσεις L1 > L2 συνήθως εκτελούνται μετά από μερικά λεπτά). Αυτό συμβαίνει επειδή τα μηνύματα που αποστέλλονται στο Κεντρικό Δίκτυο από το optimistic rollup δεν μπορούν να εκτελεστούν έως ότου παρέλθει το χρονικό περιθώριο πρόκλησης. + +## Πώς λειτουργούν τα τέλη των optimistic rollup; {#how-do-optimistic-rollup-fees-work} + +Τα optimistic rollups χρησιμοποιούν ένα σύστημα τελών gas, όπως το Ethereum, για να υποδείξουν πόσα πληρώνουν οι χρήστες ανά συναλλαγή. Τα τέλη που χρεώνονται σε optimistic rollup εξαρτώνται από τα ακόλουθα στοιχεία: + +1. **State write (καταγραφή κατάστασης)**: Τα optimistic rollup δημοσιεύουν δεδομένα συναλλαγών και κεφαλίδες μπλοκ (που αποτελούνται από τον προηγούμενο hash κεφαλίδας μπλοκ, ρίζα κατάστασης, ρίζα παρτίδας) στο Ethereum ως `blob` ή «δυαδικό μεγάλο αντικείμενο» (binary large object). Το [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) παρουσίασε μια οικονομικά αποδοτική λύση για τη συμπερίληψη δεδομένων στην αλυσίδα. Το `blob` είναι ένα νέο πεδίο συναλλαγών που επιτρέπει στα rollup να δημοσιεύουν συμπιεσμένα δεδομένα μετάβασης κατάστασης στο Ethereum L1. Σε αντίθεση με τα `calldata`, τα οποία παραμένουν μόνιμα στην αλυσίδα, τα blobs είναι σύντομα και μπορούν να περικοπούν από πελάτες μετά από [4096 εποχές](https://github.com/ethereum/consensus-specs/blob/81f3ea8322aff6b9fb15132d050f8f98b16bdba4/configs/mainnet.yaml#L147) (περίπου 18 ημέρες). Χρησιμοποιώντας blob για τη δημοσίευση παρτίδων συμπιεσμένων συναλλαγών, τα optimistic rollup μπορούν να μειώσουν σημαντικά το κόστος εγγραφής συναλλαγών στο L1. + +2. **Blob gas used (gas blob που χρησιμοποιήθηκε)**: Οι συναλλαγές που μεταφέρουν blob χρησιμοποιούν έναν δυναμικό μηχανισμό χρέωσης παρόμοιο με αυτόν που εισήχθη από το [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559). Η χρέωση gas για συναλλαγές τύπου 3 λαμβάνει υπόψη τη βασική χρέωση για blob, η οποία καθορίζεται από το δίκτυο με βάση τη ζήτηση χώρου blob και τη χρήση χώρου blob της συναλλαγής που αποστέλλεται. + +3. **L2 operator fees (Τέλη χειριστή L2)**: Αυτό είναι το ποσό που καταβάλλεται στους κόμβους rollup ως αποζημίωση για το υπολογιστικό κόστος που προκύπτει κατά τη διεκπεραίωση συναλλαγών, όπως και τα τέλη gas στο Ethereum. Οι κόμβοι rollup χρεώνουν χαμηλότερα τέλη συναλλαγών, καθώς τα L2 έχουν υψηλότερη ικανότητα επεξεργασίας και δεν αντιμετωπίζουν συμφορήσεις δικτύου που αναγκάζουν τους επικυρωτές στο Ethereum να δίνουν προτεραιότητα στις συναλλαγές με υψηλότερα τέλη. + +Τα optimistic rollup εφαρμόζουν διάφορους μηχανισμούς για τη μείωση των τελών για τους χρήστες, συμπεριλαμβανομένων της ομαδοποίησης συναλλαγών και της συμπίεσης `calldata` για τη μείωση του κόστους δημοσίευσης δεδομένων. Μπορείτε να ελέγξετε το [L2 fee tracker](https://l2fees.info/) για μια επισκόπηση σε πραγματικό χρόνο του κόστους χρήσης optimistic rollup που βασίζονται στο Ethereum. + +## Πώς τα optimistic rollup επεκτείνουν το Ethereum; {#scaling-ethereum-with-optimistic-rollups} + +Όπως έχουμε ήδη εξηγήσει, τα optimistic rollup δημοσιεύουν συμπιεσμένα δεδομένα συναλλαγών στο Ethereum για να εγγυηθούν τη διαθεσιμότητα των δεδομένων. Η ικανότητα συμπίεσης δεδομένων που δημοσιεύονται στην αλυσίδα είναι ζωτικής σημασίας για την κλιμάκωση της απόδοσης στο Ethereum με optimistic rollups. + +Η κύρια αλυσίδα του Ethereum θέτει όρια στο πόσα δεδομένα μπορούν να χωρέσουν τα μπλοκ, τα οποία εκφράζονται σε μονάδες gas (το [μέσο μέγεθος μπλοκ](/developers/docs/blocks/#block-size) είναι 15 εκατομμύρια gas). Παρότι αυτό περιορίζει την ποσότητα gas που μπορεί να χρησιμοποιήσει κάθε συναλλαγή, σημαίνει επίσης ότι μπορούμε να αυξήσουμε τις συναλλαγές που υποβάλλονται σε επεξεργασία ανά μπλοκ μειώνοντας τα δεδομένα που σχετίζονται με τις συναλλαγές —βελτιώνοντας άμεσα την επεκτασιμότητα. + +Τα optimistic rollup χρησιμοποιούν διάφορες τεχνικές για την επίτευξη συμπίεσης δεδομένων συναλλαγών και τη βελτίωση των ρυθμών TPS. Για παράδειγμα, αυτό το [άρθρο](https://vitalik.eth.limo/general/2021/01/05/rollup.html) συγκρίνει τα δεδομένα που δημιουργεί μια βασική συναλλαγή χρήστη (αποστολή ether) στο Κεντρικό Δίκτυο σε σχέση με πόσα δεδομένα δημιουργεί η ίδια συναλλαγή σε ένα rollup: + +| Παράμετρος | Ethereum (L1) | Πακέτο ενημ (L2) | +| ------------ | --------------------- | ---------------- | +| Μοναδικότητα | ~3 | 0 | +| Τιμή αερίου | ~8 | 0-0.5 | +| Καύσιμα | 3 | 0-0.5 | +| Προς | 21 | 4 | +| Τιμή | 9 | ~3 | +| Υπογραφή | ~68 (2 + 33 + 33) | ~0.5 | +| Aπό | 0 (επαναφοφά από sig) | 4 | +| **Σύνολο** | **~112 bytes** | **~12 bytes** | + +Μερικοί πρόχειροι υπολογισμοί σε αυτά τα αριθμητικά στοιχεία μπορεί να βοηθήσουν να φανούν οι βελτιώσεις επεκτασιμότητας που προσφέρει ένα optimistic rollup: + +1. Το μέγεθος στόχου για κάθε μπλοκ είναι 15 εκατομμύρια gas και κοστίζει 16 gas για την επαλήθευση ενός byte δεδομένων. Η διαίρεση του μέσου μεγέθους μπλοκ με 16 gas (15.000.000/16) δείχνει ότι το μέσο μπλοκ μπορεί να χωρέσει **937.500 byte δεδομένων**. +2. Εάν μια βασική συναλλαγή rollup χρησιμοποιεί 12 byte, τότε το μέσο μπλοκ του Ethereum μπορεί να επεξεργαστεί **78.125 συναλλαγές rollup** (937.5000/12) ή **39 παρτίδες rollup ** (αν κάθε παρτίδα περιέχει κατά μέσο όρο 2.000 συναλλαγές). +3. Εάν στο Ethereum παράγεται ένα νέο μπλοκ κάθε 15 δευτερόλεπτα, τότε οι ταχύτητες επεξεργασίας του rollup θα ανέρχονται περίπου σε **5.208 συναλλαγές ανά δευτερόλεπτο**. Αυτό γίνεται διαιρώντας τον αριθμό των βασικών συναλλαγών rollup που μπορεί να χωρέσει ένα μπλοκ Ethereum (**78.125**) με τον μέσο χρόνο μπλοκ (**15 δευτερόλεπτα**). + +Πρόκειται για μια αρκετά αισιόδοξη εκτίμηση, δεδομένου ότι οι συναλλαγές optimistic rollup δεν είναι δυνατόν να περιλαμβάνουν ένα ολόκληρο μπλοκ στο Ethereum. Ωστόσο, μπορεί να δώσει μια χονδρική ιδέα για το πόσα οφέλη επεκτασιμότητας μπορούν να προσφέρουν τα optimistic rollup στους χρήστες του Ethereum (οι τρέχουσες υλοποιήσεις προσφέρουν έως και 2.000 TPS). + +Η εισαγωγή του [data sharding](/roadmap/danksharding/) στο Ethereum αναμένεται να βελτιώσει την επεκτασιμότητα στα optimistic rollup. Επειδή οι συναλλαγές rollup πρέπει να μοιράζονται χώρο μπλοκ με άλλες συναλλαγές που δεν είναι rollup, η ικανότητα επεξεργασίας τους περιορίζεται από τη διακίνηση δεδομένων στην κύρια αλυσίδα Ethereum. Το Danksharding θα αυξήσει τον διαθέσιμο χώρο στις αλυσίδες L2 για τη δημοσίευση δεδομένων ανά μπλοκ, χρησιμοποιώντας φθηνότερο, προσωρινό χώρο αποθήκευσης «blob» αντί για ακριβό, μόνιμο `CALLDATA`. + +### Πλεονεκτήματα και μειονεκτήματα optimistic rollup {#optimistic-rollups-pros-and-cons} + +| Πλεονεκτήματα | Μειονεκτήματα | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Προσφέρει τεράστιες βελτιώσεις στην επεκτασιμότητα χωρίς να θυσιάζει την ασφάλεια ή την έλλειψη εμπιστοσύνης. | Καθυστερήσεις στην οριστικοποίηση της συναλλαγής λόγω πιθανών αμφισβητήσεων περί απάτης. | +| Τα δεδομένα συναλλαγών αποθηκεύονται στην αλυσίδα του επιπέδου 1, κάτι που βελτιώνει τη διαφάνεια, την ασφάλεια, την αντίσταση στη λογοκρισία και την αποκέντρωση. | Οι κεντρικοποιημένοι χειριστές rollup (sequencer) μπορούν να επηρεάσουν τη σειρά των συναλλαγών. | +| Η απόδειξη της απάτης εγγυάται την αδιαπραγμάτευτη οριστικότητα και επιτρέπει στις ειλικρινείς μειονότητες να εξασφαλίσουν την αλυσίδα. | Εάν δεν υπάρχουν ειλικρινείς κόμβοι, ένας κακόβουλος χειριστής μπορεί να κλέψει χρήματα δημοσιεύοντας μη έγκυρα μπλοκ και δεσμεύσεις κατάστασης. | +| Οι υπολογιστικές αποδείξεις απάτης είναι ανοιχτές στον κανονικό κόμβο L2, σε αντίθεση με τις αποδείξεις εγκυρότητας (που χρησιμοποιούνται σε ZK rollup) που απαιτούν ειδικό υλικό. | Το μοντέλο ασφαλείας βασίζεται σε τουλάχιστον έναν ειλικρινή κόμβο που εκτελεί συναλλαγές rollup και υποβάλλει αποδείξεις απάτης για να αμφισβητήσει τις μεταβάσεις μη έγκυρων καταστάσεων. | +| Τα πακέτα συναλλαγών επωφελούνται από την "αξιόπιστη επιβιωσιμότητα" (ο καθένας μπορεί να αναγκάσει την αλυσίδα να προχωρήσει εκτελώντας συναλλαγές και δημοσιεύοντας ισχυρισμούς) | Οι χρήστες πρέπει να περιμένουν να λήξει η περίοδος πρόκλησης διάρκειας μίας εβδομάδας προτού κάνουν ανάληψη των χρημάτων πίσω στο Ethereum. | +| Τα optimistic rollup βασίζονται σε καλά σχεδιασμένα κρυπτοοικονομικά κίνητρα για την αύξηση της ασφάλειας στην αλυσίδα. | Τα rollup πρέπει να δημοσιεύουν όλα τα δεδομένα συναλλαγών στην αλυσίδα, κάτι που μπορεί να αυξήσει το κόστος. | +| Η συμβατότητα με το EVM και το Solidity επιτρέπει στους προγραμματιστές να μεταφέρουν εγγενή στο Ethereum έξυπνα συμβόλαια σε rollup ή να χρησιμοποιούν υπάρχοντα εργαλεία για τη δημιουργία νέων dapp. | | + +### Μια οπτική επεξήγηση των optimistic rollup {#optimistic-video} + +Περισσότερα από έναν εικονικό μαθητή; Παρακολουθήστε το Finematics να εξηγεί τα optimistic rollup: + + + +## Περαιτέρω υλικό για ανάγνωση σχετικά με τα optimistic rollup + +- [Πώς λειτουργούν τα optimistic rollup (Ο Πλήρης Οδηγός)](https://www.alchemy.com/overviews/optimistic-rollups) +- [Τι είναι το πακέτο ενημέρωσης blockchain; Μια τεχνική οδηγία](https://www.ethereum-ecosystem.com/blog/what-is-a-blockchain-rollup-a-technical-introduction) +- [Ο Βασικός Οδηγός για το Arbitrum](https://newsletter.banklesshq.com/p/the-essential-guide-to-arbitrum) +- [Πρακτικός οδηγός για τα πακέτα ενημέρωσης Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) +- [The State Of Fraud Proofs In Ethereum L2s](https://research.2077.xyz/the-state-of-fraud-proofs-in-ethereum-l2s) +- [Πώς λειτουργούν πραγματικά τα πακέτα ενημέρωσης Optimism;](https://www.paradigm.xyz/2021/01/how-does-optimisms-rollup-really-work) +- [Περισσότερες λεπτομέρειες OVM](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52) +- [Τι είναι η εικονική μηχανή Optimistic;](https://www.alchemy.com/overviews/optimistic-virtual-machine) diff --git a/public/content/translations/el/developers/docs/scaling/plasma/index.md b/public/content/translations/el/developers/docs/scaling/plasma/index.md new file mode 100644 index 00000000000..976b7f86bbc --- /dev/null +++ b/public/content/translations/el/developers/docs/scaling/plasma/index.md @@ -0,0 +1,175 @@ +--- +title: Αλυσίδες Plasma +description: Μια εισαγωγή στις αλυσίδες plasma ως λύση κλιμάκωσης που χρησιμοποιείται επί του παρόντος από την κοινότητα του Ethereum. +lang: el +incomplete: true +sidebarDepth: 3 +--- + +Μια αλυσίδα Plasma είναι ένα ξεχωριστό blockchain αγκυρωμένο στο Κεντρικό δίκτυο Ethereum αλλά εκτελεί συναλλαγές εκτός αλυσίδας με δικό της μηχανισμό για επικύρωση μπλοκ. Οι αλυσίδες Plasma μερικές φορές αναφέρονται ως αλυσίδες-«τέκνα», ουσιαστικά μικρότερα αντίγραφα του Κεντρικού Δικτύου του Ethereum. Οι αλυσίδες Plasma χρησιμοποιούν [αποδείξεις απάτης](/glossary/#fraud-proof) (όπως [optimistic rollup](/developers/docs/scaling/optimistic-rollups/)) για τη διαιτησία των διαφορών. + +Τα δέντρα Merkle επιτρέπουν τη δημιουργία μιας ατελείωτης στοίβας αυτών των αλυσίδων που μπορούν να λειτουργήσουν για να ξεφορτώσουν το εύρος ζώνης από τις γονικές αλυσίδες (συμπεριλαμβανομένου του Κεντρικού Δικτύου του Ethereum). Ωστόσο, ενώ αυτές οι αλυσίδες αντλούν κάποια ασφάλεια από το Ethereum (μέσω αποδείξεων απάτης), η ασφάλεια και η αποτελεσματικότητά τους επηρεάζονται από αρκετούς σχεδιαστικούς περιορισμούς. + +## Προαπαιτούμενα {#prerequisites} + +Θα πρέπει να κατανοείτε επαρκώς όλα τα θεμελιώδη θέματα και να έχετε υψηλό επίπεδο κατανόησης της [κλιμάκωσης του Ethereum](/developers/docs/scaling/). + +## Τι είναι το Plasma; + +Το Plasma είναι ένα πλαίσιο για τη βελτίωση της κλιμάκωσης των δημόσιων blockchain όπως το Ethereum. Όπως περιγράφεται στο αρχικό [Plasma whitepaper](http://plasma.io/plasma.pdf), οι αλυσίδες Plasma είναι χτισμένες πάνω σε ένα άλλο blockchain (που ονομάζεται «βασική αλυσίδα» ή «root chain»). Κάθε «αλυσίδα-τέκνο» εκτείνεται από τη βασική αλυσίδα και γενικά τη διαχειρίζεται ένα έξυπνο συμβόλαιο που αναπτύσσεται στη γονική αλυσίδα. + +Το συμβόλαιο Plasma λειτουργεί, μεταξύ άλλων, ως [γέφυρα](/developers/docs/bridges/) που επιτρέπει στους χρήστες να μετακινούν στοιχεία μεταξύ του Κεντρικύ Δικτύου Ethereum και της αλυσίδας plasma. Παρόλο που αυτό τις κάνει παρόμοιες με τις [πλευρικές αλυσίδες](/developers/docs/scaling/sidechains/), οι αλυσίδες plasma επωφελούνται —τουλάχιστον, σε κάποιο βαθμό— από την ασφάλεια του Κεντρικού Δελτίου Ethereum. Αυτό δεν συμβαίνει και στις πλευρικές αλυσίδες, οι οποίες είναι αποκλειστικά υπεύθυνες για την ασφάλειά τους. + +## Πώς λειτουργεί το Plasma; + +Τα βασικά συστατικά μέρη του πλαισίου Plasma είναι: + +### Υπολογισμός εκτός αλυσίδας {#offchain-computation} + +Η τρέχουσα ταχύτητα επεξεργασίας του Ethereum περιορίζεται σε ~ 15-20 συναλλαγές ανά δευτερόλεπτο, κάτι που μειώνει τη βραχυπρόθεσμη δυνατότητα κλιμάκωσης για τη διαχείριση περισσότερων χρηστών. Αυτό το πρόβλημα υπάρχει κυρίως επειδή ο [μηχανισμός συναίνεσης](/developers/docs/consensus-mechanisms/) του Ethereum απαιτεί πολλούς κόμβους peer-to-peer για την επαλήθευση κάθε ενημέρωσης στην κατάσταση του blockchain. + +Αν και ο μηχανισμός συναίνεσης του Ethereum είναι απαραίτητος για την ασφάλεια, μπορεί να μην έχει εφαρμογή σε κάθε περίπτωση. Για παράδειγμα, η Alice μπορεί να μη χρειάζεται να επαληθεύονται οι καθημερινές πληρωμές του καφέ της στον Bob από ολόκληρο το δίκτυο Ethereum, καθώς υπάρχει κάποια εμπιστοσύνη μεταξύ των δύο μερών. + +Το Plasma υποθέτει ότι το Κεντρικό Δίκτυο Ethereum δεν χρειάζεται να επαληθεύει όλες τις συναλλαγές. Αντίθετα, μπορούμε να επεξεργαστούμε συναλλαγές εκτός του Κεντρικού Δικτύου, απαλλάσσοντας τους κόμβους από την ανάγκη να επικυρώνουν κάθε συναλλαγή. + +Ο υπολογισμός εκτός αλυσίδας είναι απαραίτητος, καθώς οι αλυσίδες Plasma μπορούν να βελτιστοποιήσουν την ταχύτητα και το κόστος. Για παράδειγμα, μια αλυσίδα Plasma μπορεί —και τις περισσότερες φορές— χρησιμοποιεί έναν μόνο «χειριστή» για τη διαχείριση της σειράς και της εκτέλεσης των συναλλαγών. Με μία μόνο οντότητα να επαληθεύει συναλλαγές, οι χρόνοι επεξεργασίας σε μια αλυσίδα plasma είναι ταχύτεροι από το Κεντρικό Δίκτυο Ethereum. + +### Δεσμεύσεις κατάστασης {#state-commitments} + +Ενώ το Plasma εκτελεί συναλλαγές εκτός αλυσίδας, αυτές διευθετούνται στο κύριο επίπεδο εκτέλεσης του Ethereum — διαφορετικά, οι αλυσίδες Plasma δεν μπορούν να επωφεληθούν από τις εγγυήσεις ασφαλείας του Ethereum. Αλλά η οριστικοποίηση των συναλλαγών εκτός αλυσίδας χωρίς να γνωρίζουμε την κατάσταση της αλυσίδας plasma θα έσπαζε το μοντέλο ασφαλείας και θα επέτρεπε τον πολλαπλασιασμό μη έγκυρων συναλλαγών. Αυτός είναι ο λόγος για τον οποίο ο χειριστής, η οντότητα που είναι υπεύθυνη για την παραγωγή μπλοκ στην αλυσίδα plasma, απαιτείται να δημοσιεύει «δεσμεύσεις κατάστασης» στο Ethereum σε περιοδική βάση. + +Ένα [σύστημα δέσμευσης](https://en.wikipedia.org/wiki/Commitment_scheme) είναι μια κρυπτογραφική τεχνική για τη δέσμευση σε μια αξία ή δήλωση χωρίς αυτή να αποκαλυφθεί σε άλλο μέρος. Οι δεσμεύσεις είναι «δεσμευτικές» με την έννοια ότι δεν μπορείτε να αλλάξετε την αξία ή τη δήλωση αφού δεσμευτείτε σε αυτήν. Οι δεσμεύσεις κατάστασης στο Plasma έχουν τη μορφή των «ριζών Merkle» (που προέρχονται από ένα [δέντρο Merkle](/whitepaper/#merkle-trees)) τις οποίες ο χειριστής στέλνει κατά διαστήματα στο συμβόλαιο Plasma στην αλυσίδα Ethereum. + +Οι ρίζες Merkle είναι κρυπτογραφικά πρωτογενή στοιχεία που επιτρέπουν τη συμπίεση μεγάλων ποσοτήτων πληροφοριών. Μια ρίζα Merkle (που ονομάζεται επίσης «ρίζα μπλοκ» σε αυτή την περίπτωση) θα μπορούσε να αντιπροσωπεύει όλες τις συναλλαγές σε ένα μπλοκ. Οι ρίζες Merkle διευκολύνουν επίσης την επαλήθευση ότι ένα μικρό κομμάτι δεδομένων είναι μέρος του μεγαλύτερου συνόλου δεδομένων. Για παράδειγμα, ένας χρήστης μπορεί να παραγάγει μια [απόδειξη Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/#main-content) για να αποδείξει τη συμπερίληψη μιας συναλλαγής σε ένα συγκεκριμένο μπλοκ. + +Τα Merkle roots είναι σημαντικά για την παροχή πληροφοριών σχετικά με την κατάσταση εκτός αλυσίδας στο Ethereum. Μπορείτε να σκεφτείτε τις ρίζες Merkle σας ως «σημεία αποθήκευσης»: ο χειριστής λέει «Αυτή είναι η κατάσταση της αλυσίδας Plasma στο x χρονικό σημείο, και αυτή είναι η ρίζα Merkle ως απόδειξη». Ο χειριστής δεσμεύεται στην _τρέχουσα κατάσταση_ της αλυσίδας plasma με ρίζα Merkle, γι' αυτό ονομάζεται «δέσμευση κατάστασης». + +### Είσοδοι και έξοδοι {#entries-and-exits} + +Προκειμένου οι χρήστες του Ethereum να επωφεληθούν από το Plasma, πρέπει να υπάρχει ένας μηχανισμός για τη μεταφορά κεφαλαίων μεταξύ των αλυσίδων Kεντρικού Δικτύου και plasma. Δεν μπορούμε να στείλουμε αυθαίρετα ether σε μια διεύθυνση στην αλυσίδα plasma, όμως. Αυτές οι αλυσίδες είναι ασύμβατες, επομένως η συναλλαγή είτε θα αποτύγχανε είτε θα οδηγούσε σε απώλεια κεφαλαίων. + +Το Plasma χρησιμοποιεί ένα κύριο συμβόλαιο που εκτελείται στο Ethereum για να επεξεργαστεί τις εισόδους και τις εξόδους των χρηστών. Αυτή η κύρια σύμβαση είναι επίσης υπεύθυνη για την παρακολούθηση των δεσμεύσεων κατάστασης (όπως εξηγήθηκε νωρίτερα) και την τιμωρία της μη ειλικρινούς συμπεριφοράς μέσω αποδείξεων απάτης (περισσότερα για αυτό αργότερα). + +#### Είσοδος στην αλυσίδα plasma {#entering-the-plasma-chain} + +Για να εισέλθει στην αλυσίδα plasma, η Alice (ο χρήστης) θα πρέπει να καταθέσει ETH ή οποιοδήποτε token ERC-20 στο συμβόλαιο plasma. Ο χειριστής του plasma, ο οποίος παρακολουθεί τις καταθέσεις συμβολαίων, αναδημιουργεί ένα ποσό ίσο με την αρχική κατάθεση της Alice και το αποδεσμεύει στη διεύθυνσή της στην αλυσίδα plasma. Η Alice πρέπει να βεβαιώσει ότι έλαβε τα χρήματα στην αλυσίδα-τέκνο και στη συνέχεια μπορεί να χρησιμοποιήσει αυτά τα χρήματα για συναλλαγές. + +#### Έξοδος από την αλυσίδα plasma {#exiting-the-plasma-chain} + +Η έξοδος από την αλυσίδα plasma είναι πιο περίπλοκη από την είσοδο σε αυτήν για διάφορους λόγους. Ο σημαντικότερος λόγος είναι ότι, ενώ το Ethereum έχει πληροφορίες σχετικά με την κατάσταση της αλυσίδας plasma, δεν μπορεί να επαληθεύσει εάν οι πληροφορίες είναι αληθείς ή όχι. Ένας κακόβουλος χρήστης θα μπορούσε να κάνει έναν εσφαλμένο ισχυρισμό ("Έχω 1000 ETH") και να ξεφύγει παρέχοντας πλαστές αποδείξεις για να υποστηρίξει τον ισχυρισμό. + +Για την αποτροπή κακόβουλων αναλήψεων, εισάγεται μια «περίοδος πρόκλησης». Κατά τη διάρκεια της περιόδου πρόκλησης (συνήθως μια εβδομάδα), οποιοσδήποτε μπορεί να αμφισβητήσει ένα αίτημα ανάληψης χρησιμοποιώντας μια απόδειξη απάτης. Εάν η πρόκληση είναι επιτυχημένη, τότε το αίτημα ανάληψης απορρίπτεται. + +Ωστόσο, συνήθως οι χρήστες είναι ειλικρινείς και υποβάλλουν σωστές αναλήψεις σχετικά με το κεφάλαιο που διαθέτουν. Σε αυτό το σενάριο, η Alice θα ξεκινήσει ένα αίτημα ανάληψής στη βασική αλυσίδα (Ethereum) υποβάλλοντας μια συναλλαγή στο συμβόλαιο plasma. + +Πρέπει επίσης να παράσχει ένα αποδεικτικό Merkle που να επαληθεύει ότι μια συναλλαγή που δημιουργεί τα χρήματά της στην αλυσίδα Plasma συμπεριλήφθηκε σε ένα μπλοκ. Αυτό είναι απαραίτητο για επαναλήψεις του Plasma, όπως το [Plasma MVP](https://www.learnplasma.org/en/learn/mvp.html), που χρησιμοποιούν ένα μοντέλο [Unspent Transaction Output (UTXO)](https://en.wikipedia.org/wiki/Unspent_transaction_output). + +Άλλα, όπως το [Plasma Cash](https://www.learnplasma.org/en/learn/cash.html), αντιπροσωπεύουν τα κεφάλαια ως [μη εναλλάξιμα κρυπτοπαραστατικά](/developers/docs/standards/tokens/erc-721/) αντί για UTXO. Η ανάληψη, σε αυτή την περίπτωση, απαιτεί απόδειξη της ιδιοκτησίας των token στην αλυσίδα Plasma. Αυτό γίνεται με την υποβολή των δύο τελευταίων συναλλαγών που περιλαμβάνουν το token και την παροχή μιας απόδειξης Merkle που επαληθεύει τη συμπερίληψη αυτών των συναλλαγών σε ένα μπλοκ. + +Ο χρήστης πρέπει επίσης να προσθέσει μια εγγύηση στο αίτημα ανάληψης ως εγγύηση έντιμης συμπεριφοράς. Εάν ένας αμφισβητίας αποδείξει ότι το αίτημα ανάληψης της Alice δεν είναι έγκυρο, ο δεσμός της περικόπτεται και ένα μέρος του πηγαίνει στον αμφισβητία ως ανταμοιβή. + +Εάν η περίοδος αμφισβήτησης παρέλθει χωρίς κανένας να παράσχει αποδεικτικό απάτης, το αίτημα ανάληψης της Alice θεωρείται έγκυρο, γεγονός το οποίο της επιτρέπει να ανακτήσει τις καταθέσεις της από το συμβόλαιο Plasma στο Ethereum. + +### Διαιτησία διαφορών {#dispute-arbitration} + +Όπως κάθε blockchain, οι αλυσίδες plasma χρειάζονται έναν μηχανισμό για την επιβολή της ακεραιότητας των συναλλαγών σε περίπτωση που οι συμμετέχοντες ενεργούν κακόβουλα (π.χ. διπλή δαπάνη κεφαλαίων). Για τον σκοπό αυτό, οι αλυσίδες plasma χρησιμοποιούν αποδείξεις απάτης για να επιλύσουν διαφορές σχετικά με την εγκυρότητα των μεταβάσεων κατάστασης και να τιμωρήσουν την κακή συμπεριφορά. Οι αποδείξεις απάτης χρησιμοποιούνται ως μηχανισμός μέσω του οποίου μια αλυσίδα-τέκνο Plasma υποβάλλει μια καταγγελία στη γονική της αλυσίδα ή στη βασική αλυσίδα. + +Η απόδειξη απάτης είναι απλώς ένας ισχυρισμός ότι μια συγκεκριμένη μετάβαση κατάστασης δεν είναι έγκυρη. Ένα παράδειγμα είναι η περίπτωση όπου ένας χρήστης (Alice) προσπαθεί να ξοδέψει τα ίδια χρήματα δύο φορές. Ίσως ξόδεψε το UTXO σε μια συναλλαγή με τον Bob και θέλει να ξοδέψει το ίδιο UTXO (που είναι τώρα του Bob) σε άλλη συναλλαγή. + +Για να αποτρέψει την ανάληψη, ο Bob θα κατασκευάσει ένα στοιχείο προστασίας από απάτη παρέχοντας αποδεικτικά στοιχεία ότι η Alice ξόδεψε το εν λόγω UTXO σε προηγούμενη συναλλαγή και μια απόδειξη Merkle για τη συμπερίληψη της συναλλαγής σε ένα μπλοκ. Η ίδια διαδικασία λειτουργεί στο Plasma Cash: ο Bob θα έπρεπε να παράσχει απόδειξη ότι η Alice μετέφερε νωρίτερα τα token που προσπαθεί να κάνει ανάληψη. + +Εάν η αμφισβήτηση του Bob στεφθεί από επιτυχία, το αίτημα ανάληψης της Alice ακυρώνεται. Ωστόσο, αυτή η προσέγγιση βασίζεται στην ικανότητα του Bob να παρακολουθεί την αλυσίδα για αιτήματα ανάληψης. Εάν ο Bob είναι εκτός σύνδεσης, τότε η Alice μπορεί να επεξεργαστεί την κακόβουλη ανάληψη μόλις παρέλθει η περίοδος πρόκλησης. + +## Το πρόβλημα της μαζικής εξόδου στο plasma {#the-mass-exit-problem-in-plasma} + +Το πρόβλημα μαζικής εξόδου εμφανίζεται όταν ένας μεγάλος αριθμός χρηστών προσπαθεί να κάνει ταυτόχρονα ανάληψη από μια αλυσίδα plasma. Ο λόγος που υπάρχει αυτό το πρόβλημα σχετίζεται με ένα από τα μεγαλύτερα προβλήματα του Plasma: **μη διαθεσιμότητα δεδομένων**. + +Η διαθεσιμότητα δεδομένων είναι η δυνατότητα επαλήθευσης ότι οι πληροφορίες για ένα προτεινόμενο μπλοκ πράγματι δημοσιεύτηκαν στο δίκτυο blockchain. Ένα μπλοκ είναι «μη διαθέσιμο» εάν ο παραγωγός δημοσιεύει ο ίδιος το μπλοκ, αλλά δεν παραχωρεί τα ίδια τα δεδομένα που χρησιμοποιούνται για τη δημιουργία του μπλοκ. + +Τα μπλοκ πρέπει να είναι διαθέσιμα για να μπορούν οι κόμβοι να κατεβάσουν το μπλοκ και να επαληθεύσουν την εγκυρότητα των συναλλαγών. Τα blockchains διασφαλίζουν τη διαθεσιμότητα δεδομένων αναγκάζοντας τους παραγωγούς μπλοκ να δημοσιεύουν όλα τα δεδομένα συναλλαγών στην αλυσίδα. + +Η διαθεσιμότητα δεδομένων βοηθά επίσης να κρατήσουν ασφαλές πρωτόκολλα κλιμάκωσης εκτός αλυσίδας που βασίζονται στο βασικό στρώμα του Ethereum. Εξαναγκάζοντας τους χειριστές σε αυτές τις αλυσίδες να δημοσιεύουν δεδομένα συναλλαγών στο Ethereum, οποιοσδήποτε μπορεί να αμφισβητήσει τα μη έγκυρα μπλοκ κατασκευάζοντας αποδείξεις απάτης που αναφέρονται στη σωστή κατάσταση της αλυσίδας. + +Οι αλυσίδες plasma αποθηκεύουν κυρίως δεδομένα συναλλαγών με τον χειριστή και **δεν δημοσιεύουν δεδομένα στο Κεντρικό Δίκτυο** (δηλαδή, εκτός από τις περιοδικές δεσμεύσεις κατάστασης). Αυτό σημαίνει ότι οι χρήστες πρέπει να βασίζονται στον χειριστή για την παροχή δεδομένων μπλοκ εάν χρειάζεται να δημιουργήσουν αποδείξεις απάτης που αμφισβητούν μη έγκυρες συναλλαγές. Εάν αυτό το σύστημα λειτουργεί, τότε οι χρήστες μπορούν πάντα να χρησιμοποιούν αποδείξεις απάτης για να ασφαλίζουν τα χρήματά τους. + +Το πρόβλημα ξεκινά όταν ο χειριστής, όχι οποιοσδήποτε χρήστης, είναι το μέρος που ενεργεί κακόβουλα. Επειδή ο χειριστής έχει τον αποκλειστικό έλεγχο του blockchain, έχει περισσότερα κίνητρα να προωθήσει τις μεταβάσεις μη έγκυρων καταστάσεων σε μεγαλύτερη κλίμακα, όπως η κλοπή κεφαλαίων που ανήκουν σε χρήστες στην αλυσίδα plasma. + +Σε αυτή την περίπτωση, η χρήση του κλασικού συστήματος προστασίας από απάτες δεν λειτουργεί. Ο χειριστής θα μπορούσε εύκολα να πραγματοποιήσει μια μη έγκυρη συναλλαγή μεταφέροντας τα κεφάλαια της Alice και του Bob στο πορτοφόλι του και να κρύψει τα δεδομένα που είναι απαραίτητα για τη δημιουργία της απόδειξης απάτης. Αυτό είναι δυνατό επειδή ο χειριστής δεν απαιτείται να διαθέσει δεδομένα στους χρήστες ή στο Κεντρικό Δίκτυο. + +Επομένως, η πιο αισιόδοξη λύση είναι να επιχειρηθεί «μαζική έξοδος» χρηστών από την αλυσίδα plasma. Η μαζική έξοδος επιβραδύνει το σχέδιο του κακόβουλου χειριστή για κλοπή χρημάτων και παρέχει κάποιο μέτρο προστασίας για τους χρήστες. Τα αιτήματα ανάληψης διατάσσονται με βάση το πότε δημιουργήθηκε κάθε UTXO (ή token), πράγμα που αποτρέπει τους κακόβουλους χειριστές να προηγηθούν από τους ειλικρινείς χρήστες. + +Ωστόσο, εξακολουθούμε να χρειαζόμαστε έναν τρόπο να επαληθεύσουμε την εγκυρότητα των αιτημάτων ανάληψης κατά τη διάρκεια μιας μαζικής εξόδου, για να αποτρέψουμε τους καιροσκόπους από το να εισπράξουν χρήματα από το χάος με την επεξεργασία μη έγκυρων εξόδων. Η λύση είναι απλή: πρέπει να απαιτείται από τους χρήστες να δημοσιεύσουν την τελευταία **έγκυρη κατάσταση της αλυσίδας** για να βγάλουν τα χρήματά τους. + +Αλλά αυτή η προσέγγιση εξακολουθεί να παρουσιάζει προβλήματα. Για παράδειγμα, εάν όλοι οι χρήστες σε μια αλυσίδα plasma πρέπει να εξέλθουν (κάτι που είναι δυνατό στην περίπτωση ενός κακόβουλου χειριστή), τότε ολόκληρη η έγκυρη κατάσταση της αλυσίδας plasma πρέπει να απορριφθεί αμέσως στο βασικό στρώμα του Ethereum. Με το αυθαίρετο μέγεθος των αλυσίδων plasma (υψηλή απόδοση = περισσότερα δεδομένα) και τους περιορισμούς στις ταχύτητες επεξεργασίας του Ethereum, δεν πρόκειται για ιδανική λύση. + +Αν και τα παιχνίδια εξόδου ακούγονται καλά στη θεωρία, οι μαζικές έξοδοι στην πραγματική ζωή πιθανότατα θα προκαλέσουν μαζική συμφόρηση σε όλο το δίκτυο του Ethereum. Εκτός από το ότι βλάπτει τη λειτουργικότητα του Ethereum, μια κακώς συντονισμένη μαζική έξοδος σημαίνει ότι οι χρήστες ενδέχεται να μην μπορούν να κάνουν ανάληψη χρημάτων πριν ο χειριστής στραγγίσει κάθε λογαριασμό στην αλυσίδα plasma. + +## Πλεονεκτήματα και μειονεκτήματα του plasma {#pros-and-cons-of-plasma} + +| Πλεονεκτήματα | Μειονεκτήματα | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Προσφέρει υψηλή απόδοση και χαμηλό κόστος ανά συναλλαγή. | Δεν υποστηρίζει γενικούς υπολογισμούς (δεν είναι δυνατή η εκτέλεση έξυπνων συμβολαίων). Μόνο οι βασικές μεταφορές κρυπτονομισμάτων, οι ανταλλαγές και ορισμένοι άλλοι τύποι συναλλαγών υποστηρίζονται μέσω της λογικής κατηγοριοποίησης. | +| Κατάλληλο για συναλλαγές μεταξύ αυθαίρετων χρηστών (χωρίς γενικά έξοδα ανά ζεύγος χρηστών, εάν και τα δύο είναι εγκατεστημένα στην αλυσίδα πλάσματος) | Πρέπει να παρακολουθείται περιοδικά το δίκτυο (απαίτηση ζωτικότητας) ή να ανατίθεται αυτή η ευθύνη σε κάποιον άλλο για να διασφαλιστεί η ασφάλεια των κεφαλαίων σας. | +| Οι αλυσίδες plasma μπορούν να προσαρμοστούν σε συγκεκριμένες περιπτώσεις χρήσης που δεν σχετίζονται με την κύρια αλυσίδα. Οποιοσδήποτε, συμπεριλαμβανομένων των επιχειρήσεων, μπορεί να προσαρμόσει τα έξυπνα συμβόλαια Plasma για να παρέχει επεκτάσιμη υποδομή που λειτουργεί σε διαφορετικά περιβάλλοντα. | Βασίζεται σε έναν ή περισσότερους χειριστές για την αποθήκευση και εξυπηρέτηση δεδομένων κατόπιν αιτήματος. | +| Μειώνει το φορτίο στο Ethereum Mainnet μετακινώντας τον υπολογισμό και την αποθήκευση εκτός αλυσίδας. | Οι αναλήψεις καθυστερούν αρκετές ημέρες για να ληφθούν υπόψη αμφισβητήσεις. Για τα ανταλλάξιμα περιουσιακά στοιχεία, αυτό μπορεί να μετριαστεί από τους παρόχους ρευστότητας, αλλά υπάρχει σχετικό κόστος κεφαλαίου. | +| | Εάν υπερβολικά πολλοί χρήστες προσπαθήσουν να βγουν ταυτόχρονα, το Κεντρικό Δίκτυο Ethereum θα μπορούσε να έρθει αντιμέτωπο με συμφόρηση. | + +## Plasma vs πρωτόκολλα κλιμάκωσης επίπεδου 2 {#plasma-vs-layer-2} + +Ενώ το Plasma κάποτε θεωρείτο μια χρήσιμη λύση κλιμάκωσης για το Ethereum, έκτοτε απορρίφθηκε υπέρ των [πρωτόκολλων κλιμάκωσης επιπέδου 2 (L2)](/layer-2/). Οι λύσεις κλιμάκωσης L2 διορθώνουν αρκετά από τα προβλήματα του Plasma: + +### Αποδοτικότητα {#efficiency} + +[Zero-Knowledge rollups](/developers/docs/scaling/zk-rollups) δημιουργούν κρυπτογραφικές αποδείξεις της εγκυρότητας κάθε παρτίδας συναλλαγών που υποβάλλονται σε επεξεργασία εκτός αλυσίδας. Αυτό εμποδίζει τους χρήστες (και τους χειριστές) να προωθήσουν τις μεταβάσεις μη έγκυρων καταστάσεων, εξαλείφοντας την ανάγκη για περιόδους πρόκλησης και παιχνίδια εξόδου. Σημαίνει επίσης ότι οι χρήστες δεν χρειάζεται να παρακολουθούν την αλυσίδα σε περιοδική βάση για να κρατήσουν ασφαλή τα χρήματά τους. + +### Υποστήριξη για έξυπνα συμβόλαια {#support-for-smart-contracts} + +Ένα άλλο πρόβλημα με το πλαίσιο plasma ήταν [η αδυναμία υποστήριξης της εκτέλεσης έξυπνων συμβολαίων Ethereum](https://ethresear.ch/t/why-smart-contracts-are-not-feasible-on-plasma/2598/4). Ως αποτέλεσμα, οι περισσότερες υλοποιήσεις του Plasma κατασκευάστηκαν κυρίως για απλές πληρωμές ή για ανταλλαγή token ERC-20. + +Αντίθετα, τα optimistic rollup είναι συμβατά με το [Εικονικό μηχάνημα του Ethereum](/developers/docs/evm/) και μπορούν να εκτελούν [έξυπνα συμβόλαια](/developers/docs/smart-contracts/) του Ethereum, πράγμα που τα καθιστά μια χρήσιμη και _ασφαλή_ λύση για κλιμάκωση [αποκεντρωμένων εφαρμογών](/developers/docs/dapps/). Ομοίως, βρίσκονται σε εξέλιξη σχέδια για τη [δημιουργία υλοποίησης μηδενικής γνώσης του EVM (zkEVM)](https://ethresear.ch/t/a-zk-evm-specification/11549) που θα επιτρέπει στα ZK-rollup να επεξεργάζονται αυθαίρετη λογική και να εκτελούν έξυπνα συμβόλαια. + +### Μη διαθεσιμότητα δεδομένων {#data-unavailability} + +Όπως εξηγήθηκε προηγουμένως, το plasma πάσχει από πρόβλημα διαθεσιμότητας δεδομένων. Εάν ένας κακόβουλος χειριστής προωθούσε μια μη έγκυρη μετάβαση στην αλυσίδα plasma, οι χρήστες δεν θα ήταν σε θέση να την αμφισβητήσουν, καθώς ο χειριστής μπορεί να παρακρατήσει δεδομένα που απαιτούνται για τη δημιουργία της απόδειξης απάτης. Τα rollup λύνουν αυτό το πρόβλημα μέσω του εξαναγκασμού των χειριστών να δημοσιεύουν δεδομένα συναλλαγών στο Ethereum, πράγμα που επιτρέπει σε οποιονδήποτε να επαληθεύσει την κατάσταση της αλυσίδας και να δημιουργήσει αποδείξεις απάτης εάν είναι απαραίτητο. + +### Πρόβλημα μαζικής εξόδου {#mass-exit-problem} + +Τα ZK-rollup και τα optimistic rollup επιλύουν το πρόβλημα μαζικής εξόδου του Plasma με διάφορους τρόπους. Για παράδειγμα, ένα ZK-rollup βασίζεται σε κρυπτογραφικούς μηχανισμούς που διασφαλίζουν ότι οι χειριστές δεν μπορούν να κλέψουν χρήματα χρηστών σε κανένα σενάριο. + +Ομοίως, τα optimistic rollup επιβάλλουν μια περίοδο καθυστέρησης στις αναλήψεις κατά την οποία ο καθένας μπορεί να ξεκινήσει μια αμφισβήτηση και να αποτρέψει κακόβουλα αιτήματα ανάληψης. Αν και αυτή η περίπτωση είναι παρόμοια με το Plasma, η διαφορά είναι ότι οι επαληθευτές έχουν πρόσβαση στα δεδομένα που απαιτούνται για τη δημιουργία αποδείξεων απάτης. Επομένως, δεν χρειάζεται να συμμετέχουν οι χρήστες rollup σε μια ξέφρενη, «όποιος βγει πρώτος» μετεγκατάσταση στο Κεντρικό Δίκτυο Ethereum. + +## Σε τι διαφέρει το Plasma από τις πλευρικές αλυσίδες και την τμηματοποίηση; {#plasma-sidechains-sharding} + +Το πλάσμα, οι πλευρικές αλυσίδες και η τμηματοποίηση είναι αρκετά παρόμοια επειδή όλα συνδέονται με το Ethereum Mainnet με κάποιο τρόπο. Ωστόσο, το επίπεδο και η ισχύς αυτών των συνδέσεων ποικίλλουν, γεγονός που επηρεάζει τις ιδιότητες ασφαλείας κάθε λύσης κλιμάκωσης. + +### Plasma ή πλευρικές αλυσίδες {#plasma-vs-sidechains} + +Μια [πλευρική αλυσίδα](/developers/docs/scaling/sidechains/) είναι ένα ανεξάρτητο blockchain που συνδέεται με το Κεντρικό Δίκτυο Ethereum μέσω μιας αμφίδρομης γέφυρας. Οι [γέφυρες](/bridges/) επιτρέπουν στους χρήστες να ανταλλάσσουν token μεταξύ των δύο blockchain για συναλλαγές στην πλευρική αλυσίδα, μειώνοντας τη συμφόρηση στο Κεντρικό Δίκτυο Ethereum και βελτιώνοντας την επεκτασιμότητα. Οι πλευρικές αλυσίδες χρησιμοποιούν έναν ξεχωριστό μηχανισμό συναίνεσης και είναι συνήθως πολύ μικρότερες από το Κεντρικό Δίκτυο Ethereum. Ως αποτέλεσμα, η γεφύρωση περιουσιακών στοιχείων σε αυτές τις αλυσίδες συνεπάγεται αυξημένο κίνδυνο. Δεδομένης της έλλειψης εγγυήσεων ασφαλείας που κληρονομήθηκαν από το Κεντρικό Δίκτυο Ethereum στο μοντέλο πλευρικής αλυσίδας, οι χρήστες διακινδυνεύουν την απώλεια κεφαλαίων σε μια επίθεση στην πλευρική αλυσίδα. + +Αντίθετα, οι αλυσίδες plasma αντλούν την ασφάλειά τους από το Κεντρικό Δίκτυο. Αυτό τις καθιστά αρκετά πιο ασφαλείς από τις πλευρικές αλυσίδες. Τόσο οι πλευρικές αλυσίδες όσο και οι αλυσίδες plasma μπορούν να έχουν διαφορετικά πρωτόκολλα συναίνεσης, αλλά η διαφορά είναι ότι οι αλυσίδες plasma δημοσιεύουν ρίζες Merkle για κάθε μπλοκ στο Κεντρικό Δίκτυο Ethereum. Οι ρίζες μπλοκ είναι μικρά κομμάτια πληροφοριών που μπορούμε να χρησιμοποιήσουμε για να επαληθεύσουμε πληροφορίες σχετικά με συναλλαγές που συμβαίνουν σε μια αλυσίδα plasma. Εάν συμβεί μια επίθεση σε μια αλυσίδα plasma, οι χρήστες μπορούν να αποσύρουν με ασφάλεια τα χρήματά τους πίσω στο Κεντρικό Δίκτυο χρησιμοποιώντας τις κατάλληλες αποδείξεις. + +### Plasma ή τμηματοποίηση {#plasma-vs-sharding} + +Τόσο οι αλυσίδες plasma όσο και οι αλυσίδες shard δημοσιεύουν σε περιοδική βάση κρυπτογραφικές αποδείξεις στο Κεντρικό Δίκτυο Ethereum. Ωστόσο, και οι δύο έχουν διαφορετικές ιδιότητες ασφαλείας. + +Οι αλυσίδες τμηματοποίησης δεσμεύουν τις "επικεφαλίδες ταξινόμησης" στο Κεντρικό δίκτυο που περιέχουν λεπτομερείς πληροφορίες για κάθε τμήμα δεδομένων. Οι κόμβοι στο Κεντρικό Δίκτυο επαληθεύουν και επιβάλλουν την εγκυρότητα των τμημάτων δεδομένων, μειώνοντας την πιθανότητα μη έγκυρων μεταβάσεων τμημάτων και προστατεύοντας το δίκτυο από κακόβουλη δραστηριότητα. + +Το Plasma είναι διαφορετικό επειδή το Κεντρικό Δίκτυο λαμβάνει ελάχιστες πληροφορίες σχετικά με την κατάσταση των αλυσίδων-τέκνων. Αυτό σημαίνει ότι το Κεντρικό Δίκτυο δεν μπορεί να επαληθεύσει αποτελεσματικά τις συναλλαγές που πραγματοποιούνται σε αλυσίδες-τέκνα, πράγμα που τις καθιστά λιγότερο ασφαλείς. + +**Λάβετε υπόψη** ότι η κοινή χρήση της κρυπτοαλυσίδας Ethereum δεν είναι πλέον στον οδικό χάρτη. Έχει αντικατασταθεί από την κλιμάκωση μέσω rollup και [Danksharding](/roadmap/danksharding). + +### Χρήση Plasma {#use-plasma} + +Πολλά έργα παρέχουν υλοποιήσεις Plasma που μπορείτε να ενσωματώσετε στις dapp σας: + +- [Polygon](https://polygon.technology/) (παλαιότερα Matic Network) + +## Περισσότερες πληροφορίες {#further-reading} + +- [Μάθετε Plasma](https://www.learnplasma.org/en/) +- [Μια γρήγορη υπενθύμιση του τι σημαίνει "κοινή ασφάλεια" και γιατί είναι τόσο σημαντική](https://old.reddit.com/r/ethereum/comments/sgd3zt/a_quick_reminder_of_what_shared_security_means/) +- [Πλευρικές αλυσίδες vs Plasma vs Sharding](https://vitalik.eth.limo/general/2019/06/12/plasma_vs_sharding.html) +- [Κατανοώντας το Plasma, Μέρος 1: Τα Βασικά](https://www.theblockcrypto.com/amp/post/10793/understanding-plasma-part-1-the-basics) +- [Η Ζωή και ο Θάνατος του Plasma](https://medium.com/dragonfly-research/the-life-and-death-of-plasma-b72c6a59c5ad#) + +_Γνωρίζετε κάποιο πόρο της κοινότητας που σας βοήθησε; Επεξεργαστείτε αυτή τη σελίδα και προσθέστε το!_ diff --git a/public/content/translations/el/developers/docs/scaling/sidechains/index.md b/public/content/translations/el/developers/docs/scaling/sidechains/index.md new file mode 100644 index 00000000000..cc57aa4f1c1 --- /dev/null +++ b/public/content/translations/el/developers/docs/scaling/sidechains/index.md @@ -0,0 +1,73 @@ +--- +title: Πλευρικές αλυσίδες +description: Μια εισαγωγή στις πλευρικές αλυσίδες ως λύση επεκτασιμότητας που χρησιμοποιείται επί του παρόντος από την κοινότητα του Ethereum. +lang: el +sidebarDepth: 3 +--- + +Μια πλευρική αλυσίδα είναι ένα ξεχωριστό blockchain που λειτουργεί ανεξάρτητα από το Ethereum και συνδέεται με το Κεντρικό Δίκτυο του Ethereum μέσω μιας αμφίδρομης γέφυρας. Οι πλευρικές αλυσίδες μπορούν να έχουν ξεχωριστές παραμέτρους μπλοκ και [αλγόριθμους συναίνεσης](/developers/docs/consensus-mechanisms/), οι οποίοι συχνά σχεδιάζονται για την αποτελεσματική επεξεργασία των συναλλαγών. Ωστόσο, η χρήση μιας πλευρικής αλυσίδας συνεπάγεται συμβιβασμούς, καθώς δεν κληρονομούν τα χαρακτηριστικά ασφαλείας του Ethereum. Σε αντίθεση με τις [λύσεις κλιμάκωσης επιπέδου 2](/layer-2/), οι πλευρικές αλυσίδες δεν δημοσιεύουν αλλαγές κατάστασης και δεδομένα συναλλαγών στο Κεντρικό Δίκτυο του Ethereum. + +Οι πλευρικές αλυσίδες θυσιάζουν επίσης κάποιο μέτρο αποκέντρωσης ή ασφάλειας για να επιτύχουν υψηλή απόδοση ([τρίλημμα επεκτασιμότητας](https://vitalik.eth.limo/general/2021/05/23/scaling.html)). Το Ethereum, ωστόσο, δεσμεύεται να κλιμακώσει χωρίς να διακυβεύονται η αποκέντρωση και η ασφάλεια, όπως περιγράφεται στη [δήλωση οράματος](/roadmap/vision/) για αναβαθμίσεις. + +## Πώς λειτουργούν οι πλευρικές αλυσίδες; {#how-do-sidechains-work} + +Οι πλευρικές αλυσίδες είναι ανεξάρτητα blockchain, με διαφορετικές ιστορίες, οδικούς χάρτες ανάπτυξης και εκτιμήσεις σχεδιασμού. Ενώ μια πλευρική αλυσίδα μπορεί να παρουσιάζει κάποιες ομοιότητες σε επίπεδο επιφάνειας με το Ethereum, έχει μερικά ιδιαίτερα χαρακτηριστικά. + +### Αλγόριθμοι συναίνεσης {#consensus-algorithms} + +Μία από τις ιδιότητες που κάνουν τις πλευρικές αλυσίδες μοναδικές (δηλαδή διαφορετικές από το Ethereum) είναι ο αλγόριθμος συναίνεσης που χρησιμοποιείται. Οι πλευρικές αλυσίδες δεν βασίζονται στο Ethereum για συναίνεση και μπορούν να επιλέξουν εναλλακτικά πρωτόκολλα συναίνεσης που να ταιριάζουν στις ανάγκες τους. Μερικά παραδείγματα αλγορίθμων συναίνεσης που χρησιμοποιούνται σε πλευρικές αλυσίδες περιλαμβάνουν: + +- [Απόδειξη Αρχής](/developers/docs/consensus-mechanisms/poa/) +- [Κατ' εξουσιοδότηση απόδειξη συμμετοχής](https://en.bitcoin.it/wiki/Delegated_proof_of_stake) +- [Ανοχή βυζαντινών σφαλμάτων](https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained). + +Όπως και το Ethereum, οι πλευρικές αλυσίδες έχουν κόμβους επικύρωσης που επαληθεύουν και επεξεργάζονται συναλλαγές, παράγουν μπλοκ και αποθηκεύουν την κατάσταση του blockchain. Οι επικυρωτές είναι επίσης υπεύθυνοι για τη διατήρηση της συναίνεσης σε όλο το δίκτυο και την ασφάλειά του από κακόβουλες επιθέσεις. + +#### Παράμετροι μπλοκ {#block-parameters} + +Το Ethereum θέτει όρια στους [χρόνους των μπλοκ](/developers/docs/blocks/#block-time) (δηλαδή, στον χρόνο που απαιτείται για την παραγωγή νέων μπλοκ) και τα [μεγέθη των μπλοκ](/developers/docs/blocks/#block-size) (δηλαδή, η ποσότητα δεδομένων που περιέχονται ανά μπλοκ εκφραζόμενη σε gas). Αντίθετα, οι πλευρικές αλυσίδες συχνά υιοθετούν διαφορετικές παραμέτρους, όπως ταχύτερους χρόνους μπλοκ και υψηλότερα όρια gas, για να πετύχουν υψηλή απόδοση, γρήγορες συναλλαγές και χαμηλά τέλη. + +Παρόλο που αυτό έχει κάποια πλεονεκτήματα, έχει και κρίσιμες επιπτώσεις για την αποκέντρωση και την ασφάλεια του δικτύου. Οι παράμετροι των μπλοκ, όπως οι γρήγοροι χρόνοι μπλοκ και τα μεγάλα μεγέθη μπλοκ, αυξάνουν τη δυσκολία εκτέλεσης ενός πλήρους κόμβου, με αποτέλεσμα να μένουν μερικοί «υπερκόμβοι» υπεύθυνοι για την ασφάλιση της αλυσίδας. Σε ένα τέτοιο σενάριο, αυξάνεται η πιθανότητα συμπαιγνίας επικυρωτών ή κακόβουλης εξαγοράς της αλυσίδας. + +Για να κλιμακωθούν τα blockchain χωρίς να βλάψουν την αποκέντρωση, η λειτουργία ενός κόμβου πρέπει να είναι ανοιχτή σε όλους —όχι απαραίτητα σε ομάδες με εξειδικευμένο υλικό. Αυτός είναι ο λόγος για τον οποίο γίνονται προσπάθειες να διασφαλιστεί ότι όλοι μπορούν να [λειτουργούν έναν πλήρη κόμβο](/developers/docs/nodes-and-clients/#why-should-i-run-an-ethereum-node) στο δίκτυο Ethereum. + +### Συμβατότητα EVM {#evm-compatibility} + +Ορισμένες πλευρικές αλυσίδες είναι συμβατές με EVM και μπορούν να εκτελούν συμβόλαια που έχουν αναπτυχθεί για το [Εικονικό μηχάνημα του Ethereum (EVM)](/developers/docs/evm/). Οι πλευρικές αλυσίδες που είναι συμβατές με EVM υποστηρίζουν έξυπνα συμβόλαια [γραμμένα σε Solidity](/developers/docs/smart-contracts/languages/), καθώς και άλλες γλώσσες έξυπνων συμβολαίων EVM, πράγμα που σημαίνει ότι τα έξυπνα συμβόλαια που έχουν γραφτεί για το Κεντρικό Δίκτυο του Ethereum θα λειτουργούν και σε πλευρικές αλυσίδες συμβατές με EVM. + +Εάν, λοιπόν, θέλετε να χρησιμοποιήσετε την [dapp](/developers/docs/dapps/) σας σε μια πλευρική αλυσίδα, πρέπει απλώς να αναπτύξετε το [έξυπνο συμβόλαιό σας](/developers/docs/smart-contracts/) σε αυτή την πλευρική αλυσίδα. Έχει την ίδια όψη, αίσθηση και συμπεριφορά με το Κεντρικό Δίκτυο: γράφετε συμβόλαια στο Solidity και αλληλεπιδράτε με την αλυσίδα μέσω των πλευρικών αλυσίδων RPC. + +Επειδή οι πλευρικές αλυσίδες είναι συμβατές με EVM, θεωρούνται χρήσιμη [λύση επεκτασιμότητας](/developers/docs/scaling/) για εγγενείς εφαρμογές Ethereum. Με την dapp σας σε πλευρική αλυσίδα, οι χρήστες μπορούν να απολαμβάνουν χαμηλότερες χρεώσεις gas και πιο γρήγορες συναλλαγές, ειδικά εάν το Κεντρικό Δίκτυο έχει συμφόρηση. + +Ωστόσο, όπως εξηγήθηκε προηγουμένως, η χρήση πλευρικών αλυσίδων συνεπάγεται σημαντικούς συμβιβασμούς. Κάθε πλευρική αλυσίδα είναι υπεύθυνη για την ασφάλειά του και δεν κληρονομεί τις ιδιότητες ασφάλειας του Ethereum. Αυτό αυξάνει την πιθανότητα κακόβουλης συμπεριφοράς που μπορεί να επηρεάσει τους χρήστες σας ή να θέσει τα χρήματά τους σε κίνδυνο. + +### Κίνηση κεφαλαίου {#asset-movement} + +Προκειμένου ένα ξεχωριστό blockchain να γίνει πλευρική αλυσίδα στο Κεντρικό Δίκτυο του Ethereum, χρειάζεται τη δυνατότητα να διευκολύνει τη μεταφορά περιουσιακών στοιχείων από και προς το Κεντρικό Δίκτυο του Ethereum. Αυτή η διαλειτουργικότητα με το Ethereum επιτυγχάνεται με τη χρήση γέφυρας blockchain. Οι [γέφυρες](/bridges/) χρησιμοποιούν έξυπνα συμβόλαια που αναπτύσσονται στο Κεντρικό Δίκτυο του Ethereum και μια πλευρική αλυσίδα για τον έλεγχο της γεφύρωσης των κεφαλαίων μεταξύ τους. + +Ενώ οι γέφυρες βοηθούν τους χρήστες να μετακινούν κεφάλαια μεταξύ του Ethereum και τις πλευρικές αλυσίδες, τα περιουσιακά στοιχεία δεν αποτελούν αντικείμενο φυσικής μετακίνησης στις δύο αλυσίδες. Αντίθετα, μηχανισμοί που συνήθως περιλαμβάνουν κοπή νομίσματος και καύση χρησιμοποιούνται για τη μεταφορά αξίας μεταξύ των αλυσίδων. Περισσότερα για το [πώς λειτουργούν οι γέφυρες](/developers/docs/bridges/#how-do-bridges-work). + +## Πλεονεκτήματα και μειονεκτήματα πλευρικών αλυσίδων {#pros-and-cons-of-sidechains} + +| Πλεονεκτήματα | Μειονεκτήματα | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| Η τεχνολογία που στηρίζει τις πλευρικές αλυσίδες είναι καθιερωμένη και επωφελείται από εκτεταμένη έρευνα και βελτιώσεις στον σχεδιασμό. | Οι πλευρικές αλυσίδες ανταλλάσσουν κάποιο μέτρο αποκέντρωσης και εμπιστοσύνης έναντι της επεκτασιμότητας. | +| Οι πλευρικές αλυσίδες υποστηρίζουν γενικούς υπολογισμούς και προσφέρουν συμβατότητα EVM (μπορούν να εκτελέσουν εγγενείς εφαρμογές Ethereum). | Μια πλευρική αλυσίδα χρησιμοποιεί έναν ξεχωριστό μηχανισμό συναίνεσης και δεν επωφελείται από τις εγγυήσεις ασφάλειας του Ethereum. | +| Οι πλευρικές αλυσίδες χρησιμοποιούν διαφορετικά μοντέλα συναίνεσης για την αποτελεσματική επεξεργασία συναλλαγών και τη μείωση χρεώσεων συναλλαγών για τους χρήστες. | Οι πλευρικές αλυσίδες απαιτούν υψηλότερες παροχές εμπιστοσύνης (π.χ. απαρτία κακόβουλων επικυρωτών πλευρικής αλυσίδας μπορεί να διαπράξει απάτη). | +| Οι συμβατές πλευρικές αλυσίδες με EVM επιτρέπουν στις dapps να επεκτείνουν το οικοσύστημά τους. | | + +### Χρήση πλευρικών αλυσίδων {#use-sidechains} + +Πολλά έργα παρέχουν υλοποιήσεις πλευρικών αλυσίδων που μπορείτε να ενσωματώσετε στις dapps σας: + +- [Polygon PoS](https://polygon.technology/solutions/polygon-pos) +- [Skale](https://skale.network/) +- [Gnosis Chain (γνωστό ως xDai)](https://www.gnosischain.com/) +- [Δίκτυο Loom](https://loomx.io/) +- [Metis Andromeda](https://www.metis.io/) + +## Περισσότερες πληροφορίες {#further-reading} + +- [Κλιμάκωση Ethereum Dapps μέσω πλευρικών αλυσίδων](https://medium.com/loom-network/dappchains-scaling-ethereum-dapps-through-sidechains-f99e51fff447) *8 Φεβ 2018 - Γεώργιος Κωνσταντόπουλος* + +_Γνωρίζετε κάποιο πόρο της κοινότητας που σας βοήθησε; Επεξεργαστείτε αυτή τη σελίδα και προσθέστε το!_ diff --git a/public/content/translations/el/developers/docs/scaling/state-channels/index.md b/public/content/translations/el/developers/docs/scaling/state-channels/index.md new file mode 100644 index 00000000000..c68bd14973c --- /dev/null +++ b/public/content/translations/el/developers/docs/scaling/state-channels/index.md @@ -0,0 +1,261 @@ +--- +title: Κανάλια κατάστασης +description: Μια εισαγωγή στα κανάλια κατάστασης και στα κανάλια πληρωμής ως λύση κλιμάκωσης που χρησιμοποιείται επί του παρόντος από την κοινότητα του Ethereum. +lang: el +sidebarDepth: 3 +--- + +Τα κανάλια κατάστασης επιτρέπουν στους συμμετέχοντες να πραγματοποιούν συναλλαγές με ασφάλεια εκτός αλυσίδας διατηρώντας παράλληλα την αλληλεπίδραση με το Ethereum Mainnet στο ελάχιστο. Οι χρήστες του καναλιού μπορούν να πραγματοποιήσουν έναν αυθαίρετο αριθμό συναλλαγών εκτός αλυσίδας, ενώ υποβάλλουν μόνο δύο συναλλαγές εντός της αλυσίδας για να ανοίξουν και να κλείσουν το κανάλι. Αυτό επιτρέπει εξαιρετικά υψηλή απόδοση συναλλαγών και έχει ως αποτέλεσμα χαμηλότερο κόστος για τους χρήστες. + +## Προαπαιτούμενα {#prerequisites} + +Θα έπρεπε να έχετε διαβάσει και κατανοήσει τις σελίδες μας για την [κλιμάκωση Ethereum](/developers/docs/scaling/) και το [επίπεδο 2](/layer-2/). + +## Τι είναι τα κανάλια; {#what-are-channels} + +Τα δημόσια blockchain, όπως το Ethereum, αντιμετωπίζουν προκλήσεις επεκτασιμότητας λόγω της κατανεμημένης αρχιτεκτονικής τους: οι συναλλαγές στην αλυσίδα πρέπει να εκτελούνται από όλους τους κόμβους. Οι κόμβοι πρέπει να είναι σε θέση να χειριστούν τον όγκο των συναλλαγών σε ένα μπλοκ χρησιμοποιώντας μέτριο υλικό, επιβάλλοντας ένα όριο στην απόδοση συναλλαγών για να διατηρηθεί το δίκτυο αποκεντρωμένο. Τα κανάλια blockchain λύνουν αυτό το πρόβλημα επιτρέποντας στους χρήστες να αλληλεπιδρούν εκτός αλυσίδας ενώ εξακολουθούν να βασίζονται στην ασφάλεια της κύριας αλυσίδας για τον τελικό διακανονισμό. + +Τα κανάλια είναι απλά πρωτόκολλα peer-to-peer που επιτρέπουν σε δύο μέρη να κάνουν πολλές συναλλαγές μεταξύ τους και στη συνέχεια να δημοσιεύουν μόνο τα τελικά αποτελέσματα στην αλυσίδα μπλοκ. Το κανάλι χρησιμοποιεί κρυπτογραφία για να αποδείξει ότι τα συνοπτικά δεδομένα που παράγουν είναι πραγματικά το αποτέλεσμα ενός έγκυρου συνόλου ενδιάμεσων συναλλαγών. Ένα έξυπνο συμβόλαιο ["multisig"](/developers/docs/smart-contracts/#multisig) εξασφαλίζει ότι οι συναλλαγές υπογράφονται από τα σωστά μέρη. + +Με τα κανάλια, οι αλλαγές κατάστασης εκτελούνται και επικυρώνονται από τα ενδιαφερόμενα μέρη, ελαχιστοποιώντας τον υπολογισμό στο επίπεδο εκτέλεσης του Ethereum. Αυτό μειώνει τη συμφόρηση στο Ethereum και επίσης αυξάνει τις ταχύτητες επεξεργασίας συναλλαγών για τους χρήστες. + +Κάθε κανάλι διαχειρίζεται από ένα [έξυπνο συμβόλαιο multisig](/developers/docs/smart-contracts/#multisig) που εκτελείται στο Ethereum. Για να ανοίξει ένα κανάλι, οι συμμετέχοντες αναπτύσσουν το συμβόλαιο καναλιού στην αλυσίδα και καταθέτουν κεφάλαια σε αυτό. Και οι δύο πλευρές υπογράφουν συλλογικά μια ενημέρωση κατάστασης για να αρχικοποιήσουν την κατάσταση του καναλιού, μετά την οποία μπορούν να πραγματοποιήσουν συναλλαγές γρήγορα και ελεύθερα offchain. + +Για να κλείσει το κανάλι, οι συμμετέχοντες υποβάλλουν την τελευταία συμφωνημένη κατάσταση του καναλιού στην αλυσίδα. Στη συνέχεια, το έξυπνο συμβόλαιο διανέμει τα κλειδωμένα κεφάλαια σύμφωνα με την υπόλοιπο κάθε συμμετέχοντα στην τελική κατάσταση του καναλιού. + +Τα κανάλια peer-to-peer είναι ιδιαίτερα χρήσιμα για περιπτώσεις όπου ορισμένοι προκαθορισμένοι συμμετέχοντες επιθυμούν να πραγματοποιήσουν συναλλαγές με υψηλή συχνότητα χωρίς να προκαλέσουν ορατό κόστος. Τα κανάλια blockchain χωρίζονται σε δύο κατηγορίες: **κανάλια πληρωμών** και **κανάλια κατάστασης**. + +## Κανάλια πληρωμών {#payment-channels} + +Ένα κανάλι πληρωμών περιγράφεται καλύτερα ως ένα "διπλό λογιστικό βιβλίο" που διατηρείται συλλογικά από δύο χρήστες. Το αρχικό υπόλοιπο του λογιστικού βιβλίου είναι το άθροισμα των καταθέσεων που κλειδώνονται στο συμβόλαιο στην αλυσίδα κατά τη φάση ανοίγματος του καναλιού. Οι μεταφορές καναλιού πληρωμών μπορούν να πραγματοποιηθούν άμεσα και χωρίς τη συμμετοχή της ίδιας της κρυπτοαλυσίδας, εκτός από μια αρχική εφάπαξ δημιουργία στην αλυσίδα και ένα τελικό κλείσιμο του καναλιού. + +Οι ενημερώσεις στην υπόλοιπο του λογιστικού βιβλίου (δηλαδή, την κατάσταση του καναλιού πληρωμών) απαιτούν την έγκριση όλων των μερών στο κανάλι. Μια ενημέρωση καναλιού, υπογεγραμμένη από όλους τους συμμετέχοντες στο κανάλι, θεωρείται οριστικοποιημένη, παρόμοια με μια συναλλαγή στο Ethereum. + +Τα κανάλια πληρωμών ήταν από τις πρώτες λύσεις κλιμάκωσης που σχεδιάστηκαν για να ελαχιστοποιήσουν την ακριβή δραστηριότητα στην αλυσίδα απλών αλληλεπιδράσεων χρηστών (π.χ. μεταφορές ETH, ατομικά ανταλλάγματα, μικροπληρωμές). Οι συμμετέχοντες στο κανάλι μπορούν να πραγματοποιήσουν απεριόριστο αριθμό άμεσων συναλλαγών χωρίς προμήθειες μεταξύ τους, εφόσον το καθαρό άθροισμα των μεταφορών τους δεν υπερβαίνει τα κατατεθέντα token. + +## Κανάλια κατάστασης {#state-channels} + +Εκτός από την υποστήριξη εκτός αλυσίδας πληρωμών, τα κανάλια πληρωμών δεν έχουν αποδειχθεί χρήσιμα για τη διαχείριση γενικής λογικής μετάβασης κατάστασης. Τα κανάλια κατάστασης δημιουργήθηκαν για να λύσουν αυτό το πρόβλημα και να κάνουν τα κανάλια χρήσιμα για την κλιμάκωση του υπολογισμού γενικής χρήσης. + +Τα κανάλια κατάστασης εξακολουθούν να έχουν πολλά κοινά με τα κανάλια πληρωμών. Για παράδειγμα, οι χρήστες αλληλεπιδρούν ανταλλάσσοντας κρυπτογραφικά υπογεγραμμένα μηνύματα (συναλλαγές), τα οποία πρέπει να υπογραφούν και από τους άλλους συμμετέχοντες στο κανάλι. Εάν μια προτεινόμενη ενημέρωση κατάστασης δεν υπογραφεί από όλους τους συμμετέχοντες, θεωρείται άκυρη. + +Ωστόσο, εκτός από τη διατήρηση των υπολοίπων του χρήστη, το κανάλι παρακολουθεί επίσης την τρέχουσα κατάσταση της αποθήκευσης του συμβολαίου (δηλαδή, τις τιμές των μεταβλητών του συμβολαίου). + +Αυτό καθιστά δυνατή την εκτέλεση μιας έξυπνης σύμβασης εκτός αλυσίδας μεταξύ δύο χρηστών. Σε αυτό το σενάριο, οι ενημερώσεις στην εσωτερική κατάσταση του έξυπνου συμβολαίου απαιτούν μόνο την έγκριση των χρηστών που δημιούργησαν το κανάλι. + +Ενώ αυτό επιλύει το πρόβλημα κλιμάκωσης που περιγράφηκε προηγουμένως, έχει επιπτώσεις στην ασφάλεια. Στο Ethereum, η εγκυρότητα των μεταβάσεων κατάστασης επιβάλλεται από το πρωτόκολλο συναίνεσης του δικτύου. Αυτό καθιστά αδύνατη την πρόταση μιας άκυρης ενημέρωσης της κατάστασης μιας έξυπνης σύμβασης ή την αλλοίωση της εκτέλεσης της έξυπνης σύμβασης. + +Τα κανάλια κατάστασης δεν έχουν τις ίδιες εγγυήσεις ασφάλειας. Σε κάποιο βαθμό, ένα κανάλι κατάστασης είναι μια μικρογραφία του Mainnet. Με ένα περιορισμένο σύνολο συμμετεχόντων που επιβάλλουν κανόνες, αυξάνεται η πιθανότητα κακόβουλης συμπεριφοράς (π.χ. πρόταση άκυρων ενημερώσεων κατάστασης). Τα κανάλια κατάστασης αντλούν την ασφάλειά τους από ένα σύστημα διαιτησίας διαφοράς που βασίζεται σε [αποδείξεις απάτης](/glossary/#fraud-proof). + +## Πως λειτουργούν τα κανάλια κατάστασης {#how-state-channels-work} + +Βασικά, η δραστηριότητα σε ένα κανάλι κατάστασης είναι μια περίοδος αλληλεπιδράσεων που περιλαμβάνει χρήστες και ένα σύστημα blockchain. Χρήστες κυρίως επικοινωνούν μεταξύ τους εκτός αλυσίδας και αλληλεπιδρούν μόνο με την υποκείμενη αλυσίδα μπλοκ για να ανοίξουν το κανάλι, να κλείσουν το κανάλι ή να διευθετήσουν πιθανές διαφωνίες μεταξύ των συμμετεχόντων. + +Η ακόλουθη ενότητα περιγράφει τη βασική ροή εργασίας ενός καναλιού κατάστασης: + +### Άνοιγμα καναλιού {#opening-the-channel} + +Το άνοιγμα ενός καναλιού απαιτεί από τους συμμετέχοντες να δεσμεύσουν χρήματα σε ένα έξυπνο συμβόλαιο στο Mainnet. Η κατάθεση χρησιμεύει επίσης ως ένα εικονικό "ταμείο", ώστε οι συμμετέχοντες να μπορούν να πραγματοποιούν συναλλαγές ελεύθερα χωρίς να χρειάζεται να διευθετούν τις πληρωμές άμεσα. Μόνο όταν το κανάλι ολοκληρωθεί στην αλυσίδα, τα μέρη διευθετούν μεταξύ τους και αποσύρουν ό,τι έχει απομείνει από το "ταμείο" τους. + +Αυτή η κατάθεση χρησιμεύει επίσης ως εγγύηση για την ειλικρινή συμπεριφορά από κάθε συμμετέχοντα. Εάν οι καταθέτες κριθούν ένοχοι για κακόβουλες ενέργειες κατά τη φάση επίλυσης διαφορών, το συμβόλαιο μειώνει την κατάθεσή τους. + +Τα μέρη του καναλιού πρέπει να υπογράψουν μια αρχική κατάσταση, στην οποία όλα συμφωνούν. Αυτό χρησιμεύει ως τη γένεση του καναλιού κατάστασης, μετά την οποία οι χρήστες μπορούν να ξεκινήσουν τις συναλλαγές τους. + +### Χρήση καναλιού {#using-the-channel} + +Μετά την εκκίνηση της κατάστασης του καναλιού, οι ομότιμοι αλληλεπιδρούν υπογράφοντας συναλλαγές και στέλνοντάς τες ο ένας στον άλλον για έγκριση. Οι συμμετέχοντες ξεκινούν ενημερώσεις κατάστασης με αυτές τις συναλλαγές και υπογράφουν ενημερώσεις κατάστασης από άλλους. Κάθε συναλλαγή περιλαμβάνει τα ακόλουθα: + +- Ένα **nonce**, το οποίο λειτουργεί ως μοναδικό αναγνωριστικό για συναλλαγές και αποτρέπει επιθέσεις επανάληψης. Προσδιορίζει επίσης τη σειρά με την οποία πραγματοποιήθηκαν οι ενημερώσεις κατάστασης (η οποία είναι σημαντική για την επίλυση διαφορών) + +- Η παλιά κατάσταση του καναλιού + +- Η νέα κατάσταση του καναλιού + +- Η συναλλαγή που ενεργοποιεί τη μετάβαση κατάστασης (π.χ., η Alice στέλνει 5 ETH στον Bob) + +Οι ενημερώσεις κατάστασης στο κανάλι δε μεταδίδονται στην αλυσίδα όπως συμβαίνει συνήθως όταν οι χρήστες αλληλεπιδρούν στο Mainnet, κάτι που ευθυγραμμίζεται με τον στόχο των κρατικών καναλιών να ελαχιστοποιήσουν το αποτύπωμα στην αλυσίδα. Εφόσον οι συμμετέχοντες συμφωνούν για ενημερώσεις κατάστασης, είναι τόσο τελικές όσο μια συναλλαγή Ethereum. Οι συμμετέχοντες χρειάζεται να εξαρτώνται μόνο από τη συναίνεση του Mainnet εάν προκύψει διαφωνία. + +### Κλείσιμο καναλιού {#closing-the-channel} + +Το κλείσιμο ενός καναλιού κατάστασης απαιτεί την υποβολή της τελικής, συμφωνημένης κατάστασης του καναλιού στο έξυπνο συμβόλαιο στην αλυσίδα. Οι λεπτομέρειες που αναφέρονται στην ενημέρωση κατάστασης περιλαμβάνουν τον αριθμό των κινήσεων κάθε συμμετέχοντα και μια λίστα εγκεκριμένων συναλλαγών. + +Αφού επαληθευτεί ότι η ενημέρωση κατάστασης είναι έγκυρη (δηλαδή, έχει υπογραφεί από όλα τα μέρη), το έξυπνο συμβόλαιο οριστικοποιεί το κανάλι και διανέμει τα κλειδωμένα χρήματα σύμφωνα με το αποτέλεσμα του καναλιού. Οι πληρωμές που γίνονται εκτός αλυσίδας εφαρμόζονται στην κατάσταση του Ethereum και ο κάθε συμμετέχων λαμβάνει το υπόλοιπο μέρος των κλειδωμένων χρημάτων. + +Το σενάριο που περιγράφεται παραπάνω αντιπροσωπεύει τι συμβαίνει στην καλή περίπτωση. Μερικές φορές, οι χρήστες μπορεί να μην μπορούν να καταλήξουν σε συμφωνία και να οριστικοποιήσουν το κανάλι (η κακή περίπτωση). Οποιοδήποτε από τα ακόλουθα μπορεί να ισχύει για την κατάσταση: + +- Οι συμμετέχοντες είναι εκτός σύνδεσης και αποτυγχάνουν να προτείνουν μεταβάσεις κατάστασης + +- Οι συμμετέχοντες αρνούνται να συνυπογράψουν έγκυρες ενημερώσεις κατάστασης + +- Οι συμμετέχοντες προσπαθούν να ολοκληρώσουν το κανάλι προτείνοντας μια παλιά ενημέρωση κατάστασης στο συμβόλαιο στην αλυσίδα. + +- Οι συμμετέχοντες προτείνουν μη έγκυρες μεταβάσεις κατάστασης για να υπογράψουν άλλοι + +Κάθε φορά που διακόπτεται η συναίνεση μεταξύ των συμμετεχόντων παραγόντων σε ένα κανάλι, η τελευταία επιλογή είναι να βασιστείτε στη συναίνεση του Κεντρικού δικτύου για να επιβάλετε την τελική, έγκυρη κατάσταση του καναλιού. Σε αυτήν την περίπτωση, το κλείσιμο του καναλιού κατάστασης απαιτεί επίλυση διαφορών στην αλυσίδα. + +### Settling disputes {#settling-disputes} + +Συνήθως, τα μέλη σε ένα κανάλι συμφωνούν να κλείσουν το κανάλι εκ των προτέρων και συνυπογράφουν την τελευταία μετάβαση κατάστασης, την οποία υποβάλλουν στο έξυπνο συμβόλαιο. Μόλις εγκριθεί η ενημέρωση στην αλυσίδα, η εκτέλεση του έξυπνου συμβολαίου εκτός αλυσίδας τελειώνει και οι συμμετέχοντες εξέρχονται από το κανάλι με τα χρήματά τους. + +Ωστόσο, ένα μέρος μπορεί να υποβάλει μια αίτηση στην αλυσίδα για να τερματίσει την εκτέλεση του έξυπνου συμβολαίου και να ολοκληρώσει το κανάλι - χωρίς να περιμένει την έγκριση του άλλου μέρους. Εάν συμβεί κάποια από τις περιγραφόμενες προηγουμένως καταστάσεις παραβίασης της συναίνεσης, οποιοδήποτε μέρος μπορεί να ενεργοποιήσει το συμβόλαιο στην αλυσίδα για να κλείσει το κανάλι και να διανείμει τα κεφάλαια. Αυτό εξαλείφει την ανάγκη **απόδειξης εμπιστοσύνης**, διασφαλίζοντας ότι τα ειλικρινή μέρη μπορούν να εξέλθουν από τις καταθέσεις τους ανά πάσα στιγμή, ανεξάρτητα από τις ενέργειες του άλλου μέρους. + +Για να επεξεργαστεί την έξοδο καναλιού, ο χρήστης πρέπει να υποβάλει την τελευταία έγκυρη ενημέρωση κατάστασης της εφαρμογής στο συμβόλαιο στην αλυσίδα. Εάν αυτό είναι εντάξει (δηλαδή, φέρει την υπογραφή όλων των μελών), τότε τα κεφάλαια αναδιανέμονται υπέρ τους. + +Ωστόσο, υπάρχει καθυστέρηση στην εκτέλεση αιτημάτων εξόδου ενός χρήστη. Εάν το αίτημα για ολοκλήρωση του καναλιού εγκρίθηκε ομόφωνα, τότε η συναλλαγή εξόδου στην αλυσίδα εκτελείται αμέσως. + +Η καθυστέρηση τίθεται σε εφαρμογή σε εξόδους ενός χρήστη λόγω της πιθανότητας απατηλών ενεργειών. Για παράδειγμα, ένας συμμετέχων στο κανάλι μπορεί να προσπαθήσει να ολοκληρώσει το κανάλι στο Ethereum υποβάλλοντας μια παλαιότερη ενημέρωση κατάστασης στην αλυσίδα. + +Ως αντιστάθμισμα, τα κανάλια κατάστασης επιτρέπουν στους ειλικρινείς χρήστες να αμφισβητήσουν τις μη έγκυρες ενημερώσεις κατάστασης υποβάλλοντας την τελευταία, έγκυρη κατάσταση του καναλιού εντός αλυσίδας. Τα κανάλια κατάστασης σχεδιάζονται έτσι ώστε οι νεότερες, συμφωνημένες ενημερώσεις κατάστασης να επικρατούν των παλαιότερων ενημερώσεων κατάστασης. + +Μόλις ένας συμμετέχων ενεργοποιήσει το σύστημα επίλυσης διαφωνιών εντός αλυσίδας, το άλλο μέρος πρέπει να απαντήσει εντός χρονικού ορίου (που ονομάζεται παράθυρο πρόκλησης). Αυτό επιτρέπει στους χρήστες να αμφισβητήσουν τη συναλλαγή εξόδου, ειδικά εάν το άλλο μέρος εφαρμόζει μια παλιά ενημέρωση. + +Όποια και αν είναι η περίπτωση, οι χρήστες του καναλιού έχουν πάντα ισχυρές εγγυήσεις οριστικότητας: εάν η μετάβαση κατάστασης στην κατοχή τους υπογράφηκε από όλα τα μέλη και είναι η πιο πρόσφατη ενημέρωση, τότε έχει την ίδια οριστικότητα με μια κανονική συναλλαγή στην αλυσίδα. Πρέπει ακόμα να αμφισβητήσουν το άλλο μέρος στην αλυσίδα, αλλά το μόνο πιθανό αποτέλεσμα είναι η ολοκλήρωση της τελευταίας έγκυρης κατάστασης που κατέχουν. + +### Πώς αλληλεπιδρούν τα κανάλια κατάστασης με το Ethereum; {#how-do-state-channels-interact-with-ethereum} + +Αν και υπάρχουν ως πρωτόκολλα εκτός αλυσίδας, τα κανάλια κατάστασης έχουν ένα στοιχείο εντός αλυσίδας: το έξυπνο συμβόλαιο που αναπτύσσεται στο Ethereum κατά το άνοιγμα του καναλιού. Αυτό το συμβόλαιο ελέγχει τα περιουσιακά στοιχεία που κατατίθενται στο κανάλι, επαληθεύει τις ενημερώσεις κατάστασης και διαιτητεύει τις διαφορές μεταξύ των συμμετεχόντων. + +Τα κανάλια κατάστασης δε δημοσιεύουν δεδομένα συναλλαγών ή καταστάσεις δεσμεύσεων στο Mainnet, σε αντίθεση με τις λύσεις κλιμάκωσης [επιπέδου 2](/layer-2/). Ωστόσο, συνδέονται περισσότερο με το Mainnet παρά με, [πλευρικές αλυσίδες](/developers/docs/scaling/sidechains/) καθιστώντας τα κάπως πιο ασφαλή. + +Τα κανάλια κατάστασης βασίζονται στο κύριο πρωτόκολλο Ethereum για τα ακόλουθα: + +#### 1. Επιβιωσιμότητα {#liveness} + +Το συμβόλαιο στην αλυσίδα που αναπτύσσεται κατά το άνοιγμα του καναλιού είναι υπεύθυνο για τη λειτουργικότητα του καναλιού. Εάν το συμβόλαιο εκτελείται στο Ethereum, τότε το κανάλι είναι πάντα διαθέσιμο για χρήση. Αντίθετα, μια πλευρική αλυσίδα μπορεί πάντα να αποτύχει, ακόμα και αν το Κεντρικό δίκτυο είναι λειτουργικό, θέτοντας σε κίνδυνο τα κεφάλαια των χρηστών. + +#### 2. Ασφάλεια {#security} + +Σε κάποιο βαθμό, τα κανάλια κατάστασης βασίζονται στο Ethereum για να τους παρέχουν ασφάλεια και να προστατεύουν τους χρήστες από κακόβουλους ομότιμους. Όπως συζητείται σε επόμενες ενότητες, τα κανάλια χρησιμοποιούν έναν μηχανισμό απόδειξης απάτης που επιτρέπει στους χρήστες να αμφισβητήσουν τις προσπάθειες οριστικοποίησης του καναλιού με μια μη έγκυρη ή παλιά ενημέρωση. + +Σε αυτήν την περίπτωση, το έντιμο μέρος παρέχει την πιο πρόσφατη έγκυρη κατάσταση του καναλιού ως απόδειξη απάτης στο συμβόλαιο στην αλυσίδα για επαλήθευση. Οι αποδείξεις απάτης επιτρέπουν σε μέρη που δεν εμπιστεύονται το ένα το άλλο να πραγματοποιούν εκτός αλυσίδας συναλλαγές χωρίς να διακινδυνεύουν τα κεφάλαιά τους στη διαδικασία. + +#### 3. Οριστικότητα {#finality} + +Οι ενημερώσεις κατάστασης που υπογράφονται συλλογικά από τους χρήστες του καναλιού θεωρούνται εξίσου καλές με τις συναλλαγές στην αλυσίδα. Ωστόσο, όλες οι ενέργειες εντός ενός καναλιού αποκτούν πραγματική οριστικότητα μόνο όταν το κανάλι κλείνει στο Ethereum. + +Στην αισιόδοξη περίπτωση, και τα δύο μέρη μπορούν να συνεργαστούν και να υπογράψουν την τελική ενημέρωση κατάστασης και να την υποβάλουν στην αλυσίδα για να κλείσει το κανάλι, μετά την οποία τα χρήματα διανέμονται σύμφωνα με την τελική κατάσταση του καναλιού. Στην απαισιόδοξη περίπτωση, όπου κάποιος προσπαθεί να εξαπατήσει δημοσιεύοντας μια εσφαλμένη ενημέρωση κατάστασης στην αλυσίδα, η συναλλαγή δεν ολοκληρώνεται μέχρι να παρέλθει το παράθυρο πρόκλησης. + +## Εικονικά κανάλια κτάστασης {#virtual-state-channels} + +Η αφελής υλοποίηση ενός καναλιού κατάστασης θα ήταν η ανάπτυξη ενός νέου συμβολαίου όταν δύο χρήστες επιθυμούν να εκτελέσουν μια εφαρμογή εκτός αλυσίδας. Αυτό όχι μόνο δεν είναι εφικτό, αλλά αναιρεί επίσης τη σχέση κόστους - αποτελεσματικότητας των καναλιών κατάστασης (το κόστος συναλλαγών στην αλυσίδα μπορεί γρήγορα να αυξηθεί). + +Για να λυθεί αυτό το πρόβλημα, δημιουργήθηκαν «εικονικά κανάλια». Σε αντίθεση με τα κανονικά κανάλια που απαιτούν το άνοιγμα και τον τερματισμό συναλλαγών στην αλυσίδα, ένα εικονικό κανάλι μπορεί να ανοιχτεί, να εκτελεστεί και να οριστικοποιηθεί χωρίς να αλληλεπιδράσει με την κύρια αλυσίδα. Είναι ακόμη δυνατό να διευθετηθούν διαφορές εκτός αλυσίδας χρησιμοποιώντας αυτή τη μέθοδο. + +Αυτό το σύστημα βασίζεται στην ύπαρξη των λεγόμενων "καναλιών καταλόγου", τα οποία έχουν χρηματοδοτηθεί στην αλυσίδα. Μπορούν να δημιουργηθούν εικονικά κανάλια μεταξύ δύο μερών πάνω από ένα υπάρχον κανάλι καταλόγου, με τους ιδιοκτήτες του καναλιού καταλόγου να χρησιμεύουν ως ενδιάμεσοι. + +Οι χρήστες σε κάθε εικονικό κανάλι αλληλεπιδρούν μέσω μιας νέας εμφάνισης συμβολαίου, με το κανάλι καταλόγου να είναι σε θέση να υποστηρίζει πολλαπλές εμφανίσεις συμβολαίου. Η κατάσταση του καναλιού καταλόγου περιέχει επίσης περισσότερες από μία καταστάσεις αποθήκευσης συμβολαίου, επιτρέποντας παράλληλη εκτέλεση εφαρμογών εκτός αλυσίδας μεταξύ διαφορετικών χρηστών. + +Όπως ακριβώς και στα κανονικά κανάλια, οι χρήστες ανταλλάσσουν ενημερώσεις κατάστασης για να προχωρήσουν το μηχάνημα κατάστασης. Εκτός από διαφωνία, επικοινωνία με τον μεσάζοντα γίνεται μόνο κατά το άνοιγμα ή τον τερματισμό του καναλιού. + +### Εικονικά κανάλια πληρωμών {#virtual-payment-channels} + +Τα εικονικά κανάλια πληρωμών λειτουργούν με την ίδια ιδέα όπως τα κανάλια εικονικής κατάστασης: οι συμμετέχοντες που είναι συνδεδεμένοι στο ίδιο δίκτυο μπορούν να υποβάλουν μηνύματα χωρίς να χρειάζεται να ανοίξουν ένα νέο κανάλι στην αλυσίδα. Στα εικονικά κανάλια πληρωμών, οι μεταφορές αξίας δρομολογούνται μέσω ενός ή περισσότερων διαμεσολαβητών, με εγγυήσεις ότι μόνο ο σκοπούμενος παραλήπτης μπορεί να λάβει μεταφερόμενα χρήματα. + +## Εφαρμογές καναλιών κατάστασης {#applications-of-state-channels} + +### Πληρωμές {#payments} + +Τα αρχικά κανάλια blockchain ήταν απλά πρωτόκολλα που επέτρεπαν σε δύο συμμετέχοντες να πραγματοποιούν γρήγορες, χαμηλής χρέωσης μεταφορές εκτός αλυσίδας χωρίς να χρειάζεται να πληρώνουν υψηλά τέλη συναλλαγών στο Mainnet. Σήμερα, τα κανάλια πληρωμής εξακολουθούν να είναι χρήσιμα για εφαρμογές που έχουν σχεδιαστεί για την ανταλλαγή και τις καταθέσεις ether και tokens. + +Οι πληρωμές βασισμένες σε κανάλια έχουν τα ακόλουθα πλεονεκτήματα: + +1. **Απόδοση**: Η ποσότητα των εκτός αλυσίδας συναλλαγών ανά κανάλι δε συνδέεται με την απόδοση του Ethereum, η οποία επηρεάζεται από διάφορους παράγοντες, ειδικά το μέγεθος του μπλοκ και ο χρόνος μπλοκ. Με την εκτέλεση συναλλαγών εκτός αλυσίδας, τα κανάλια blockchain μπορούν να επιτύχουν υψηλότερη απόδοση. + +2. **Απόρρητο**: Επειδή τα κανάλια υπάρχουν εκτός αλυσίδας, οι λεπτομέρειες των αλληλεπιδράσεων μεταξύ των συμμετεχόντων δεν καταγράφονται στο δημόσιο blockchain του Ethereum. Οι χρήστες καναλιών πρέπει να αλληλεπιδρούν μόνο στην αλυσίδα κατά τη χρηματοδότηση και το κλείσιμο καναλιών ή την επίλυση διαφορών. Έτσι, τα κανάλια είναι χρήσιμα για άτομα που επιθυμούν πιο ιδιωτικές συναλλαγές. + +3. **Καθυστέρηση**: Οι εκτός αλυσίδας συναλλαγές που πραγματοποιούνται μεταξύ των συμμετεχόντων του καναλιού μπορούν να διευθετηθούν άμεσα, εάν συνεργαστούν και τα δύο μέρη, μειώνοντας τις καθυστερήσεις. Αντίθετα, η αποστολή μιας συναλλαγής στο Κεντρικό δίκτυο απαιτεί αναμονή για τους κόμβους να επεξεργαστούν τη συναλλαγή, να παράγουν ένα νέο μπλοκ με τη συναλλαγή και να επιτευχθεί συναίνεση. Οι χρήστες μπορεί επίσης να χρειαστεί να περιμένουν περισσότερες επιβεβαιώσεις μπλοκ πριν θεωρήσουν μια συναλλαγή οριστικοποιημένη. + +4. **Κόστος**: Τα κανάλια κατάστασης είναι ιδιαίτερα χρήσιμα σε περιπτώσεις όπου ένα σύνολο συμμετεχόντων θα ανταλλάξει πολλές ενημερώσεις κατάστασης για μεγάλο χρονικό διάστημα. Τα μόνα έξοδα που προκύπτουν είναι το άνοιγμα και το κλείσιμο του έξυπνου συμβολαίου καναλιού κατάστασης. Κάθε αλλαγή κατάστασης μεταξύ του ανοίγματος και του κλεισίματος του καναλιού θα είναι φθηνότερη από την τελευταία καθώς το κόστος διακανονισμού κατανέμεται ανάλογα. + +Η εφαρμογή καναλιών κατάστασης σε λύσεις επιπέδου 2, όπως τα [rollups](/developers/docs/scaling/#rollups), θα μπορούσε να τα κάνει ακόμη πιο ελκυστικά για πληρωμές. Ενώ τα κανάλια προσφέρουν φθηνές πληρωμές, το κόστος εγκατάστασης του συμβολαίου στην αλυσίδα στο Mainnet κατά τη φάση ανοίγματος μπορεί να γίνει ακριβό, ειδικά όταν τα τέλη gas αυξάνονται απότομα. Τα πακέτα ενημέρωσης που βασίζονται στο Ethereum προσφέρουν [χαμηλότερα τέλη συναλλαγών](https://l2fees.info/) και μπορούν να μειώσουν τα έξοδα για τους συμμετέχοντες του καναλιού μειώνοντας τα έξοδα εγκατάστασης. + +### Μικροσυναλλαγές {#microtransactions} + +Οι μικροσυναλλαγές είναι πληρωμές χαμηλής αξίας (π.χ. χαμηλότερες από ένα κλάσμα του δολαρίου) τις οποίες οι επιχειρήσεις δεν μπορούν να επεξεργαστούν χωρίς να υποστούν απώλειες. Αυτές οι οντότητες πρέπει να πληρώνουν τους παρόχους υπηρεσιών πληρωμών, κάτι που δεν μπορούν να κάνουν εάν το περιθώριο στις πληρωμές πελατών είναι πολύ χαμηλό για να βγει κέρδος. + +Τα κανάλια πληρωμών λύνουν αυτό το πρόβλημα μειώνοντας τα γενικά έξοδα που σχετίζονται με τις μικροσυναλλαγές. Για παράδειγμα, ένας πάροχος υπηρεσιών διαδικτύου (ISP) μπορεί να ανοίξει ένα κανάλι πληρωμής με έναν πελάτη, επιτρέποντάς του να πραγματοποιεί ροή μικρών πληρωμών κάθε φορά που χρησιμοποιεί την υπηρεσία. + +Πέρα από το κόστος ανοίγματος και κλεισίματος του καναλιού, οι συμμετέχοντες δεν επιβαρύνονται με επιπλέον κόστος για μικροσυναλλαγές (χωρίς χρεώσεις gas). Αυτή είναι μια κατάσταση win-win, καθώς οι πελάτες έχουν μεγαλύτερη ευελιξία στο πόσα πληρώνουν για υπηρεσίες και οι επιχειρήσεις δε χάνουν τις κερδοφόρες μικροσυναλλαγές. + +### Αποκεντρωμένες εφαρμογές {#decentralized-applications} + +Όπως τα κανάλια πληρωμής, τα κανάλια κατάστασης μπορούν να πραγματοποιούν πληρωμές υπό όρους σύμφωνα με τις τελικές καταστάσεις του μηχανήματος κατάστασης. Τα κανάλια κατάστασης μπορούν επίσης να υποστηρίξουν αυθαίρετη λογική μετάβασης κατάστασης, καθιστώντας τα χρήσιμα για την εκτέλεση γενικών εφαρμογών εκτός αλυσίδας. + +Τα κανάλια κατάστασης συχνά περιορίζονται σε απλές εφαρμογές, καθώς αυτό διευκολύνει τη διαχείριση των κεφαλαίων που έχουν δεσμευτεί στο συμβόλαιο εντός αλυσίδας. Επίσης, με περιορισμένο αριθμό μερών που ενημερώνουν την κατάσταση της εφαρμογής εκτός αλυσίδας σε διαστήματα, η τιμωρία της ανέντιμης συμπεριφοράς είναι σχετικά απλή. + +Η αποτελεσματικότητα μιας εφαρμογής καναλιού κατάστασης εξαρτάται επίσης από τον σχεδιασμό της. Για παράδειγμα, ένας προγραμματιστής μπορεί να αναπτύξει το συμβόλαιο καναλιού εφαρμογής εντός αλυσίδας μία φορά και να επιτρέψει σε άλλους παίκτες να επαναχρησιμοποιήσουν την εφαρμογή χωρίς να χρειάζεται να μεταβούν εντός αλυσίδας. Σε αυτήν την περίπτωση, το αρχικό κανάλι εφαρμογής λειτουργεί ως κανάλι λογιστικού βιβλίου που υποστηρίζει πολλαπλά εικονικά κανάλια, με κάθε ένα να εκτελεί μια νέα εμφάνιση του έξυπνου συμβολαίου της εφαρμογής εκτός αλυσίδας. + +Μια πιθανή χρήση για εφαρμογές καναλιού κατάστασης είναι τα απλά παιχνίδια δύο παικτών, όπου τα κεφάλαια διανέμονται με βάση το αποτέλεσμα του παιχνιδιού. Το όφελος εδώ είναι ότι οι παίκτες δε χρειάζεται να εμπιστεύονται ο ένας τον άλλον (αποκέντρωση) και το συμβόλαιο εντός αλυσίδας, όχι οι παίκτες, ελέγχει την κατανομή των κεφαλαίων και την επίλυση των διαφορών (αποκέντρωση). + +Άλλες πιθανές χρήσεις για εφαρμογές καναλιού κατάστασης περιλαμβάνουν την ιδιοκτησία ονόματος ENS, τα μητρώα NFT και πολλά άλλα. + +### Προσωπικές μεταφορές {#atomic-transfers} + +Τα αρχικά κανάλια πληρωμής περιορίζονταν σε μεταφορές μεταξύ δύο μελών, περιορίζοντας τη χρηστικότητά τους. Ωστόσο, η εισαγωγή εικονικών καναλιών επέτρεψε στα άτομα να δρομολογούν μεταφορές μέσω ενδιάμεσων (δηλαδή πολλαπλών καναλιών p2p) χωρίς να χρειάζεται να ανοίξουν ένα νέο κανάλι στην αλυσίδα. + +Συχνά περιγράφονται ως "μεταφορές πολλαπλών εναλλαγών", οι δρομολογημένες πληρωμές είναι ατομικές (δηλαδή, είτε όλα τα μέρη της συναλλαγής επιτυγχάνουν είτε αποτυγχάνουν εντελώς). Οι ατομικές μεταφορές χρησιμοποιούν [Συμβόλαια Χρονικού Κλειδώματος με Hash (HTLCs)](https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts) για να εξασφαλίσουν ότι η πληρωμή απελευθερώνεται μόνο εάν πληρούνται ορισμένες προϋποθέσεις, μειώνοντας έτσι τον κίνδυνο του αντιπάλου. + +## Μειονεκτήματα της χρήσης καναλιών κατάστασης {#drawbacks-of-state-channels} + +### Υποθέσεις επιβιωσιμότητας {#liveness-assumptions} + +Για να διασφαλιστεί η αποτελεσματικότητα, τα κανάλια κατάστασης θέτουν χρονικά όρια στην ικανότητα των συμμετεχόντων του καναλιού να ανταποκρίνονται σε διαφωνίες. Αυτός ο κανόνας υποθέτει ότι οι συμμετέχοντες θα είναι πάντα συνδεδεμένοι στο δίκτυο για να παρακολουθούν τη δραστηριότητα του καναλιού και να αμφισβητούν ενστάσεις όταν είναι απαραίτητο. + +Στην πραγματικότητα, οι χρήστες μπορούν να βγουν εκτός σύνδεσης για λόγους έξω από τον έλεγχό τους (π.χ. κακή σύνδεση στο διαδίκτυο, μηχανική βλάβη κ.λπ.). Αν ένας ειλικρινής χρήστης αποσυνδεθεί, ένας κακόβουλος συμμετέχων μπορεί να εκμεταλλευτεί την κατάσταση παρουσιάζοντας παλιές ενδιάμεσες καταστάσεις στο συμβόλαιο διαιτησίας και κλέβοντας τα δεσμευμένα κεφάλαια. + +Μερικά κανάλια χρησιμοποιούν "πύργους παρακολούθησης" - οντότητες υπεύθυνες για την παρακολούθηση εκτός αλυσίδας συμβάντων διαφωνιών για λογαριασμό άλλων και τη λήψη των απαραίτητων ενεργειών, όπως την ειδοποίηση των ενδιαφερομένων μερών. Ωστόσο, αυτό μπορεί να αυξήσει το κόστος χρήσης ενός καναλιού κατάστασης. + +### Μη διαθεσιμότητα δεδομένων {#data-unavailability} + +Όπως εξηγήθηκε προηγουμένως, η αμφισβήτηση μιας μη έγκυρης διαφωνίας απαιτεί την παρουσίαση της πιο πρόσφατης, έγκυρης κατάστασης του καναλιού κατάστασης. Αυτός είναι ένας άλλος κανόνας που βασίζεται σε μια υπόθεση - ότι οι χρήστες έχουν πρόσβαση στην πιο πρόσφατη κατάσταση του καναλιού. + +Αν και είναι λογικό να περιμένουμε ότι οι χρήστες του καναλιού θα αποθηκεύουν αντίγραφα της κατάστασης της εφαρμογής εκτός αλυσίδας, αυτά τα δεδομένα ενδέχεται να χαθούν λόγω σφάλματος ή μηχανικής βλάβης. Αν ο χρήστης δεν έχει αντίγραφο ασφαλείας των δεδομένων, μπορεί μόνο να ελπίζει ότι το άλλο μέρος δε θα ολοκληρώσει ένα άκυρο αίτημα εξόδου χρησιμοποιώντας παλιές μεταβάσεις κατάστασης που βρίσκονται στην κατοχή του. + +Οι χρήστες του Ethereum δεν έχουν αυτό το πρόβλημα, καθώς το δίκτυο επιβάλλει κανόνες σχετικά με τη διαθεσιμότητα δεδομένων. Τα δεδομένα συναλλαγών αποθηκεύονται και διαδίδονται από όλους τους κόμβους και είναι διαθέσιμα στους χρήστες για λήψη, εάν και όταν είναι απαραίτητο. + +### Ζητήματα ρευστότητας {#liquidity-issues} + +Για να δημιουργηθεί ένα κανάλι blockchain, οι συμμετέχοντες πρέπει να κλειδώσουν κεφάλαια σε ένα έξυπνο συμβόλαιο στην αλυσίδα για τον κύκλο ζωής του καναλιού. Αυτό μειώνει τη ρευστότητα των χρηστών του καναλιού και επίσης περιορίζει τα κανάλια σε εκείνους που μπορούν να αντέξουν οικονομικά να κρατήσουν κεφάλαια κλειδωμένα στο Mainnet. + +Ωστόσο, τα κανάλια λογιστικού βιβλίου, που λειτουργούν από έναν παροχέα υπηρεσιών εκτός αλυσίδας (OSP), μπορούν να μειώσουν τα προβλήματα ρευστότητας για τους χρήστες. Δύο ομότιμοι χρήστες που είναι συνδεδεμένοι σε ένα κανάλι λογιστικού βιβλίου μπορούν να δημιουργήσουν ένα εικονικό κανάλι, το οποίο μπορούν να ανοίξουν και να ολοκληρώσουν εντελώς εκτός αλυσίδας, όποτε θέλουν. + +Οι παροχείς υπηρεσιών εκτός αλυσίδας θα μπορούσαν επίσης να ανοίξουν κανάλια με πολλούς ομότιμους, καθιστώντας τα χρήσιμα για τη δρομολόγηση πληρωμών. Φυσικά, οι χρήστες πρέπει να πληρώνουν τέλη στους OSPs για τις υπηρεσίες τους, κάτι που μπορεί να είναι ανεπιθύμητο για ορισμένους. + +### Griefing attacks {#griefing-attacks} + +Οι επιθέσεις griefing είναι ένα κοινό χαρακτηριστικό των συστημάτων που βασίζονται σε απόδειξη απάτης. Μια επίθεση griefing δεν ωφελεί άμεσα τον επιτιθέμενο αλλά προκαλεί θλίψη (δηλαδή βλάβη) στο θύμα, εξ ου και το όνομα. + +Η απόδειξη απάτης είναι ευάλωτη σε επιθέσεις griefing επειδή το έντιμο μέρος πρέπει να ανταποκριθεί σε κάθε διαφωνία, ακόμα και σε άκυρες, ή να διακινδυνεύσει να χάσει τα κεφάλαιά του. Ένας κακόβουλος συμμετέχοντας μπορεί να αποφασίσει να δημοσιεύσει επανειλημμένα παλιές μεταβάσεις κατάστασης στην αλυσίδα, αναγκάζοντας το έντιμο μέρος να απαντήσει με την έγκυρη κατάσταση. Το κόστος αυτών των συναλλαγών στην αλυσίδα μπορεί να αυξηθεί γρήγορα, προκαλώντας απώλειες στα έντιμα μέρη στη διαδικασία. + +### Προκαθορισμένα σύνολα συμμετεχόντων {#predefined-participant-sets} + +Εκ σχεδιασμού, ο αριθμός των συμμετεχόντων που αποτελούν ένα κανάλι κατάστασης παραμένει σταθερός καθ' όλη τη διάρκεια ζωής του. Αυτό συμβαίνει επειδή η ενημέρωση του συνόλου των συμμετεχόντων θα περιέπλεκε τη λειτουργία του καναλιού, ειδικά κατά τη χρηματοδότηση του καναλιού, ή την επίλυση διαφορών. Η προσθήκη ή η αφαίρεση συμμετεχόντων θα απαιτούσε επίσης πρόσθετη δραστηριότητα εντός της αλυσίδας, η οποία αυξάνει τα γενικά έξοδα για τους χρήστες. + +Αν και αυτό κάνει τα κανάλια κατάστασης ευκολότερο να συλλογιστούν, περιορίζει τη χρησιμότητα των καναλιών σχεδίων στους προγραμματιστές εφαρμογών. Αυτό εξηγεί εν μέρει γιατί τα κανάλια κατάστασης έχουν εγκαταλειφθεί υπέρ άλλων λύσεων κλιμάκωσης, όπως τα rollups. + +### Παράλληλη επεξεργασία συναλλαγών {#parallel-transaction-processing} + +Οι συμμετέχοντες στο κανάλι κατάστασης στέλνουν ενημερώσεις κατάστασης με τη σειρά τους, γι' αυτό λειτουργούν καλύτερα για "εφαρμογές βασισμένες σε περιστροφές" (π.χ. ένα παιχνίδι σκάκι δύο παικτών). Αυτό εξαλείφει την ανάγκη να χειριστείτε ταυτόχρονες ενημερώσεις κατάστασης και μειώνει τη δουλειά που πρέπει να κάνει το συμβόλαιο στην αλυσίδα για να τιμωρήσει τους δημοσιευτές παλιών ενημερώσεων. Ωστόσο, μια παρενέργεια αυτού του σχεδιασμού είναι ότι οι συναλλαγές εξαρτώνται η μία από την άλλη, αυξάνοντας την καθυστέρηση και μειώνοντας τη συνολική εμπειρία χρήστη. + +Μερικά κανάλια κατάστασης επιλύουν αυτό το πρόβλημα χρησιμοποιώντας ένα σχεδιασμό "full-duplex" που χωρίζει την κατάσταση εκτός αλυσίδας σε δύο μονόδρομες καταστάσεις "simplex", επιτρέποντας ταυτόχρονες ενημερώσεις κατάστασης. Τέτοια σχέδια βελτιώνουν την απόδοση εκτός αλυσίδας και μειώνουν τις καθυστερήσεις συναλλαγών. + +## Χρήση καναλιών κατάστασης {#use-state-channels} + +Πολλά έργα παρέχουν υλοποιήσεις καταστάσεων καναλιών που μπορείτε να ενσωματώσετε στα dapps σας: + +- [Connext](https://connext.network/) +- [Kchannels](https://www.kchannels.io/) +- [Perun](https://perun.network/) +- [Raiden](https://raiden.network/) +- [Statechannels.org](https://statechannels.org/) + +## Περαιτέρω υλικό για διάβασμα {#further-reading} + +**Κανάλια κατάστασης** + +- [Λύσεις κλιμάκωσης του επιπέδου 2 του Ethereum: Κανάλια κατάστασης, Plasma και Truebit](https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4) _– Josh Stark, 12 Φεβ 2018_ +- [Κανάλια κατάστασης - εξήγηση](https://www.jeffcoleman.ca/state-channels/) _6 Νοε 2015 - Jeff Coleman_ +- [Βασικά στοιχεία καναλιών κατάστασης](https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/) _District0x_ +- [Κανάλια κατάστασης κρυπτοαλυσίδας: Μια κατάσταση της τέχνης](https://ieeexplore.ieee.org/document/9627997) + +_Γνωρίζετε κάποιο πόρο της κοινότητας που σας βοήθησε; Επεξεργαστείτε αυτή τη σελίδα και προσθέστε το!_ diff --git a/public/content/translations/el/developers/docs/scaling/validium/index.md b/public/content/translations/el/developers/docs/scaling/validium/index.md new file mode 100644 index 00000000000..c23521f5940 --- /dev/null +++ b/public/content/translations/el/developers/docs/scaling/validium/index.md @@ -0,0 +1,166 @@ +--- +title: Validium +description: Μια εισαγωγή στο Validium ως λύση κλιμάκωσης που χρησιμοποιείται επί του παρόντος από την κοινότητα του Ethereum. +lang: el +sidebarDepth: 3 +--- + +Το Validium είναι μια [λύση κλιμάκωσης](/developers/docs/scaling/) που επιβάλλει την ακεραιότητα των συναλλαγών χρησιμοποιώντας αποδείξεις εγκυρότητας όπως τα [ZK-rollups](/developers/docs/scaling/zk-rollups/), αλλά δεν αποθηκεύει δεδομένα συναλλαγών στο Ethereum Mainnet. Ενώ η διαθεσιμότητα δεδομένων εκτός αλυσίδας εισάγει συμβιβασμούς, μπορεί να οδηγήσει σε τεράστιες βελτιώσεις στην επεκτασιμότητα (τα validium μπορούν να επεξεργαστούν [~9.000 συναλλαγές ή περισσότερες, ανά δευτερόλεπτο](https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263)). + +## Προαπαιτούμενα {#prerequisites} + +Θα έπρεπε να έχετε διαβάσει και κατανοήσει τη σελίδα μας για την [Κλιμάκωση Ethereum](/developers/docs/scaling/) και το [Επίπεδο 2](/layer-2). + +## Τι είναι το validium; {#what-is-validium} + +Τα Validium είναι λύσεις κλιμάκωσης που χρησιμοποιούν διαθεσιμότητα δεδομένων εκτός αλυσίδας και υπολογισμούς που έχουν σχεδιαστεί για τη βελτίωση της απόδοσης μέσω της επεξεργασίας συναλλαγών εκτός του Ethereum Mainnet. Όπως τα πακέτα ενημέρωσης μηδενικής γνώσης (ZK-rollups), τα validium δημοσιεύουν [αποδείξεις μηδενικής γνώσης](/glossary/#zk-proof) για να επαληθεύσουν τις συναλλαγές εκτός αλυσίδας στο Ethereum. Αυτό αποτρέπει τις μεταβάσεις μη έγκυρης κατάστασης και ενισχύει τις εγγυήσεις ασφαλείας μιας αλυσίδας validium. + +Αυτές οι "αποδείξεις εγκυρότητας" μπορούν να έχουν τη μορφή ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) ή ZK-STARK (Zero-Knowledge Scalable Transparent ARgument of Knowledge). Περισσότερα για τις [αποδείξεις μηδενικής γνώσης](https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/). + +Το κεφάλαιο που ανήκει σε χρήστες validium ελέγχεται από ένα έξυπνο συμβόλαιο στο Ethereum. Τα Validium προσφέρουν σχεδόν στιγμιαίες αναλήψεις, όπως κάνουν τα ZK-rollups, μόλις επαληθευτεί η απόδειξη εγκυρότητας για ένα αίτημα ανάληψης στο Κεντρικό δίκτυο. Οι χρήστες μπορούν να κάνουν ανάληψη χρημάτων παρέχοντας [αποδείξεις Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/). Η απόδειξη Merkle επικυρώνει τη συμπερίληψη της συναλλαγής απόσυρσης του χρήστη σε μια επαληθευμένη παρτίδα συναλλαγών, επιτρέποντας στο συμβόλαιο στην αλυσίδα να επεξεργαστεί την ανάληψη. + +Ωστόσο, οι χρήστες του validium μπορούν να παγώσουν τα χρήματά τους και να περιοριστούν οι αναλήψεις. Αυτό μπορεί να συμβεί εάν οι διαχειριστές διαθεσιμότητας δεδομένων στην αλυσίδα validium διατηρούν δεδομένα κατάστασης εκτός αλυσίδας από τους χρήστες. Χωρίς πρόσβαση στα δεδομένα συναλλαγών, οι χρήστες δεν μπορούν να υπολογίσουν την απόδειξη Merkle που απαιτείται για την απόδειξη της ιδιοκτησίας κεφαλαίων και την εκτέλεση αναλήψεων. + +Αυτή είναι η κύρια διαφορά μεταξύ validiums και ZK-rollups για τις θέσεις τους στο φάσμα διαθεσιμότητας δεδομένων. Και οι δύο λύσεις προσεγγίζουν την αποθήκευση δεδομένων με διαφορετικό τρόπο, γεγονός που έχει επιπτώσεις στην ασφάλεια και την αξιοπιστία. + +## Πώς αλληλεπιδρούν τα validiums με το Ethereum; {#how-do-validiums-interact-with-ethereum} + +Τα Validium είναι πρωτόκολλα κλιμάκωσης που έχουν δημιουργηθεί πάνω από την υπάρχουσα αλυσίδα Ethereum. Αν και εκτελεί συναλλαγές εκτός αλυσίδας, μια αλυσίδα validium διαχειρίζεται από μια συλλογή έξυπνων συμβολαίων που είναι αναπτυγμένες στο Mainnet, συμπεριλαμβανομένων: + +1. **Συμβόλαιο επαληθευτή**: Το συμβόλαιο επαληθευτή επαληθεύει την εγκυρότητα των αποδείξεων που υποβάλλονται από τον χειριστή του validium κατά την πραγματοποίηση ενημερώσεων κατάστασης. Αυτό περιλαμβάνει αποδείξεις εγκυρότητας που πιστοποιούν την ορθότητα των συναλλαγών εκτός αλυσίδας και διαθεσιμότητας δεδομένων που επαληθεύουν την ύπαρξη των δεδομένων συναλλαγών εκτός αλυσίδας. + +2. **Κύριο συμβόλαιο**: Το κύριο συμβόλαιο αποθηκεύει δεσμεύσεις κατάστασης (Merkle roots) που υποβάλλονται από παραγωγούς μπλοκ και ενημερώνει την κατάσταση του validium μόλις επαληθευτεί μια απόδειξη εγκυρότητας στην αλυσίδα. Αυτό το συμβόλαιο επεξεργάζεται επίσης καταθέσεις και αναλήψεις από την αλυσίδα validium. + +Τα Validium βασίζονται επίσης στην κύρια αλυσίδα του Ethereum για τα ακόλουθα: + +### Διακανονισμός {#settlement} + +Οι συναλλαγές που εκτελούνται σε ένα validium δεν μπορούν να επιβεβαιωθούν πλήρως μέχρι η μητρική αλυσίδα να επαληθεύσει την εγκυρότητά τους. Όλες οι εργασίες που διεξάγονται σε ένα validium πρέπει τελικά να διευθετηθούν στο Κεντρικό Δίκτυο. Το blockchain Ethereum παρέχει επίσης «εγγυήσεις διακανονισμού» για τους χρήστες του validium, που σημαίνει ότι οι συναλλαγές εκτός αλυσίδας δεν μπορούν να αντιστραφούν ή να τροποποιηθούν αφού δεσμευτούν στην αλυσίδα. + +### Ασφάλεια {#security} + +Το Ethereum, που λειτουργεί ως επίπεδο διακανονισμού, εγγυάται επίσης την εγκυρότητα των μεταβάσεων κατάστασης στο validium. Οι συναλλαγές εκτός αλυσίδας που εκτελούνται στην αλυσίδα validium επαληθεύονται μέσω ενός έξυπνου συμβολαίου στο βασικό επίπεδο Ethereum. + +Εάν ο επαληθευτής συμβολαίου στην αλυσίδα κρίνει ότι η απόδειξη δεν είναι έγκυρη, οι συναλλαγές απορρίπτονται. Αυτό σημαίνει ότι οι χειριστές πρέπει να πληρούν τις προϋποθέσεις εγκυρότητας που επιβάλλονται από το πρωτόκολλο Ethereum πριν από την ενημέρωση της κατάστασης του validium. + +## Πώς λειτουργεί το validium; {#how-does-validium-work} + +### Συναλλαγές {#transactions} + +Οι χρήστες υποβάλλουν συναλλαγές στον χειριστή, έναν κόμβο που είναι υπεύθυνος για την εκτέλεση συναλλαγών στην αλυσίδα validium. Ορισμένα validium μπορεί να χρησιμοποιούν έναν μοναδικό χειριστή για την εκτέλεση της αλυσίδας ή να βασίζονται σε μηχανισμό [απόδειξης συμμετοχής (PoS)](/developers/docs/consensus-mechanisms/pos/) για την εναλλαγή χειριστών. + +Ο χειριστής συσσωρεύει τις συναλλαγές σε μια παρτίδα και τις στέλνει σε ένα κύκλωμα απόδειξης για να αποδειχθούν. Το κύκλωμα απόδειξης δέχεται την παρτίδα συναλλαγών (και άλλα σχετικά δεδομένα) ως εισόδους και εξόδους της απόδειξης εγκυρότητας που επαληθεύει ότι οι λειτουργίες εκτελέστηκαν σωστά. + +### Δεσμεύσεις κατάστασης {#state-commitments} + +Η κατάσταση του validium γίνεται hashed ως δέντρο Merkle με τη ρίζα να είναι αποθηκευμένη στο κύριο συμβόλαιο στο Ethereum. Η ρίζα Merkle, γνωστή και ως ρίζα κατάστασης, ενεργεί ως κρυπτογραφική δέσμευση για την τρέχουσα κατάσταση των λογαριασμών και των υπολοίπων στο validium. + +Για να εκτελέσει μια ενημέρωση κατάστασης, ο χειριστής πρέπει να υπολογίσει μια νέα ρίζα κατάστασης (μετά την εκτέλεση συναλλαγών) και να την υποβάλει στο συμβόλαιο στην αλυσίδα. Εάν η απόδειξη εγκυρότητας είναι εντάξει, η προτεινόμενη κατάσταση γίνεται αποδεκτή και το validium μεταβαίνει στη νέα ρίζα κατάστασης. + +### Καταθέσεις και αναλήψεις {#deposits-and-withdrawals} + +Οι χρήστες μετακινούν χρήματα από το Ethereum σε ένα validium καταθέτοντας ETH (ή οποιοδήποτε token συμβατό με ERC) στο συμβόλαιο στην αλυσίδα. Το συμβόλαιο μεταδίδει το συμβάν κατάθεσης στο validium εκτός αλυσίδας, όπου η διεύθυνση του χρήστη πιστώνεται με ένα ποσό ίσο με την κατάθεσή του. Ο χειριστής περιλαμβάνει επίσης αυτή τη συναλλαγή κατάθεσης σε νέα παρτίδα. + +Για να μετακινήσετε χρήματα πίσω στο Κεντρικό Δίκτυο, ένας χρήστης validium ξεκινά μια συναλλαγή ανάληψης και την υποβάλλει στον χειριστή που επικυρώνει το αίτημα ανάληψης και το περιλαμβάνει σε μια παρτίδα. Τα περιουσιακά στοιχεία του χρήστη στην αλυσίδα validium επίσης καταστρέφονται πριν μπορέσουν να εξέλθουν από το σύστημα. Μόλις επαληθευτεί η απόδειξη εγκυρότητας που σχετίζεται με την παρτίδα, ο χρήστης μπορεί να καλέσει το κύριο συμβόλαιο για να κάνει ανάληψη του ποσού που απομένει από την αρχική κατάθεσή του. + +Ως μηχανισμός κατά της λογοκρισίας, το πρωτόκολλο validium επιτρέπει στους χρήστες να κάνουν ανάληψη απευθείας από το συμβόλαιο validium χωρίς να περάσουν μέσω του χειριστή. Σε αυτή την περίπτωση, οι χρήστες πρέπει να παράσχουν μια απόδειξη Merkle στο συμβόλαιο επαληθευτή που δείχνει τη συμπερίληψη ενός λογαριασμού στην κατάσταση ρίζας. Εάν η απόδειξη γίνει αποδεκτή, ο χρήστης μπορεί να καλέσει τη συνάρτηση ανάληψης του κύριου συμβολαίου για να βγάλει τα χρήματά του από το validium. + +### Υποβολή παρτίδας {#batch-submission} + +Μετά την εκτέλεση μιας παρτίδας συναλλαγών, ο χειριστής υποβάλλει τη σχετική απόδειξη εγκυρότητας στο συμβόλαιο του επαληθευτή και προτείνει μια νέα ρίζα κατάστασης στο κύριο συμβόλαιο. Εάν η απόδειξη είναι έγκυρη, το κύριο συμβόλαιο ενημερώνει την κατάσταση του validium και οριστικοποιεί τα αποτελέσματα των συναλλαγών στην παρτίδα. + +Σε αντίθεση με ένα ZK rollup, δεν απαιτείται από τους παραγωγούς μπλοκ σε ένα validium να δημοσιεύουν δεδομένα συναλλαγών για παρτίδες συναλλαγών (μόνο κεφαλίδες μπλοκ). Αυτό κάνει το validium ένα καθαρό πρωτόκολλο κλιμάκωσης εκτός αλυσίδας, σε αντίθεση με τα "υβριδικά" πρωτόκολλα κλιμάκωσης (όπως τα, [layer 2](/layer-2/)) που δημοσιεύουν δεδομένα κατάστασης στην κύρια αλυσίδα Ethereum ως `calldata`. + +### Διαθεσιμότητα δεδομένων {#data-availability} + +Όπως αναφέρθηκε, τα validiums χρησιμοποιούν ένα μοντέλο διαθεσιμότητας δεδομένων εκτός αλυσίδας, όπου οι χειριστές αποθηκεύουν όλα τα δεδομένα συναλλαγών εκτός του Ethereum Mainnet. Το χαμηλό αποτύπωμα δεδομένων στην αλυσίδα του Validium βελτιώνει την κλιμάκωση (η απόδοση δεν περιορίζεται από την ικανότητα επεξεργασίας δεδομένων του Ethereum) και μειώνει τα τέλη χρήστη (το κόστος δημοσίευσης `calldata` είναι χαμηλότερο). + +Ωστόσο, η διαθεσιμότητα δεδομένων εκτός αλυσίδας παρουσιάζει ένα πρόβλημα: τα δεδομένα που είναι απαραίτητα για τη δημιουργία ή την επαλήθευση των αποδείξεων Merkle ενδέχεται να μην είναι διαθέσιμα. Αυτό σημαίνει ότι οι χρήστες ενδέχεται να μην μπορούν να κάνουν ανάληψη κεφαλαίων από το συμβόλαιο στην αλυσίδα, εάν οι χειριστές ενεργήσουν κακόβουλα. + +Διάφορες λύσεις validium προσπαθούν να λύσουν αυτό το πρόβλημα αποκεντρώνοντας την αποθήκευση των δεδομένων κατάστασης. Αυτό περιλαμβάνει τον εξαναγκασμό των παραγωγών μπλοκ να στείλουν τα υποκείμενα δεδομένα σε "διαχειριστές διαθεσιμότητας δεδομένων" που είναι υπεύθυνοι για την αποθήκευση δεδομένων εκτός αλυσίδας και καθιστώντας τα διαθέσιμα στους χρήστες κατόπιν αιτήματος. + +Οι διαχειριστές διαθεσιμότητας δεδομένων στο validium βεβαιώνουν τη διαθεσιμότητα δεδομένων για συναλλαγές εκτός αλυσίδας υπογράφοντας κάθε παρτίδα validium. Αυτές οι υπογραφές αποτελούν μια μορφή "απόδειξης διαθεσιμότητας" την οποία ελέγχει το συμβόλαιο επαληθευτή στην αλυσίδα πριν εγκρίνει τις ενημερώσεις κατάστασης. + +Τα Validium διαφέρουν ως προς την προσέγγισή τους για τη διαχείριση διαθεσιμότητας δεδομένων. Ορισμένοι βασίζονται σε αξιόπιστα μέλη για την αποθήκευση δεδομένων κατάστασης, ενώ άλλοι χρησιμοποιούν τυχαία εκχωρημένους επικυρωτές για την εργασία. + +#### Επιτροπή διαθεσιμότητας δεδομένων (DAC) {#data-availability-committee} + +Για να εγγυηθούν τη διαθεσιμότητα δεδομένων εκτός αλυσίδας, ορισμένες λύσεις validium διορίζουν μια ομάδα αξιόπιστων οντοτήτων, συλλογικά γνωστές ως επιτροπή διαθεσιμότητας δεδομένων (DAC), για να αποθηκεύουν αντίγραφα της κατάστασης και να παρέχουν απόδειξη διαθεσιμότητας δεδομένων. Η υλοποίηση των DAC είναι ευκολότερη και απαιτείται λιγότερος συντονισμός, καθώς τα μέλη είναι λίγα. + +Ωστόσο, οι χρήστες πρέπει να εμπιστεύονται την DAC ότι θα κάνει τα δεδομένα διαθέσιμα όταν χρειάζεται (π.χ. για τη δημιουργία αποδείξεων Merkle). Υπάρχει η πιθανότητα τα μέλη των επιτροπών διαθεσιμότητας δεδομένων [να παραβιαστούν από έναν κακόβουλο παράγοντα](https://notes.ethereum.org/DD7GyItYQ02d0ax_X-UbWg?view) ο οποίος μπορεί στη συνέχεια να αποκρύψει δεδομένα εκτός αλυσίδας. + +[Περισσότερα σχετικά με τις επιτροπές διαθεσιμότητας δεδομένων σε validium](https://medium.com/starkware/data-availability-e5564c416424). + +#### Διαθεσιμότητα δεσμευμένων δεδομένων {#bonded-data-availability} + +Άλλα validium απαιτούν από τους συμμετέχοντες που είναι επιφορτισμένοι με την αποθήκευση δεδομένων εκτός σύνδεσης να αποθηκεύσουν (δηλαδή να κλειδώσουν) token σε ένα έξυπνο συμβόλαιο πριν αναλάβουν τους ρόλους τους. Αυτή η αποθήκευση κεφαλαίου χρησιμεύει ως «δεσμός» για να εγγυηθεί την ειλικρινή συμπεριφορά μεταξύ των διαχειριστών διαθεσιμότητας δεδομένων και μειώνει τις υποθέσεις εμπιστοσύνης. Εάν αυτοί οι συμμετέχοντες αποτύχουν να αποδείξουν τη διαθεσιμότητα των δεδομένων, ο δεσμός περικόπτεται. + +Σε ένα σύστημα διαθεσιμότητας δεσμευμένων δεδομένων, μπορεί να ανατεθεί σε οποιονδήποτε να κρατήσει δεδομένα εκτός αλυσίδας μόλις παρέχει την απαιτούμενη αποθήκευση. Αυτό διευρύνει το pool των επιλέξιμων διαχειριστών διαθεσιμότητας δεδομένων, μειώνοντας τον συγκεντρωτισμό που επηρεάζει τις επιτροπές διαθεσιμότητας δεδομένων (DAC). Το πιο σημαντικό είναι ότι αυτή η προσέγγιση βασίζεται σε κρυπτοοικονομικά κίνητρα για την αποτροπή κακόβουλης δραστηριότητας, η οποία είναι πολύ πιο ασφαλής από τον διορισμό αξιόπιστων μερών για την ασφάλιση δεδομένων εκτός σύνδεσης στο validium. + +[Περισσότερα σχετικά με τη διαθεσιμότητα δεσμευμένων δεδομένων στα validiums](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf). + +## Volitions και validium {#volitions-and-validium} + +Τα validium προσφέρουν πολλά οφέλη, αλλά συνοδεύονται από συμβιβασμούς (κυρίως, διαθεσιμότητα δεδομένων). Όμως, όπως συμβαίνει με πολλές λύσεις κλιμάκωσης, τα validium είναι κατάλληλα για συγκεκριμένες περιπτώσεις χρήσης — και γι' αυτό δημιουργήθηκαν τα volition. + +Τα volition συνδυάζουν μια αλυσίδα ZK rollup και validium και επιτρέπουν στους χρήστες να κάνουν εναλλαγές μεταξύ των δύο λύσεων κλιμάκωσης. Με τα volitions, οι χρήστες μπορούν να επωφεληθούν από τη διαθεσιμότητα δεδομένων εκτός αλυσίδας του validium για ορισμένες συναλλαγές, διατηρώντας παράλληλα την ελευθερία να μεταβούν σε μια λύση διαθεσιμότητας δεδομένων εκτός αλυσίδας (ZK-rollup) εάν χρειάζονταν. Αυτό ουσιαστικά δίνει στους χρήστες την ελευθερία να επιλέγουν συμβιβασμούς όπως υπαγορεύονται από τις ιδιαίτερες συνθήκες τους. + +Ένα αποκεντρωμένο ανταλλακτήριο (DEX) μπορεί να προτιμά τη χρήση της επεκτάσιμης και ιδιωτικής υποδομής ενός validium για συναλλαγές υψηλής αξίας. Μπορεί επίσης να χρησιμοποιήσει ένα ZK-rollup για χρήστες που επιθυμούν υψηλότερες εγγυήσεις ασφάλειας και αξιοπιστίας ενός ZK-rollup. + +## Validium και συμβατότητα EVM {#validiums-and-evm-compatibility} + +Όπως και τα ZK-rollup, τα validium ταιριάζουν κυρίως σε απλές εφαρμογές, όπως ανταλλαγές token και πληρωμές. Η υποστήριξη γενικού υπολογισμού και εκτέλεσης έξυπνων συμβολαίων μεταξύ των validium είναι δύσκολο να εφαρμοστεί, δεδομένου του σημαντικού κόστους απόδειξης εντολών [EVM](/developers/docs/evm/) σε ένα κύκλωμα απόδειξης μηδενικής γνώσης. + +Ορισμένα έργα validium προσπαθούν να παρακάμψουν αυτό το πρόβλημα με τη μεταγλώττιση γλωσσών συμβατών με EVM (π.χ. Solidity, Vyper) για τη δημιουργία προσαρμοσμένου bytecode βελτιστοποιημένου για αποτελεσματική απόδειξη. Ένα μειονέκτημα αυτής της προσέγγισης είναι ότι νέα VM φιλικά προς τις αποδείξεις μηδενικής γνώσης μπορεί να μην υποστηρίζουν σημαντικούς opcode EVM και ότι οι προγραμματιστές πρέπει να γράφουν απευθείας στη γλώσσα υψηλού επιπέδου για μια βέλτιστη εμπειρία. Αυτό δημιουργεί ακόμη περισσότερα προβλήματα: αναγκάζει τους προγραμματιστές να δημιουργήσουν dapp με μια εντελώς νέα στοίβα ανάπτυξης και διακόπτει τη συμβατότητα με την τρέχουσα υποδομή Ethereum. + +Ορισμένες ομάδες, ωστόσο, προσπαθούν να βελτιστοποιήσουν τους υπάρχοντες opcode EVM για κυκλώματα απόδειξης ZK. Αυτό θα οδηγήσει στην ανάπτυξη ενός εικονικού μηχανήματος του Ethereum μηδενικής γνώσης (zkEVM), μιας EVM-συμβατής VM που παράγει αποδείξεις για την επαλήθευση της ορθότητας της εκτέλεσης του προγράμματος. Με ένα zkEVM, οι αλυσίδες validium μπορούν να εκτελούν έξυπνα συμβόλαια εκτός αλυσίδας και να υποβάλλουν αποδείξεις εγκυρότητας για να επαληθεύσουν έναν υπολογισμό εκτός αλυσίδας (χωρίς να χρειάζεται να τον εκτελέσουν ξανά) στο Ethereum. + +[Περισσότερα για τα zkEVM](https://www.alchemy.com/overviews/zkevm). + +## Πώς τα validium πετυχαίνουν την επέκταση του Ethereum; {#scaling-ethereum-with-validiums} + +### 1. Αποθηκευτικός χώρος δεδομένων εκτός αλυσίδας {#offchain-data-storage} + +Τα έργα κλιμάκωσης επιπέδου 2, όπως τα optimistic rollups και τα ZK-rollups, ανταλλάσσουν την άπειρη επεκτασιμότητα των αγνών εκτός αλυσίδας πρωτοκόλλων κλιμάκωσης (π.χ. [Plasma](/developers/docs/scaling/plasma/)) για ασφάλεια δημοσιεύοντας ορισμένα δεδομένα συναλλαγών στο L1. Αυτό όμως σημαίνει ότι οι ιδιότητες επεκτασιμότητας των rollup περιορίζονται από το εύρος ζώνης δεδομένων στο Κεντρικό Δίκτυο του Ethereum [το [data sharding (θραυσματοποίηση δεδομένων)](/roadmap/danksharding/) προτείνει τη βελτίωση της χωρητικότητας αποθήκευσης δεδομένων του Ethereum για αυτόν τον λόγο]. + +Τα validium επιτυγχάνουν επεκτασιμότητα διατηρώντας όλα τα δεδομένα συναλλαγών εκτός αλυσίδας και δημοσιεύουν δεσμεύσεις κατάστασης μόνο (και αποδείξεις εγκυρότητας) όταν αναμεταδίδουν ενημερώσεις κατάστασης στην κύρια αλυσίδα Ethereum. Η ύπαρξη αποδείξεων εγκυρότητας, ωστόσο, παρέχει στα validium υψηλότερες εγγυήσεις ασφάλειας από άλλες αγνές λύσεις κλιμάκωσης εκτός αλυσίδας, συμπεριλαμβανομένων των Plasma και [sidechains](/developers/docs/scaling/sidechains/). Με τη μείωση του όγκου των δεδομένων που πρέπει να επεξεργάζεται το Ethereum πριν από την επικύρωση συναλλαγών εκτός αλυσίδας, οι σχεδιασμοί του validium επεκτείνουν σημαντικά την απόδοση στο Κεντρικό Δίκτυο. + +### 2. Αναδρομικές αποδείξεις {#recursive-proofs} + +Μια αναδρομική απόδειξη είναι μια απόδειξη εγκυρότητας που επαληθεύει την εγκυρότητα άλλων αποδείξεων. Αυτές οι «αποδείξεις αποδείξεων» δημιουργούνται με την αναδρομική συσσώρευση πολλαπλών αποδείξεων μέχρι να δημιουργηθεί μία τελική απόδειξη που επαληθεύει όλες τις προηγούμενες αποδείξεις. Οι αναδρομικές αποδείξεις κλιμακώνουν τις ταχύτητες επεξεργασίας του blockchain αυξάνοντας τον αριθμό των συναλλαγών που μπορούν να επαληθευτούν ανά απόδειξη εγκυρότητας. + +Συνήθως, κάθε απόδειξη εγκυρότητας που υποβάλλει προς επαλήθευση ο χειριστής του validium στο Ethereum επικυρώνει την ακεραιότητα ενός μεμονωμένου μπλοκ. Αντιθέτως, μια μεμονωμένη αναδρομική απόδειξη μπορεί να χρησιμοποιηθεί για να επιβεβαιώσει την εγκυρότητα πολλών μπλοκ validium ταυτόχρονα — αυτό είναι δυνατό αφού το κύκλωμα απόδειξης μπορεί αναδρομικά να συγκεντρώσει αρκετές αποδείξεις μπλοκ σε μία τελική απόδειξη. Εάν το συμβόλαιο επαλήθευσης στην αλυσίδα αποδέχεται την αναδρομική απόδειξη, όλα τα υποκείμενα μπλοκ οριστικοποιούνται αμέσως. + +## Πλεονεκτήματα και μειονεκτήματα των validium {#pros-and-cons-of-validium} + +| Πλεονεκτήματα | Μειονεκτήματα | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Οι αποδείξεις εγκυρότητας επιβάλλουν την ακεραιότητα των συναλλαγών εκτός αλυσίδας και εμποδίζουν τους χειριστές να οριστικοποιήσουν τις ενημερώσεις μη έγκυρης κατάστασης. | Η παραγωγή αποδείξεων εγκυρότητας απαιτεί ειδικό υλικό, το οποίο ενέχει κίνδυνο κεντρικής διαχείρισης. | +| Αυξάνει την κεφαλαιακή απόδοση για τους χρήστες (δίχως καθυστερήσεις στην ανάληψη κεφαλαίων πίσω στο Ethereum) | Περιορισμένη υποστήριξη για γενικό υπολογισμό/έξυπνα συμβόλαια. Απαιτούνται εξειδικευμένες γλώσσες για την ανάπτυξη. | +| Δεν είναι ευάλωτο σε ορισμένες οικονομικές επιθέσεις που αντιμετωπίζουν συστήματα ανθεκτικά στην απάτη μέσα σε εφαρμογές υψηλής αξίας. | Υψηλή υπολογιστική ισχύς που απαιτείται για τη δημιουργία αποδείξεων ZK. Δεν είναι οικονομικά αποδοτικό για εφαρμογές χαμηλής απόδοσης. | +| Μειώνει τα τέλη gas για τους χρήστες μέσω της μη δημοσίευσης calldata στο Κεντρικό Δίκτυο Ethereum. | Πιο αργός υποκειμενικός χρόνος οριστικότητα (10-30 λεπτά για τη δημιουργία απόδειξης ZK), αλλά ταχύτερη απόκριση έως την πλήρη οριστικότητα επειδή δεν υπάρχει καθυστέρηση για λόγους αμφισβήτησης. | +| Κατάλληλο για συγκεκριμένες περιπτώσεις χρήσης, όπως οι συναλλαγές ή τα παιχνίδια blockchain που δίνουν προτεραιότητα στη μυστικότητα των συναλλαγών και την επεκτασιμότητα. | Οι χρήστες μπορούν να αποτραπούν από την ανάληψη χρημάτων, καθώς η δημιουργία αποδεικτικών ιδιοκτησίας της Merkle απαιτεί τα δεδομένα εκτός αλυσίδας να είναι διαθέσιμα ανά πάσα στιγμή. | +| Η διαθεσιμότητα δεδομένων εκτός αλυσίδας παρέχει υψηλότερα επίπεδα απόδοσης και αυξάνει την κλιμάκωση. | Το μοντέλο ασφαλείας βασίζεται σε υποθέσεις εμπιστοσύνης και κρυπτοοικονομικά κίνητρα, σε αντίθεση με τα ZK-rollup, τα οποία βασίζονται καθαρά σε κρυπτογραφικούς μηχανισμούς ασφάλειας. | + +### Χρήση Validium/Volitions {#use-validium-and-volitions} + +Υπάρχουν πολλά έργα που παρέχουν υλοποιήσεις Validium και volition τις οποίες μπορείτε να ενσωματώσετε στις dapp σας: + +**StarkWare StarkEx** - _Το StarkEx είναι μια λύση επεκτασιμότητας Ethereum Επίπεδου 2 (L2) που βασίζεται σε αποδείξεις εγκυρότητας. Μπορεί να λειτουργήσει είτε σε λειτουργίες διαθεσιμότητας δεδομένων ZK-Rollup είτε Validium._ + +- [Τεκμηρίωση](https://docs.starkware.co/starkex-v4/starkex-deep-dive/data-availability-modes#validium) +- [Ιστότοπος](https://starkware.co/starkex/) + +**Matter Labs zkPorter**- _Το zkPorter είναι ένα πρωτόκολλο κλιμάκωσης επιπέδου 2 που αντιμετωπίζει τη διαθεσιμότητα δεδομένων με μια υβριδική προσέγγιση που συνδυάζει τις ιδέες του zkRollup και της θραυσματοποίησης (sharding). Μπορεί να υποστηρίξει αυθαίρετα πολλά τμήματα, το καθένα με τη δική του πολιτική διαθεσιμότητας δεδομένων._ + +- [Ιστολόγιο](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf) +- [Τεκμηρίωση](https://docs.zksync.io/zk-stack/concepts/data-availability) +- [Ιστότοπος](https://zksync.io/) + +## Περισσότερες πληροφορίες {#further-reading} + +- [Το Validium και το Επίπεδο 2 Two-By-Two — Τεύχος Αρ. 99](https://www.buildblockchain.tech/newsletter/issues/no-99-validium-and-the-layer-2-two-by-two) +- [ZK-rollups ή Validium](https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263) +- [Volition and the Emerging Data Availability spectrum](https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb) +- [Πακέτα ενηνέρωσης, Validiums και Volitions: Μάθετε για τις πιο δημοφιλείς λύσεις κλιμάκωσης του Ethereum](https://www.defipulse.com/blog/rollups-validiums-and-volitions-learn-about-the-hottest-ethereum-scaling-solutions) +- [Πρακτικός οδηγός για τα πακέτα ενημέρωσης Ethereum.](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) diff --git a/public/content/translations/el/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/el/developers/docs/scaling/zk-rollups/index.md new file mode 100644 index 00000000000..357cb8a7bc6 --- /dev/null +++ b/public/content/translations/el/developers/docs/scaling/zk-rollups/index.md @@ -0,0 +1,256 @@ +--- +title: Rollup μηδενικής γνώσης +description: Μια εισαγωγή στa zero-knowledge rollup — μια λύση κλιμάκωσης που χρησιμοποιεί η κοινότητα του Ethereum. +lang: el +--- + +Τα Zero-knowledge rollups (ZK-rollups) είναι [λύσεις κλιμάκωσης](/developers/docs/scaling/) επιπέδου 2 που αυξάνουν την απόδοση στο Ethereum Mainnet μετακινώντας τον υπολογισμό και την αποθήκευση κατάστασης εκτός αλυσίδας. Τα ZK-rollup μπορούν να επεξεργαστούν χιλιάδες συναλλαγές σε μια παρτίδα και στη συνέχεια να δημοσιεύσουν μόνο μερικά ελάχιστα συνοπτικά δεδομένα στο Κεντρικό Δίκτυο. Αυτά τα συνοπτικά δεδομένα προσδιορίζουν τις αλλαγές που πρέπει να γίνουν στην κατάσταση Ethereum και κάποια κρυπτογραφική απόδειξη ότι αυτές οι αλλαγές είναι σωστές. + +## Προαπαιτούμενα {#prerequisites} + +Θα έπρεπε να έχετε διαβάσει και κατανοήσει τη σελίδα μας για την [Κλιμάκωση Ethereum](/developers/docs/scaling/) και το [Επίπεδο 2](/layer-2). + +## Τι είναι τα zero-knowledge rollup; {#what-are-zk-rollups} + +Τα **Zero-knowledge rollup (ZK-rollup) ή πακέτα ενημερώσεων μηδενικής γνώσης** ομαδοποιούν (ή συσσωρεύουν σε ένα πακέτο) συναλλαγές σε παρτίδες που εκτελούνται εκτός αλυσίδας. Ο υπολογισμός εκτός αλυσίδας μειώνει τον όγκο των δεδομένων που πρέπει να αναρτηθούν στο blockchain. Οι χειριστές ZK-rollup υποβάλλουν μια σύνοψη των αλλαγών που απαιτούνται για την αποτύπωση όλων των συναλλαγών σε μία παρτίδα αντί να στέλνουν κάθε συναλλαγή ξεχωριστά. Παράγουν επίσης [αποδείξεις εγκυρότητας](/glossary/#validity-proof) για να αποδείξουν την ορθότητα των αλλαγών τους. + +Η κατάσταση του ZK-rollup συντηρείται από ένα έξυπνο συμβόλαιο που αναπτύσσεται στο δίκτυο Ethereum. Για να ενημερώσετε αυτή την κατάσταση, οι κόμβοι ZK-rollup πρέπει να υποβάλουν μια απόδειξη εγκυρότητας προς επαλήθευση. Όπως αναφέρθηκε, η απόδειξη εγκυρότητας είναι μια κρυπτογραφική διασφάλιση ότι η αλλαγή κατάστασης που προτείνεται από το πακέτο ενημέρωσης είναι ουσιαστικά το αποτέλεσμα της εκτέλεσης της συγκεκριμένης παρτίδας συναλλαγών. Αυτό σημαίνει ότι τα ZK-rollups χρειάζεται μόνο να παρέχουν αποδείξεις εγκυρότητας για την οριστικοποίηση των συναλλαγών στο Ethereum αντί να δημοσιεύουν όλα τα δεδομένα συναλλαγών στην αλυσίδα, όπως τα [optimistic rollups](/developers/docs/scaling/optimistic-rollups/). + +Δεν υπάρχουν καθυστερήσεις κατά τη μεταφορά κεφαλαίων από ένα ZK-rollup στο Ethereum, επειδή οι συναλλαγές εξόδου εκτελούνται μόλις το συμβόλαιο ZK-rollup επαληθεύσει την απόδειξη εγκυρότητας. Αντίθετα, η ανάληψη κεφαλαίων από optimistic rollup υπόκειται σε καθυστέρηση ώστε να δοθεί σε οποιονδήποτε η δυνατότητα να αμφισβητήσει τη συναλλαγή εξόδου με μια [απόδειξη απάτης](/glossary/#fraud-proof). + +Τα ZK-rollup γράφουν συναλλαγές στο Ethereum ως `calldata`. Τα `calldata` είναι εκεί όπου αποθηκεύονται τα δεδομένα που περιλαμβάνονται σε εξωτερικές κλήσεις προς συναρτήσεις έξυπνων συμβολαίων. Οι πληροφορίες στο `calldata` δημοσιεύονται στην κρυπτοαλυσίδα, επιτρέποντας σε οποιονδήποτε να ανακατασκευάσει ανεξάρτητα την κατάσταση του πακέτου ενημέρωσης. Τα ZK-rollup χρησιμοποιούν τεχνικές συμπίεσης για τη μείωση των δεδομένων συναλλαγών: για παράδειγμα, οι λογαριασμοί αντιπροσωπεύονται από ένα ευρετήριο και όχι από μια διεύθυνση, κάτι που εξοικονομεί 28 byte δεδομένων. Η δημοσίευση δεδομένων στην αλυσίδα είναι ένα σημαντικό κόστος για τα rollups, επομένως η συμπίεση δεδομένων μπορεί να μειώσει τα τέλη για τους χρήστες. + +## Πώς αλληλεπιδρούν τα ZK-rollups με το Ethereum; {#zk-rollups-and-ethereum} + +Μια αλυσίδα ZK-rollup είναι ένα πρωτόκολλο εκτός αλυσίδας που λειτουργεί πάνω στην κρυπτοαλυσίδα Ethereum, το οποίο διαχειρίζονται τα έξυπνα συμβόλαια Ethereum εντός της αλυσίδας. Τα ZK-rollup εκτελούν συναλλαγές εκτός του Κεντρικού Δικτύου, αλλά σε περιοδική βάση δεσμεύουν παρτίδες συναλλαγών εκτός αλυσίδας σε ένα συμβόλαιο με πακέτο ενημέρωσης στην αλυσίδα. Αυτό το αρχείο συναλλαγών είναι αμετάβλητο, όπως η αλυσίδα μπλοκ Ethereum, και σχηματίζει την αλυσίδα ZK-rollup. + +Η βασική αρχιτεκτονική του ZK-rollup αποτελείται από τα ακόλουθα στοιχεία: + +1. **Συμβόλαια επί της αλυσίδας**: Όπως αναφέρθηκε, το πρωτόκολλο ZK-rollup ελέγχεται από έξυπνα συμβόλαια που εκτελούνται στο Ethereum. Αυτό περιλαμβάνει το κύριο συμβόλαιο που αποθηκεύει το πακέτο ενημέρωσης του μπλοκ, παρακολουθεί τις καταθέσεις και τις ενημερώσεις κατάστασης. Ένα άλλο συμβόλαιο στην αλυσίδα (το συμβόλαιο επαλήθευσης) επαληθεύει τις αποδείξεις μηδενικής γνώσης που υποβάλλονται από τους παραγωγούς μπλοκ. Έτσι, το Ethereum χρησιμεύει ως το βασικό επίπεδο ή "επίπεδο 1" για το ZK-rollup. + +2. **Εικονική Μηχανή (VM) εκτός αλυσίδας**: Ενώ το πρωτόκολλο ZK-rollup ζει στο Ethereum, η εκτέλεση συναλλαγών και η αποθήκευση κατάστασης συμβαίνουν σε μια ξεχωριστή εικονική μηχανή ανεξάρτητη από το [EVM](/developers/docs/evm/). Αυτή η εικονική μηχανή (VM) εκτός αλυσίδας είναι το περιβάλλον εκτέλεσης για συναλλαγές στο ZK-rollup και χρησιμεύει ως το δευτερεύον επίπεδο ή «επίπεδο 2» για το πρωτόκολλο ZK-rollup. Οι αποδείξεις εγκυρότητας που επαληθεύονται στο Ethereum Mainnet εγγυώνται τη σωστή λειτουργία των μεταβάσεων κατάστασης στην εικονική μηχανή εκτός αλυσίδας. + +Τα ZK-rollups είναι "υβριδικές λύσεις κλιμάκωσης", πρωτόκολλα εκτός αλυσίδας που λειτουργούν ανεξάρτητα αλλά αντλούν ασφάλεια από το Ethereum. Ειδικότερα, το δίκτυο Ethereum επιβάλλει την εγκυρότητα των ενημερώσεων κατάστασης στο ZK-rollup και εγγυάται τη διαθεσιμότητα των δεδομένων πίσω από κάθε ενημέρωση στην κατάσταση του rollup. Ως αποτέλεσμα, τα ZK-rollups είναι σημαντικά ασφαλέστερα από τις καθαρές λύσεις κλιμάκωσης εκτός αλυσίδας, όπως οι [πλευρικές αλυσίδες](/developers/docs/scaling/sidechains/), οι οποίες είναι υπεύθυνες για τις ιδιότητες ασφάλειάς τους ή τα [validiums](/developers/docs/scaling/validium/), τα οποία επίσης επαληθεύουν συναλλαγές στο Ethereum με αποδείξεις εγκυρότητας, αλλά αποθηκεύουν δεδομένα συναλλαγών αλλού. + +Τα ZK-rollup βασίζονται στο κύριο πρωτόκολλο Ethereum για τα εξής: + +### Διαθεσιμότητα δεδομένων {#data-availability} + +Τα ZK-rollups δημοσιεύουν δεδομένα κατάστασης για κάθε συναλλαγή που επεξεργάζεται εκτός αλυσίδας στο Ethereum. Με αυτά τα δεδομένα, είναι δυνατό για άτομα ή επιχειρήσεις να αναπαράγουν την κατάσταση του rollup και να επικυρώσουν οι ίδιοι την αλυσίδα. Το Ethereum καθιστά αυτά τα δεδομένα διαθέσιμα σε όλους τους συμμετέχοντες στο δίκτυο ως `calldata`. + +Τα ZK-rollup δεν χρειάζεται να δημοσιεύουν πολλά δεδομένα συναλλαγών επί της αλυσίδας, επειδή οι αποδείξεις εγκυρότητας επαληθεύουν ήδη την αυθεντικότητα των μεταβάσεων κατάστασης. Ωστόσο, η αποθήκευση δεδομένων στην αλυσίδα εξακολουθεί να είναι σημαντική επειδή επιτρέπει τη χωρίς άδεια, ανεξάρτητη επαλήθευση της κατάστασης της αλυσίδας επιπέδου 2, η οποία με τη σειρά της επιτρέπει σε οποιονδήποτε να υποβάλει παρτίδες συναλλαγών, αποτρέποντας τους κακόβουλους χειριστές από τη λογοκρισία ή το πάγωμα της αλυσίδας. + +Η πρόσβαση στην αλυσίδα είναι απαραίτητη για τους χρήστες για να αλληλεπιδράσουν με το rollup. Χωρίς πρόσβαση στα δεδομένα κατάστασης, οι χρήστες δεν μπορούν να ρωτήσουν το υπόλοιπο του λογαριασμού τους ή να ξεκινήσουν συναλλαγές (π.χ. αναλήψεις) που βασίζονται σε πληροφορίες κατάστασης. + +### Οριστικότητα συναλλαγής {#transaction-finality} + +Το Ethereum λειτουργεί ως επίπεδο διευθέτησης για τα ZK-rollups: οι συναλλαγές επιπέδου 2 ολοκληρώνονται μόνο εάν το συμβόλαιο επιπέδου 1 αποδεχτεί την απόδειξη εγκυρότητας. Αυτό εξαλείφει τον κίνδυνο οι κακόβουλοι χειριστές να διαφθείρουν την αλυσίδα (π.χ. κλοπή κεφαλαίων rollup) καθώς κάθε συναλλαγή πρέπει να εγκριθεί στο Κεντρικό Δίκτυο. Επίσης, το Ethereum εγγυάται ότι οι λειτουργίες των χρηστών δεν μπορούν να αντιστραφούν μόλις οριστικοποιηθούν στο L1. + +### Αντίσταση στη Λογοκρισία {#censorship-resistance} + +Τα περισσότερα ZK-rollups χρησιμοποιούν έναν "υπερκόμβο" (τον χειριστή) για να εκτελέσουν συναλλαγές, να παράγουν παρτίδες και να υποβάλουν μπλοκ στο L1. Παρότι αυτό διασφαλίζει την αποτελεσματικότητα, αυξάνει τον κίνδυνο λογοκρισίας: οι κακόβουλοι χειριστές ZK-rollup μπορούν να λογοκρίνουν τους χρήστες αρνούμενοι να συμπεριλάβουν τις συναλλαγές τους σε παρτίδες. + +Ως μέτρο ασφαλείας, τα ZK-rollup επιτρέπουν στους χρήστες να υποβάλλουν συναλλαγές απευθείας στο συμβόλαιο του rollup στο Κεντρικό Δίκτυο, εάν πιστεύουν ότι λογοκρίνονται από τον χειριστή. Αυτό επιτρέπει στους χρήστες να εξαναγκάσουν μια έξοδο από το ZK-rollup στο Ethereum χωρίς να χρειάζεται να βασίζονται στην άδεια του χειριστή. + +## Πώς λειτουργούν τα ZK-rollups; {#how-do-zk-rollups-work} + +### Συναλλαγές {#transactions} + +Οι χρήστες ενός ZK-rollup υπογράφουν συναλλαγές και υποβάλλουν στους χειριστές L2 για επεξεργασία και συμπερίληψη στην επόμενη παρτίδα. Σε ορισμένες περιπτώσεις, ο χειριστής είναι μια κεντρικοποιημένη οντότητα, ονόματι sequencer, που εκτελεί συναλλαγές, τις συγκεντρώνει σε παρτίδες και τις υποβάλλει στο L1. Το sequencer σε αυτό το σύστημα είναι η μόνη οντότητα που επιτρέπεται να παράγει μπλοκ στο L2 και να προσθέτει συναλλαγές rollup στο συμβόλαιο του ZK-rollup. + +Άλλα ZK-rollup μπορούν να εναλλάσουν τον ρόλο χειριστή χρησιμοποιώντας ένα σετ επικύρωσης [απόδειξης συμμετοχής](/developers/docs/consensus-mechanisms/pos/). Οι υποψήφιοι χειριστές καταθέτουν κεφάλαια στο συμβόλαιο του rollup, με το μέγεθος κάθε μεριδίου κεφαλαίου να επηρεάζει τις πιθανότητες αυτού που αποθηκεύει κεφάλαιο να επιλεγεί για να παραγάγει το επόμενο πακέτο του rollup. Το δεσμευμένο κεφάλαιο του χειριστή μπορεί να περικοπεί αν ενεργήσει κακόβουλα, γεγονός που τον ωθεί να δημοσιεύει έγκυρα μπλοκ. + +#### Πώς τα ZK-rollup δημοσιεύουν δεδομένα συναλλαγών στο Ethereum {#how-zk-rollups-publish-transaction-data-on-ethereum} + +Όπως εξηγήθηκε, τα δεδομένα συναλλαγών δημοσιεύονται στο Ethereum ως `calldata`. Το `calldata` είναι μια περιοχή δεδομένων σε ένα έξυπνο συμβόλαιο που χρησιμοποιείται για τη μεταφορά ορισμάτων σε μια συνάρτηση και συμπεριφέρεται παρόμοια με τη [μνήμη](/developers/docs/smart-contracts/anatomy/#memory). Ενώ και αν τα `calldata` δεν αποθηκεύονται ως μέρος της κατάστασης του Ethereum, παραμένουν στην αλυσίδα ως μέρος των [αρχείων καταγραφής ιστορικού](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs) της αλυσίδας Ethereum. Το `calldata` δεν επηρεάζει την κατάσταση του Ethereum, καθιστώντας το έναν φθηνό τρόπο αποθήκευσης δεδομένων στην αλυσίδα. + +Η λέξη-κλειδί `calldata` συχνά προσδιορίζει τη μέθοδο του έξυπνου συμβολαίου που καλείται από μια συναλλαγή και περιέχει εισόδους στη μέθοδο με τη μορφή μιας αυθαίρετης ακολουθίας byte. Τα πακέτα ενημέρωσης ZK χρησιμοποιούν το `calldata` για να δημοσιεύσουν συμπιεσμένα δεδομένα συναλλαγών στην αλυσίδα. Ο χειριστής του πακέτου ενημέρωσης απλώς προσθέτει ένα νέο σύνολο δεδομένων καλώντας την απαιτούμενη συνάρτηση στο συμβόλαιο του πακέτου ενημέρωσης και περνά τα συμπιεσμένα δεδομένα ως ορίσματα συνάρτησης. Αυτό βοηθά στη μείωση του κόστους για τους χρήστες, καθώς ένα μεγάλο μέρος των τελών των rollup προορίζονται προς την αποθήκευση δεδομένων συναλλαγών στην αλυσίδα. + +### Δεσμεύσεις κατάστασης {#state-commitments} + +Η κατάσταση του ZK-rollup, η οποία περιλαμβάνει λογαριασμούς και υπόλοιπα L2, αναπαρίσταται ως [δέντρο Merkle](/whitepaper/#merkle-trees). Ένα κρυπτογραφικό hash της ρίζας του δέντρου Merkle (ρίζα Merkle) αποθηκεύεται στη σύμβαση στην αλυσίδα, επιτρέποντας στο πρωτόκολλο του πακέτου ενημέρωσης να παρακολουθεί τις αλλαγές στην κατάσταση του ZK-rollup. + +Το rollup μεταβαίνει σε μια νέα κατάσταση μετά την εκτέλεση ενός νέου συνόλου συναλλαγών. Ο χειριστής που ξεκίνησε τη μετάβαση κατάστασης πρέπει να υπολογίσει μια νέα ρίζα κατάστασης και να την υποβάλει στη σύμβαση στην αλυσίδα. Εάν η απόδειξη εγκυρότητας που σχετίζεται με τη δέσμη επαληθευτεί από το συμβόλαιο επαλήθευσης, η νέα ρίζα Merkle γίνεται η κανονική ρίζα κατάστασης του ZK-rollup. + +Εκτός από τον υπολογισμό των ριζών κατάστασης, ο χειριστής ZK-rollup δημιουργεί επίσης μια ρίζα δέσμης, τη ρίζα ενός δέντρου Merkle που περιλαμβάνει όλες τις συναλλαγές σε μια δέσμη. Όταν υποβάλλεται μια νέα δέσμη, το συμβόλαιο rollup αποθηκεύει τη ρίζα δέσμης, επιτρέποντας στους χρήστες να αποδείξουν ότι μια συναλλαγή (π.χ. αίτημα ανάληψης) συμπεριλήφθηκε στη δέσμη. Οι χρήστες θα πρέπει να παράσχουν λεπτομέρειες συναλλαγής, τη ρίζα δέσμης και μια [απόδειξη Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/) που θα δείχνει τη διαδρομή συμπερίληψης. + +### Αποδείξεις εγκυρότητας {#validity-proofs} + +Η νέα ρίζα κατάστασης που υποβάλλει ο χειριστής του ZK-rollup στο συμβόλαιο επιπέδου 1 είναι το αποτέλεσμα ενημερώσεων στην κατάσταση του rollup. Ας πούμε ότι η Alice στέλνει 10 token στον Bob, ο χειριστής απλά μειώνει το υπόλοιπο της Alice κατά 10 και αυξάνει το υπόλοιπο του Bob κατά 10. Στη συνέχεια, ο χειριστής κάνει hash τα ενημερωμένα δεδομένα λογαριασμού, ανακατασκευάζει το δέντρο Merkle του πακέτου ενημέρωσης και υποβάλλει τη νέα ρίζα Merkle στο συμβόλαιο της αλυσίδας. + +Αλλά το συμβόλαιο rollup δε θα αποδεχτεί αυτόματα την προτεινόμενη δέσμευση κατάστασης μέχρι ο χειριστής να αποδείξει ότι η νέα ρίζα Merkle προέκυψε από σωστές ενημερώσεις στην κατάσταση του rollup. Ο χειριστής ZK-rollup το κάνει αυτό με την παραγωγή μιας απόδειξης εγκυρότητας, δηλαδή μιας συνοπτικής κρυπτογραφικής δέσμευσης που επαληθεύει τη σωστή εκτέλεση συνόλων συναλλαγών. + +Οι αποδείξεις εγκυρότητας επιτρέπουν στα μέρη να αποδείξουν την ορθότητα μιας δήλωσης χωρίς να αποκαλύπτουν την ίδια τη δήλωση. Ως εκ τούτου, ονομάζονται επίσης αποδείξεις μηδενικής γνώσης. Τα πακέτα ZK χρησιμοποιούν αποδείξεις εγκυρότητας για να επιβεβαιώσουν τη σωστή λειτουργία των μεταβάσεων κατάστασης εκτός αλυσίδας χωρίς να χρειάζεται να εκτελέσουν ξανά τις συναλλαγές στο Ethereum. Αυτές οι αποδείξεις μπορούν να έχουν τη μορφή ενός [ZK-SNARK](https://arxiv.org/abs/2202.06877) (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) ή [ZK-STARK](https://eprint.iacr.org/2018/046) (Zero-Knowledge Scalable Transparent Argument of Knowledge). + +Τόσο τα SNARK όσο και τα STARK βοηθούν στην επιβεβαίωση της ακεραιότητας του υπολογισμού στα πακέτα ενημέρωσης ZK εκτός αλυσίδας, αν και κάθε τύπος απόδειξης έχει διακριτά χαρακτηριστικά. + +**ZK-SNARKs** + +Για να λειτουργήσει το πρωτόκολλο ZK-SNARK, είναι απαραίτητη η δημιουργία μιας κοινής συμβολοσειράς αναφοράς (CRS): η CRS παρέχει δημόσιες παραμέτρους για την απόδειξη και την επαλήθευση αποδείξεων εγκυρότητας. Η ασφάλεια του συστήματος απόδειξης εξαρτάται από τη ρύθμιση CRS. Εάν οι πληροφορίες που χρησιμοποιούνται για τη δημιουργία δημόσιων παραμέτρων πέσουν στα χέρια κακόβουλων δραστών, ενδέχεται να είναι σε θέση να δημιουργήσουν ψευδείς αποδείξεις εγκυρότητας. + +Ορισμένα ZK-rollup προσπαθούν να επιλύσουν αυτό το πρόβλημα χρησιμοποιώντας μια [τελετή υπολογισμού πολλαπλών μερών (MPC)](https://zkproof.org/2021/06/30/setup-ceremonies/amp/), που περιλαμβάνει αξιόπιστα άτομα, για τη δημιουργία δημόσιων παραμέτρων για το κύκλωμα ZK-SNARK. Κάθε μέρος συμβάλλει με κάποια τυχαιότητα (που ονομάζεται "τοξικά απόβλητα") στη δημιουργία του CRS, το οποίο πρέπει να καταστρέψουν αμέσως. + +Οι αξιόπιστες ρυθμίσεις χρησιμοποιούνται επειδή αυξάνουν την ασφάλεια της ρύθμισης CRS. Αρκεί ένας ειλικρινής συμμετέχων να καταστρέψει την είσοδό του καθώς η ασφάλεια του συστήματος ZK-SNARK είναι εγγυημένη. Ωστόσο, αυτή η προσέγγιση απαιτεί την επίδειξη εμπιστοσύνης σε όσους εμπλέκονται ότι θα διαγράψουν τη δειγματοληπτική τυχαιότητα τους και δεν θα υπονομεύσουν τις εγγυήσεις ασφάλειας του συστήματος. + +Αφήνοντας κατά μέρος τις υποθέσεις εμπιστοσύνης, τα ZK-SNARK είναι δημοφιλή για τα μικρά μεγέθη απόδειξης και την επαλήθευση σταθερού χρόνου. Καθώς η επαλήθευση απόδειξης στο L1 αποτελεί το μεγαλύτερο κόστος λειτουργίας ενός ZK-rollup, τα L2 χρησιμοποιούν ZK-SNARK για τη δημιουργία αποδείξεων που μπορούν να επαληθευτούν γρήγορα και φθηνά στο Κεντρικό Δίκτυο. + +**ZK-STARKs** + +Όπως τα ZK-SNARKs, τα ZK-STARKs αποδεικνύουν τη γνησιότητα ενός υπολογισμού εκτός αλυσίδας χωρίς να αποκαλύπτουν τα εισαγόμενα δεδομένα. Ωστόσο, τα ZK-STARK θεωρούνται βελτίωση των ZK-SNARK λόγω της κλιμακωσιμότητας και της διαφάνειας τους. + +Τα ZK-STARKs είναι 'διαφανή', καθώς μπορούν να λειτουργήσουν χωρίς την αξιόπιστη ρύθμιση μιας Κοινής Σειράς Αναφοράς (CRS). Αντίθετα, τα ZK-STARKs βασίζονται σε δημόσια επαληθεύσιμη τυχαιότητα για να ορίσουν παραμέτρους για τη δημιουργία και επαλήθευση αποδείξεων. + +Τα ZK-STARK παρέχουν επίσης μεγαλύτερη επεκτασιμότητα επειδή ο χρόνος που απαιτείται για την απόδειξη και επαλήθευση αποδείξεων εγκυρότητας αυξάνεται _σχεδόν γραμμικά_ σε σχέση με την πολυπλοκότητα του υποκείμενου υπολογισμού. Με τα ZK-SNARK, οι χρόνοι απόδειξης και επαλήθευσης επεκτείνονται _γραμμικά_ σε σχέση με το μέγεθος του υποκείμενου υπολογισμού. Αυτό σημαίνει ότι τα ZK-STARK απαιτούν λιγότερο χρόνο από τα ZK-SNARK για απόδειξη και επαλήθευση όταν εμπλέκονται μεγάλα σύνολα δεδομένων, γεγονός το οποία τα καθιστά χρήσιμα για εφαρμογές υψηλού όγκου. + +Τα ZK-STARK είναι επίσης ασφαλή έναντι των κβαντικών υπολογιστών, ενώ πιστεύεται ευρέως ότι η Ελλειπτική Καμπύλη Κρυπτογραφίας (ECC) που χρησιμοποιείται στα ZK-SNARK είναι ευάλωτη σε επιθέσεις κβαντικών υπολογιστών. Το μειονέκτημα των ZK-STARKs είναι ότι παράγουν μεγαλύτερα μεγέθη απόδειξης, τα οποία είναι πιο δαπανηρά για επαλήθευση στο Ethereum. + +#### Πώς λειτουργούν οι αποδείξεις εγκυρότητας στα ZK-rollup; {#validity-proofs-in-zk-rollups} + +##### Δημιουργία απόδειξης + +Πριν αποδεχτεί τις συναλλαγές, ο χειριστής θα πραγματοποιήσει τους συνήθεις ελέγχους. Αυτοί περιλαμβάνουν την επιβεβαίωση ότι: + +- Οι λογαριασμοί αποστολέα και παραλήπτη είναι μέρος του δέντρου κατάστασης. +- Ο αποστολέας έχει αρκετά χρήματα για να επεξεργαστεί τη συναλλαγή. +- Η συναλλαγή είναι σωστή και ταιριάζει με το δημόσιο κλειδί του αποστολέα στο rollup. +- Ο αριθμός nonce του αποστολέα είναι σωστός, κ.λπ. + +Μόλις ο κόμβος ZK-rollup έχει αρκετές συναλλαγές, τις συγκεντρώνει σε ένα πακέτο και συμπιέζει εισόδους για το κύκλωμα απόδειξης για να συμπεριληφθεί σε μια συνοπτική απόδειξη ZK. Αυτό περιλαμβάνει: + +- Μια ρίζα δέντρου Merkle που περιλαμβάνει όλες τις συναλλαγές στο πακέτο. +- Αποδείξεις Merkle για συναλλαγές για να αποδειχθεί η συμπερίληψη στο πακέτο. +- Αποδείξεις Merkle για κάθε ζεύγος αποστολέα-παραλήπτη σε συναλλαγές για να αποδειχθεί ότι αυτοί οι λογαριασμοί είναι μέρος του δέντρου κατάστασης του rollup. +- Ένα σύνολο ενδιάμεσων ριζών κατάστασης, που προέρχονται από την ενημέρωση της ρίζας κατάστασης μετά την εφαρμογή ενημερώσεων κατάστασης για κάθε συναλλαγή (δηλαδή, μείωση λογαριασμών αποστολέα και αύξηση λογαριασμών παραλήπτη). + +Το κύκλωμα απόδειξης υπολογίζει την απόδειξη εγκυρότητας με τη δημιουργία «βρόχου» πάνω από κάθε συναλλαγή και την εκτέλεση των ίδιων ελέγχων που ο χειριστής ολοκλήρωσε πριν από την επεξεργασία της συναλλαγής. Αρχικά, επαληθεύει ότι ο λογαριασμός αποστολέα αποτελεί μέρος της υπάρχουσας root κατάστασης χρησιμοποιώντας την παρεχόμενη απόδειξη Merkle. Έπειτα, μειώνει το υπόλοιπο του αποστολέα, αυξάνει το nonce, κατακερματίζει τα ενημερωμένα στοιχεία λογαριασμού και τα συνδυάζει με την απόδειξη Merkle για τη δημιουργία μιας νέας ρίζας Merkle. + +Αυτή η ρίζα Merkle αντικατοπτρίζει τη μοναδική αλλαγή στην κατάσταση της συλλογής ZK: μια αλλαγή στο υπόλοιπο του αποστολέα και στο nonce. Αυτό είναι δυνατό επειδή η απόδειξη Merkle που χρησιμοποιείται για να αποδειχθεί η ύπαρξη του λογαριασμού χρησιμοποιείται για να προκύψει η νέα ρίζα κατάστασης. + +Το κύκλωμα απόδειξης εκτελεί την ίδια διαδικασία στον λογαριασμό του παραλήπτη. Ελέγχει εάν ο λογαριασμός του παραλήπτη υπάρχει κάτω από την ενδιάμεση ρίζα κατάστασης (χρησιμοποιώντας την απόδειξη Merkle), αυξάνει το υπόλοιπό του, κατακερματίζει ξανά τα δεδομένα του λογαριασμού και τα συνδυάζει με την απόδειξη Merkle για να δημιουργήσει μια νέα ρίζα κατάστασης. + +Η διαδικασία επαναλαμβάνεται για κάθε συναλλαγή. Κάθε «βρόχος» δημιουργεί μια νέα ρίζα κατάστασης από την ενημέρωση του λογαριασμού του αποστολέα και μια επόμενη νέα ρίζα από την ενημέρωση του λογαριασμού του παραλήπτη. Όπως εξηγήθηκε, κάθε ενημέρωση στη ρίζα κατάστασης αντιπροσωπεύει ένα μέρος του δέντρου κατάστασης του πακέτου ενημέρωσης που αλλάζει. + +Το κύκλωμα απόδειξης ZK επαναλαμβάνει ολόκληρο το πακέτο συναλλαγών, επαληθεύοντας την ακολουθία ενημερώσεων που οδηγούν σε μια τελική ρίζα κατάστασης μετά την εκτέλεση της τελευταίας συναλλαγής. Η τελευταία υπολογισμένη ρίζα Merkle γίνεται η νεότερη κανονική ρίζα κατάστασης του ZK-rollup. + +##### Επαλήθευση απόδειξης + +Μετά την επαλήθευση της ορθότητας των ενημερώσεων κατάστασης από το κύκλωμα απόδειξης, ο χειριστής L2 υποβάλλει την υπολογισμένη απόδειξη εγκυρότητας στο συμβόλαιο επαλήθευσης στο L1. Το κύκλωμα επαλήθευσης του συμβολαίου επαληθεύει την εγκυρότητα της απόδειξης και ελέγχει επίσης δημόσιες εισόδους που αποτελούν μέρος της απόδειξης: + +- **Προ-κατάσταση ρίζας**: Η παλιά ρίζα κατάστασης του ZK-rollup (δηλαδή, πριν εκτελεστούν οι συναλλαγές παρτίδας), που αντανακλά την τελευταία γνωστή έγκυρη κατάσταση της αλυσίδας L2. + +- **Μετα-κατάσταση ρίζας**: Η νέα ρίζα κατάστασης του ZK-rollup (δηλαδή, μετά την εκτέλεση των συναλλαγών σε μορφή παρτίδας), που αντανακλά τη νεότερη κατάσταση της αλυσίδας L2. Η μετα-κατάσταση root είναι η τελική root που προκύπτει μετά την εφαρμογή ενημερώσεων κατάστασης στο κύκλωμα απόδειξης. + +- **Ρίζα παρτίδας**: Η ρίζα Merkle της παρτίδας, που προκύπτει από τη _merklization_ των συναλλαγών στην παρτίδα και το hashing της ρίζας του δέντρου. + +- **Εισαγωγές συναλλαγών**: Δεδομένα που σχετίζονται με τις συναλλαγές που εκτελέστηκαν ως μέρος της υποβληθείσας παρτίδας. + +Εάν η απόδειξη ικανοποιεί το κύκλωμα (δηλαδή, είναι έγκυρη), αυτό σημαίνει ότι υπάρχει μια ακολουθία έγκυρων συναλλαγών που μεταφέρουν το rollup από την προηγούμενη κατάσταση (κρυπτογραφημένα ηλεκτρονικά αποτυπώματα από την προ-κατάσταση ρίζας) σε μια νέα κατάσταση (κρυπτογραφημένα ηλεκτρονικά αποτυπώματα από τη μετα-κατάσταση ρίζας). Εάν η προ-κατάσταση ρίζας ταιριάζει με τη ρίζα που αποθηκεύεται στο συμβόλαιο rollup και η απόδειξη είναι έγκυρη, το συμβόλαιο rollup παίρνει τη μετα-κατάσταση ρίζας από την απόδειξη και ενημερώνει το δέντρο κατάστασής του για να αντικατοπτρίζει την αλλαγμένη κατάσταση του rollup. + +### Είσοδοι και έξοδοι {#entries-and-exits} + +Οι χρήστες εισέρχονται στο ZK-rollup καταθέτοντας περιουσιακό στοιχείο στο συμβόλαιο του πακέτου ενημέρωσης που είναι αναπτυγμένο στην αλυσίδα επιπέδου 1. Αυτή η συναλλαγή μπαίνει σε ουρά καθώς μόνο οι χειριστές μπορούν να υποβάλουν συναλλαγές στο συμβόλαιο του πακέτου ενημέρωσης. + +Εάν η εκκρεμής ουρά καταθέσεων αρχίσει να γεμίζει, ο χειριστής του ZK-rollup θα πάρει τις συναλλαγές κατάθεσης και θα τις υποβάλει στο συμβόλαιο rollup. Μόλις τα κεφάλαια του χρήστη βρίσκονται στο rollup, μπορούν να ξεκινήσουν συναλλαγές στέλνοντας συναλλαγές στον χειριστή για επεξεργασία. Οι χρήστες μπορούν να επαληθεύσουν τα υπόλοιπα στο rollup υπολογίζοντας το hash των δεδομένων του λογαριασμού τους, στέλνοντας το hash στο συμβόλαιο rollup και παρέχοντας μια απόδειξη Merkle για επαλήθευση έναντι της τρέχουσας ρίζας κατάστασης. + +Η ανάληψη από ένα ZK-rollup σε L1 είναι απλή. Ο χρήστης ξεκινά τη συναλλαγή εξόδου στέλνοντας τα περιουσιακά του στοιχεία στο πακέτο ενημέρωσης σε έναν συγκεκριμένο λογαριασμό για κάψιμο. Εάν ο χειριστής συμπεριλάβει τη συναλλαγή στην επόμενη παρτίδα, ο χρήστης μπορεί να υποβάλει αίτηση ανάληψης στο συμβόλαιο στην αλυσίδα. Αυτή η αίτηση ανάληψης θα περιλαμβάνει τα εξής: + +- Απόδειξη Merkle που αποδεικνύει τη συμπερίληψη της συναλλαγής του χρήστη στον λογαριασμό καύσης σε μια παρτίδα συναλλαγών + +- Δεδομένα συναλλαγής + +- Batch root + +- Διεύθυνση L1 για τη λήψη κατατεθειμένων χρημάτων + +Το συμβόλαιο του rollup κάνει hash στα δεδομένα συναλλαγής, ελέγχει αν υπάρχει η ρίζα παρτίδας και χρησιμοποιεί την απόδειξη Merkle για να ελέγξει εάν το hash της συναλλαγής είναι μέρος της ρίζας παρτίδας. Στη συνέχεια, το συμβόλαιο εκτελεί τη συναλλαγή εξόδου και στέλνει κεφάλαια στη διεύθυνση που επέλεξε ο χρήστης στο L1. + +## ZK-rollup και συμβατότητα EVM {#zk-rollups-and-evm-compatibility} + +Σε αντίθεση με τα optimistic rollup, τα ZK-rollup δεν είναι άμεσα συμβατά με το [Εικονικό μηχάνημα του Ethereum (EVM)](/developers/docs/evm/). Η απόδειξη γενικής χρήσης υπολογισμού EVM σε κυκλώματα είναι πιο δύσκολη και απαιτεί περισσότερους πόρους από την απόδειξη απλών υπολογισμών (όπως η μεταφορά token που περιγράφηκε προηγουμένως). + +Ωστόσο, η [προόδος στην τεχνολογία μηδενικής γνώσης](https://hackmd.io/@yezhang/S1_KMMbGt#Why-possible-now) πυροδοτεί το ενδιαφέρον για τον υπολογισμό EVM σε αποδείξεις μηδενικής γνώσης. Αυτές οι προσπάθειες στοχεύουν στη δημιουργία μιας υλοποίησης zero-knowledge EVM (zkEVM) που μπορεί να επαληθεύσει αποτελεσματικά τη σωστή εκτέλεση του προγράμματος. Ένα zkEVM αναδημιουργεί τους υπάρχοντες κωδικούς λειτουργίας EVM για απόδειξη/επαλήθευση σε κυκλώματα, επιτρέποντας την εκτέλεση έξυπνων συμβολαίων. + +Όπως το EVM, ένα zkEVM μεταβαίνει μεταξύ καταστάσεων μετά την εκτέλεση υπολογισμών σε ορισμένες εισόδους. Η διαφορά είναι ότι το zkEVM δημιουργεί επίσης αποδείξεις μηδενικής γνώσης για να επαληθεύσει τη σωστή εκτέλεση κάθε βήματος στην εκτέλεση του προγράμματος. Οι αποδείξεις εγκυρότητας θα μπορούσαν να επαληθεύσουν τη σωστή εκτέλεση των λειτουργιών που επηρεάζουν την κατάσταση της VM (μνήμη, στοίβα, αποθήκευση) και τον ίδιο τον υπολογισμό (δηλαδή, κάλεσε η λειτουργία τους σωστούς opcode και τους εκτέλεσε σωστά;). + +Η εισαγωγή των συμβατών με EVM ZK-rollup αναμένεται να βοηθήσει τους προγραμματιστές να αξιοποιήσουν την επεκτασιμότητα και τις εγγυήσεις ασφάλειας των αποδείξεων μηδενικής γνώσης. Επιπλέον, η συμβατότητα με την εγγενή υποδομή Ethereum σημαίνει ότι οι προγραμματιστές μπορούν να δημιουργήσουν dapp φιλικές προς τη μηδενική γνώση χρησιμοποιώντας οικεία (και δοκιμασμένα) εργαλεία και γλώσσες. + +## Πώς λειτουργούν τα τέλη των ZK-rollup; {#how-do-zk-rollup-fees-work} + +Το ποσό που πληρώνουν οι χρήστες για συναλλαγές στα ZK-rollup εξαρτάται από τη χρέωση gas, όπως και στο Kεντρικό Δίκτυο του Ethereum. Ωστόσο, τα τέλη gas λειτουργούν διαφορετικά στο L2 και επηρεάζονται από τα ακόλουθα κόστη: + +1. **Εγγραφή Κατάστασης**: Υπάρχει ένα σταθερό κόστος για την εγγραφή στην κατάσταση του Ethereum (δηλαδή, την υποβολή μιας συναλλαγής στην αλυσίδα μπλοκ Ethereum). Τα ZK-rollups μειώνουν αυτό το κόστος με τις συγκεντρώσεις συναλλαγών και τη διανομή σταθερού κόστους σε πολλούς χρήστες. + +2. **Δημοσίευση Δεδομένων**: Τα ZK-rollup δημοσιεύουν δεδομένα κατάστασης για κάθε συναλλαγή στο Ethereum ως `calldata`. Τα κόστη `calldata` διέπονται επί του παρόντος από το [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), το οποίο ορίζει ένα κόστος ύψους 16 gas για μη μηδενικά byte και 4 gas για μηδενικά byte `calldata`, αντίστοιχα. Το κόστος που καταβάλλεται για κάθε συναλλαγή επηρεάζεται από το πόσα `calldata` πρέπει να δημοσιευθούν στην αλυσίδα γι' αυτό. + +3. **Αμοιβές χειριστή L2**: Αυτό είναι το ποσό που καταβάλλεται στον χειριστή του rollup ως αποζημίωση για τα υπολογιστικά κόστη που προκύπτουν από την επεξεργασία συναλλαγών, παρόμοια με τις [«αμοιβές προτεραιότητας (φιλοδωρήματα)» συναλλαγών](/developers/docs/gas/#how-are-gas-fees-calculated) στο Kεντρικό Δίκτυο του Ethereum. + +4. **Δημιουργία και επαλήθευση απόδειξης**: Οι χειριστές ZK-rollup πρέπει να παράγουν αποδείξεις εγκυρότητας για παρτίδες συναλλαγών, κάτι που απαιτεί πολλούς πόρους. Η επαλήθευση αποδείξεων μηδενικής γνώσης στο Mainnet κοστίζει επίσης gas (~ 500.000 gas). + +Εκτός από τις συγκεντρώσεις συναλλαγών, τα ZK-rollups μειώνουν τις αμοιβές για τους χρήστες με τη συμπίεση των δεδομένων συναλλαγών. Μπορείτε να [δείτε μια πραγματική εικόνα](https://l2fees.info/) του κόστους χρήσης των Ethereum ZK-rollups. + +## Πώς πετυχαίνουν τα ZK-rollup την επέκταση του Ethereum; {#scaling-ethereum-with-zk-rollups} + +### Συμπίεση δεδομένων συναλλαγών {#transaction-data-compression} + +Τα πακέτα ενημέρωσης ZK επεκτείνουν την απόδοση στο βασικό επίπεδο του Ethereum μεταφέροντας τον υπολογισμό εκτός αλυσίδας, αλλά η πραγματική ώθηση για την κλιμάκωση προέρχεται από τη συμπίεση δεδομένων συναλλαγών. Το [μέγεθος του μπλοκ](/developers/docs/blocks/#block-size) του Ethereum περιορίζει τα δεδομένα που μπορεί να περιέχει κάθε μπλοκ και, κατ' επέκταση, τον αριθμό των συναλλαγών που υποβάλλονται σε επεξεργασία ανά μπλοκ. Με τη συμπίεση δεδομένων που σχετίζονται με συναλλαγές, τα ZK-rollups αυξάνουν σημαντικά τον αριθμό των συναλλαγών που επεξεργάζονται ανά μπλοκ. + +Τα ZK-rollup μπορούν να συμπιέσουν τα δεδομένα συναλλαγών καλύτερα από τα optimistic rollup δεδομένου ότι δεν χρειάζεται να δημοσιεύουν όλα τα δεδομένα που απαιτούνται για την επικύρωση κάθε συναλλαγής. Πρέπει μόνο να δημοσιεύσουν τα ελάχιστα δεδομένα που απαιτούνται για την πιο πρόσφατη κατάσταση λογαριασμών και υπολοίπων στο rollup. + +### Αναδρομικές αποδείξεις {#recursive-proofs} + +Ένα πλεονέκτημα των αποδείξεων μηδενικής γνώσης είναι ότι οι αποδείξεις μπορούν να επαληθεύσουν άλλες αποδείξεις. Για παράδειγμα, ένα ενιαίο ZK-SNARK μπορεί να επαληθεύσει άλλα ZK-SNARKs. Τέτοιες «αποδείξεις αποδείξεων» ονομάζονται αναδρομικές αποδείξεις και αυξάνουν δραματικά την απόδοση των ZK-rollups. + +Επί του παρόντος, οι αποδείξεις εγκυρότητας δημιουργούνται βάσει μπλοκ και υποβάλλονται στο συμβόλαιο L1 για επαλήθευση. Ωστόσο, η επαλήθευση μεμονωμένων αποδείξεων μπλοκ περιορίζει την απόδοση που μπορούν να επιτύχουν τα ZK-rollup καθώς μόνο ένα μπλοκ μπορεί να οριστικοποιηθεί όταν ο χειριστής υποβάλει μια απόδειξη. + +Ωστόσο, οι αναδρομικές αποδείξεις καθιστούν δυνατή την ολοκλήρωση πολλών μπλοκ με μία απόδειξη εγκυρότητας. Αυτό συμβαίνει επειδή το κύκλωμα απόδειξης συγκεντρώνει αναδρομικά πολλές αποδείξεις μπλοκ έως ότου δημιουργηθεί μία τελική απόδειξη. Ο χειριστής L2 υποβάλλει αυτήν την αναδρομική απόδειξη και εάν το συμβόλαιο την αποδεχτεί, όλα τα σχετικά μπλοκ θα ολοκληρωθούν άμεσα. Με τις αναδρομικές αποδείξεις, αυξάνεται ο αριθμός των συναλλαγών ZK-rollup που μπορούν να ολοκληρωθούν στο Ethereum σε διαστήματα. + +### Πλεονεκτήματα και μειονεκτήματα των ZK-rollup {#zk-rollups-pros-and-cons} + +| Πλεονεκτήματα | Μειονεκτήματα | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Οι αποδείξεις εγκυρότητας εξασφαλίζουν τη σωστή εκτέλεση των εκτός αλυσίδας συναλλαγών και αποτρέπουν τους χειριστές από την εκτέλεση μη έγκυρων μεταβάσεων κατάστασης. | Το κόστος που σχετίζεται με τον υπολογισμό και την επαλήθευση των αποδείξεων εγκυρότητας είναι σημαντικό και μπορεί να αυξήσει τα τέλη για τους χρήστες του rollup. | +| Προσφέρει ταχύτερη οριστικοποίηση συναλλαγών καθώς οι ενημερώσεις κατάστασης εγκρίνονται μόλις επαληθευτούν οι αποδείξεις εγκυρότητας στο L1. | Η κατασκευή συμβατών με EVM ZK-rollups είναι δύσκολη λόγω της πολυπλοκότητας της τεχνολογίας μηδενικής γνώσης. | +| Βασίζεται σε μη αξιόπιστους κρυπτογραφικούς μηχανισμούς για την ασφάλεια, όχι στην ειλικρίνεια των κερδοσκοπικών παραγόντων όπως συμβαίνει με τα [optimistic rollup](/developers/docs/scaling/optimistic-rollups/#optimistic-pros-and-cons). | Η παραγωγή αποδείξεων εγκυρότητας απαιτεί εξειδικευμένο υλικό, το οποίο μπορεί να ενθαρρύνει τον κεντρικό έλεγχο της αλυσίδας από λίγα μέρη. | +| Αποθηκεύει τα δεδομένα που απαιτούνται για την ανάκτηση της εκτός αλυσίδας κατάστασης στο L1, το οποίο εγγυάται την ασφάλεια, την αντοχή στη λογοκρισία και την αποκέντρωση. | Οι κεντρικοποιημένοι χειριστές (sequencer) μπορούν να επηρεάσουν τη σειρά των συναλλαγών. | +| Οι χρήστες επωφελούνται από μεγαλύτερη κεφαλαιακή απόδοση και μπορούν να αποσύρουν κεφάλαια από το L2 χωρίς καθυστερήσεις. | Οι απαιτήσεις υλικού μπορούν να μειώσουν τον αριθμό των συμμετεχόντων που μπορούν να αναγκάσουν την αλυσίδα να προχωρήσει, αλλά αυξάνεται ο κίνδυνος κακόβουλοι χειριστές να παγώσουν την κατάσταση του rollup και να λογοκρίνουν τους χρήστες. | +| Δεν εξαρτάται από τις υποθέσεις επιβιωσιμότητας και οι χρήστες δε χρειάζεται να επικυρώσουν την αλυσίδα για να προστατεύσουν τα κεφάλαιά τους. | Ορισμένα συστήματα απόδειξης (π.χ., ZK-SNARK) απαιτούν μια αξιόπιστη ρύθμιση που, εάν γίνει αντικείμενο λανθασμένου χειρισμού, θα μπορούσε ενδεχομένως να θέσει σε κίνδυνο το μοντέλο ασφάλειας ενός ZK-rollup. | +| Η καλύτερη συμπίεση δεδομένων μπορεί να βοηθήσει στη μείωση του κόστους δημοσίευσης `calldata` στο Ethereum και στη μείωση των τελών rollup για τους χρήστες. | | + +### Μια οπτική επεξήγηση των ZK-rollup {#zk-video} + +Παρακολουθήστε το Finematics να εξηγεί τα ZK-rollup: + + + + +## Ποιος χτίζει ένα zkEVM; {#zkevm-projects} + +Τα έργα που χτίζουν zkEVM περιλαμβάνουν: + +- **[zkEVM](https://github.com/privacy-scaling-explorations/zkevm-specs)** - _Το zkEVM είναι ένα έργο που χρηματοδοτείται από το Ίδρυμα Ethereum για την ανάπτυξη ενός συμβατού με EVM ZK-rollup και ενός μηχανισμού για τη δημιουργία αποδείξεων εγκυρότητας για μπλοκ Ethereum._ + +- **[Polygon zkEVM](https://polygon.technology/solutions/polygon-zkevm)** - _ Το Polygon zkEVM είναι ένα αποκεντρωμένο ZK Rollup στο κύριο δίκτυο Ethereum που λειτουργεί σε μια μηχανή εικονικού Ethereum μηδενικής γνώσης (zkEVM) που εκτελεί συναλλαγές Ethereum με διαφανή τρόπο, συμπεριλαμβανομένων έξυπνων συμβολαίων με επικυρώσεις απόδειξης μηδενικής γνώσης._ + +- **[Scroll](https://scroll.io/blog/zkEVM)** - _Το Scroll είναι μια τεχνολογική εταιρεία που εργάζεται για την κατασκευή μιας εγγενούς λύσης zkEVM Επιπέδου 2 για το Ethereum._ + +- **[Taiko](https://taiko.xyz)** - _Το Taiko είναι ένα αποκεντρωμένο, ισοδύναμο με Ethereum ZK-rollup (ένα [ZK-EVM Τύπου 1](https://vitalik.eth.limo/general/2022/08/04/zkevm.html))._ + +- **[ZKsync](https://docs.zksync.io/)** - _Το ZKsync Era είναι ένα συμβατό με EVM ZK Rollup που κατασκευάστηκε από τη Matter Labs, με τη χρήση του δικού της zkEVM._ + +- **[Starknet](https://starkware.co/starknet/)** - _Το StarkNet είναι μια συμβατή με EVM λύση κλιμάκωσης επιπέδου 2 που κατασκευάστηκε από τη StarkWare._ + +- **[Morph](https://www.morphl2.io/)** - _Το Morph είναι μια υβριδική λύση κλιμάκωσης rollup που χρησιμοποιεί απόδειξη μηδενικής γνώσης για να αντιμετωπίσει το ζήτημα της αμφισβήτησης κατάστασης στο Επίπεδο 2._ + +## Περαιτέρω υλικό ανάγνωσης σχετικά με τα ZK-rollup {#further-reading-on-zk-rollups} + +- [Τι είναι τα Zero-Knowledge Rollup;](https://coinmarketcap.com/alexandria/glossary/zero-knowledge-rollups) +- [Τι είναι τα zero-knowledge rollup;](https://alchemy.com/blog/zero-knowledge-rollups) +- [Πρακτικός οδηγός για τα πακέτα ενημέρωσης Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) +- [STARKs ή SNARKs](https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/) +- [Τι είναι το zkEVM;](https://www.alchemy.com/overviews/zkevm) +- [Τύποι ZK-EVM: Ισοδύναμο Ethereum, EVM, τύπος 1, τύπος 4 και άλλες κρυπτογραφικές λέξεις](https://taiko.mirror.xyz/j6KgY8zbGTlTnHRFGW6ZLVPuT0IV0_KmgowgStpA0K4) +- [Εισαγωγή στο zkEVM](https://hackmd.io/@yezhang/S1_KMMbGt) +- [Τι είναι τα ZK-EVM L2;](https://linea.mirror.xyz/qD18IaQ4BROn_Y40EBMTUTdJHYghUtdECscSWyMvm8M) +- [Μοναδικοί πόροι zkEVM](https://github.com/LuozhuZhang/awesome-zkevm) +- [Λεπτομερείς εξήγηση του ZK-SNARKS](https://vitalik.eth.limo/general/2017/02/01/zk_snarks.html) +- [Πώς είναι δυνατή η δημιουργία ZK-SNARK;](https://vitalik.eth.limo/general/2021/01/26/snarks.html) diff --git a/public/content/translations/el/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/el/developers/docs/smart-contracts/formal-verification/index.md index fdcb1a5b8fc..8e51d7f8193 100644 --- a/public/content/translations/el/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/el/developers/docs/smart-contracts/formal-verification/index.md @@ -50,15 +50,15 @@ lang: el ### Προδιαγραφές υψηλού επιπέδου {#high-level-specifications} -Όπως υποδηλώνει το όνομα, μια προδιαγραφή υψηλού επιπέδου (που ονομάζεται επίσης "προδιαγραφή προσανατολισμένη στο μοντέλο") περιγράφει τη συμπεριφορά υψηλού επιπέδου ενός προγράμματος. Οι προδιαγραφές υψηλού επιπέδου μοντελοποιούν ένα έξυπνο συμβόλαιο ως μια [πεπερασμένη κατάσταση μηχανής](https://en.wikipedia.org/wiki/Finite-state_machine) (FSM), η οποία μπορεί να μεταβεί μεταξύ καταστάσεων εκτελώντας λειτουργίες, με τη χρονική λογική να χρησιμοποιείται για τον ορισμό τυπικών ιδιοτήτων για το μοντέλο FSM. +Όπως υποδηλώνει το όνομα, μια προδιαγραφή υψηλού επιπέδου (που ονομάζεται επίσης «προδιαγραφή προσανατολισμένη στο μοντέλο») περιγράφει τη συμπεριφορά υψηλού επιπέδου ενός προγράμματος. Οι προδιαγραφές υψηλού επιπέδου μοντελοποιούν ένα έξυπνο συμβόλαιο ως μια [πεπερασμένη κατάσταση μηχανής](https://en.wikipedia.org/wiki/Finite-state_machine) (FSM), η οποία μπορεί να μεταβεί μεταξύ καταστάσεων εκτελώντας λειτουργίες, με τη χρονική λογική να χρησιμοποιείται για τον ορισμό τυπικών ιδιοτήτων για το μοντέλο FSM. -Οι [χρονικές λογικές](https://en.wikipedia.org/wiki/Temporal_logic) είναι "κανόνες για τον συλλογισμό σχετικά με προτάσεις που προσδιορίζονται ως προς το χρόνο (π.χ. '_Πάντα_ πεινάω' ή '_Τελικά_ θα πεινάσω')." Όταν εφαρμόζονται στην τυπική επαλήθευση, οι χρονικές λογικές χρησιμοποιούνται για να δηλώσουν ισχυρισμούς σχετικά με τη σωστή συμπεριφορά συστημάτων που μοντελοποιούνται ως μηχανές κατάστασης. Ειδικότερα, μια χρονική λογική περιγράφει τις μελλοντικές καταστάσεις στις οποίες μπορεί να βρίσκεται ένα έξυπνο συμβόλαιο και πώς μεταβαίνει μεταξύ των καταστάσεων. +Οι [χρονικές λογικές](https://en.wikipedia.org/wiki/Temporal_logic) είναι «κανόνες για τον συλλογισμό σχετικά με προτάσεις που προσδιορίζονται ως προς το χρόνο (π.χ. «_Πάντα_ πεινάω» ή «_Τελικά_ θα πεινάσω»).» Όταν εφαρμόζονται στην τυπική επαλήθευση, οι χρονικές λογικές χρησιμοποιούνται για να δηλώσουν ισχυρισμούς σχετικά με τη σωστή συμπεριφορά συστημάτων που μοντελοποιούνται ως μηχανές κατάστασης. Ειδικότερα, μια χρονική λογική περιγράφει τις μελλοντικές καταστάσεις στις οποίες μπορεί να βρίσκεται ένα έξυπνο συμβόλαιο και πώς μεταβαίνει μεταξύ των καταστάσεων. Οι προδιαγραφές υψηλού επιπέδου γενικά καταγράφουν δύο κρίσιμες χρονικές ιδιότητες για τα έξυπνα συμβόλαια: **ασφάλεια** και **ζωντάνια**. Οι ιδιότητες ασφάλειας αντιπροσωπεύουν την ιδέα ότι «τίποτα κακό δε συμβαίνει ποτέ» και συνήθως εκφράζουν αμετάβλητες καταστάσεις. Μια ιδιότητα ασφάλειας μπορεί να ορίζει γενικές απαιτήσεις λογισμικού, όπως την αποφυγή [αδιεξόδου](https://www.techtarget.com/whatis/definition/deadlock) ή να εκφράζει συγκεκριμένες ιδιότητες για συμβόλαια (π.χ. αμετάβλητα στοιχεία για τον έλεγχο πρόσβασης σε συναρτήσεις, επιτρεπτές τιμές μεταβλητών κατάστασης ή συνθήκες για μεταφορές κρυπτοπαραστατικών). -Πάρτε για παράδειγμα αυτή την απαίτηση ασφάλειας που καλύπτει τις συνθήκες για τη χρήση των `transfer()` ή `transferFrom()` σε συμβάσεις κρυπτοπαραστατικών ERC-20: "_Το υπόλοιπο ενός αποστολέα δεν είναι ποτέ χαμηλότερο από το ζητούμενο ποσό κρυπτοπαραστατικών που πρόκειται να σταλεί_". Αυτή η περιγραφή φυσικής γλώσσας ενός αμετάβλητου στοιχείου συμβολαίου μπορεί να μεταφραστεί σε μια επίσημη (μαθηματική) προδιαγραφή, η εγκυρότητα της οποίας μπορεί στη συνέχεια να ελεγχθεί αυστηρά. +Πάρτε για παράδειγμα αυτή την απαίτηση ασφάλειας που καλύπτει τις συνθήκες για τη χρήση των `transfer()` ή `transferFrom()` σε συμβάσεις κρυπτοπαραστατικών ERC-20: _«Το υπόλοιπο ενός αποστολέα δεν είναι ποτέ χαμηλότερο από το ζητούμενο ποσό κρυπτοπαραστατικών που πρόκειται να σταλεί»_. Αυτή η περιγραφή φυσικής γλώσσας ενός αμετάβλητου στοιχείου συμβολαίου μπορεί να μεταφραστεί σε μια επίσημη (μαθηματική) προδιαγραφή, η εγκυρότητα της οποίας μπορεί στη συνέχεια να ελεγχθεί αυστηρά. -Οι ιδιότητες ζωντάνιας διαβεβαιώνουν ότι "συμβαίνει κάτι που τελικά είναι καλό" και αφορούν την ικανότητα ενός συμβολαίου να σημειώνει πρόοδο μέσα από διαφορετικές καταστάσεις. Ένα παράδειγμα μιας ιδιότητας ζωντάνιας είναι η "ρευστότητα", που αναφέρεται στην ικανότητα ενός συμβολαίου να μεταφέρει τα υπόλοιπά του στους χρήστες κατόπιν αιτήματος. Εάν αυτή η ιδιότητα παραβιαστεί, οι χρήστες δε θα μπορούν να αποσύρουν περιουσιακά στοιχεία που αποθηκεύονται στο συμβόλαιο, όπως συνέβη με το [περιστατικό του πορτοφολιού Parity](https://www.cnbc.com/2017/11/08/accidental-bug-may-have-frozen-280-worth-of-ether-on-parity-wallet.html). +Οι ιδιότητες ζωντάνιας διαβεβαιώνουν ότι «συμβαίνει κάτι που τελικά είναι καλό» και αφορούν την ικανότητα ενός συμβολαίου να σημειώνει πρόοδο μέσα από διαφορετικές καταστάσεις. Ένα παράδειγμα μιας ιδιότητας ζωντάνιας είναι η «ρευστότητα», που αναφέρεται στην ικανότητα ενός συμβολαίου να μεταφέρει τα υπόλοιπά του στους χρήστες κατόπιν αιτήματος. Εάν αυτή η ιδιότητα παραβιαστεί, οι χρήστες δε θα μπορούν να αποσύρουν περιουσιακά στοιχεία που αποθηκεύονται στο συμβόλαιο, όπως συνέβη με το [περιστατικό του πορτοφολιού Parity](https://www.cnbc.com/2017/11/08/accidental-bug-may-have-frozen-280-worth-of-ether-on-parity-wallet.html). ### Προδιαγραφές χαμηλού επιπέδου {#low-level-specifications} @@ -70,7 +70,7 @@ lang: el ### Ιδιότητες τύπου Hoare {#hoare-style-properties} -Η [λογική Hoare](https://en.wikipedia.org/wiki/Hoare_logic) παρέχει ένα σύνολο τυπικών κανόνων για τον συλλογισμό σχετικά με τη σωστή λειτουργία των προγραμμάτων, συμπεριλαμβανομένων των έξυπνων συμβολαίων. Μια ιδιότητα τύπου Hoare αντιπροσωπεύεται από ένα τριπλό Hoare `{P}c{Q}`, όπου το `c` είναι ένα πρόγραμμα και τα `P` και `Q` είναι προτάσεις για την κατάσταση του `c` (δηλαδή, του προγράμματος), που περιγράφονται επίσημα ως `προϋποθέσεις` και `μετα-συνθήκες`, αντίστοιχα. +Η [λογική Hoare](https://en.wikipedia.org/wiki/Hoare_logic) παρέχει ένα σύνολο τυπικών κανόνων για τον συλλογισμό σχετικά με τη σωστή λειτουργία των προγραμμάτων, συμπεριλαμβανομένων των έξυπνων συμβολαίων. Μια ιδιότητα τύπου Hoare αντιπροσωπεύεται από ένα τριπλό Hoare `{P}c{Q}`, όπου το `c` είναι ένα πρόγραμμα και τα `P` και `Q` είναι προτάσεις για την κατάσταση του `c` (δηλαδή, του προγράμματος), που περιγράφονται επίσημα ως _προϋποθέσεις_ και _μετα-συνθήκες_, αντίστοιχα. Μια προϋπόθεση είναι μια πρόταση που περιγράφει τις συνθήκες που απαιτούνται για τη σωστή εκτέλεση μιας συνάρτησης. Οι χρήστες που καλούν το συμβόλαιο πρέπει να ικανοποιούν αυτήν την απαίτηση. Μια μετα-συνθήκη είναι μια πρόταση που περιγράφει την κατάσταση που καθορίζει μια συνάρτηση εάν εκτελεστεί σωστά. Οι χρήστες μπορούν να αναμένουν ότι αυτή η συνθήκη θα είναι αληθής μετά την κλήση της συνάρτησης. Ένα _αμετάβλητο στοιχείο_ στη λογική Hoare είναι μια πρόταση που διατηρείται με εκτέλεση συνάρτησης (δηλαδή, δεν αλλάζει). @@ -162,7 +162,7 @@ function safe_add(uint x, uint y) returns(uint z){ Η τυπική επαλήθευση χρησιμοποιείται για να αξιολογήσει τη σωστή λειτουργία κρίσιμων συστημάτων, των οποίων η αποτυχία μπορεί να έχει καταστροφικές συνέπειες, όπως θάνατο, τραυματισμό ή οικονομική καταστροφή. Τα έξυπνα συμβόλαια είναι εφαρμογές υψηλής αξίας που ελέγχουν τεράστιες ποσότητες αξίας και απλά λάθη στον σχεδιασμό μπορούν να οδηγήσουν σε [μη αναστρέψιμες απώλειες για τους χρήστες](https://www.freecodecamp.org/news/a-hacker-stole-31m-of-ether-how-it-happened-and-what-it-means-for-ethereum-9e5dc29e33ce/amp/). Η τυπική επαλήθευση ενός συμβολαίου πριν τη δημοσίευση, ωστόσο, μπορεί να αυξήσει τις εγγυήσεις ότι θα λειτουργήσει όπως αναμένεται όταν εκτελείται στην αλυσίδα συστοιχιών. -Η αξιοπιστία είναι μια ιδιαίτερα επιθυμητή ποιότητα σε οποιοδήποτε έξυπνο συμβόλαιο, ειδικά επειδή ο κώδικας που αναπτύσσεται στο εικονικό μηχάνημα του Ethereum (EVM) είναι συνήθως αμετάβλητος. Με τις αναβαθμίσεις μετά την κυκλοφορία να μην είναι εύκολα προσβάσιμες, η ανάγκη εγγύησης της αξιοπιστίας των συμβολαίων καθιστά απαραίτητη την τυπική επαλήθευση. Η τυπική επαλήθευση είναι σε θέση να εντοπίσει δύσκολα προβλήματα, όπως υποχείλιση και υπερχείλιση ακεραίων, επανεισδοχή και κακές βελτιστοποιήσεις gas, οι οποίες μπορούν να ξεφύγουν από ελεγκτές και δοκιμαστές. +Η αξιοπιστία είναι μια ιδιαίτερα επιθυμητή ποιότητα σε οποιοδήποτε έξυπνο συμβόλαιο, ειδικά επειδή ο κώδικας που αναπτύσσεται στο εικονικό μηχάνημα του Ethereum (EVM) είναι συνήθως αμετάβλητος. Με τις αναβαθμίσεις μετά την κυκλοφορία να μην είναι εύκολα προσβάσιμες, η ανάγκη εγγύησης της αξιοπιστίας των συμβολαίων καθιστά απαραίτητη την τυπική επαλήθευση. Η τυπική επαλήθευση είναι σε θέση να εντοπίσει δύσκολα προβλήματα, όπως υποχείλιση και υπερχείλιση ακεραίων, επανεισδοχή και κακές βελτιστοποιήσεις gas, οι οποίες μπορεί να ξεφύγουν από ελεγκτές και δοκιμαστές. #### Απόδειξη λειτουργικής ορθότητας {#prove-functional-correctness} diff --git a/public/content/translations/el/developers/docs/standards/index.md b/public/content/translations/el/developers/docs/standards/index.md new file mode 100644 index 00000000000..48a6d49330e --- /dev/null +++ b/public/content/translations/el/developers/docs/standards/index.md @@ -0,0 +1,59 @@ +--- +title: Πρότυπα ανάπτυξης Ethereum +description: +lang: el +incomplete: true +--- + +## Επισκόπηση προτύπων {#standards-overview} + +Η κοινότητα του Ethereum έχει υιοθετήσει πολλά πρότυπα που βοηθούν στη διατήρηση της διαλειτουργικότητας μεταξύ των έργων (όπως οι εφαρμογές [πελάτη του Ethereum](/developers/docs/nodes-and-clients/) και των πορτοφολιών) και να διασφαλιστεί η πολυπλοκότητα των έξυπνων συμβολαίων και των dapps. + +Συνήθως τα πρότυπα εισάγονται ως [προτάσεις βελτίωσης του Ethereum](/eips/) (EIPs), οι οποίες συζητούνται από τα μέλη της κοινότητας μέσω μιας [τυπικής διαδικασίας](https://eips.ethereum.org/EIPS/eip-1). + +- [Εισαγωγή στα EIP](/eips/) +- [Λίστα EIPs](https://eips.ethereum.org/) +- [Αποθετήριο EIP GitHub](https://github.com/ethereum/EIPs) +- [Φόρουμ συζητήσεων EIP](https://ethereum-magicians.org/c/eips) +- [Εισαγωγή στη διακυβέρνηση του Ethereum](/governance/) +- [Επισκόπηση διακυβέρνησης Ethereum](https://web.archive.org/web/20201107234050/https://blog.bmannconsulting.com/ethereum-governance/) _31 Μαρτίου 2019 - Boris Mann_ +- [Συντονισμός Αναπτυξιακής Διακυβέρνησης Πρωτοκόλλου του Ethereum](https://hudsonjameson.com/2020-03-23-ethereum-protocol-development-governance-and-network-upgrade-coordination/) _23 Μαρτίου 2020 - Hudson Jameson_ +- [Λίστα αναπαραγωγής συναντήσεων των Ethereum Core Dev](https://www.youtube.com/@EthereumProtocol) _(Λίστα στο YouTube)_ + +## Τύποι προτύπων {#types-of-standards} + +Υπάρχουν τρεις διαφορετικοί τύποι EIP: + +- Τμήμα προτύπων: περιγράφει κάθε αλλαγή που επηρεάζει τις περισσότερες ή όλες τις υλοποιήσεις του Ethereum. +- [Meta τμήμα](https://eips.ethereum.org/meta): περιγράφει μια διαδικασία γύρω από το Ethereum ή προτείνει μια αλλαγή σε μια διαδικασία. +- [Ενημερωτικό τμήμα](https://eips.ethereum.org/informational): περιγράφει ένα ζήτημα σχεδιασμού του Ethereum ή παρέχει γενικές οδηγίες ή πληροφορίες στην κοινότητα του Ethereum. + +Επιπλέον, το Τμήμα Προτύπων υποδιαιρείται σε 4 κατηγορίες: + +- [Πυρήνας](https://eips.ethereum.org/core): βελτιώσεις που απαιτούν συναίνεση για αναβαθμίσεις. +- [Δικτύωση](https://eips.ethereum.org/networking): βελτιώσεις γύρω από το υπο-πρωτόκολλο devp2p και Light του Ethereum, καθώς και προτεινόμενες βελτιώσεις στις προδιαγραφές πρωτοκόλλου δικτύου των «whisper» και «swarm». +- [Διεπαφή](https://eips.ethereum.org/interface): βελτιώσεις σχετικά με τις προδιαγραφές και τα πρότυπα της εφαρμογής πελάτη API/RPC και ορισμένα πρότυπα γλωσσικού επιπέδου, όπως ονόματα μεθόδων και συμβόλαια ABI. +- [ΕΣΕ](https://eips.ethereum.org/erc): πρότυπα επιπέδων εφαρμογής και συμβάσεις + +Περισσότερες πληροφορίες σχετικά με τους διαφορετικούς τύπους και κατηγορίες μπορούν να βρεθούν στο [EIP-1](https://eips.ethereum.org/EIPS/eip-1#eip-types) + +### Πρότυπα token {#token-standards} + +- [ERC-20](/developers/docs/standards/tokens/erc-20/) - Ένα πρότυπο διεπαφής για εναλλάξιμα (ανταλλάξιμα) ψηφιακά στοιχεία, όπως κρύπτο ψηφοφορίας, αποθήκευσης κεφαλαίου ή εικονικά νομίσματα. + - [ERC-223](/developers/docs/standards/tokens/erc-223/) - Ένα πρότυπο εναλλάξιμων κρυπτοπαραστατικών που κάνει τα κρύπτο να συμπεριφέρονται πανομοιότυπα με το ether, υποστηρίζoντας τον χειρισμό μεταφορών κρύπτο από την πλευρά του παραλήπτη. + - [ERC-1363](https://eips.ethereum.org/EIPS/eip-1363) - Καθορίζει μια διεπαφή κρυπτονομίσματος ERC-20 που υποστηρίζει την εκτέλεση κωδικού παραλήπτη μετά τη μεταφορά ή μεταφορά από, ή τον κωδικό δαπάνης μετά την έγκριση. +- [ERC-721](/developers/docs/standards/tokens/erc-721/) - Μια τυπική διεπαφή για μη εναλλάξιμα κρυπτοπαραστατικά, όπως μια πράξη για έργα τέχνης ή ένα τραγούδι. + - [ERC-2309](https://eips.ethereum.org/EIPS/eip-2309) - Ένα τυποποιημένο γεγονός που εκπέμπεται κατά τη δημιουργία/μεταφορά ενός ή πολλών μη εναλλάξιμων κρυπτονομισμάτων με τη χρήση διαδοχικών αναγνωριστικών κρυπτονομισμάτων. + - [ERC-4400](https://eips.ethereum.org/EIPS/eip-4400) - Επέκταση για τη διεπαφή για καταναλωτικό ρόλο EIP-721. + - [ERC-4907](https://eips.ethereum.org/EIPS/eip-4907) - Προσθήκη ενός ρόλου περιορισμένου χρόνου με ορισμένα δικαιώματα για κρυπτονομίσματα ERC-721. +- [ERC-777](/developers/docs/standards/tokens/erc-777/) - **(ΔΕΝ ΠΡΟΤΕΙΝΕΤΑΙ)** Ένα πρότυπο κρυπτονομίσματος βελτιώνοντας το ERC-20. +- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) - Ένα πρότυπο κρυπτονομίσματος που μπορεί να περιέχει τόσο εναλλάξιμα όσο και μη εναλλάξιμα κρυπτοπαραστατικά. +- [ERC-4626](/developers/docs/standards/tokens/erc-4626/) - Ένα πρότυπο θησαυροφυλάκιο με κρύπτο σχεδιασμένο για τη βελτιστοποίηση και την ενοποίηση των τεχνικών παραμέτρων των θησαυροφυλακίων που φέρουν απόδοση. + +Μάθετε περισσότερα σχετικά με [πρότυπα κρυπτονομισμάτων](/developers/docs/standards/tokens/). + +## Περισσότερες πληροφορίες {#further-reading} + +- [Προτάσεις Βελτίωσης του Ethereum (EIP)](/eips/) + +_Γνωρίζετε κάποιο πόρο της κοινότητας που σας βοήθησε; Επεξεργαστείτε αυτή τη σελίδα και προσθέστε το!_ diff --git a/public/content/translations/el/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/el/developers/docs/standards/tokens/erc-1155/index.md new file mode 100644 index 00000000000..e7dc7c7875a --- /dev/null +++ b/public/content/translations/el/developers/docs/standards/tokens/erc-1155/index.md @@ -0,0 +1,146 @@ +--- +title: ERC-1155 Πρότυπο Πολλαπλών Ψηφιακών Στοιχείων +description: +lang: el +--- + +## Εισαγωγή {#introduction} + +Μια τυπική διεπαφή για συμβόλαια που διαχειρίζονται πολλούς τύπους κρυπτονομισμάτων. Ένα απλό συμβόλαιο που έχει αναπτυχθεί μπορεί να περιλαμβάνει κάθε συνδυασμό εναλλάξιμων κρυπτοπαραστατικών, μη εναλλάξιμων κρυπτοπαραστατικών ή άλλων παραμέτρων (π.χ. ημι-εναλλάξιμα κρυπτοπαραστατικά). + +**Τι εννοούμε με το πρότυπο πολλαπλών στοιχείων;** + +Η ιδέα είναι απλή και επιδιώκει να δημιουργήσει μια διεπαφή έξυπνου συμβολαίου που μπορεί να αντιπροσωπεύει και να ελέγχει οποιοδήποτε αριθμό τύπων εναλλάξιμων και μη εναλλάξιμων ψηφιακών στοιχείων. Με αυτόν τον τρόπο, ένα ψηφιακό στοιχείο ERC-1155 μπορεί να έχει τις ίδιες λειτουργίες με ένα ψηφιακό στοιχείο [ERC-20](/developers/docs/standards/tokens/erc-20/) και [ERC-721](/developers/docs/standards/tokens/erc-721/) ή ακόμη και τα δύο ταυτόχρονα. Βελτιώνει τη λειτουργικότητα τόσο του προτύπου ERC-20 όσο και του ERC-721, καθιστώντας το πιο αποτελεσματικό και διορθώνοντας προφανή σφάλματα υλοποίησης. + +Το ψηφιακό στοιχείο ERC-1155 περιγράφεται πλήρως στο [EIP-1155](https://eips.ethereum.org/EIPS/eip-1155). + +## Προαπαιτούμενα {#prerequisites} + +Για να κατανοήσετε καλύτερα αυτή τη σελίδα, σας συνιστούμε να διαβάσετε πρώτα για τα [πρότυπα ψηφιακών στοιχείων](/developers/docs/standards/tokens/) [ERC-20](/developers/docs/standards/tokens/erc-20/) και [ERC-721](/developers/docs/standards/tokens/erc-721/). + +## Λειτουργίες και Χαρακτηριστικά ERC-1155: {#body} + +- [Μεταφορά παρτίδας](#batch_transfers): Μεταφορά πολλών περιουσιακών στοιχείων με μία μόνο κλήση. +- [Υπόλοιπο παρτίδας](#batch_balance): Λήψη των υπολοίπων πολλών περιουσιακών στοιχείων με μία μόνο κλήση. +- [Έγκριση παρτίδας](#batch_approval): Έγκριση όλων των ψηφιακών στοιχείων σε μια διεύθυνση. +- [Hooks](#receive_hook): Λήψη token hook. +- [Υποστήριξη NFT](#nft_support): Εάν η προσφορά είναι μόνο 1, αντιμετωπίστε την ως NFT. +- [Κανόνες ασφαλούς μεταφοράς](#safe_transfer_rule): Σύνολο κανόνων για ασφαλή μεταφορά. + +### Μεταφορές παρτίδας {#batch-transfers} + +Η μεταφορά παρτίδας λειτουργεί πολύ παρόμοια με τις κανονικές μεταφορές ERC-20. Ας δούμε τη συνάρτηση `transferFrom` ERC-20: + +```solidity +// ERC-20 +function transferFrom(address from, address to, uint256 value) external returns (bool); + +// ERC-1155 +function safeBatchTransferFrom( + address _from, + address _to, + uint256[] calldata _ids, + uint256[] calldata _values, + bytes calldata _data +) external; +``` + +Η μόνη διαφορά στο ERC-1155 είναι ότι περνάμε τις τιμές ως μια σειρά και περνάμε επίσης μια σειρά από αναγνωριστικά. Για παράδειγμα, `ids= [3, 6, 13]` και των `values= [100, 200, 5]`, οι προκύπτουσες μεταφορές θα είναι + +1. Μεταφορά 100 ψηφιακών στοιχείων με id 3 από `_from` σε `_to`. +2. Μεταφορά 200 ψηφιακών στοιχείων με id 6 από `_from` σε `_to`. +3. Μεταφορά 5 ψηφιακών στοιχείων με id 13 από `_from` σε `_to`. + +Στο ERC-1155 υπάρχει μόνο `transferFrom`, και όχι `transfer`. Για να το χρησιμοποιήσετε σαν ένα κανονικό `transfer`, απλά ορίστε το στη διεύθυνση "από" στη διεύθυνση που ζητά τη συνάρτηση. + +### Υπόλοιπο παρτίδας {#batch-balance} + +Η αντίστοιχη κλήση `balanceOf` του ERC-20 έχει επίσης τη συνάρτηση συνεργάτη της με υποστήριξη παρτίδας. Ως υπενθύμιση, αυτή είναι η έκδοση ERC-20: + +```solidity +// ERC-20 +function balanceOf(address owner) external view returns (uint256); + +// ERC-1155 +function balanceOfBatch( + address[] calldata _owners, + uint256[] calldata _ids +) external view returns (uint256[] memory); +``` + +Ακόμη απλούστερη για την κλήση ισοζυγίου, μπορούμε να ανακτήσουμε πολλαπλά ισοζύγια σε μια ενιαία κλήση. Περνάμε τη σειρά των κατόχων, ακολουθούμενη από τη σειρά των αναγνωριστικών token. + +Για παράδειγμα, το `_ids=[3, 6, 13]` και `_owners=[0xbeef..., 0x1337..., 0x1111...]`, η τιμή του αποτελέσματος θα είναι + +```solidity +[ + balanceOf(0xbeef...), + balanceOf(0x1337...), + balanceOf(0x1111...) +] +``` + +### Έγκριση παρτίδας {#batch-approval} + +```solidity +// ERC-1155 +function setApprovalForAll( + address _operator, + bool _approved +) external; + +function isApprovedForAll( + address _owner, + address _operator +) external view returns (bool); +``` + +Οι εγκρίσεις είναι ελαφρώς διαφορετικές από το ERC-20. Αντί να εγκρίνετε συγκεκριμένα ποσά, ορίζετε έναν χειριστή ως εγκεκριμένο ή μη εγκεκριμένο μέσω του `setApprovalForAll`. + +Η ανάγνωση της τρέχουσας κατάστασης μπορεί να γίνει μέσω του `isApprovedForAll`. Όπως μπορείτε να δείτε, είναι μια λειτουργία όλα ή τίποτα. Δεν μπορείτε να ορίσετε πόσα ψηφιακά στοιχεία θα εγκρίνετε ή καν ποια κατηγορία ψηφιακού στοιχείου αφορά. + +Αυτό έχει σχεδιαστεί σκόπιμα με γνώμονα την απλότητα. Μπορείτε να τα εγκρίνετε όλα για μία διεύθυνση. + +### Receive Hook {#receive-hook} + +```solidity +function onERC1155BatchReceived( + address _operator, + address _from, + uint256[] calldata _ids, + uint256[] calldata _values, + bytes calldata _data +) external returns(bytes4); +``` + +Δεδομένης της υποστήριξης [EIP-165](https://eips.ethereum.org/EIPS/eip-165), το ERC-1155 υποστηρίζει τα hooks λήψης μόνο για έξυπνα συμβόλαια. Η συνάρτηση hook πρέπει να επιστρέφει μια μαγική προκαθορισμένη τιμή bytes4 που δίνεται ως: + +```solidity +bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)")) +``` + +Όταν το συμβαλλόμενο μέρος που λαμβάνει επιστρέφει αυτήν την τιμή, υποτίθεται ότι το συμβαλλόμενο μέρος αποδέχεται τη μεταφορά και γνωρίζει πώς να χειρίζεται τα token ERC-1155. Ωραία, τέλος τα κολλημένα token σε ένα συμβόλαιο! + +### Υποστήριξη NFT {#nft-support} + +Όταν η προσφορά είναι μόνο μία, το token είναι ουσιαστικά ένα μη εναλλάξιμο token (NFT). Και όπως είναι τυπικό για το ERC-721, μπορείτε να ορίσετε μια διεύθυνση URL μεταδεδομένων. Η διεύθυνση URL μπορεί να διαβαστεί και να τροποποιηθεί από τους πελάτες, δείτε [εδώ](https://eips.ethereum.org/EIPS/eip-1155#metadata). + +### Κανόνας Ασφαλούς Μεταφοράς {#safe-transfer-rule} + +Έχουμε ήδη αναφερθεί σε μερικούς κανόνες ασφαλούς μεταφοράς στις προηγούμενες εξηγήσεις. Αλλά ας δούμε τους πιο σημαντικούς από τους κανόνες: + +1. Ο αποστολέας πρέπει να έχει εγκριθεί για να ξοδέψει τα ψηφιακά στοιχεία για τη διεύθυνση `_from` ή ο αποστολέας πρέπει να ισούται με `_from`. +2. Η κλήση μεταφοράς πρέπει να αναστρέφεται εάν + 1. `_to` η διεύθυνση είναι 0. + 2. Το μήκος του `_ids` δεν είναι ίδιο με το μήκος του `_values`. + 3. Οποιοδήποτε από τα υπόλοιπα του κατόχου ή των κατόχων για το ή τα token στο `_ids` είναι χαμηλότερο από τα αντίστοιχα ποσά στο `_values` που αποστέλλονται στον παραλήπτη. + 4. Προκύπτει οποιοδήποτε άλλο σφάλμα. + +_Σημείωση_: Όλες οι συναρτήσεις παρτίδας συμπεριλαμβανομένης του hook υπάρχουν επίσης ως εκδόσεις χωρίς παρτίδα. Αυτό γίνεται για απόδοση gas, λαμβάνοντας υπόψη ότι η μεταφορά μόνο ενός περιουσιακού στοιχείου θα είναι πιθανώς ο πιο συχνά χρησιμοποιούμενος τρόπος. Τα παραλείψαμε για απλότητα στις εξηγήσεις, συμπεριλαμβανομένων των κανόνων ασφαλούς μεταφοράς. Τα ονόματα είναι ίδια, απλώς αφαιρέστε το 'Batch'. + +## Περισσότερες πληροφορίες {#further-reading} + +- [EIP-1155: Πρότυπα Πολλαπλών Ψηφιακών Στοιχείων](https://eips.ethereum.org/EIPS/eip-1155) +- [ERC-1155: Τεκμηρίωση Openzeppelin](https://docs.openzeppelin.com/contracts/5.x/erc1155) +- [ERC-1155: Αποθετήριο GitHub](https://github.com/enjin/erc-1155) +- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/public/content/translations/el/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/el/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..1aa377ac472 --- /dev/null +++ b/public/content/translations/el/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,172 @@ +--- +title: Πρότυπο Ψηφιακού Στοιχείου ERC-20 +description: +lang: el +--- + +## Εισαγωγή {#introduction} + +**Τι είναι ένα Ψηφιακό Στοιχείο;** + +Τα Ψηφιακά Στοιχεία μπορούν να αντιπροσωπεύουν σχεδόν τα πάντα στο Ethereum: + +- πόντους φήμης σε μια πλατφόρμα στο διαδίκτυο +- ικανότητες του χαρακτήρα σε ένα παιχνίδι +- χρηματοοικονομικά στοιχεία όπως μετοχές εταιρείας +- ένα νόμισμα όπως το USD +- μια ουγγιά χρυσού +- και πολλά άλλα... + +Ένα τόσο ισχυρό χαρακτηριστικό του Ethereum πρέπει να χειρίζεται από ένα ισχυρό πρότυπο; Αυτό είναι ακριβώς όπου το ERC-20 παίζει το ρόλο του! Αυτό το πρότυπο επιτρέπει στους προγραμματιστές να δημιουργούν εφαρμογές ψηφιακών στοιχείων που είναι διαλειτουργικές με άλλα προϊόντα και υπηρεσίες. Το πρότυπο ERC-20 χρησιμοποιείται επίσης για την παροχή πρόσθετης λειτουργικότητας στο [ether](/glossary/#ether). + +**Τι είναι το ERC-20;** + +Το ERC-20 εισάγει ένα πρότυπο για ανταλλάξιμα ψηφιακά στοιχεία, με άλλα λόγια, έχουν μια ιδιότητα που κάνει κάθε ψηφιακό στοιχείο να είναι ακριβώς το ίδιο (σε τύπο και αξία) με ένα άλλο. Για παράδειγμα, ένα ψηφιακό στοιχείο ERC-20 λειτουργεί ακριβώς όπως το ETH, που σημαίνει ότι 1 ψηφιακό στοιχείο ισούται και θα ισούται πάντα με όλα τα άλλα. + +## Προαπαιτούμενα {#prerequisites} + +- [Λογαριασμοί](/developers/docs/accounts) +- [Έξυπνα Συμβόλαια](/developers/docs/smart-contracts/) +- [Πρότυπα ψηφιακού στοιχείου](/developers/docs/standards/tokens/) + +## Κορμός {#body} + +Το ERC-20 (Ethereum Request for Comments 20), που προτάθηκε από τον Fabian Vogelsteller τον Νοέμβριο του 2015, είναι ένα πρότυπο ψηφιακού στοιχείου που υλοποιεί ένα API για ψηφιακά στοιχεία εντός έξυπνων συμβολαίων. + +Παραδείγματα λειτουργιών που παρέχει το ERC-20: + +- μεταφορά token από έναν λογαριασμό σε έναν άλλο +- λήψη του τρέχοντος υπολοίπου token ενός λογαριασμού +- Λήψη συνολικού κεφαλαίου του ψηφιακού στοιχείου που είναι διαθέσιμο στο δίκτυο +- Έγκριση εάν ένα ποσό ψηφιακού στοιχείου ενός λογαριασμού μπορεί να δαπανηθεί από έναν τρίτο λογαριασμό + +Εάν ένα έξυπνο συμβόλαιο εφαρμόζει τις ακόλουθες μεθόδους και συμβάντα μπορεί να ονομαστεί συμβόλαιο ψηφιακού στοιχείου ERC-20 και, όταν αναπτυχθεί, θα είναι υπεύθυνο για την παρακολούθηση των ψηφιακών στοιχείων που θα δημιουργηθούν στο Ethereum. + +Από το [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Μέθοδοι {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Συμβάντα {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Παραδείγματα {#web3py-example} + +Ας δούμε πώς ένα πρότυπο είναι τόσο σημαντικό για να μας διευκολύνει να επιθεωρήσουμε οποιοδήποτε έξυπνο συμβόλαιο ERC-20 Token στο Ethereum. Χρειαζόμαστε μόνο το Διασύνδεσμο Δυαδικού Κώδικα Εφαρμογής Συμβολαίου (ABI) για να δημιουργήσουμε μια διεπαφή σε οποιοδήποτε ERC-20 Token. Όπως μπορείτε να δείτε παρακάτω, θα χρησιμοποιήσουμε ένα απλοποιημένο ABI, για να το κάνουμε ένα παράδειγμα χαμηλής τριβής. + +#### Παράδειγμα Web3.py {#web3py-example} + +Αρχικά, βεβαιωθείτε ότι έχετε εγκαταστήσει τη βιβλιοθήκη της Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Γνωστά ζητήματα {#erc20-issues} + +### Πρόβλημα λήψης αποδεικτικού ERC-20 {#reception-issue} + +Όταν αποστέλλονται token ERC-20 σε ένα έξυπνο συμβόλαιο που δεν έχει σχεδιαστεί να χειρίζεται token ERC-20, αυτά τα token μπορούν να χαθούν μόνιμα. Αυτό συμβαίνει επειδή το συμβαλλόμενο μέρος που λαμβάνει δεν έχει τη λειτουργικότητα να αναγνωρίζει ή να ανταποκρίνεται στα εισερχόμενα token και δεν υπάρχει μηχανισμός στο πρότυπο ERC-20 για να ειδοποιήσει το συμβαλλόμενο μέρος που λαμβάνει σχετικά με τα εισερχόμενα token. Οι κύριοι τρόποι με τους οποίους εμφανίζεται αυτό το ζήτημα είναι μέσω: + +1. Μηχανισμός μεταφοράς κρυπτονομισμάτων + - Τα ψηφιακά στοιχεία ERC-20 μεταφέρονται χρησιμοποιώντας τις συναρτήσεις transfer ή transferFrom + - Όταν ένας χρήστης στέλνει κρύπτο σε μια διεύθυνση συμβολαίου χρησιμοποιώντας αυτές τις συναρτήσεις, αυτά μεταφέρονται ανεξάρτητα από το εάν το συμβαλλόμενο μέρος που λαμβάνει έχει σχεδιαστεί για να τα χειρίζεται +2. Έλλειψη ειδοποίησης + - Το συμβαλλόμενο μέρος δε λαμβάνει ειδοποίηση ή ενημέρωση ότι του έχουν σταλεί ψηφιακά στοιχεία + - Εάν το συμβαλλόμενο μέρος που λαμβάνει δε διαθέτει μηχανισμό για τη διαχείριση κρύπτο (π.χ. μια συνάρτηση fallback ή μια ειδική συνάρτηση για τη διαχείριση λήψης κρύπτο), τα ψηφιακά στοιχεία είναι ουσιαστικά κολλημένα στη διεύθυνση του συμβολαίου. +3. Χωρίς ενσωματωμένη διαχείριση + - Το πρότυπο ERC-20 δεν περιλαμβάνει υποχρεωτική συνάρτηση για την εφαρμογή συμβαλλόμενων μερών που λαμβάνουν, οδηγώντας σε μια κατάσταση όπου πολλά συμβόλαια δεν είναι σε θέση να διαχειρίζονται σωστά τα εισερχόμενα token + +Μερικά εναλλακτικά πρότυπα προέκυψαν από αυτό το ζήτημα, όπως το [ERC-223](/developers/docs/standards/tokens/erc-223) + +## Περισσότερες πληροφορίες {#further-reading} + +- [EIP-20: ERC-20 Πρότυπο Ψηφιακού Στοιχείου](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Ψηφιακά Στοιχεία](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - Εφαρμογή του ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [Alchemy - Οδηγός για Solidity ERC20 Tokens](https://www.alchemy.com/overviews/erc20-solidity) + + +## Άλλα πρότυπα ανταλλάξιμων ψηφιακών στοιχείων {#fungible-token-standards} + +- [ERC-223](/developers/docs/standards/tokens/erc-223) +- [ERC-777](/developers/docs/standards/tokens/erc-777) +- [ERC-4626 - Θησαυροφυλάκια με κρυπτονομίσματα](/developers/docs/standards/tokens/erc-4626) \ No newline at end of file diff --git a/public/content/translations/el/developers/docs/standards/tokens/erc-223/index.md b/public/content/translations/el/developers/docs/standards/tokens/erc-223/index.md new file mode 100644 index 00000000000..84051c7580d --- /dev/null +++ b/public/content/translations/el/developers/docs/standards/tokens/erc-223/index.md @@ -0,0 +1,197 @@ +--- +title: Πρότυπο ERC-223 Ψηφιακών Στοιχείων +description: Μια επισκόπηση του προτύπου ανταλλάξιμου ψηφιακού στοιχείου ERC-223, πώς λειτουργεί και σύγκριση με το ERC-20. +lang: el +--- + +## Εισαγωγή {#introduction} + +### Τι είναι το ERC-223; {#what-is-erc223} + +Το ERC-223 είναι ένα πρότυπο για ανταλλάξιμα ψηφιακά στοιχεία, παρόμοιο με το πρότυπο ERC-20. Η βασική διαφορά είναι ότι το ERC-223 ορίζει όχι μόνο το API του ψηφιακού στοιχείου, αλλά και τη λογική για τη μεταφορά του από τον αποστολέα στον παραλήπτη. Εισάγει ένα μοντέλο επικοινωνίας που επιτρέπει τη διαχείριση των μεταφορών ψηφιακών στοιχείων από την πλευρά του παραλήπτη. + +### Διαφορές από το ERC-20 {#erc20-differences} + +Το ERC-223 αντιμετωπίζει ορισμένους περιορισμούς του ERC-20 και εισάγει μια νέα μέθοδο αλληλεπίδρασης μεταξύ του συμβολαίου του ψηφιακού στοιχείου και ενός συμβολαίου που ενδέχεται να λάβει τα ψηφιακά στοιχεία. Υπάρχουν λίγα πράγματα που είναι δυνατά με το ERC-223, αλλά όχι με το ERC-20: + +- Διαχείριση μεταφοράς ψηφιακού στοιχείου από την πλευρά του παραλήπτη: Οι παραλήπτες μπορούν να ανιχνεύσουν ότι κατατίθεται ένα ψηφιακό στοιχείο ERC-223. +- Απόρριψη ψηφιακών στοιχείων που αποστέλλονται ακατάλληλα: Εάν ένας χρήστης στείλει ένα ψηφιακό στοιχείο ERC-223 σε ένα συμβόλαιο που δεν υποτίθεται ότι θα λάβει ψηφιακά στοιχεία, το συμβόλαιο μπορεί να απορρίψει τη συναλλαγή, αποτρέποντας την απώλεια των ψηφιακών στοιχείων. +- Μεταδεδομένα σε μεταφορές: Τα ψηφιακά στοιχεία ERC-223 μπορούν να περιλαμβάνουν μεταδεδομένα, επιτρέποντας την προσάρτηση αυθαίρετων πληροφοριών σε συναλλαγές ψηφιακών στοιχείων. + +## Προαπαιτούμενα {#prerequisites} + +- [Λογαριασμοί](/developers/docs/accounts) +- [Έξυπνα συμβόλαια](/developers/docs/smart-contracts/) +- [Πρότυπα κρυπτονομισμάτων](/developers/docs/standards/tokens/) +- [ERC-20](/developers/docs/standards/tokens/erc-20/) + +## Κορμός {#body} + +Το ERC-223 είναι ένα πρότυπο ψηφιακού στοιχείου που υλοποιεί ένα API για ψηφιακά στοιχεία εντός έξυπνων συμβολαίων. Δηλώνει επίσης ένα API για συμβόλαια που υποτίθεται ότι θα λάβουν ψηφιακά στοιχεία ERC-223. Τα συμβόλαια που δεν υποστηρίζουν το ERC-223 Receiver API δεν μπορούν να λάβουν ψηφιακά στοιχεία ERC-223, αποτρέποντας το σφάλμα χρήστη. + +Εάν ένα έξυπνο συμβόλαιο υλοποιεί τις ακόλουθες μεθόδους και συμβάντα, μπορεί να ονομαστεί συμβόλαιο ψηφιακού στοιχείου συμβατό με ERC-223. Μόλις αναπτυχθεί, θα είναι υπεύθυνο να παρακολουθεί τα ψηφιακά στοιχεία που δημιουργήθηκαν στο Ethereum. + +Το συμβόλαιο δεν είναι υποχρεωμένο να έχει μόνο αυτές τις λειτουργίες και ένας προγραμματιστής μπορεί να προσθέσει οποιοδήποτε άλλο χαρακτηριστικό από διαφορετικά πρότυπα ψηφιακού στοιχείου σε αυτό το συμβόλαιο. Για παράδειγμα, οι συναρτήσεις `approve` και `transferFrom` δεν αποτελούν μέρος του προτύπου ERC-223, αλλά αυτές οι συναρτήσεις θα μπορούσαν να υλοποιηθούν εάν είναι απαραίτητο. + +Από [EIP-223](https://eips.ethereum.org/EIPS/eip-223): + +### Μέθοδοι {#methods} + +Το ψηφιακό στοιχείο ERC-223 πρέπει να υποστηρίζει τις ακόλουθες μεθόδους: + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transfer(address _to, uint256 _value, bytes calldata _data) public returns (bool success) +``` + +Ένα συμβόλαιο που υποτίθεται ότι λαμβάνει ψηφιακά στοιχεία ERC-223 πρέπει να υλοποιεί την ακόλουθη μέθοδο: + +```solidity +function tokenReceived(address _from, uint _value, bytes calldata _data) +``` + +Εάν τα ψηφιακά στοιχεία ERC-223 αποστέλλονται σε ένα συμβόλαιο που δεν υλοποιεί τη συνάρτηση `tokenReceived(..)`, τότε η μεταφορά πρέπει να αποτύχει και τα ψηφιακά στοιχεία δεν πρέπει να μετακινηθούν από το υπόλοιπο του αποστολέα. + +### Γεγονότα {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value, bytes calldata _data) +``` + +### Παραδείγματα {#examples} + +Το API του ψηφιακού στοιχείου ERC-223 είναι παρόμοιο με αυτό του ERC-20, επομένως από την άποψη της ανάπτυξης UI δεν υπάρχει διαφορά. Η μόνη εξαίρεση εδώ είναι ότι τα ψηφιακά στοιχεία ERC-223 ενδέχεται να μην έχουν συναρτήσεις `approve` + `transferFrom`, καθώς αυτές είναι προαιρετικές για αυτό το πρότυπο. + +#### Παραδείγματα Solidity {#solidity-example} + +Το ακόλουθο παράδειγμα απεικονίζει τον τρόπο λειτουργίας ενός βασικού συμβολαίου ψηφιακού στοιχείου ERC-223: + +```solidity +pragma solidity ^0.8.19; +abstract contract IERC223Recipient { + function tokenReceived(address _from, uint _value, bytes memory _data) public virtual; +} +contract VeryBasicERC223Token { + event Transfer(address indexed from, address indexed to, uint value, bytes data); + string private _name; + string private _symbol; + uint8 private _decimals; + uint256 private _totalSupply; + mapping(address => uint256) private balances; + function name() public view returns (string memory) { return _name; } + function symbol() public view returns (string memory) {return _symbol; } + function decimals() public view returns (uint8) { return _decimals; } + function totalSupply() public view returns (uint256) { return _totalSupply; } + function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } + function isContract(address account) internal view returns (bool) { + uint256 size; + assembly { size := extcodesize(account) } + return size > 0; + } + function transfer(address _to, uint _value, bytes calldata _data) public returns (bool success){ + balances[msg.sender] = balances[msg.sender] - _value; + balances[_to] = balances[_to] + _value; + if(isContract(_to)) { + IERC223Recipient(_to).tokenReceived(msg.sender, _value, _data); + } + emit Transfer(msg.sender, _to, _value, _data); + return true; + } + function transfer(address _to, uint _value) public returns (bool success){ + bytes memory _empty = hex"00000000"; + balances[msg.sender] = balances[msg.sender] - _value; + balances[_to] = balances[_to] + _value; + if(isContract(_to)) { + IERC223Recipient(_to).tokenReceived(msg.sender, _value, _empty); + } + emit Transfer(msg.sender, _to, _value, _empty); + return true; + } +} +``` + +Τώρα θέλουμε ένα άλλο συμβόλαιο να δέχεται καταθέσεις του `tokenA`, υποθέτοντας ότι το tokenA είναι ένα ψηφιακό στοιχείο ERC-223. Το συμβόλαιο πρέπει να δέχεται μόνο το tokenA και να απορρίπτει οποιαδήποτε άλλα ψηφιακά στοιχεία. Όταν το συμβόλαιο λαμβάνει το tokenA, πρέπει να εκπέμπει ένα γεγονός `Deposit()` και να αυξάνει την τιμή της εσωτερικής μεταβλητής `deposits`. + +Δείτε παρακάτω τον κώδικα: + +```solidity +contract RecipientContract is IERC223Recipient { + event Deposit(address whoSentTheTokens); + uint256 deposits = 0; + address tokenA; // The only token that we want to accept. + function tokenReceived(address _from, uint _value, bytes memory _data) public override + { + // It is important to understand that within this function + // msg.sender is the address of a token that is being received, + // msg.value is always 0 as the token contract does not own or send ether in most cases, + // _from is the sender of the token transfer, + // _value is the amount of tokens that was deposited. + require(msg.sender == tokenA); + deposits += _value; + emit Deposit(_from); + } +} +``` + +## Συχνές ερωτήσεις {#faq} + +### Τι θα συμβεί εάν στείλουμε κάποιο tokenB στο συμβόλαιο; {#sending-tokens} + +Η συναλλαγή θα αποτύχει και η μεταφορά των ψηφιακών στοιχείων δε θα πραγματοποιηθεί. Τα κρυπτονομίσματα θα επιστραφούν στη διεύθυνση αποστολέα. + +### Πώς μπορούμε να κάνουμε μια κατάθεση σε αυτό το συμβόλαιο; {#contract-deposits} + +Καλέστε τη συνάρτηση `transfer(address,uint256)` ή `transfer(address,uint256,bytes)` του ψηφιακού στοιχείου ERC-223, καθορίζοντας τη διεύθυνση του `RecipientContract`. + +### Τι θα συμβεί εάν μεταφέρουμε ένα ψηφιακό στοιχείο ERC-20 σε αυτό το συμβόλαιο; {#erc-20-transfers} + +Εάν ένα ψηφιακό στοιχείο ERC-20 αποσταλεί στο `RecipientContract`, τα ψηφιακά στοιχεία θα μεταφερθούν, αλλά η μεταφορά δε θα αναγνωριστεί (δε θα ενεργοποιηθεί κανένα συμβάν `Deposit()` και η τιμή των καταθέσεων δε θα αλλάξει). Οι ανεπιθύμητες καταθέσεις ERC-20 δεν μπορούν να φιλτραριστούν ή να αποτραπούν. + +### Τι γίνεται αν θέλουμε να εκτελέσουμε κάποια συνάρτηση μετά την ολοκλήρωση της κατάθεσης ψηφιακού στοιχείου; {#function-execution} + +Υπάρχουν πολλοί τρόποι για να το κάνετε αυτό. Σε αυτό το παράδειγμα θα ακολουθήσουμε τη μέθοδο που κάνει τις μεταφορές ERC-223 πανομοιότυπες με τις μεταφορές ether: + +```solidity +contract RecipientContract is IERC223Recipient { + event Foo(); + event Bar(uint256 someNumber); + address tokenA; // The only token that we want to accept. + function tokenReceived(address _from, uint _value, bytes memory _data) public override + { + require(msg.sender == tokenA); + address(this).call(_data); // Handle incoming transaction and perform a subsequent function call. + } + function foo() public + { + emit Foo(); + } + function bar(uint256 _someNumber) public + { + emit Bar(_someNumber); + } +} +``` + +Όταν το `RecipientContract` λάβει ένα ψηφιακό στοιχείο ERC-223, το συμβόλαιο θα εκτελέσει μια συνάρτηση κωδικοποιημένη ως παράμετρος `_data` της συναλλαγής ψηφιακού στοιχείου, πανομοιότυπη με τον τρόπο με τον οποίο οι συναλλαγές ether κωδικοποιούν τις κλήσεις συναρτήσεων ως `δεδομένα` συναλλαγών. Διαβάστε το [πεδίο δεδομένων](https://ethereum.org/en/developers/docs/transactions/#the-data-field) για περισσότερες πληροφορίες. + +Στο παραπάνω παράδειγμα, ένα ψηφιακό στοιχείο ERC-223 πρέπει να μεταφερθεί στη διεύθυνση του `RecipientContract` με τη συνάρτηση `transfer(address,uin256,bytes calldata _data)`. Εάν η παράμετρος δεδομένων είναι `0xc2985578` (η υπογραφή μιας συνάρτησης `foo()`), τότε η συνάρτηση foo() θα κληθεί μετά τη λήψη της κατάθεσης ψηφιακού στοιχείου και το συμβάν Foo() θα ενεργοποιηθεί. + +Οι παράμετροι μπορούν επίσης να κωδικοποιηθούν στα `δεδομένα` της μεταφοράς ψηφιακού στοιχείου, για παράδειγμα μπορούμε να καλέσουμε τη συνάρτηση bar() με την τιμή 12345 για το `_someNumber`. Σε αυτή την περίπτωση το `δεδομένα` πρέπει να είναι `0x0423a13200000000000000000000000000000000000000000000000000000000000004d2` όπου `0x0423a132` είναι η υπογραφή της συνάρτησης `bar(uint256)` και το `00000000000000000000000000000000000000000000000000000000000004d2` είναι 12345 ως uint256. + +## Περιορισμοί {#limitations} + +Ενώ το ERC-223 αντιμετωπίζει διάφορα προβλήματα που εντοπίζονται στο πρότυπο ERC-20, δεν είναι χωρίς τους δικούς του περιορισμούς: + +- Υιοθέτηση και Συμβατότητα: Το ERC-223 δεν έχει ακόμη υιοθετηθεί ευρέως, γεγονός που μπορεί να περιορίσει τη συμβατότητά του με τα υπάρχοντα εργαλεία και πλατφόρμες. +- Αντίστροφη Συμβατότητα: Το ERC-223 δεν είναι συμβατό με το ERC-20, που σημαίνει ότι τα υπάρχοντα συμβόλαια και εργαλεία ERC-20 δε θα λειτουργούν με τα ψηφιακά στοιχεία ERC-223 χωρίς τροποποιήσεις. +- Κόστος Gas: Οι πρόσθετοι έλεγχοι και λειτουργίες στις μεταφορές ERC-223 μπορεί να οδηγήσουν σε υψηλότερο κόστος αερίου σε σύγκριση με τις συναλλαγές ERC-20. + +## Περαιτέρω υλικό για διάβασμα {#further-reading} + +- [EIP-223: Πρότυπο Token ERC-223[(https://eips.ethereum.org/EIPS/eip-223) +- [Αρχική πρόταση ERC-223](https://github.com/ethereum/eips/issues/223) diff --git a/public/content/translations/el/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/el/developers/docs/standards/tokens/erc-4626/index.md new file mode 100644 index 00000000000..59159b94115 --- /dev/null +++ b/public/content/translations/el/developers/docs/standards/tokens/erc-4626/index.md @@ -0,0 +1,227 @@ +--- +title: Πρότυπο ERC-4626 ψηφιοποίηση θησαυροφυλακίου +description: Πρότυπο για θησαυροφυλάκια απόδοσης. +lang: el +--- + +## Εισαγωγή {#introduction} + +Το ERC-4626 είναι ένα πρότυπο για τη βελτιστοποίηση και ενοποίηση των τεχνικών παραμέτρων των θησαυροφυλακίων απόδοσης. Παρέχει ένα τυποποιημένο API για tokenized θησαυροφυλάκια απόδοσης που αντιπροσωπεύουν μετοχές ενός ενιαίου υποκείμενου ψηφιακού στοιχείου ERC-20. Το ERC-4626 περιγράφει επίσης μια προαιρετική επέκταση για tokenized θησαυροφυλάκια που χρησιμοποιούν ERC-20, προσφέροντας βασικές λειτουργίες για κατάθεση, ανάληψη token και ανάγνωση υπολοίπων. + +**Ο ρόλος του ERC-4626 στα θησαυροφυλάκια απόδοσης** + +Οι αγορές δανεισμού, οι λειτουργίες συγκέντρωσης και τα εγγενώς ψηφιακά στοιχεία απόδοσης, βοηθούν τους χρήστες να βρουν την καλύτερη απόδοση στα κρυπτονομίσματά τους εκτελώντας διαφορετικές στρατηγικές. Αυτές οι στρατηγικές γίνονται με μικρές διαφοροποιήσεις, οι οποίες μπορεί να είναι επιρρεπείς σε σφάλματα ή να σπαταλούν πόρους ανάπτυξης. + +Το ERC-4626 στα θησαυροφυλάκια απόδοσης θα μειώσει την προσπάθεια ενσωμάτωσης και θα ξεκλειδώσει την πρόσβαση στην απόδοση σε διάφορες εφαρμογές με μικρή εξειδικευμένη προσπάθεια από τους προγραμματιστές δημιουργώντας πιο συνεπή και ισχυρά πρότυπα εφαρμογής. + +Το token ERC-4626 περιγράφεται πλήρως στο [EIP-4626](https://eips.ethereum.org/EIPS/eip-4626). + +**Επέκταση ασύγχρονων θησαυροφυλακίων (ERC-7540)** + +Το ERC-4626 είναι βελτιστοποιημένο για ατομικές καταθέσεις και αναλήψεις μέχρι ένα όριο. Αν φτάσει το όριο, δεν μπορούν να υποβληθούν νέες καταθέσεις ή αναλήψεις. Αυτός ο περιορισμός δε λειτουργεί καλά για οποιοδήποτε σύστημα έξυπνων συμβολαίων που απαιτεί ασύγχρονες ενέργειες ή καθυστερήσεις ως προϋπόθεση για τη διασύνδεση με το Θησαυροφυλάκιο (π.χ. πρωτόκολλα πραγματικών περιουσιακών στοιχείων, πρωτόκολλα δανεισμού χωρίς επαρκείς εγγυήσεις, πρωτόκολλα δανεισμού μεταξύ αλυσίδων, tokens ρευστοποίησης συμμετοχής ή ασφαλιστικές μονάδες προστασίας). + +Το ERC-7540 επεκτείνει τη χρησιμότητα των Θησαυροφυλακίων ERC-4626 για ασύγχρονες περιπτώσεις χρήσης. Η υπάρχουσα διεπαφή του Θησαυροφυλακίου (`deposit`/`withdraw`/`mint`/`redeem`) χρησιμοποιείται πλήρως για την αξίωση ασύγχρονων Αιτημάτων. + +Η επέκταση ERC-7540 περιγράφεται πλήρως στο [ERC-7540](https://eips.ethereum.org/EIPS/eip-7540). + +**Επέκταση θησαυροφυλακίων πολλαπλών περιουσιακών στοιχείων (ERC-7575)** + +Μία περίπτωση χρήσης που λείπει και δεν υποστηρίζεται από το ERC-4626 είναι τα Θησαυροφυλάκια που διαθέτουν πολλαπλά περιουσιακά στοιχεία ή σημεία εισόδου, όπως Tokens Παρόχων Ρευστότητας (LP Tokens). Αυτά γενικά είναι δύσχρηστα ή μη συμβατά λόγω της απαίτησης του ERC-4626 να είναι το ίδιο ένα ERC-20. + +Το ERC-7575 προσθέτει υποστήριξη για Θησαυροφυλάκια με πολλαπλά περιουσιακά στοιχεία εξωτερικεύοντας την υλοποίηση του token ERC-20 από την υλοποίηση του ERC-4626. + +Η επέκταση ERC-7575 περιγράφεται πλήρως στο [ERC-7575](https://eips.ethereum.org/EIPS/eip-7575). + +## Προαπαιτούμενα {#prerequisites} + +Για να κατανοήσετε καλύτερα αυτή τη σελίδα, σας συνιστούμε να διαβάσετε πρώτα για τα [πρότυπα token](/developers/docs/standards/tokens/), [ERC-721](/developers/docs/standards/tokens/erc-20/). + +## ERC-4626 Λειτουργίες και χαρακτηριστικά: {#body} + +### Μέθοδοι {#methods} + +#### asset {#asset} + +```solidity +function asset() public view returns (address assetTokenAddress) +``` + +Αυτή η συνάρτηση επιστρέφει τη διεύθυνση του υποκείμενου διακριτικού που χρησιμοποιείται για το θησαυροφυλάκιο για λογιστική, κατάθεση και ανάληψη. + +#### totalAssets {#totalassets} + +```solidity +function totalAssets() public view returns (uint256) +``` + +Αυτή η συνάρτηση επιστρέφει το συνολικό ποσό των υποκείμενων περιουσιακών στοιχείων που κατέχονται από το θησαυροφυλάκιο. + +#### convertToShares {#convertoshares} + +```solidity +function convertToShares(uint256 assets) public view returns (uint256 shares) +``` + +Αυτή η συνάρτηση επιστρέφει το ποσό των `shares` που θα ανταλλάσσονταν από το θησαυροφυλάκιο για το ποσό των `assets` που παρέχονται. + +#### convertToAssets {#convertoassets} + +```solidity +function convertToAssets(uint256 shares) public view returns (uint256 assets) +``` + +Αυτή η συνάρτηση επιστρέφει το ποσό των `shares` που θα ανταλλάσσονταν από το θησαυροφυλάκιο για το ποσό των `assets` που παρέχονται. + +#### maxDeposit {#maxdeposit} + +```solidity +function maxDeposit(address receiver) public view returns (uint256 maxAssets) +``` + +Αυτή η συνάρτηση επιστρέφει το μέγιστο ποσό των υποκείμενων περιουσιακών στοιχείων που μπορεί να κατατεθεί σε μία μόνο κλήση του [`deposit`](#deposit) από τον `receiver`. + +#### previewDeposit {#previewdeposit} + +```solidity +function previewDeposit(uint256 assets) public view returns (uint256 shares) +``` + +Αυτή η λειτουργία επιτρέπει στους χρήστες να προσομοιώνουν τα αποτελέσματα της κατάθεσής τους στο τρέχον μπλοκ. + +#### κατάθεση {#deposit} + +```solidity +function deposit(uint256 assets, address receiver) public returns (uint256 shares) +``` + +Αυτή η συνάρτηση καταθέτει `assets` των υποκείμενων κρυπτονομισμάτων στο θησαυροφυλάκιο και παραχωρεί την κυριότητα των `shares` στον `receiver`. + +#### maxMint {#maxmint} + +```solidity +function maxMint(address receiver) public view returns (uint256 maxShares) +``` + +Αυτή η συνάρτηση επιστρέφει το μέγιστο ποσό μετοχών που μπορούν να «κοπούν» σε μία κλήση [`mint`](#mint) από τον `receiver`. + +#### previewMint {#previewmint} + +```solidity +function previewMint(uint256 shares) public view returns (uint256 assets) +``` + +Αυτή η λειτουργία επιτρέπει στους χρήστες να προσομοιώνουν τα αποτελέσματα της «κοπής» τους στο τρέχον μπλοκ. + +#### mint {#mint} + +```solidity +function mint(uint256 shares, address receiver) public returns (uint256 assets) +``` + +Αυτή η συνάρτηση «κόβει» ακριβώς `shares` μερίδια θησαυροφυλακίου στον `receiver` καταθέτοντας `assets` των υποκείμενων διακριτικών. + +#### maxWithdraw {#maxwithdraw} + +```solidity +function maxWithdraw(address owner) public view returns (uint256 maxAssets) +``` + +Αυτή η συνάρτηση επιστρέφει το μέγιστο ποσό των υποκείμενων περιουσιακών στοιχείων που μπορούν να γίνουν ανάληψη από το υπόλοιπο του `owner` με μία μόνο κλήση [`withdraw`](#withdraw). + +#### previewWithdraw {#previewwithdraw} + +```solidity +function previewWithdraw(uint256 assets) public view returns (uint256 shares) +``` + +Αυτή η λειτουργία επιτρέπει στους χρήστες να προσομοιώνουν τα αποτελέσματα της ανάληψής τους στο τρέχον μπλοκ. + +#### ανάληψη {#withdraw} + +```solidity +function withdraw(uint256 assets, address receiver, address owner) public returns (uint256 shares) +``` + +Αυτή η συνάρτηση «καίει» `shares` από τον `owner` και στέλνει ακριβώς το διακριτικό `assets` από το θησαυροφυλάκιο στον `receiver`. + +#### maxRedeem {#maxredeem} + +```solidity +function maxRedeem(address owner) public view returns (uint256 maxShares) +``` + +Αυτή η συνάρτηση επιστρέφει το μέγιστο ποσό μετοχών που μπορούν να εξαργυρωθούν από το υπόλοιπο του `owner` μέσω μιας κλήσης [`redeem`](#redeem). + +#### previewRedeem {#previewredeem} + +```solidity +function previewRedeem(uint256 shares) public view returns (uint256 assets) +``` + +Αυτή η λειτουργία επιτρέπει στους χρήστες να προσομοιώνουν τα αποτελέσματα της εξαργύρωσής τους στο τρέχον μπλοκ. + +#### redeem {#redeem} + +```solidity +function redeem(uint256 shares, address receiver, address owner) public returns (uint256 assets) +``` + +Αυτή η συνάρτηση εξαργυρώνει έναν συγκεκριμένο αριθμό `shares` από τον `owner` και στέλνει `assets` του υποκείμενου κρυπτονομίσματος από το θησαυροφυλάκιο στον `receiver`. + +#### totalSupply {#totalsupply} + +```solidity +function totalSupply() public view returns (uint256) +``` + +Επιστρέφει τον συνολικό αριθμό των μη εξαργυρωμένων μετοχών θησαυροφυλακίου σε κυκλοφορία. + +#### balanceOf {#balanceof} + +```solidity +function balanceOf(address owner) public view returns (uint256) +``` + +Επιστρέφει το συνολικό ποσό των μετοχών του θησαυροφυλακίου που έχει αυτή τη στιγμή ο `owner`. + +### Χάρτης της διεπαφής {#mapOfTheInterface} + +![Χάρτης της διεπαφής ERC-4626](./map-of-erc-4626.png) + +### Συμβάντα {#events} + +#### Πράξη κατάθεσης + +**ΠΡΕΠΕΙ** να αποστέλλονται όταν τα κρυπτονομίσματα κατατίθενται στο θησαυροφυλάκιο μέσω του [`mint`](#mint) και τις μεθόδους [`deposit`](#deposit). + +```solidity +event Deposit( + address indexed sender, + address indexed owner, + uint256 assets, + uint256 shares +) +``` + +Όπου `sender` είναι ο χρήστης που έκανε την ανταλλαγή `assets` με `shares` και μετέφερε αυτές τις `shares` στον `owner`. + +#### Γεγονός ανάληψης + +**ΠΡΕΠΕΙ** να αποστέλλονται όταν οι μετοχές αποσύρονται από το θησαυροφυλάκιο από έναν καταθέτη με τις μεθόδους [`redeem`](#redeem) ή [`withdraw`](#withdraw). + +```solidity +event Withdraw( + address indexed sender, + address indexed receiver, + address indexed owner, + uint256 assets, + uint256 shares +) +``` + +Όπου `Sender` είναι ο χρήστης που ενεργοποίησε την ανάληψη και αντάλλαξε `shares`, που ανήκουν στον `owner`, με `assets`. Ο `receiver` είναι ο χρήστης που έλαβε τα `assets` που έγιναν ανάληψη. + +## Περισσότερες πληροφορίες {#further-reading} + +- [ΕΙΡ-4626: Πρότυπο ψηφιοποίησης θησαυροφυλακίου](https://eips.ethereum.org/EIPS/eip-4626) +- [ERC-4626: Αποθετήριο GitHub](https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC4626.sol) diff --git a/public/content/translations/el/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/el/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..dc4f6473d11 --- /dev/null +++ b/public/content/translations/el/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,244 @@ +--- +title: ERC-721 Πρότυπο Μη Εναλλάξιμων Κρυπτοπαραστατικών +description: +lang: el +--- + +## Εισαγωγή {#introduction} + +**Τι είναι το Μη Εναλλάξιμο Κρυπτοπαραστατικό;** + +Το Μη Εναλλάξιμο Κρυπτοπαραστατικό (NFT) χρησιμοποιείται για να προσδιορίσει κάτι ή κάποιον με έναν μοναδικό τρόπο. Αυτός ο τύπος Ψηφιακού Στοιχείου είναι τέλειος για να χρησιμοποιηθεί σε πλατφόρμες που προσφέρουν συλλεκτικά αντικείμενα, κλειδιά πρόσβασης, εισιτήρια λαχειοφόρων αγορών, αριθμημένες θέσεις για συναυλίες, αθλητικούς αγώνες, κλπ. Αυτός ο ειδικός τύπος Ψηφιακού Στοιχείου έχει καταπληκτικές δυνατότητες, οπότε του αξίζει ένα κατάλληλο Πρότυπο, το ERC-721 που ήρθε για να δώσει λύση σε αυτό! + +**Τι είναι το ERC-721;** + +Το ERC-721 εισάγει ένα πρότυπο για τα NFT. Αυτός ο τύπος ψηφιακών στοιχείων είναι μοναδικός και μπορεί να έχει διαφορετική αξία από κάποιο άλλο ψηφιακό στοιχείο που προέρχεται από το ίδιο Έξυπνο Συμβόλαιο, ίσως λόγω της ηλικίας του, της σπανιότητάς του ή ακόμα και κάποιου άλλου χαρακτηριστικού, όπως η εμφάνισή του. Περιμένετε, εικονικό; + +Ναι! Όλα τα NFT έχουν μια μεταβλητή `uint256` που ονομάζεται `tokenId`, επομένως για οποιοδήποτε συμβόλαιο ERC-721, το ζεύγος `contract address, uint256 tokenId` πρέπει να είναι καθολικά μοναδικό. Επομένως, μια dapp μπορεί να έχει έναν "μετατροπέα" που χρησιμοποιεί το `tokenId` ως είσοδο και εξάγει μια εικόνα κάτι ωραίου, όπως ζόμπι, όπλα, δεξιότητες ή καταπληκτικά γατάκια! + +## Προαπαιτούμενα {#prerequisites} + +- [Λογαριασμοί](/developers/docs/accounts/) +- [Έξυπνα Συμβόλαια](/developers/docs/smart-contracts/) +- [Πρότυπα ψηφιακού στοιχείου](/developers/docs/standards/tokens/) + +## Κορμός {#body} + +Το ERC-721 (Ethereum Request for Comments 721), που προτάθηκε από τους William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs τον Ιανουάριο του 2018, είναι ένα Πρότυπο Μη Εναλλάξιμων Κρυπτοπαραστατικών που υλοποιεί ένα API για ψηφιακά στοιχεία εντός των Έξυπνων Συμβολαίων. + +Παρέχει λειτουργίες όπως η μεταφορά ψηφιακών στοιχείων από έναν λογαριασμό σε έναν άλλο, η λήψη του τρέχοντος υπολοίπου ενός λογαριασμού, η λήψη του κατόχου ενός συγκεκριμένου ψηφιακού στοιχείου και επίσης η συνολική προσφορά των διαθέσιμων ψηφιακών στοιχείων στο δίκτυο. Έχει επίσης κάποιες άλλες λειτουργίες, όπως η έγκριση ότι ένα ποσό ψηφιακών στοιχείων από έναν λογαριασμό μπορεί να μετακινηθεί από έναν λογαριασμό τρίτου μέρους. + +Εάν ένα Έξυπνο Συμβόλαιο υλοποιεί τις ακόλουθες μεθόδους και συμβάντα, μπορεί να ονομαστεί Συμβόλαιο Μη Εναλλάξιμων Κρυπτοπαραστατικών ERC-721 και μόλις αναπτυχθεί θα είναι υπεύθυνο για την παρακολούθηση των στοιχείων που δημιουργήθηκαν στο Ethereum. + +Από το [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Μέθοδοι {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool)˙ +``` + +### Συμβάντα {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Παραδείγματα {#web3py-example} + +Ας δούμε πώς ένα πρότυπο είναι τόσο σημαντικό για να διευκολύνει να επιθεωρήσουμε οποιοδήποτε έξυπνο συμβόλαιο ψηφιακών στοιχείων ERC-721 στο Ethereum. Χρειαζόμαστε μόνο το Διασύνδεσμο Δυαδικού Κώδικα Εφαρμογής Συμβολαίου (ABI) για να δημιουργήσουμε μια διεπαφή σε οποιοδήποτε ψηφιακό στοιχείο ERC-721. Όπως μπορείτε να δείτε παρακάτω, θα χρησιμοποιήσουμε ένα απλοποιημένο ABI, για να το κάνουμε ένα παράδειγμα χαμηλής τριβής. + +#### Παράδειγμα Web3.py {#web3py-example} + +Αρχικά, βεβαιωθείτε ότι έχετε εγκαταστήσει τη βιβλιοθήκη Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - Increase the number of blocks up from 120 if no Transfer event is returned. +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +if recent_tx: + kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above + is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() + print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Το συμβόλαιο CryptoKitties έχει κάποια ενδιαφέροντα Γεγονότα εκτός από τα Τυπικά. + +Ας δούμε δύο από αυτά το `Pregnant` και το `Birth`. + +```python +# Using the Pregnant and Birth Events ABI to get info about new Kitties. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## Δημοφιλή NFT {#popular-nfts} + +- Το [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) αναφέρεται στο κορυφαίο NFT στο Ethereum ανά όγκο μεταφορών. +- Το [CryptoKitties](https://www.cryptokitties.co/) είναι ένα παιχνίδι με επίκεντρο τα αναπαραγωγικά, συλλεκτικά και τόσο αξιολάτρευτα πλάσματα που ονομάζουμε CryptoKitties. +- Το [Sorare](https://sorare.com/) είναι ένα παγκόσμιο παιχνίδι φαντασίας ποδοσφαίρου όπου μπορείτε να συλλέξετε περιορισμένες εκδόσεις συλλεκτικών, να διαχειριστείτε ομάδες και να διαγωνιστείτε για βραβεία. +- Το [The Ethereum Name Service (ENS)](https://ens.domains/) προσφέρει ένα ασφαλές & αποκεντρωμένο τρόπο αντιμετώπισης πόρων και των δύο εντός και εκτός του blockchain χρησιμοποιώντας απλά, ευανάγνωστα από τον άνθρωπο ονόματα. +- Το [POAP](https://poap.xyz) παρέχει δωρεάν NFT σε άτομα που παρακολουθούν εκδηλώσεις ή ολοκληρώνουν συγκεκριμένες ενέργειες. Τα POAP είναι δωρεάν για δημιουργία και διανομή. +- Το [Unstoppable Domains](https://unstoppabledomains.com/) είναι μια εταιρεία με έδρα το Σαν Φρανσίσκο που χτίζει τομείς blockchains. Οι τομείς Blockchain αντικαθιστούν τις διευθύνσεις κρυπτονομισμάτων με ονόματα αναγνώσιμα από τον άνθρωπο και μπορούν να χρησιμοποιηθούν για την ενεργοποίηση ιστοσελίδων ανθεκτικών στη λογοκρισία. +- Το [Gods Unchained Cards](https://godsunchained.com/) είναι ένα TCG στο Ethereum blockchain που χρησιμοποιεί NFT για δημιουργία πραγματικής ιδιοκτησίας στα στοιχεία του παιχνιδιού. +- Το [Bored Ape Yacht Club](https://boredapeyachtclub.com) είναι μια συλλογή από 10,000 μοναδικά NFT, τα οποία εκτός από το να είναι αποδεδειγμένα σπάνια έργα τέχνης, λειτουργούν ως σύμβολο συμμετοχής στο κλαμπ, παρέχοντας προνόμια και οφέλη μελών που αυξάνονται με την πάροδο του χρόνου ως αποτέλεσμα των προσπαθειών της κοινότητας. + +## Περισσότερες πληροφορίες {#further-reading} + +- [EIP-721: Πρότυπο για Mη Εναλλάξιμο Κρυπτοπαραστατικό](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 Τεκμηρίωση](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - Εφαρμογή του ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/public/content/translations/el/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/el/developers/docs/standards/tokens/erc-777/index.md new file mode 100644 index 00000000000..19018677489 --- /dev/null +++ b/public/content/translations/el/developers/docs/standards/tokens/erc-777/index.md @@ -0,0 +1,45 @@ +--- +title: Πρότυπο Ψηφιακού Στοιχείου ERC-777 +description: null +lang: el +--- + +## Προσοχή {#warning} + +**Το ERC-777 είναι δύσκολο να εφαρμοστεί σωστά, λόγω της [ευπάθειάς του σε διάφορες μορφές επίθεσης](https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2620). Συνιστάται η χρήση του [ERC-20](/developers/docs/standards/tokens/erc-20/) αντ' αυτού.** Αυτή η σελίδα παραμένει ως ιστορικό αρχείο. + +## Εισαγωγή {#introduction} + +Το ERC-777 είναι ένα πρότυπο εναλλάξιμου ψηφιακού στοιχείου που βελτιώνει το υπάρχον πρότυπο [ERC-20](/developers/docs/standards/tokens/erc-20/). + +## Προαπαιτούμενα {#prerequisites} + +Για την καλύτερη κατανόηση αυτής της σελίδας, σας συνιστούμε να διαβάσετε πρώτα για το [ERC-20](/developers/docs/standards/tokens/erc-20/). + +## Ποιες βελτιώσεις προτείνει το ERC-777 έναντι του ERC-20; {#-erc-777-vs-erc-20} + +Το ERC-777 παρέχει τις ακόλουθες βελτιώσεις σε σχέση με το ERC-20. + +### Hooks {#hooks} + +Τα Hooks είναι μια συνάρτηση που περιγράφεται στον κώδικα ενός έξυπνου συμβολαίου. Τα Hooks καλούνται όταν στέλνονται ή λαμβάνονται ψηφιακά στοιχεία μέσω του συμβολαίου. Αυτό επιτρέπει σε ένα έξυπνο συμβόλαιο να αντιδρά σε εισερχόμενα ή εξερχόμενα ψηφιακά στοιχεία. + +Τα hooks καταχωρούνται και ανακαλύπτονται χρησιμοποιώντας το πρότυπο [ERC-1820](https://eips.ethereum.org/EIPS/eip-1820). + +#### Γιατί είναι σημαντικά τα hooks; {#why-are-hooks-great} + +1. Τα Hooks επιτρέπουν την αποστολή ψηφιακών στοιχείων σε ένα συμβόλαιο και την ειδοποίηση του συμβολαίου σε μία μόνο συναλλαγή, σε αντίθεση με το [ERC-20](https://eips.ethereum.org/EIPS/eip-20), το οποίο απαιτεί μια διπλή κλήση (`approve`/transferFrom) για να το επιτύχει αυτό. +2. Τα συμβόλαια που δεν έχουν καταχωρίσει hooks δεν είναι συμβατά με το ERC-777. Το συμβόλαιο αποστολής θα ακυρώσει τη συναλλαγή όταν το συμβόλαιο λήψης δεν έχει καταχωρίσει ένα hook. Αυτό αποτρέπει τυχαίες μεταφορές σε έξυπνα συμβόλαια που δεν είναι ERC-777. +3. Τα Hooks μπορούν να απορρίψουν συναλλαγές. + +### Δεκαδικά {#decimals} + +Το πρότυπο λύνει επίσης τη σύγχυση γύρω από τα `δεκαδικά` που προκαλείται στο ERC-20. Αυτή η σαφήνεια βελτιώνει την εμπειρία του προγραμματιστή. + +### Αντικειμενοστραφείς συμβατότητας με ERC-20 {#backwards-compatibility-with-erc-20} + +Μπορείτε να αλληλεπιδράσετε με τα συμβόλαια ERC-777 σαν να ήταν συμβόλαια ERC-20. + +## Περαιτέρω υλικό προς ανάγνωση {#further-reading} + +[EIP-777: Πρότυπο ψηφιακών στοιχείων](https://eips.ethereum.org/EIPS/eip-777) diff --git a/public/content/translations/el/developers/docs/standards/tokens/index.md b/public/content/translations/el/developers/docs/standards/tokens/index.md new file mode 100644 index 00000000000..bf9a6cae98f --- /dev/null +++ b/public/content/translations/el/developers/docs/standards/tokens/index.md @@ -0,0 +1,39 @@ +--- +title: Πρότυπα κρυπτονομισμάτων +description: +lang: el +incomplete: true +--- + +## Εισαγωγή {#introduction} + +Πολλά πρότυπα ανάπτυξης Ethereum επικεντρώνονται στη διεπαφή του κρυπτονομίσματος. Αυτά τα πρότυπα βοηθούν να διασφαλιστεί ότι τα έξυπνα συμβόλαια παραμένουν ουδέτερα, ώστε όταν ένα νέο έργο εκδίδει ένα ψηφιακό στοιχείο, να παραμένει συμβατό με τα αποκεντρωμένα ανταλλακτήρια. + +## Προαπαιτούμενα {#prerequisites} + +- [Πρότυπα ανάπτυξης Ethereum](/developers/docs/standards/) +- [Έξυπνα συμβόλαια](/developers/docs/smart-contracts/) + +## Πρότυπα ψηφιακών στοιχείων {#token-standards} + +Δείτε παρακάτω μερικά από τα πιο δημοφιλή πρότυπα κρυπτονομισμάτων στο Ethereum: + +- [ERC-20](/developers/docs/standards/tokens/erc-20/) - Ένα πρότυπο διεπαφής για εναλλάξιμα (ανταλλάξιμα) ψηφιακά στοιχεία, όπως κρύπτο ψηφοφορίας, αποθήκευσης κεφαλαίου ή εικονικά νομίσματα. + +### Πρότυπα NFT {#nft-standards} + +- [ERC-721](/developers/docs/standards/tokens/erc-721/) - Μια τυπική διεπαφή για μη εναλλάξιμα κρυπτοπαραστατικά, όπως μια πράξη για έργα τέχνης ή ένα τραγούδι. +- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) - Το ERC-1155 επιτρέπει πιο αποτελεσματικές συναλλαγές και ομαδοποίηση συναλλαγών – εξοικονομώντας κόστος. Αυτό το πρότυπο ψηφιακών στοιχείων επιτρέπει τη δημιουργία τόσο βοηθητικών κρύπτο (όπως $BNB ή $BAT) όσο και μη εναλλάξιμων κρυπτοπαραστατικών όπως τα CryptoPunks. + +Η πλήρης λίστα προτάσεων [ERC](https://eips.ethereum.org/erc). + +## Περισσότερες πληροφορίες {#further-reading} + +_Γνωρίζετε κάποιο πόρο της κοινότητας που σας βοήθησε; Επεξεργαστείτε αυτή τη σελίδα και προσθέστε το!_ + +## Σχετικοί οδηγοί {#related-tutorials} + +- [Λίστα ελέγχου ενσωμάτωσης ψηφιακών στοιχείων](/developers/tutorials/token-integration-checklist/) _– Μια λίστα ελέγχου με θέματα που πρέπει να λάβετε υπόψη κατά την αλληλεπίδραση με ψηφιακά στοιχεία._ +- [Κατανόηση έξυπνου συμβολαίου ψηφιακών στοιχείων ERC20](/developers/tutorials/understand-the-erc-20-token-smart-contract/) _– Εισαγωγή στην ανάπτυξη του πρώτου σας έξυπνου συμβολαίου σε ένα δίκτυο δοκιμής Ethereum._ +- [Μεταφορά και έγκριση κρυπτονομισμάτων ERC20 από έξυπνο συμβόλαιο Solidity](/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/) _– Πως να χρησιμοποιείσετε ένα έξυπνο συμβόλαιο για αλληλεπίδραση με κρυπτονόμισμα με χρήση της γλώσσας Solidity._ +- [Εφαρμογή μιας αγοράς ERC721 [οδηγός χρήσης]](/developers/tutorials/how-to-implement-an-erc721-market/) _– Πώς να θέσετε προς πώληση κρυπτοαντικείμενα σε έναν αποκεντρωμένο πίνακα αγγελιών._ diff --git a/public/content/translations/el/enterprise/index.md b/public/content/translations/el/enterprise/index.md index ba4fb85bf5f..5805f36ca2d 100644 --- a/public/content/translations/el/enterprise/index.md +++ b/public/content/translations/el/enterprise/index.md @@ -36,126 +36,126 @@ lang: el ## Πόροι προγραμματιστών επιχειρήσεων {#enterprise-developer-resources} -### Προϊόντα και Υπηρεσίες {#products-and-services} - -- [4EVERLAND](https://www.4everland.org/) — _παρέχει API, υπηρεσίες RPC και εργαλεία φιλοξενίας αποκεντρωμένων εφαρμογών και αποκεντρωμένης αποθήκευσης στο Ethereum_ -- [Alchemy](https://www.alchemy.com/) — _παρέχει υπηρεσίες και εργαλεία API για την ανάπτυξη και την παρακολούθηση εφαρμογών στο Ethereum_ -- [Blast](https://blastapi.io/) — _μια πλατφόρμα API που παρέχει RPC/WSS API για το κεντρικό δίκτυο αρχείων και τα δοκιμαστικά δίκτυα Ethereum._ -- [Blockapps](https://blockapps.net/) — _εφαρμογή του πρωτοκόλλου Ethereum για επιχειρήσεις, εργαλεία και API που διαμορφώνουν την πλατφόρμα STRATO_ -- [Chainstack](https://chainstack.com/) — _υποδομές κεντρικού και δοκιμαστικού δικτύου του Ethereum που φιλοξενούνται σε δημόσια & απομονωμένα υπολογιστικά νέφη πελάτη_ -- [ConsenSys](https://consensys.io/) — _παρέχει μια γκάμα προϊόντων και εργαλείων για ανάπτυξη στο Ethereum, καθώς και υπηρεσίες συμβουλευτικής και εξατομικευμένης ανάπτυξης_ -- [Crossmint](http://crossmint.com/) — _πλατφόρμα ανάπτυξης web3 για την αξιοποίηση έξυπνων συμβολαίων, τη δυνατότητα χρήσης πιστωτικών καρτών και πληρωμών μεταξύ αλυσίδων, και τη χρήση API για τη δημιουργία, τη διανομή, την πώληση, την αποθήκευση και την επιμέλεια NFT._ -- [Κρυπτοαλυσίδα Envision](https://envisionblockchain.com/) — _παρέχει συμβουλευτικές και αναπτυξιακές υπηρεσίες που επικεντρώνονται στις επιχειρήσεις με ειδίκευση στο κεντρικό δίκτυο Ethereum_ -- [EY OpsChain](https://blockchain.ey.com/products/contract-manager) — _παρέχει ροή εργασιών για συνάψεις συμβάσεων εκδίδοντας συμβόλαια RFQ, διαταγές αγοράς και τιμολόγια για το δικό σας δίκτυο έμπιστων επιχειρηματικών εταίρων_ -- [Hyperledger Besu](https://www.hyperledger.org/use/besu) — _πελάτης Ethereum ανοικτής πηγής για επιχειρήσεις που αναπτύσσεται βάσει της άδειας Apache 2.0 και γράφεται σε Java_ -- [Infura](https://infura.io/) — _επεκτάσιμη πρόσβαση API στα δίκτυα Ethereum και IPFS_ -- [Kaleido](https://kaleido.io/) — _πλατφόρμα ανάπτυξης για επιχειρήσεις που προσφέρει απλοποιημένες εφαρμογές κρυπτοαλυσίδων και ψηφιακών περιουσιακών στοιχείων_ -- [NodeReal](https://nodereal.io/) — _παρέχει επεκτάσιμη υποδομή κρυπτοαλυσίδας και υπηρεσίες API για το οικοσύστημα Web3_ -- [Moralis](http://moralis.io/) — _API και κόμβοι για επιχειρήσεις με πιστοποίηση SOC2 τύπου 2_ -- [Provide](https://provide.services/) — _ενδιάμεσο λογισμικό μηδενικής γνώσης για επιχειρήσεις_ -- [QuickNode](https://www.quicknode.com/) — _παρέχει αξιόπιστους και γρήγορους κόμβους με API υψηλού επιπέδου, όπως τα NFT API, Token API, κλπ., διαθέτοντας ενοποιημένη σουίτα προϊόντων και λύσεις για επιχειρήσεις_ -- [Tenderly](https://tenderly.co) — _πλατφόρμα ανάπτυξης Web3 που παρέχει αποσφαλμάτωση, παρατηρησιμότητα και μπλοκ κατασκευής υποδομών για την ανάπτυξη, τη δοκιμή, την παρακολούθηση και τη λειτουργία έξυπνων συμβολαίων_ -- [Unibright](https://unibright.io/) — _ομάδα που αποτελείται από ειδικούς, αρχιτέκτονες, προγραμματιστές και συμβούλους κρυπτοαλυσίδων με περισσότερα από 20 χρόνια εμπειρίας στις επιχειρηματικές διαδικασίες και την ενοποίηση_ -- [Zeeve](https://www.zeeve.io/) - _παρέχει μια σειρά από προϊόντα και εργαλεία ανάπτυξης στο Ethereum, καθώς και υποδομή και API για επιχειρηματικές εφαρμογές Web3._ - -### Εργαλεία και βιβλιοθήκες {#tooling-and-libraries} - -- [Baseline Project](https://www.baseline-protocol.org/) — _Το πρωτόκολλο Baseline είναι μια δέσμη εργαλείων και βιβλιοθηκών που βοηθά τις επιχειρήσεις να συντονίσουν πολύπλοκες, πολυμερείς επιχειρηματικές διαδικασίες και ροές εργασιών με ιδιωτικότητα, τηρώντας παράλληλα τα δεδομένα σε αντίστοιχα συστήματα αρχείου. Το πρότυπο επιτρέπει σε δύο ή περισσότερες μηχανές κατάστασης να κατακτούν και να διατηρούν τη συνοχή των δεδομένων και τη συνέχεια της ροής εργασιών χρησιμοποιώντας ένα δίκτυο ως κοινό πλαίσιο αναφοράς._ -- [Chainlens](https://www.chainlens.com/) — _πλατφόρμα δεδομένων κρυπτοαλυσίδας SaaS και on-prem και αναλυτικών στοιχείων από την Web3 Labs_ -- [«Nightfall» της Ernst & Young](https://github.com/EYBlockchain/nightfall_3) — _εφαρμογή για μεταφορά των εφαρμογών ERC20, ERC721 και ERC1155 με πρωτόκολλο μηδενικής γνώσης, με τη χρήση Optimistic Rollup_ - ### Λύσεις επεκτασιμότητας {#scalability-solutions} Οι περισσότερες νέες εφαρμογές κρυπτοαλυσίδας αναπτύσσονται σε αλυσίδες [επιπέδου 2](/layer-2). Το Επίπεδο 2 είναι ένα σύνολο τεχνολογιών ή συστημάτων που τρέχουν πάνω από το Ethereum (Επίπεδο 1), κληρονομούν ιδιότητες ασφαλείας από το Επίπεδο 1 και παρέχουν μεγαλύτερη ικανότητα επεξεργασίας συναλλαγών (παραγωγικότητα), χαμηλότερα τέλη συναλλαγής (κόστος λειτουργίας) και ταχύτερες επιβεβαιώσεις συναλλαγών από Επίπεδο 1. Οι λύσεις κλιμάκωσης επιπέδου 2 εξασφαλίζονται από το επίπεδο 1, αλλά επιτρέπουν στις εφαρμογές κρυπτοαλυσίδας να χειρίζονται πολύ περισσότερους χρήστες ή ενέργειες ή δεδομένα από αυτά που θα μπορούσαν να φιλοξενηθούν στο επίπεδο 1. Πολλά από αυτά αξιοποιούν τις πρόσφατες εξελίξεις στην κρυπτογραφία και τις αποδείξεις μηδενικής γνώσης [zero-knowledge (ZK)] για να μεγιστοποιήσουν την απόδοση και την ασφάλεια, ενώ ορισμένα προσφέρουν ένα επιπλέον επίπεδο ιδιωτικότητας. -## Οι εφαρμογές επιχειρήσεων ζωντανά στο κεντρικό δίκτυο Ethereum {#enterprise-live-on-mainnet} +Το [L2 Beat](https://l2beat.com/scaling/summary) διατηρεί μια ενημερωμένη λίστα δικτύων Επιπέδου 2 και βασικών κλειδιών. -Ακολουθούν ορισμένες από τις εταιρικές εφαρμογές που έχουν δημιουργηθεί πάνω από το δημόσιο κεντρικό δίκτυο Ethereum και τα επίπεδα 2 (L2) από και για παραδοσιακές εταιρείες που δεν βασίζονται σε κρυπτοαλυσίδα. +### Προϊόντα, υπηρεσίες και εργαλεία {#products-and-services} + +- [4EVERLAND](https://www.4everland.org/) — _παρέχει API, υπηρεσίες RPC και εργαλεία φιλοξενίας αποκεντρωμένων εφαρμογών και αποκεντρωμένης αποθήκευσης στο Ethereum_ +- [Alchemy](https://www.alchemy.com/) — _παρέχει υπηρεσίες και εργαλεία API για την ανάπτυξη και την παρακολούθηση εφαρμογών στο Ethereum_ +- [Baseline Project](https://www.baseline-protocol.org/) — _μια δέσμη εργαλείων και βιβλιοθηκών που βοηθά τις επιχειρήσεις να συντονίσουν πολύπλοκες, πολυμερείς επιχειρηματικές διαδικασίες και ροές εργασιών με ιδιωτικότητα, τηρώντας παράλληλα τα δεδομένα σε αντίστοιχα συστήματα αρχείου. Το πρότυπο επιτρέπει σε δύο ή περισσότερες μηχανές καταστάσεων να επιτυγχάνουν και να διατηρούν τη συνέπεια των δεδομένων και τη συνέχεια της ροής εργασίας χρησιμοποιώντας ένα δίκτυο ως κοινό πλαίσιο αναφοράς._ +- [Blast](https://blastapi.io/) - _μια πλατφόρμα API που παρέχει RPC/WSS API για το Ethereum Archive Mainnet και τα Testnets._ +- [Blockapps](https://blockapps.net/) - _υλοποίηση του πρωτοκόλλου Enterprise Ethereum, των εργαλείων και των API που αποτελούν την πλατφόρμα STRATO_ +- [Chainlens](https://www.chainlens.com/) - _Πλατφόρμα δεδομένων και ανάλυσης SaaS και blockchain on-prem από την Web3 Labs_ +- [Chainstack](https://chainstack.com/) - _υποδομή Ethereum mainnet και testnet που φιλοξενείται σε δημόσια & απομονωμένα cloud πελατών_ +- [ConsenSys](https://consensys.io/) - _παρέχει μια σειρά προϊόντων και εργαλείων για την ανάπτυξη στο Ethereum, καθώς και συμβουλευτικές υπηρεσίες και υπηρεσίες προσαρμοσμένης ανάπτυξης_ +- [Crossmint](http://crossmint.com/) _ - πλατφόρμα ανάπτυξης web3 εταιρικού επιπέδου για την ανάπτυξη έξυπνων συμβολαίων, την ενεργοποίηση πληρωμών με πιστωτική κάρτα και διασυνοριακών πληρωμών, καθώς και τη χρήση API για τη δημιουργία, διανομή, πώληση, αποθήκευση και επεξεργασία NFT._ +- [Envision Blockchain](https://envisionblockchain.com/) - _παρέχει συμβουλευτικές και αναπτυξιακές υπηρεσίες με επίκεντρο τις επιχειρήσεις, με εξειδίκευση στο Ethereum Mainnet_ +- [EY OpsChain](https://blockchain.ey.com/products/contract-manager) - _παρέχει μια ροή εργασίας προμηθειών εκδίδοντας RFQ, συμβόλαια, παραγγελίες αγοράς και τιμολόγια σε όλο το δίκτυο αξιόπιστων επιχειρηματικών συνεργατών σας_ +- [Hyperledger Besu](https://www.hyperledger.org/use/besu) - _ένα πρόγραμμα-πελάτης ανοιχτού κώδικα Ethereum με επίκεντρο τις επιχειρήσεις, που αναπτύχθηκε με την άδεια Apache 2.0 και είναι γραμμένο σε Java_ +- [Infura](https://infura.io/) - _κλιμακωτή πρόσβαση API στα δίκτυα Ethereum και IPFS_ +- [Kaleido](https://kaleido.io/) - _μια πλατφόρμα ανάπτυξης που εστιάζει σε επιχειρήσεις και προσφέρει απλοποιημένες εφαρμογές blockchain και ψηφιακών περιουσιακών στοιχείων_ +- [Moralis](http://moralis.io/) - _API και κόμβοι εταιρικού επιπέδου με πιστοποίηση SOC2 τύπου 2_ +- [Nightfall](https://github.com/EYBlockchain/nightfall_3) - _μια εφαρμογή για τη μεταφορά εφαρμογών ERC20, ERC721 και ERC1155 σε περιβάλλον Zero Knowledge, χρησιμοποιώντας ένα Optimistic Rollup, από την Ernst & Young_ +- [NodeReal](https://nodereal.io/) - _παρέχει επεκτάσιμη υποδομή blockchain και πάροχο υπηρεσιών API για το οικοσύστημα Web3_ +- [QuickNode](https://www.quicknode.com/) - _παρέχει αξιόπιστους και γρήγορους κόμβους με API υψηλού επιπέδου όπως NFT API, Token API κ.λπ., ενώ παράλληλα παρέχει μια ενοποιημένη σουίτα προϊόντων και λύσεις εταιρικού επιπέδου_ +- [Tenderly](https://tenderly.co) - _μια πλατφόρμα ανάπτυξης Web3 που παρέχει δομικά στοιχεία εντοπισμού σφαλμάτων, παρατηρησιμότητας και υποδομής για την ανάπτυξη, τον έλεγχο, την παρακολούθηση και τη λειτουργία έξυπνων συμβολαίων_ +- [Unibright](https://unibright.io/) - _μια ομάδα ειδικών σε blockchain, αρχιτεκτόνων, προγραμματιστών και συμβούλων με 20+ χρόνια εμπειρίας σε επιχειρηματικές διαδικασίες και ενοποιήσεις_ +- [Zeeve](https://www.zeeve.io/) - _παρέχει μια σειρά προϊόντων και εργαλείων για την ανάπτυξη στο Ethereum, καθώς και υποδομές και API για εφαρμογές Web3 για επιχειρήσεις._ + +## Εταιρικές εφαρμογές που βασίζονται στο Ethereum {#enterprise-applications-on-ethereum} + +Ακολουθούν ορισμένες από τις εταιρικές εφαρμογές που έχουν κατασκευαστεί πάνω στο δημόσιο Ethereum Mainnet και τα L2 από και για παραδοσιακές εταιρείες που δε βασίζονται στο blockchain. ### Πληρωμές {#payments} -- [Brave Browser](https://basicattentiontoken.org/) — _πληρώνει τους χρήστες για την προσοχή τους στις διαφημίσεις και οι χρήστες μπορούν να πληρώνουν τους εκδότες για να τους στηρίζουν μέσω του Basic Attention Token_ -- [Πόλη του Λουγκάνο, Ελβετία](https://bitcoinsuisse.com/news/city-of-lugano-accepts-crypto-payments) — _πληρωμή φόρων και άλλων δημοτικών υπηρεσιών_ -- [EthereumAds](https://ethereumads.com/) — _Επιτρέπει τους χειριστές των ιστοτόπων να πωλούν διαφημιστικό χώρο και να πληρώνονται μέσω του Ethereum_ -- [hCaptcha](https://www.hcaptcha.com/) — _σύστημα πρόληψης αυτόματου λογισμικού CAPTCHA που πληρώνει τους χειριστές ιστοτόπων για την εργασία που διενεργείται από χρήστες για την επισήμανση δεδομένων για μηχανική μάθηση. Αναπτύσσεται τώρα από την Cloudflare_ -- [Opera MiniPay](https://www.opera.com/products/minipay) — _κάνει τις πληρωμές με κινητά πιο προσιτές και ασφαλείς για ανθρώπους που βρίσκονται στην Αφρική με μη εποπτικό (non-custodial) πορτοφόλι και αξιοποιεί αριθμούς τηλεφώνου για εύκολες συναλλαγές_ -- [Roxpay](https://www.roxpay.ch/) — _αυτοματοποιεί την τιμολόγηση και την πληρωμή περιουσιακών στοιχείων με «κοστολόγηση ανάλογη της χρήσης»_ -- [Θύρα ψηφιακών νομισμάτων SAP](https://community.sap.com/t5/technology-blogs-by-sap/cross-border-payments-made-easy-with-digital-money-experience-the-future/ba-p/13560384) — _διασυνοριακές πληρωμές με κρυπτονομίσματα σταθερής αξίας_ -- [Toku](https://www.toku.com/) — _μισθοδοσία, διαχείριση παραχώρησης κρυπτοπαραστατικών, φορολογική συμμόρφωση, τοπική απασχόληση, παροχές & κατανεμημένες λύσεις HR_ -- [Xerof](https://www.xerof.com/) — _διευκολύνει τις γρήγορες και φτηνές διεθνείς (διασυνοριακές) πληρωμές B2B_ +- [Brave Browser](https://basicattentiontoken.org/) - _πληρώνει τους χρήστες για την προσοχή τους στις διαφημίσεις και οι χρήστες μπορούν να πληρώσουν τους εκδότες για να τους υποστηρίξουν, μέσω του Basic Attention Token_ +- [EthereumAds](https://ethereumads.com/) - _επιτρέπει στους διαχειριστές ιστοσελίδων να πωλούν διαφημιστικό χώρο και να πληρώνονται μέσω Ethereum_ +- [hCaptcha](https://www.hcaptcha.com/) - _Σύστημα CAPTCHA για την πρόληψη των bot, το οποίο πληρώνει τους χειριστές ιστοσελίδων για την εργασία που κάνουν οι χρήστες για την επισήμανση δεδομένων για μηχανική μάθηση. Τώρα αναπτύσσεται από την Cloudflare_ +- [Opera MiniPay](https://www.opera.com/products/minipay) - _καθιστά τις πληρωμές μέσω κινητού πιο προσβάσιμες και ασφαλείς για τους ανθρώπους στην Αφρική με πορτοφόλι που δεν απαιτεί την κατοχή χρημάτων και αξιοποιεί τους αριθμούς τηλεφώνου για εύκολες συναλλαγές_ +- [Roxpay](https://www.roxpay.ch/) - _αυτοματοποιεί την τιμολόγηση και τις πληρωμές περιουσιακών στοιχείων με πληρωμή ανά χρήση_ +- [Κόμβος Ψηφιακού Νομίσματος SAP](https://community.sap.com/t5/technology-blogs-by-sap/cross-border-payments-made-easy-with-digital-money-experience-the-future/ba-p/13560384) - _διασυνοριακές πληρωμές με σταθερά κρυπτονομίσματα_ +- [Toku](https://www.toku.com/) - _μισθοδοσία, διαχείριση επιχορηγήσεων token, φορολογική συμμόρφωση, τοπική απασχόληση, παροχές και κατανεμημένες λύσεις HR_ +- [Xerof](https://www.xerof.com/) - _διευκολύνει γρήγορες και οικονομικές διεθνείς (διασυνοριακές) πληρωμές B2B_ ### Οικονομικά {#finance} -- [ABN AMRO](https://tokeny.com/tokeny-fuels-abn-amro-bank-in-tokenizing-green-bonds-on-polygon/) - _με την Tokeny, δημιουργία κρυπτοπαραστατικών από πράσινα ομόλογα_ -- [Crowdz](https://crowdz.io/) - _πλατφόρμα χρηματοδότησης και πρακτόρευσης τιμολογίων/απαιτήσεων_ -- [Mata Capital](https://consensys.io/blockchain-use-cases/finance/mata-capital) - _δημιουργία κρυπτοπαραστατικών από κτηματομεσιτικές επενδύσεις_ +- [ABN AMRO](https://tokeny.com/tokeny-fuels-abn-amro-bank-in-tokenizing-green-bonds-on-polygon/) - _με την Tokeny, κρυπτογραφημένα πράσινα ομόλογα._ +- [Anvil](https://anvil.xyz/) - _ένα σύστημα έξυπνων συμβολαίων βασισμένο στο Ethereum που διαχειρίζεται εξασφαλίσεις και εκδίδει πλήρως εξασφαλισμένες πιστώσεις._ +- [Mata Capital](https://consensys.io/blockchain-use-cases/finance/mata-capital) - _κρυπτογράφηση επενδύσεων ακινήτων._ - [Obligate](https://www.obligate.com/) — _ρυθμισμένα και KYC ομόλογα και εμπορικά χρεόγραφα εντός αλυσίδας_ -- [Siemens](https://press.siemens.com/global/en/pressrelease/siemens-issues-first-digital-bond-blockchain) — _έκδοση ομολόγων_ -- [Sila](https://silamoney.com/) — _τραπεζικές και ACH πληρωμές ως IaaS, με τη χρήση νομίσματος σταθερής αξίας_ -- [Societe Generale FORGE](https://www.sgforge.com/product/bonds/) — _έκδοση ομολόγων_ -- [Taurus](https://www.taurushq.com/) — _εκδίδει χρεόγραφα με τη μορφή κρυπτοπαραστατικών_ +- [Siemens](https://press.siemens.com/global/en/pressrelease/siemens-remains-pioneer-another-digital-bond-successfully-issued-blockchain) — _έκδοση ομολόγων_ +- [Sila](https://silamoney.com/) - _banking και ACH payments infrastructure-as-a-service, χρησιμοποιώντας ένα stablecoin._ +- [Societe Generale FORGE](https://www.sgforge.com/product/bonds/) - _έκδοση ομολόγων._ +- [Taurus](https://www.taurushq.com/) - _εκδίδει κρυπτογραφημένες κινητές αξίες._ +- [Visa Tokenized Asset Plaform](https://developer.visa.com/capabilities/visa-tokenized-asset-platform) - _παρέχει τα εργαλεία και την υποδομή για τις τράπεζες να κρυπτογραφούν τα fiat νομίσματα σε δίκτυα blockchain._ ### Δημιουργία κρυπτονομισμάτων {#tokenization} -- [AgroToken](https://agrotoken.io/en/) — _μετατροπή και εμπορία γεωργικών προϊόντων σε κρυπτοπαραστατικά_ -- [Bitbond](https://www.bitbond.com/) — _βελτιώνει την έκδοση, τη ρύθμιση και τη φύλαξη χρηματοοικονομικών περιουσιακών στοιχείων μέσω της μετατροπής σε κρυπτοπαραστατικά_ -- [Blocksquare](https://blocksquare.io/) — _υποδομή μετατροπής ακινήτων σε κρυπτοπαραστατικά_ -- [Centrifuge](https://centrifuge.io/) — _Χρηματοδότηση απαιτήσεων με τη μορφή κρυπτοπαραστατικών, χρέη και περιουσιακά στοιχεία_ -- [Clearmatics](https://www.clearmatics.com) — _αναπτύσσει πλατφόρμες αποκεντρωμένων δικτύων για ανταλλαγή αξιών με τη μορφή κρυπτοπαραστατικών μεταξύ ομοτίμων (p2p)_ -- [dClimate](https://www.dclimate.net/) — _αποκεντρωμένο οικοσύστημα κλιματικών πληροφοριών_ -- [Fabrica](https://www.fabrica.land/) — _μια πλατφόρμα για την ψηφιοποίηση ακίνητων αξιών, που καθιστά δυνατό τον δανεισμό DeFi και την εμπορία ιδιοκτησίας_ -- [Fasset](https://www.fasset.com/) — _μια πλατφόρμα για τη στήριξη των βιώσιμων υποδομών_ -- [Nori](https://nori.com/) — _υποδομές ανοικτής πηγής της αγοράς που καθιστούν δυνατά τα έργα αφαίρεσης άνθρακα για τη μέτρηση και τη χρηματική αποτίμηση των δραστηριοτήτων τους_ -- [Propy](https://propy.com/) — _μια πλατφόρμα για την αυτοματοποίηση των συναλλαγών οικιστικών ακινήτων με έξυπνα συμβόλαια_ -- [RealT](https://realt.co/) — _επενδυτές σε ολόκληρο τον κόσμο μπορούν να συμμετάσχουν στην αγορά ακινήτων των ΗΠΑ με πλήρως συμμορφωμένη, κλασματική ιδιοκτησία με τη μορφή κρυπτοπαραστατικών_ -- [Rubey](https://www.rubey.be/) — _μια πλατφόρμα που μετατρέπει σε κρυπτοπαραστατικά τέχνη υψηλής αξίας ώστε να την κάνει προσιτή σε μικροεπενδυτές_ -- [Swarm](https://swarm.com/) — _μια πλατφόρμα που επικεντρώνεται στην ψηφιοποίηση και την εμπορία πραγματικών περιουσιακών στοιχείων με θεσμικό τρόπο_ -- [Thallo](https://www.thallo.io/) — _μια πλατφόρμα για την ενσωμάτωση των ψηφιακών πιστώσεων άνθρακα στις εμπορικές συναλλαγές_ -- [Tokenchampions](https://tokenchampions.com/) — _μετατρέπει σε κρυπτοπαραστατικά δικαιώματα εικόνων Ευρωπαίων ποδοσφαιριστών_ - -### Συμβολαιογραφία στοιχείων {#notarization-of-data} - -- [ANSA](https://www.ansa.it/english/news/science_tecnology/2020/04/06/ansa-using-blockchain-to-help-readers_af820b4f-0947-439b-843e-52e114f53318.html) — _Ιταλικό ειδησεογραφικό πρακτορείο που αγωνίζεται κατά των ψευδών ειδήσεων και επιτρέπει στους αναγνώστες να επαληθεύουν την προέλευση των ειδήσεων καταγράφοντάς τις στο κεντρικό δίκτυο_ -- [Breitling](https://www.coindesk.com/breitling-arianee-all-new-watches-ethereum) — _καταγράφει την προέλευση και το ιστορικό επισκευών ρολογιών στο Ethereum_ -- [BRØK](https://www.xn--brk-1na.no/) — _μια πλατφόρμα για μη εισηγμένες εταιρείες στο κοινό που παρέχεται από τη νορβηγική κυβέρνηση_ -- [Certifaction](https://certifaction.com/) — _νόμιμα έγκυρες ηλεκτρονικές υπογραφές (eSignatures) με προστασία της ιδιωτικότητας εκ κατασκευής_ -- [EthSign](https://ethsign.xyz/) — _καταγράφει υπογεγραμμένα ηλεκτρονικά έγγραφα στην κρυπτοαλυσίδα Ethereum_ -- [Stacktical](https://stacktical.com/) — _καθιστά δυνατή την ανάπτυξη λογισμικού, την ψηφιακή έκδοση και υπογραφή συμφωνιών επιπέδου υπηρεσιών (SLA) με εγγενείς ικανότητες μεσεγγύησης_ -- [Verizon](https://decrypt.co/46745/verizon-news-press-releases-ethereum-full-transparency) — _καταγράφει δελτία τύπου στο Ethereum ώστε να διασφαλίζει την εταιρική λογοδοσία και εμπιστοσύνη_ -- [WolfTown](https://www.mef.net/edge-view-blog/automated-secure-timely-sla-reporting-is-finally-a-reality/) — _από την MEF και την Edge Management αυτοματοποιεί τις αναφορές SLA μεταξύ φορέων τηλεπικοινωνίας_ +- [AgroToken](https://agrotoken.io/en/) - _κρυπτογράφηση και εμπορία αγροτικών προϊόντων._ +- [Bitbond](https://www.bitbond.com/) - _βελτιώνει την έκδοση, τον διακανονισμό και τη φύλαξη χρηματοοικονομικών περιουσιακών στοιχείων με κρυπτογράφηση._ +- [Blocksquare](https://blocksquare.io/) - _υποδομή κρυπτογράφησης για ακίνητα._ +- [Centrifuge](https://centrifuge.io/) - _κρυπτογραφημένη χρηματοδότηση απαιτήσεων, χρέους και περιουσιακών στοιχείων._ +- [Clearmatics](https://www.clearmatics.com) - _δημιουργεί αποκεντρωμένες πλατφόρμες δικτύου για την ανταλλαγή κρυπτογραφημένης αξίας p2p._ +- [dClimate](https://www.dclimate.net/) - _αποκεντρωμένο οικοσύστημα πληροφοριών για το κλίμα._ +- [Fabrica](https://www.fabrica.land/) - _μια πλατφόρμα για την ψηφιοποίηση περιουσιακών στοιχείων ακινήτων, επιτρέποντας δανεισμό DeFi και εμπορία ακινήτων._ +- [Propy](https://propy.com/) - _μια πλατφόρμα για την αυτοματοποίηση συναλλαγών οικιστικών ακινήτων με έξυπνα συμβόλαια._ +- [RealT](https://realt.co/) - _επενδυτές σε όλο τον κόσμο μπορούν να αγοράσουν στην αγορά ακινήτων των ΗΠΑ μέσω πλήρως συμβατής, κλασματικής, κρυπτογραφημένης ιδιοκτησίας._ +- [Rubey](https://www.rubey.be/) - _μια πλατφόρμα που κρυπτογραφεί έργα τέχνης υψηλής ποιότητας για να τα καταστήσει προσβάσιμα σε ιδιώτες επενδυτές._ +- [Swarm](https://swarm.com/) - _μια πλατφόρμα που εστιάζει στην ψηφιοποίηση και εμπορία πραγματικών περιουσιακών στοιχείων με ρυθμιστική συμμόρφωση._ +- [Thallo](https://www.thallo.io/) - _μια πλατφόρμα για την ενσωμάτωση ψηφιακών πιστώσεων άνθρακα σε επιχειρηματικές συναλλαγές._ +- [Tokenchampions](https://tokenchampions.com/) - _ψηφιοποιεί τα δικαιώματα εικόνας Ευρωπαίων ποδοσφαιριστών._ + +### Συμβολαιογραφική επικύρωση δεδομένων {#notarization-of-data} + +- [ANSA](https://www.ansa.it/english/news/science_tecnology/2020/04/06/ansa-using-blockchain-to-help-readers_af820b4f-0947-439b-843e-52e114f53318.html) - _Ιταλικό πρακτορείο ειδήσεων καταπολεμά τα ψεύτικα νέα και επιτρέπει στους αναγνώστες να επαληθεύουν την προέλευση των ειδήσεων καταγράφοντάς τα στο Mainnet._ +- [Breitling](https://www.breitling.com/us-en/about/digital-passport/) — _καταγράφει την προέλευση και το ιστορικό επισκευών ρολογιών στο Ethereum_ +- [BRØK](https://www.xn--brk-1na.no/) - _μια πλατφόρμα πινάκων κεφαλαίων για μη εισηγμένες εταιρείες στο κοινό, που παρέχεται από την Κυβέρνηση της Νορβηγίας._ +- [Certifaction](https://certifaction.com/) - _νομικά έγκυρες ηλεκτρονικές υπογραφές με ιδιωτικότητα εκ σχεδιασμού._ +- [EthSign](https://ethsign.xyz/) - _καταγράφει υπογεγραμμένα ηλεκτρονικά έγγραφα στο blockchain του Ethereum._ +- [Stacktical](https://stacktical.com/) - _επιτρέπει την ανάπτυξη λογισμικού, την ψηφιακή έκδοση και την ψηφιακή υπογραφή Συμφωνιών Επιπέδου Υπηρεσιών (SLA) με εγγενείς δυνατότητες μεσεγγύησης._ +- [Verizon Full Transparency](https://www.verizon.com/about/news/transparency-technology) - _καταγράφει δελτία τύπου για να διασφαλίσει την εταιρική λογοδοσία και εμπιστοσύνη._ +- [Verify](https://www.verifymedia.com/) - _από την Fox Corporation αποθηκεύει κατακερματισμούς περιεχομένου πολυμέσων σε ένα Layer 2 για τη διευκόλυνση της αδειοδότησης περιεχομένου και την καταπολέμηση των deepfakes._ +- [WolfTown](https://www.mef.net/edge-view-blog/automated-secure-timely-sla-reporting-is-finally-a-reality/) - _από τη MEF και τη Sage Management αυτοματοποιεί την αναφορά Συμφωνιών Επιπέδου Υπηρεσιών μεταξύ τηλεπικοινωνιακών φορέων._ ### Αλυσίδα εφοδιασμού {#supply-chain} -- [Birra Peroni](https://www.ey.com/en_gl/news/2021/05/birra-peroni-is-the-first-industrial-organization-to-mint-unique-non-fungible-tokens-using-ey-opschain-traceability) — _κόβει NFT για κάθε παρτίδα μπύρας, επιτρέποντας μεγαλύτερη προβολή και αποδοτικότητα σε ολόκληρη την αλυσίδα εφοδιασμού της_ -- [CargoX](https://cargox.io/) — _ηλεκτρονικές φορτωτικές και πάροχος διαβίβασης εγγράφων για αποστολή_ -- [Circularize](https://www.circularise.com/) — _μια δια τερματική λύση ιχνηλασιμότητας για τις πρώτες ύλες που γίνονται προϊόντα_ -- [EY OpsChain Contract Manager](https://blockchain.ey.com/products/contract-manager) — _επιτρέπει στις εταιρείες να συμμετέχουν στη ροή εργασιών που σχετίζονται με τη σύναψη συμβάσεων μέσω της έκδοσης RFQ, συμβάσεων, παραγγελιών και τιμολογίων σε ένα δίκτυο επιχειρηματικών εταίρων_ -- [Minespider](https://www.minespider.com/) — _ιχνηλασία και προέλευση αλυσίδων τροφοδοσίας και ιχνηλασία εκπομπών CO2_ -- [Morpheus.network](https://morpheus.network/) — _πλατφόρμα αυτοματοποίησης αλυσίδων τροφοδοσίας_ -- [StaTwig](https://statwig.com/) — _λειτουργίες των αλυσίδων τροφοδοσίας_ -- [TradeTrust](https://www.tradetrust.io/) — _επαληθεύει ηλεκτρονικές φορτωτικές (eBLs) για διεθνείς μεταφορές_ -- [Transmute](https://transmute.industries/) — _πλατφόρμα ανταλλαγής δεδομένων για παγκόσμιο εμπόριο· Υποστηρίζει συναλλαγές με αποκεντρωμένη ταυτότητα στο Ethereum_ +- [CargoX](https://cargox.io/) - _πάροχος ηλεκτρονικών φορτωτικών και μεταφοράς εγγράφων για ναυτιλία._ +- [Circularize](https://www.circularise.com/) - _μια λύση ιχνηλασιμότητας από άκρο σε άκρο για πρώτες ύλες που μετατρέπονται σε προϊόντα._ +- [EY OpsChain Contract Manager](https://blockchain.ey.com/) — _επιτρέπει στις εταιρείες να συμμετέχουν στη ροή εργασιών που σχετίζονται με τη σύναψη συμβάσεων μέσω της έκδοσης RFQ, συμβάσεων, παραγγελιών και τιμολογίων σε ένα δίκτυο επιχειρηματικών εταίρων_ +- [Το Global Battery Passport project](https://dlt.mobi/gbp-mvp/) _χρησιμοποιεί DIDs αγκυροβολημένα στο Ethereum μέσω του Integrated Trust Network της MOBI για την παρακολούθηση μπαταριών EV, για συμμόρφωση με τους κανονισμούς της ΕΕ._ +- [Minespider](https://www.minespider.com/) - _παρακολούθηση αλυσίδας εφοδιασμού και προέλευσης, και παρακολούθηση εκπομπών CO2._ +- [Morpheus.network](https://morpheus.network/) - _πλατφόρμα αυτοματοποίησης αλυσίδας εφοδιασμού._ +- [StaTwig](https://statwig.com/) - _λειτουργίες αλυσίδας εφοδιασμού._ +- [TradeTrust](https://www.tradetrust.io/) - _επαληθεύει ηλεκτρονικές φορτωτικές (eBLs) για διεθνείς μεταφορές._ +- [Tradeverifyd](https://tradeverifyd.com/) - _πλατφόρμα ανταλλαγής δεδομένων για το παγκόσμιο εμπόριο. Υποστηρίζει συναλλαγές με Αποκεντρωμένη Ταυτότητα στο Ethereum._ ### Ασφάλιση {#insurance} -- [Arbol](https://www.arbolmarket.com/) — _παραμετρική ασφάλιση για την κάλυψη κινδύνων που σχετίζονται με τις καιρικές συνθήκες_ -- [Etherisc](https://etherisc.com/) — _αποκεντρωμένη ασφάλιση μιας ποικιλίας κινδύνων_ -- [Nayms](https://www.nayms.com/) — _ψηφιακός χώρος δημιουργίας ασφαλιστικών προγραμμάτων, άντλησης και εμπορίας κεφαλαίων, εγγραφής κινδύνου και οδηγών πληρωμής για συναλλαγές και αξιώσεις, που αναπτύσσεται με την AON_ +- [Arbol](https://www.arbolmarket.com/) - _παραμετρική ασφάλιση για την κάλυψη κινδύνων που σχετίζονται με τον καιρό._ +- [Etherisc](https://etherisc.com/) - _αποκεντρωμένη ασφάλιση για ποικίλους κινδύνους._ +- [Nayms](https://www.nayms.com/) - _ένας ψηφιακός χώρος για τη δημιουργία ασφαλιστικών προγραμμάτων, την αύξηση και εμπορία κεφαλαίων, την ανάληψη κινδύνου, και τις ράγες πληρωμής για ασφάλιστρα και συναλλαγές απαιτήσεων, χτισμένος με την AON._ -### Ταυτότητα, διαπιστεύσεις και πιστοποιήσεις {#credentials} +### Ταυτότητα, διαπιστευτήρια και πιστοποιήσεις {#credentials} -- [BCdiploma](https://www.bcdiploma.com/) — _ψηφιοποιεί και επαληθεύει διπλώματα, πιστοποιήσεις και μικροδιαπιστεύσεις_ -- [Hyland Credentials](https://www.hylandcredentials.com) — _ψηφιακά διπλώματα και άλλες εκπαιδευτικές διαπιστεύσεις, άδειες και πιστοποιήσεις_ -- [Palau Digital Residency Program](https://rns.id/) — _προσφέρει στους παγκόσμιους πολίτες τη δυνατότητα να έχουν νόμιμη ταυτότητα Palau κρατικής έκδοσης_ +- [BCdiploma](https://www.bcdiploma.com/) - _ψηφιοποιεί και επαληθεύει διπλώματα, πιστοποιητικά και micro-credentials._ +- [Bhutan National Digital Identity](https://www.bhutanndi.com/) - _ένα θεμέλιο για την ψηφιακή οικονομία του Μπουτάν, διευκολύνοντας τις αξιόπιστες αλληλεπιδράσεις μεταξύ ατόμων και οργανισμών._ +- [Hyland Credentials](https://www.hylandcredentials.com) - _ψηφιακά διπλώματα και άλλα εκπαιδευτικά διαπιστευτήρια, άδειες και πιστοποιητικά._ +- [Palau Digital Residency Program](https://rns.id/) - _προσφέρει σε παγκόσμιους πολίτες τη δυνατότητα να έχουν ένα νόμιμο αναγνωριστικό που εκδίδεται από την κυβέρνηση του Παλάου._ +- [Το QuarkID](https://quarkid.org/) _είναι ένα πρωτόκολλο αυτοκυρίαρχης ταυτότητας για τη διαχείριση βασικών προσωπικών εγγράφων, όπως πιστοποιητικά γέννησης και γάμου, ακαδημαϊκά διαπιστευτήρια και αποδείξεις εισοδήματος, που αναπτύχθηκε από την κυβέρνηση του Μπουένος Άιρες για χρήση στην Αργεντινή και άλλες χώρες της Νότιας Αμερικής._ - [Spherity](https://www.spherity.com/) — _προσφέρει λύσεις διαχείριση ψηφιακής ταυτότητας για την καθιέρωση της ψηφιακής εμπιστοσύνης στα οικοσυστήματα με επικέντρωση στις αποκεντρωμένες ταυτότητες και τις επαληθεύσιμες διαπιστεύσεις_ - [Zug Digital ID](https://ezug.ch/en/) — _είναι ένα σύστημα ταυτότητας βάσει κρυπτοαλυσίδας στην Ελβετία που παρέχουν στους κατοίκους ψηφιακή πρόσβαση σε κρατικές υπηρεσίες και υποστηρίζει λειτουργικότητες όπως ο ηλεκτρονικός δανεισμός ποδηλάτου και δημοτική ψηφοφορία_ ### Ψυχαγωγία, NFT και Πίστη -- [Adidas Virtual Gear](https://www.adidas.com/metaverse) — _μια εικονική συλλογή εξοπλισμού NFT_ -- [Το Sandbox του Βρετανικού Μουσείου](https://decrypt.co/150405/british-museum-enter-metaverse-via-sandbox) — _μια συλλογή NFT_ -- [Fruitlab](https://fruitlab.com/) — _μια πλατφόρμα στην οποία οι gamer μπορούν να κερδίζουν βλέποντας, ανταλλάσσοντας και παίζοντας διαδικτυακά παιχνίδια_ +- [Το British Museum's Sandbox](https://decrypt.co/150405/british-museum-enter-metaverse-via-sandbox) - _μια συλλογή NFT._ +- [Fruitlab](https://fruitlab.com/) - _μια πλατφόρμα για gamers για να κερδίζουν από την παρακολούθηση, κοινή χρήση και παιχνίδι online παιχνιδιών._ +- [Lamborghini](https://venturebeat.com/games/lamborghini-and-animocas-motorverse-tap-base-blockchain-for-in-game-assets/) - _δημιουργεί in-game assets για το Web3 παιχνίδι αγώνων Motorverse της Animoca._ - [Nike Swoosh](https://www.swoosh.nike/) — _μια πλατφόρμα NFT_ - [Sothbebys Metaverse](https://metaverse.sothebys.com/) — _μια ψηφιακή αγορά τέχνης NFT από τη Sothebys_ +- [Soneium](https://soneium.org/) - _ένα Layer 2 από τη Sony για την υποστήριξη παιχνιδιών Web3 και NFT._ -Εάν θέλετε να κάνετε προσθήκη σε αυτήν τη λίστα, παρακαλώ δείτε τις [οδηγίες συνεισφοράς](/contributing/). +Αν θέλετε να προσθέσετε κάτι σε αυτήν τη λίστα, ανατρέξτε στις [οδηγίες για τη συνεισφορά](/contributing/). diff --git a/public/content/translations/el/glossary/index.md b/public/content/translations/el/glossary/index.md index e54f781a603..902ca28dbdc 100644 --- a/public/content/translations/el/glossary/index.md +++ b/public/content/translations/el/glossary/index.md @@ -474,6 +474,8 @@ lang: el + + ## Ζ {#section-z} @@ -488,7 +490,7 @@ lang: el ## Πηγές {#sources} -_Παρέχεται εν μέρει από το [Mastering Ethereum](https://github.com/ethereumbook/ethereumbook) (Γίνετε εξπέρ του Ethereum) από τους [Ανδρέα M. Αντωνόπουλο και Gavin Wood](https://ethereumbook.info) υπό την CC-BY-SA_ +_Παρέχεται εν μέρει από το [Mastering Ethereum](https://github.com/ethereumbook/ethereumbook) από τους [Ανδρέα M. Αντωνόπουλο και Gavin Wood](https://ethereumbook.info) υπό την CC-BY-SA_ diff --git a/public/content/translations/el/guides/how-to-swap-tokens/index.md b/public/content/translations/el/guides/how-to-swap-tokens/index.md index 1abea55f52c..4b3ae8e6bfa 100644 --- a/public/content/translations/el/guides/how-to-swap-tokens/index.md +++ b/public/content/translations/el/guides/how-to-swap-tokens/index.md @@ -12,7 +12,7 @@ lang: el **Προαπαιτούμενα:** -- Κατοχή [πορτοφολιού κρυπτονομισμάτων](/glossary/#wallet), δείτε τον οδηγό: [Πώς να «δημιουργήσετε» ένα λογαριασμό Ethereum](/guides/how-to-create-an-ethereum-account/). +- Έχετε [πορτοφόλι κρυπτονομισμάτων;](/glossary/#wallet) Αν όχι, ακολουθήστε αυτόν τον οδηγό: [Πώς να δημιουργήσετε έναν λογαριασμό Ethereum](/guides/how-to-create-an-ethereum-account/). - Προσθήκη κεφαλαίων στο πορτοφόλι σας. ## 1. Συνδέστε το πορτοφόλι σας με το αποκεντρωμένο ανταλλακτήριο (DEX) της επιλογής σας diff --git a/public/content/translations/el/history/index.md b/public/content/translations/el/history/index.md index 72ee60de9c0..1acbdbd37ba 100644 --- a/public/content/translations/el/history/index.md +++ b/public/content/translations/el/history/index.md @@ -72,15 +72,15 @@ sidebarDepth: 1 ## 2025 {#2025} -### Prague-Electra ("Pectra", _σε εξέλιξη_) {#pectra} +### Prague-Electra ("Pectra") {#pectra} -Η αναβάθμιση Πράγα-Electra ("Pectra") περιλαμβάνει αρκετές βελτιώσεις στο πρωτόκολλο Ethereum που στοχεύουν στη βελτίωση της εμπειρίας για όλους τους χρήστες, τα δίκτυα επιπέδου 2, τους χρήστες με δέσμευση κεφαλαίου και τους διαχειριστές κόμβων. +Η αναβάθμιση Prague-Electra ("Pectra") περιελάμβανε αρκετές βελτιώσεις στο πρωτόκολλο Ethereum με στόχο τη βελτίωση της εμπειρίας για όλους τους χρήστες, τα δίκτυα επιπέδου 2, τους χρήστες με δεσμευμένο κεφάλαιο και τους χειριστές κόμβων. -Η δέσμευση κεφαλαίου αναβαθμίζεται με λογαριασμούς επικυρωτών με σύνθετο τόκο και βελτιωμένο έλεγχο των δεσμευμένων κεφαλαίων χρησιμοποιώντας τη διεύθυνση ανάληψης επιπέδου εκτέλεσης. Το EIP-7251 αυξάνει το μέγιστο αποτελεσματικό υπόλοιπο για έναν μόνο επικυρωτή σε 2048, βελτιώνοντας την κεφαλαιακή αποδοτικότητα για τους χρήστες με δέσμευση κεφαλαίου. Το EIP-7002 επιτρέπει σε έναν λογαριασμό επιπέδου εκτέλεσης να ενεργοποιεί με ασφάλεια ενέργειες επικυρωτή, συμπεριλαμβανομένης της εξόδου ή της ανάληψης τμημάτων των κεφαλαίων, βελτιώνοντας την εμπειρία για τους παίκτες με δέσμευση ETH, ενώ βοηθά στην ενίσχυση της λογοδοσίας για τους διαχειριστές κόμβων. +Η δέσμευση κεφαλαίων αναβαθμίστηκε με ανατοκισμό λογαριασμών επικύρωσης και βελτίωσε τον έλεγχο των δεσμευμένων κεφαλαίων χρησιμοποιώντας τη διεύθυνση εκτέλεσης ανάληψης. Το EIP-7251 αύξησε το μέγιστο αποτελεσματικό υπόλοιπο για έναν μόνο επικυρωτή σε 2048, βελτιώνοντας την κεφαλαιακή αποδοτικότητα για τους χρήστες με δέσμευση κεφαλαίου. Το EIP-7002 επέτρεψε σε έναν λογαριασμό επιπέδου εκτέλεσης να ενεργοποιεί με ασφάλεια ενέργειες επικυρωτή, συμπεριλαμβανομένης της εξόδου ή της ανάληψης τμημάτων των κεφαλαίων, βελτιώνοντας την εμπειρία για τους παίκτες με δέσμευση ETH, ενώ βοηθά στην ενίσχυση της λογοδοσίας για τους διαχειριστές κόμβων. -Άλλα μέρη της αναβάθμισης επικεντρώνονται στη βελτίωση της εμπειρίας για τους τακτικούς χρήστες. Το EIP-7702 εισάγει τη δυνατότητα ενός τακτικού λογαριασμού που δεν είναι έξυπνο συμβόλαιο ([EOA](/glossary/#eoa)) να εκτελεί κώδικα παρόμοιο με ένα έξυπνο συμβόλαιο. Αυτό ξεκλειδώνει απεριόριστες νέες λειτουργίες για τους παραδοσιακούς λογαριασμούς Ethereum, όπως ομαδοποίηση συναλλαγών, χορηγία gas, εναλλακτική αυθεντικοποίηση, προγραμματιζόμενοι έλεγχοι δαπανών, μηχανισμοί ανάκτησης λογαριασμού και άλλα. +Άλλα μέρη της αναβάθμισης επικεντρώθηκαν στη βελτίωση της εμπειρίας για τους τακτικούς χρήστες. Το EIP-7702 εισήγαγε τη δυνατότητα ενός τακτικού λογαριασμού που δεν είναι έξυπνο συμβόλαιο ([EOA](/glossary/#eoa)) να εκτελεί κώδικα παρόμοιο με ένα έξυπνο συμβόλαιο. Αυτό ξεκλείδωσε απεριόριστες νέες λειτουργίες για τους παραδοσιακούς λογαριασμούς Ethereum, όπως ομαδοποίηση συναλλαγών, χορηγία gas, εναλλακτική αυθεντικοποίηση, προγραμματιζόμενοι έλεγχοι δαπανών, μηχανισμοί ανάκτησης λογαριασμού και άλλα. diff --git a/public/content/translations/el/prediction-markets/index.md b/public/content/translations/el/prediction-markets/index.md new file mode 100644 index 00000000000..572208dfaa2 --- /dev/null +++ b/public/content/translations/el/prediction-markets/index.md @@ -0,0 +1,79 @@ +--- +title: Αγορές προβλέψεων +lang: el +template: use-cases +image: /images/use-cases/prediction-markets.png +sidebarDepth: 2 +summaryPoint1: Λάβετε οικονομικά κίνητρα για να δημιουργείτε ακριβείς προβλέψεις  +summaryPoint2: Υψηλής ποιότητας προβλέψεις για μελλοντικά γεγονότα +buttons: + - content: Μάθετε περισσότερα + toId: how-prediction-markets-work + - content: Εξερεύνηση apps + toId: εύρεση-αγοράς-πρόβλεψης + isSecondary: false +--- + +Οι αγορές πρόβλεψης χρησιμοποιούν τη σοφία του πλήθους και οικονομικά κίνητρα για την πρόβλεψη γεγονότων. Προσφέρουν ποικίλα, υψηλής ποιότητας δεδομένα και απέκτησαν δυναμική κατά τις εκλογές των ΗΠΑ το 2024 . + +## Πώς λειτουργούν οι αγορές πρόβλεψης {#how-prediction-markets-work} + +Σε αντίθεση με τις παραδοσιακές μεθόδους πρόβλεψης που βασίζονται σε γνώμες εμπειρογνωμόνων, περιορισμένα δείγματα ερευνών ή ιστορικά δεδομένα, οι αγορές πρόβλεψης αξιοποιούν **οικονομικά κίνητρα σε πραγματικό χρόνο** και τη σοφία του πλήθους για να δημιουργήσουν πληροφορίες που σχετίζονται με ένα συγκεκριμένο γεγονός — εκλογές, τιμές κρυπτονομισμάτων, αθλητικά αποτελέσματα — οτιδήποτε. + +Αυτό επιτρέπει σε οποιονδήποτε να σηματοδοτήσει υποστήριξη για ένα συγκεκριμένο αποτέλεσμα με μια οικονομική δέσμευση. +Ενεργοποιώντας στοιχήματα σε πραγματικά γεγονότα και προσαρμόζοντας τις τιμές καθώς προκύπτουν νέες πληροφορίες, οι ενημερωμένες γνώμες εκτιμώνται περισσότερο και η ακρίβεια μπορεί να ανταμειφθεί. + +Θεωρητικά, επειδή οι μπουκερς μπορούν να επωφεληθούν από το να είναι σωστοί, οι αγορές πρόβλεψης μπορούν να προβλέψουν αποτελέσματα με μεγάλη ακρίβεια. Οι αγορές πρόβλεψης που βασίζονται σε blockchain είναι ακόμα πιο συναρπαστικές, καθώς σχεδόν οποιοσδήποτε μπορεί να λάβει μέρος στην πρόβλεψη και να κερδίσει ανταμοιβές σε stablecoin ή κρυπτονομίσματα. + +## Γιατί αυτό έχει σημασία; {#why-does-this-matter} + +Σε αντίθεση με τις παραδοσιακές προβλέψεις, οι αγορές πρόβλεψης που βασίζονται σε blockchain είναι: + + + + + + + +Ακόμα και ως παρατηρητής της αγοράς, μπορείτε να αξιολογήσετε πολύτιμα δεδομένα που διαφορετικά θα ήταν μη διαθέσιμα. Σκεφτείτε το ως εξής: + +1. Οι προβλέψεις συνδέονται με ένα συγκεκριμένο γεγονός (π.χ. Θα αναπτυχθεί το Beam Chain έως το 2030;). +2. Οι συμμετέχοντες στην αγορά αγοράζουν και πωλούν μετοχές με βάση την εμπιστοσύνη τους σε οποιοδήποτε αποτέλεσμα. +3. Οι τιμές προσαρμόζονται καθώς περισσότεροι συμμετέχοντες διακυβεύουν τις πεποιθήσεις τους, αντανακλώντας πληροφορίες σε πραγματικό χρόνο. +4. Όποιος στοιχηματίζει σωστά κερδίζει αναλογικά με το ποσό που διακυβεύτηκε. +5. Οι παρατηρητές της αγοράς μπορούν να αξιοποιήσουν τα ανοιχτά δεδομένα για να ενημερώσουν την έρευνα ή τη συζήτηση. + +## Βρείτε μια αγορά πρόβλεψης {#find-a-prediction-market} + +Υπάρχουν αρκετές αγορές πρόβλεψης που βασίζονται στο Ethereum. Αυτές είναι μερικές από τις πιο γνωστές αγορές πρόβλεψης σήμερα. + + + + +

Να έχετε επίγνωση των κινδύνων

+

Στοιχηματίστε μόνο όσα μπορείτε να αντέξετε οικονομικά και να γνωρίζετε πιθανές εθιστικές συμπεριφορές.

+
+ +## Προκλήσεις & Κίνδυνοι {#challenges-and-risks} + +Οι αγορές πρόβλεψης στο blockchain αντιμετωπίζουν λίγες προκλήσεις που μπορούν να επηρεάσουν τη δικαιοσύνη, τη νομιμότητα και την ακρίβεια. + +⚠️ **Χειραγώγηση Αγοράς** – Πλούσιοι παίκτες μπορούν να διαστρεβλώσουν τα αποτελέσματα μέσω wash trading.\ +💧 **Θέματα Ρευστότητας** – Η χαμηλή συμμετοχή [ελάχιστη ρευστότητα](https://www.investopedia.com/terms/t/thinmarket.asp) μπορεί να μειώσει την αξιοπιστία της αγοράς.\ +🏛 **Ρυθμιστική Αβεβαιότητα** – Οι κυβερνήσεις έχουν επιβάλει περιορισμούς σε ορισμένες πλατφόρμες. + +Για να μετριάσουν αυτά τα ζητήματα, οι προγραμματιστές του Ethereum πειραματίζονται με λύσεις όπως η futarchy (διακυβέρνηση μέσω αγορών πρόβλεψης) και η αποκεντρωμένη επαλήθευση ταυτότητας. + +## Πειραματισμός με αγορές πρόβλεψης {#experimenting-with-prediction-markets} + +Οι αγορές πρόβλεψης αναδιαμορφώνουν τη λήψη αποφάσεων στην ψηφιακή εποχή. Αξιοποιώντας το Ethereum, προσφέρουν **δίκαιους, ανοιχτούς και ανταποδοτικούς τρόπους πρόβλεψης του μέλλοντος**. + +Υπάρχουν πολλοί τρόποι χρήσης εργαλείων πρόβλεψης εκτός του οικονομικού κέρδους. Για παράδειγμα, σε μια Πρόταση Βελτίωσης του [DevCon](https://forum.devcon.org/t/futarchy-decision-markets-for-deciding-next-devcon/5305) (DIP) προτάθηκε στους διοργανωτές του DevCon να χρησιμοποιήσουν αγορές πρόβλεψης για να προβλέψουν την προσέλευση για μελλοντικές εκδηλώσεις. + +Αυτό θα βοηθούσε τους διοργανωτές να καθορίσουν ποια τοποθεσία θα οδηγούσε στη μεγαλύτερη εκδήλωση, σε σύγκριση με ποια τοποθεσία θα οδηγούσε στην πιο διεθνώς προσβάσιμη. Τα οφέλη του σημαίνουν ότι οι διοργανωτές του DevCon μπορούν να επιταχύνουν τον χρόνο που απαιτείται για την εξέταση πολλαπλών πολιτικών χορήγησης βίζας, την πρόσβαση στο αεροδρόμιο και το κόστος ζωής στην περιοχή, ενώ παράλληλα συλλέγουν δεδομένα σχετικά με το πού θα ήταν ενθουσιασμένοι να πάνε οι πιθανοί συμμετέχοντες. + +## Περαιτέρω υλικό για διάβασμα {#further-reading} + +[From prediction markets to info finance](https://vitalik.eth.limo/general/2024/11/09/infofinance.html) - Vitalik Buterin\ +[Decentralized Prediction Market Development on Ethereum](https://blockchain.oodles.io/dev-blog/decentralized-prediction-market-development-ethereum/)\ +[The Augur Project Whitepaper](https://github.com/AugurProject/whitepaper) \ No newline at end of file diff --git a/public/content/translations/el/roadmap/account-abstraction/index.md b/public/content/translations/el/roadmap/account-abstraction/index.md new file mode 100644 index 00000000000..d3d8f8e93f5 --- /dev/null +++ b/public/content/translations/el/roadmap/account-abstraction/index.md @@ -0,0 +1,71 @@ +--- +title: Αφαιρετικότητα λογαριασμού +description: Επισκόπηση των σχεδίων του Ethereum για απλούστερους και ασφαλέστερους λογαριασμούς χρήστη +lang: el +summaryPoints: + - Η απλοποίηση λογαριασμού καθιστά τη δημιουργία πορτοφολιών των έξυπνων συμβολαίων πολύ πιο εύκολη. + - Τα πορτοφόλια έξυπνων συμβολαίων μπορούν ευκολότερα να διαχειριστούν ψηφιακά στοιχεία λογαριασμών Ethereum. + - Τα κλειδιά που έχουν χαθεί ή εκτεθεί μπορεί να γίνει η επαναφορά τους με χρήση πολλαπλών αντιγράφων ασφαλείας. +--- + +# Αφαιρετικότητα λογαριασμού {#account-abstraction} + +Οι ποιο ενθουσιώδεις χρήστες αλληλεπιδρούν με το Ethereum χρησιμοποιώντας **[εξωτερικά ιδιόκτητους λογαριασμούς (EOA)](/glossary/#eoa)**. Αυτό περιορίζει τον τρόπο με τον οποίο οι χρήστες μπορούν να αλληλεπιδράσουν με το Ethereum. Για παράδειγμα, δυσκολεύει τη διεκπεραίωση πακέτων συναλλαγών και απαιτεί από τους χρήστες να διατηρούν πάντα υπόλοιπο σε ETH για την πληρωμή των κρατήσεων συναλλαγών. + +Η αφαιρετικότητα λογαριασμού είναι μια νέα προσέγγιση που αποσκοπεί στην επίλυση αυτών των προβλημάτων, επιτρέποντας στους χρήστες να ενσωματώσουν μεγαλύτερη ασφάλεια και καλύτερες εμπειρίες χρήσης στους λογαριασμούς τους. Αυτό μπορεί να επιτευχθεί με την [αναβάθμιση των EOA](https://eips.ethereum.org/EIPS/eip-7702) (EIP-7702), ώστε να μπορούν να ελέγχονται από έξυπνα συμβόλαια. Εξετάζεται επίσης μια διαφορετική προσέγγιση, η οποία περιλαμβάνει την προσθήκη ενός [δεύτερου, ξεχωριστού συστήματος συναλλαγών](https://eips.ethereum.org/EIPS/eip-4337) (EIP-4337) που θα λειτουργεί παράλληλα με το υπάρχον πρωτόκολλο. Ανεξάρτητα από τη διαδρομή, το αποτέλεσμα είναι η πρόσβαση στο Ethereum μέσω έξυπνων πορτοφολιών συμβολαίων, είτε υποστηρίζονται εγγενώς ως μέρος του υπάρχοντος πρωτοκόλλου είτε μέσω ενός πρόσθετου δικτύου συναλλαγών. + +Τα πορτοφόλια έξυπνων συμβολαίων παρέχουν πολλά οφέλη στους χρήστες, όπως: + +- Ορισμός ευέλικτων κανόνων ασφαλείας. +- Ανάκτηση λογαριασμού σε περίπτωση απώλειας των κλειδιών. +- Διαμοιρασμός πρόσβασης σε έμπιστα άτομα ή συσκευές. +- Πληρωμή κρατήσεων άλλου χρήστη. +- Εκτέλεση πολλών συναλλαγών ταυτόχρονα (π.χ. έγκριση και εκτέλεση μιας ανταλλαγής κρυπτονομισμάτων σε ένα βήμα). +- Περισσότερες δυνατότητες για καινοτομία για dapps και δημιουργούς πορτοφολιών αλληλεπίδρασης χρηστών. + +Αυτά τα οφέλη δεν υποστηρίζονται σήμερα επειδή μόνο οι εξωτερικά ιδιόκτητοι λογαριασμοί ([EOA](/glossary/#eoa)) μπορούν να ξεκινήσουν συναλλαγές Οι ΕΟΕ είναι απλά ζεύγη δημόσιων-ιδιωτικών κλειδιών. Δείτε πως λειτουργούν: + +- Εάν έχετε το ιδιωτικό κλειδί μπορείτε να κάνετε _οτιδήποτε_ επιτρέπεται από την Ethereum Virtual Machine (EVM). +- Εάν δεν έχετε το ιδιωτικό κλειδί δεν μπορείτε να κάνετε _τίποτα_. + +Αν όμως χάσετε τα ιδιωτικά σας κλειδιά, δεν υπάρχει τρόπος ανάκτησης και ένας κλέφτης με πρόσβαση σε αυτά θα αποκτήσει άμεσα όλα τα χρήματα του λογαριασμού σας. + +Τα πορτοφόλια έξυπνων συμβολαίων αποτελούν λύση σε αυτά τα προβλήματα, αλλά προς το παρόν είναι δύσκολο να προγραμματιστούν, επειδή οποιαδήποτε λογική και αν εφαρμόζουν, πρέπει τελικά να μεταφραστεί σε μια σειρά συναλλαγών EOA για να γίνει αποδεκτή από το Ethereum. Η αφαιρετικότητα λογαριασμού επιτρέπει στα έξυπνα συμβόλαια να ξεκινούν μόνα τους συναλλαγές. Έτσι, οποιαδήποτε λογική θέλει να εφαρμόσει ο χρήστης μπορεί να προστεθεί ως κώδικας απευθείας στο πορτοφόλι έξυπνου συμβολαίου και να εκτελεστεί στο Ethereum. + +Με λίγα λόγια, η αφαιρετικότητα λογαριασμού βελτιώνει την υποστήριξη για πορτοφόλια έξυπνων συμβολαίων, καθιστώντας τα πιο εύκολα στην ανάπτυξη και πιο ασφαλή στη χρήση. Με την αφαίρετικότητα λογαριασμού, οι χρήστες μπορούν να απολαύσουν όλα τα οφέλη του Ethereum χωρίς να χρειάζεται να κατανοήσουν την υποκείμενη τεχνολογία. + +## Πέρα από τις φράσεις ασφαλείας {#beyond-seed-phrases} + +Σήμερα, οι λογαριασμοί προστατεύονται με ιδιωτικά κλειδιά που υπολογίζονται από τις φράσεις ασφαλείας. Οποιοσδήποτε έχει πρόσβαση σε μια φράση ασφαλείας μπορεί εύκολα να ανακαλύψει το ιδιωτικό κλειδί που προστατεύει έναν λογαριασμό και να αποκτήσει πρόσβαση σε όλα τα περιουσιακά στοιχεία που προστατεύει. Εάν χαθεί ένα ιδιωτικό κλειδί και μια φράση επαναφοράς, τα περιουσιακά στοιχεία καθίστανται μόνιμα μη προσβάσιμα. Η εξασφάλιση αυτών των φράσεων ασφαλείας είναι δύσκολη, ακόμη και για έμπειρους χρήστες, καθώς η εξαπάτηση για τις φράσεις ασφαλείας είναι ένας από τους πιο συνηθισμένους τρόπους εξαπάτησης. + +Η αφαιρετικότητα λογαριασμού λύνει αυτό το πρόβλημα χρησιμοποιώντας ένα έξυπνο συμβόλαιο για τη διατήρηση περιουσιακών στοιχείων και την εξουσιοδότηση συναλλαγών. Τα έξυπνα συμβόλαια μπορούν να περιλαμβάνουν προσαρμοσμένη λογική για μέγιστη ασφάλεια και χρηστικότητα. Οι χρήστες εξακολουθούν να χρησιμοποιούν ιδιωτικά κλειδιά για τον έλεγχο πρόσβασης, αλλά με ενισχυμένα μέτρα ασφαλείας. + +Για παράδειγμα, μπορούν να προστεθούν εφεδρικά κλειδιά σε ένα πορτοφόλι, επιτρέποντας την αντικατάσταση κλειδιού σε περίπτωση που το πρωτεύον κλειδί έχει παραβιαστεί. Κάθε κλειδί μπορεί να ασφαλιστεί με διαφορετικό τρόπο ή να κατανεμηθεί μεταξύ αξιόπιστων ατόμων, αυξάνοντας σημαντικά την ασφάλεια. Πρόσθετοι κανόνες πορτοφολιού μπορούν να μετριάσουν τη ζημιά από την έκθεση σε κλειδιά, όπως η απαίτηση πολλαπλών υπογραφών για συναλλαγές υψηλής αξίας ή ο περιορισμός των συναλλαγών σε αξιόπιστες διευθύνσεις. + +## Καλύτερη εμπειρία χρήστη {#better-user-experience} + +Η αφαιρετικότητα λογαριασμών βελτιώνει σημαντικά την εμπειρία και την ασφάλεια του χρήστη, υποστηρίζοντας έξυπνα πορτοφόλια συμβολαίων σε επίπεδο πρωτοκόλλου. Οι προγραμματιστές μπορούν να καινοτομούν ελεύθερα, βελτιώνοντας την ομαδοποίηση συναλλαγών για ταχύτητα και αποτελεσματικότητα. Οι απλές ανταλλαγές μπορούν να γίνουν λειτουργίες με ένα κλικ, βελτιώνοντας σημαντικά την ευκολία χρήσης. + +Η διαχείριση του gas βελτιώνεται σημαντικά. Οι εφαρμογές μπορούν να πληρώσουν τα τέλη gas των χρηστών ή να επιτρέψουν την πληρωμή σε tokens εκτός από ETH, εξαλείφοντας την ανάγκη διατήρησης υπολοίπου ETH. + +## Πώς θα υλοποιηθεί η αφαιρετικότητα λογαριασμού; {#how-will-aa-be-implemented} + +Προς το παρόν, τα έξυπνα πορτοφόλια συμβολαίων είναι δύσκολο να εφαρμοστούν, καθώς βασίζονται σε σύνθετες τυπικές συναλλαγές που περιτυλίγουν κώδικα. Το Ethereum μπορεί να το αλλάξει αυτό επιτρέποντας στα έξυπνα συμβόλαια να ξεκινούν απευθείας συναλλαγές, ενσωματώνοντας αυτή τη λογική στα έξυπνα συμβόλαια του Ethereum αντί να βασίζεται σε εξωτερικούς αναμεταδότες. + +### EIP-4337: Αφαιρετικότητα λογαριασμού χωρίς αλλαγές πρωτοκόλλου + +Το EIP-4337 επιτρέπει την υποστήριξη εγγενών έξυπνων πορτοφολιών συμβολαίων χωρίς τροποποίηση του βασικού πρωτοκόλλου του Ethereum. Εισάγει αντικείμενα `UserOperation` που συλλέγονται σε δέσμες συναλλαγών από επικυρωτές, απλοποιώντας την ανάπτυξη πορτοφολιών. Η σύμβαση EIP-4337 EntryPoint αναπτύχθηκε στο Ethereum Mainnet τη 1η Μαρτίου 2023 και έχει διευκολύνει τη δημιουργία πάνω από 26 εκατομμυρίων έξυπνων πορτοφολιών και 170 εκατομμυρίων λειτουργιών χρηστών. + +## Τρέχουσα πρόοδος {#current-progress} + +Στο πλαίσιο της αναβάθμισης του Pectra του Ethereum, το EIP-7702 έχει προγραμματιστεί για τις 7 Μαΐου 2025. Το EIP-4337 έχει υιοθετηθεί ευρέως, [με πάνω από 26 εκατομμύρια έξυπνους λογαριασμούς να έχουν αναπτυχθεί και να έχουν διεκπεραιωθεί περισσότερες από 170 εκατομμύρια λειτουργίες χρήστη](https://www.bundlebear.com/overview/all). + +## Περισσότερες πληροφορίες {#further-reading} + +- [erc4337.io](https://www.erc4337.io/) +- [Τεκμηρίωση EIP-4337](https://eips.ethereum.org/EIPS/eip-4337) +- [Τεκμηρίωση EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) +- [Πίνακας ελέγχου υιοθέτησης ERC-4337](https://www.bundlebear.com/overview/all) +- [Ο «Δρόμος προς την Αφαιρετικότητα Λογαριασμών» του Vitalik](https://notes.ethereum.org/@vbuterin/account_abstraction_roadmap#Transaction-inclusion-lists) +- [Το ιστολόγιο του Vitalik σχετικά με τα πορτοφόλια επαναφοράς](https://vitalik.eth.limo/general/2021/01/11/recovery.html) +- [Φοβερή Αφαιρετικότητα Λογαριασμού](https://github.com/4337Mafia/awesome-account-abstraction) diff --git a/public/content/translations/el/roadmap/danksharding/index.md b/public/content/translations/el/roadmap/danksharding/index.md new file mode 100644 index 00000000000..05dd6ca4153 --- /dev/null +++ b/public/content/translations/el/roadmap/danksharding/index.md @@ -0,0 +1,95 @@ +--- +title: Danksharding +description: Μάθετε για το Proto-Danksharding και το Danksharding, τις δύο διαδοχικές αναβαθμίσεις για την κλιμάκωση του Ethereum. +lang: el +summaryPoints: + - Το Danksharding είναι μια αναβάθμιση πολλών φάσεων για τη βελτίωση της δυνατότητας κλιμάκωσης και της χωρητικότητας του Ethereum. + - Το πρώτο στάδιο, το Proto-Danksharding, προσθέτει δεδομένα-blobs (data blobs) στα μπλοκ + - Τα δεδομένα-blobs προσφέρουν έναν φθηνότερο τρόπο για τα rollups να δημοσιεύουν τα δεδομένα στο Ethereum και αυτό το κόστος μπορεί να μεταφερθεί στους χρήστες με τη μορφή χαμηλότερων τελών συναλλαγής. + - Αργότερα, το πλήρες Danksharding θα διανείμει την ευθύνη επαλήθευσης των δεδομένων-blobs σε υποσύνολα κόμβων, κλιμακώνοντας περαιτέρω το Ethereum σε περισσότερες από 100.000 συναλλαγές ανά δευτερόλεπτο. +--- + +# Danksharding {#danksharding} + +Το **Danksharding** είναι ο τρόπος με τον οποίο το Ethereum γίνεται ένα πραγματικά επεκτάσιμο blockchain, αλλά απαιτούνται αρκετές αναβαθμίσεις πρωτοκόλλου για να φτάσετε εκεί. Το **Proto-Danksharding** είναι ένα ενδιάμεσο βήμα στην όλη πορεία. Και τα δύο στοχεύουν να κάνουν τις συναλλαγές στο επίπεδο 2 όσο το δυνατόν πιο φθηνές για τους χρήστες και θα πρέπει να κλιμακώσουν το Ethereum σε >100.000 συναλλαγές ανά δευτερόλεπτο. + +## Τι είναι το Proto-Danksharding; {#what-is-protodanksharding} + +Το Proto-Danksharding, γνωστό και ως [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844), είναι ένας τρόπος ώστε τα [πακέτα ενημέρωσης](/layer-2/#rollups) να προσθέτουν φθηνότερα δεδομένα στα μπλοκ. Το όνομα προέρχεται από τους δύο ερευνητές που πρότειναν την ιδέα: τον Protolambda και τον Dankrad Feist. Ιστορικά, τα rollup είχαν περιορισμούς όσον αφορά το πόσο φθηνές μπορούν να κάνουν τις συναλλαγές των χρηστών λόγω του γεγονότος ότι δημοσιεύουν τις συναλλαγές τους στο `CALLDATA`. + +Αυτό είναι ακριβό επειδή υποβάλλεται σε επεξεργασία από όλους τους κόμβους Ethereum και βρίσκεται για πάντα εντός αλυσίδας, παρόλο που τα rollup χρειάζονται τα δεδομένα μόνο για μικρό χρονικό διάστημα. Το Proto-Danksharding εισάγει δεδομένα blob που μπορούν να αποσταλούν και να συνδεθούν σε μπλοκ. Τα δεδομένα σε αυτά τα blob δεν είναι προσβάσιμα στην EVM και διαγράφονται αυτόματα μετά από μια καθορισμένη χρονική περίοδο (ορίζεται σε 4096 εποχές τη στιγμή της σύνταξης ή περίπου 18 ημέρες). Αυτό σημαίνει ότι τα πακέτα δεδομένων μπορούν να στέλνουν τα δεδομένα τους πολύ πιο φθηνά και να μεταφέρουν τις εξοικονομήσεις τους στους τελικούς χρήστες με τη μορφή φθηνότερων συναλλαγών. + + + +Τα πακέτα συναλλαγών είναι ένας τρόπος για να κλιμακωθεί το Ethereum ομαδοποιώντας τις συναλλαγές εκτός αλυσίδας και στη συνέχεια δημοσιεύοντας τα αποτελέσματα στο Ethereum. Ένα rollup αποτελείται ουσιαστικά από δύο μέρη: τα δεδομένα και τον έλεγχο εκτέλεσης. Τα δεδομένα είναι η πλήρης ακολουθία των συναλλαγών που επεξεργάζεται ένα rollup, για να παράγει την αλλαγή κατάστασης που δημοσιεύεται στο Ethereum. Ο έλεγχος εκτέλεσης είναι η επανεξέταση αυτών των συναλλαγών από έναν ειλικρινή παράγοντα (έναν «αποδεικνύοντα») για να διασφαλιστεί ότι η προτεινόμενη αλλαγή κατάστασης είναι σωστή. Για να πραγματοποιηθεί ο έλεγχος εκτέλεσης, τα δεδομένα συναλλαγών πρέπει να είναι διαθέσιμα για αρκετά μεγάλο χρονικό διάστημα ώστε να μπορεί ο καθένας να τα κατεβάσει και να τα ελέγξει. Αυτό σημαίνει ότι οποιαδήποτε ανέντιμη συμπεριφορά από τον διαχειριστή του rollup μπορεί να εντοπιστεί και να αμφισβητηθεί από αυτόν που αποδεικνύει. Ωστόσο, δε χρειάζεται να είναι διαθέσιμα για πάντα. + + + + + +Τα πακέτα συναλλαγών δημοσιεύουν δεσμεύσεις για τα δεδομένα συναλλαγών τους στην αλυσίδα και επίσης καθιστούν τα πραγματικά δεδομένα διαθέσιμα σε blobs δεδομένων. Αυτό σημαίνει ότι αυτοί που αποδεικνύουν μπορούν να ελέγξουν αν οι δεσμεύσεις είναι έγκυρες ή να αμφισβητήσουν δεδομένα που θεωρούν λανθασμένα. Σε επίπεδο κόμβου, τα δεδομένα blob τηρούνται στον πελάτη συναίνεσης. Οι πελάτες συναίνεσης βεβαιώνουν ότι έχουν δει τα δεδομένα και ότι έχουν διαδοθεί στο δίκτυο. Εάν τα δεδομένα διατηρούνταν για πάντα, αυτοί οι πελάτες θα διογκώνονταν και θα οδηγούσαν σε μεγάλες απαιτήσεις σε υλικό για τη λειτουργία των κόμβων. Αντίθετα, τα δεδομένα περικόπτονται αυτόματα από τον κόμβο κάθε 18 ημέρες. Οι βεβαιώσεις των πελατών συναίνεσης, αποδεικνύουν ότι υπήρξε επαρκής ευκαιρία για τους αποδεικνύοντες να επαληθεύσουν τα δεδομένα. Τα πραγματικά δεδομένα μπορούν να αποθηκευτούν εκτός αλυσίδας από φορείς εκμετάλλευσης, χρήστες ή άλλους. + + + +### Πώς επαληθεύονται τα δεδομένα blob; {#how-are-blobs-verified} + +Τα rollup δημοσιεύουν τις συναλλαγές που εκτελούν σε δεδομένα blob. Αναρτούν και «δέσμευση» για τα δεδομένα. Αυτό επιτυγχάνεται μέσω της προσαρμογής μιας «polynomial» συνάρτησης στα δεδομένα. Αυτή η συνάρτηση μπορεί στη συνέχεια να αξιολογηθεί σε διάφορα σημεία. Για παράδειγμα, αν ορίσουμε μια εξαιρετικά απλή συνάρτηση `f(x) = 2x-1`, τότε μπορούμε να αξιολογήσουμε αυτή τη συνάρτηση για `x = 1`, `x = 2`, `x = 3`, δίνοντας τα αποτελέσματα `1, 3, 5`. Ένας αποδεικνύων εφαρμόζει την ίδια συνάρτηση στα δεδομένα και την αξιολογεί με τον ίδιο τρόπο. Εάν τα αρχικά δεδομένα αλλάξουν, η συνάρτηση δε θα είναι ίδια και επομένως δε θα είναι ίδιες οι τιμές που αξιολογούνται σε κάθε σημείο. Στην πραγματικότητα, η δέσμευση και η απόδειξη είναι πιο περίπλοκες επειδή περιέχονται σε κρυπτογραφικές συναρτήσεις. + +### Τι είναι το KZG; {#what-is-kzg} + +Το KZG σημαίνει Kate-Zaverucha-Goldberg, τα ονόματα των τριών [αρχικών συγγραφέων](https://link.springer.com/chapter/10.1007/978-3-642-17373-8_11) ενός σχεδίου που μειώνει ένα blob δεδομένων σε μια μικρή [κρυπτογραφική δέσμευση](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html). Το blob δεδομένων που υποβάλλει ένα rollup πρέπει να επαληθευτεί για να διασφαλιστεί ότι το rollup δε συμπεριφέρεται κακόβουλα. Αυτό περιλαμβάνει την επανεξέταση των συναλλαγών στο blob από έναν αποδεικνύοντα για να ελέγξει ότι η δέσμευση ήταν έγκυρη. Αυτό είναι εννοιολογικά το ίδιο με τον τρόπο που οι πελάτες εκτέλεσης ελέγχουν την εγκυρότητα των συναλλαγών Ethereum στο επίπεδο 1, χρησιμοποιώντας τις αποδείξεις Merkle. Το KZG είναι μια εναλλακτική απόδειξη που προσαρμόζει μια polynomial εξίσωση στα δεδομένα. Η δέσμευση αξιολογεί το polynomial σε κάποια μυστικά σημεία δεδομένων. Ένας αποδεικνύων θα προσαρμόσει το ίδιο polynomial στα δεδομένα και θα το αξιολογήσει στις ίδιες τιμές, ελέγχοντας ότι το αποτέλεσμα είναι το ίδιο. Αυτός είναι ένας τρόπος επαλήθευσης των δεδομένων που είναι συμβατός με τις τεχνικές μηδενικής γνώσης που χρησιμοποιούνται από ορισμένα rollups και άλλα μέρη του πρωτοκόλλου Ethereum. + +### Τι ήταν η τελετή KZG; {#what-is-a-kzg-ceremony} + +Η τελετή KZG ήταν ένας τρόπος για πολλούς ανθρώπους από όλη την κοινότητα του Ethereum να δημιουργήσουν συλλογικά μια μυστική τυχαία σειρά αριθμών που μπορούν να χρησιμοποιηθούν για την επαλήθευση ορισμένων δεδομένων. Είναι πολύ σημαντικό ότι αυτή η σειρά αριθμών δεν είναι γνωστή και δεν μπορεί να αναδημιουργηθεί από κανέναν. Για να διασφαλιστεί αυτό, κάθε άτομο που συμμετείχε στην τελετή έλαβε μια σειρά από τον προηγούμενο συμμετέχοντα. Οι συμμετέχοντες δημιούργησαν νέες τυχαίες τιμές (π.χ. επιτρέποντας στο πρόγραμμα περιήγησής τους να μετρήσει την κίνηση του ποντικιού τους) και τις ανέμειξαν με την προηγούμενη τιμή. Στη συνέχεια, έστειλαν την τιμή στον επόμενο συμμετέχοντα και την κατέστρεψαν από την τοπική τους μηχανή. Στον βαθμό που ένα άτομο στην τελετή το έκανε αυτό με ειλικρίνεια, η τελική τιμή δε θα είναι γνωστή σε έναν επιτιθέμενο. + +Η τελετή KZG του EIP-4844 ήταν ανοιχτή στο κοινό και δεκάδες χιλιάδες άνθρωποι συμμετείχαν για να προσθέσουν τη δική τους εντροπία (τυχαιότητα). Συνολικά έγιναν πάνω από 140.000 συνεισφορές, καθιστώντας την τη μεγαλύτερη τελετή του είδους της στον κόσμο. Για να υπονομευθεί η τελετή, το 100% των συμμετεχόντων θα έπρεπε να είναι ενεργά ανέντιμοι. Από την οπτική των συμμετεχόντων, εάν γνωρίζουν ότι ήταν ειλικρινείς, δε χρειάζεται να εμπιστευτούν κανέναν άλλο, επειδή γνωρίζουν ότι ασφάλισαν την τελετή (ικανοποίησαν ατομικά την απαίτηση ενός ειλικρινούς συμμετέχοντα από τους Ν). + + + +Όταν ένα πακέτο συναλλαγών δημοσιεύει δεδομένα σε ένα blob, παρέχει μια "δέσμευση" ότι δημοσιεύει στην αλυσίδα. Αυτή η δέσμευση είναι το αποτέλεσμα της αξιολόγησης μια πολυωνυμικής προσαρμογής στα δεδομένα σε ορισμένα σημεία. Αυτά τα σημεία ορίζονται από τους τυχαίους αριθμούς που δημιουργούνται στην τελετή KZG. Οι αποδεικνύοντες μπορούν στη συνέχεια να αξιολογήσουν το polynomial στα ίδια σημεία για να επαληθεύσουν τα δεδομένα και εάν καταλήξουν στις ίδιες τιμές, τότε τα δεδομένα είναι σωστά. + + + + + +Εάν κάποιος γνωρίζει τις τυχαίες τοποθεσίες που χρησιμοποιούνται για τη δέσμευση, είναι εύκολο για αυτόν να δημιουργήσει ένα νέο polynomial που ταιριάζει σε αυτά τα συγκεκριμένα σημεία (δηλαδή μια «σύγκρουση»). Αυτό σημαίνει ότι θα μπορούσε να προσθέσει ή να αφαιρέσει δεδομένα από το blob και να παράσχει ακόμα μια έγκυρη απόδειξη. Για να αποφευχθεί αυτό, αντί να δίνουν στους αποδεικνύοντες τις πραγματικές μυστικές τοποθεσίες, στην πραγματικότητα λαμβάνουν τις τοποθεσίες καλυμμένες με ένα κρυπτογραφημένο «μαύρο κουτί» χρησιμοποιώντας ελλειπτικές καμπύλες. Αυτές ανακατεύουν αποτελεσματικά τις τιμές με τέτοιο τρόπο ώστε οι αρχικές τιμές να μην μπορούν να αναστραφούν, αλλά με κάποιο έξυπνο υπολογισμό άλγεβρας οι αποδεικνύοντες και οι επαληθευτές μπορούν ακόμα να αξιολογούν polynomials στα σημεία που αντιπροσωπεύουν. + + + + + Ούτε το Danksharding ούτε το Proto-Danksharding ακολουθούν το παραδοσιακό μοντέλο «τμηματοποίησης» που στοχεύει στον διαχωρισμό της κρυπτοαλυσίδας σε πολλαπλά μέρη. Οι αλυσίδες shard δεν αποτελούν πλέον μέρος του οδικού χάρτη. Αντίθετα, το Danksharding χρησιμοποιεί δειγματοληψία κατανεμημένων δεδομένων σε blobs για την κλιμάκωση του Ethereum. Αυτό είναι πολύ απλούστερο στην εφαρμογή. Αυτό το μοντέλο έχει μερικές φορές αναφερθεί ως «data-sharding». + + +## Τι είναι το Danksharding; {#what-is-danksharding} + +Το Danksharding είναι η πλήρης υλοποίηση της κλιμάκωσης rollup που ξεκίνησε με το Proto-Danksharding. Το Danksharding θα φέρει τεράστιες ποσότητες χώρου στο Ethereum, ώστε τα rollup να απορρίπτουν τα συμπιεσμένα δεδομένα συναλλαγών τους. Αυτό σημαίνει ότι το Ethereum θα είναι σε θέση να υποστηρίξει εύκολα εκατοντάδες μεμονωμένα rollups και να πραγματοποιήσει εκατομμύρια συναλλαγές ανά δευτερόλεπτο. + +Ο τρόπος λειτουργίας του είναι η επέκταση των blobs που συνδέονται με τα μπλοκ από έξι (6) στο Proto-Danksharding σε 64, στο πλήρες Danksharding. Οι υπόλοιπες απαιτούμενες αλλαγές είναι όλες ενημερώσεις στον τρόπο λειτουργίας των πελατών συναίνεσης, για να μπορούν να χειρίζονται τα νέα μεγάλα blobs. Ορισμένες από αυτές τις αλλαγές βρίσκονται ήδη στον οδικό χάρτη για άλλους σκοπούς ανεξάρτητα από το Danksharding. Για παράδειγμα, το Danksharding απαιτεί να έχει εφαρμοστεί ο διαχωρισμός προτείνοντος-κατασκευαστή μπλοκ. Πρόκειται για μια αναβάθμιση που διαχωρίζει τις εργασίες κατασκευής και πρότασης μπλοκ σε διαφορετικούς επικυρωτές. Ομοίως, η δειγματοληψία διαθεσιμότητας δεδομένων απαιτείται για το Danksharding, αλλά απαιτείται επίσης για την ανάπτυξη εφαρμογών πελάτη μικρού μεγέθους που δεν αποθηκεύουν πολλά ιστορικά δεδομένα («πελάτες χωρίς κατάσταση»). + + + +Ο διαχωρισμός προτείνοντος-κατασκευαστή μπλοκ απαιτείται για να αποτραπεί η ανάγκη των μεμονωμένων επικυρωτών να δημιουργούν δαπανηρές δεσμεύσεις και αποδείξεις για 32MB δεδομένων blob. Αυτό θα ασκήσει υπερβολική πίεση στους οικιακούς χρήστες αποθηκευμένου κεφαλαίου και θα τους υποχρεώσει να επενδύσουν σε ισχυρότερα συστήματα, γεγονός που βλάπτει την αποκέντρωση. Αντίθετα, εξειδικευμένοι κατασκευαστές μπλοκ αναλαμβάνουν την ευθύνη για αυτή τη δαπανηρή υπολογιστική εργασία. Στη συνέχεια, διαθέτουν τα μπλοκ τους στους προτείνοντες μπλοκ για δημοσίευση. Ο προτείνων μπλοκ απλώς επιλέγει το μπλοκ που είναι πιο κερδοφόρο. Ο καθένας μπορεί να επαληθεύσει τα blobs φθηνά και γρήγορα, πράγμα που σημαίνει ότι οποιοσδήποτε κανονικός επικυρωτής μπορεί να ελέγξει ότι οι κατασκευαστές μπλοκ συμπεριφέρονται αξιόπιστα. Αυτό επιτρέπει την επεξεργασία των μεγάλων blobs χωρίς να θυσιάζεται η αποκέντρωση. Οι κακοήθεις κατασκευαστές μπλοκ θα μπορούσαν απλώς να εκδιωχθούν από το δίκτυο και να επιβληθεί περικοπή, ενώ άλλοι θα μπουν στη θέση τους επειδή η κατασκευή μπλοκ είναι μια κερδοφόρα δραστηριότητα. + + + + + +Η δειγματοληψία διαθεσιμότητας δεδομένων απαιτείται για τους επικυρωτές για γρήγορο και αποτελεσματικό έλεγχο των δεδομένων blob. Χρησιμοποιώντας τη δειγματοληψία διαθεσιμότητας δεδομένων, οι επικυρωτές μπορούν να είναι πολύ σίγουροι ότι τα δεδομένα blob ήταν διαθέσιμα και δεσμεύτηκαν σωστά. Κάθε επικυρωτής μπορεί τυχαία να δειγματίσει μερικά μόνο σημεία δεδομένων και να δημιουργήσει μια απόδειξη, που σημαίνει ότι κανένας επικυρωτής δεν χρειάζεται να ελέγξει ολόκληρο το blob. Εάν λείπουν δεδομένα, θα εντοπιστούν γρήγορα και το blob θα απορριφθεί. + + + +### Τρέχουσα πρόοδος {#current-progress} + +Το πλήρες Danksharding είναι αρκετά χρόνια μακριά. Στο μεταξύ, η τελετή KZG ολοκληρώθηκε με περισσότερες από 140.000 συνεισφορές και το [EIP](https://eips.ethereum.org/EIPS/eip-4844) για το Proto-Danksharding έχει ωριμάσει. Αυτή η πρόταση έχει εφαρμοστεί πλήρως σε όλα τα δίκτυα δοκιμών και τέθηκε σε λειτουργία στο Mainnet με την αναβάθμιση δικτύου Cancun-Deneb (Dencun) τον Μάρτιο του 2024. + +### Περισσότερες πληροφορίες {#further-reading} + +- [Σημειώσεις Proto-Danksharding](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq) - _Vitalik Buterin_ +- [Σημειώσεις του Dankrad για το Danksharding](https://notes.ethereum.org/@dankrad/new_sharding) +- [Συζήτηση του Dankrad, Proto και Vitalik για το Danksharding](https://www.youtube.com/watch?v=N5p0TB77flM) +- [Η τελετή KZG](https://ceremony.ethereum.org/) +- [Ομιλία του Carl Beekhuizen στο Devcon για αξιόπιστους τρόπου εγκατάστασης](https://archive.devcon.org/archive/watch/6/the-kzg-ceremony-or-how-i-learnt-to-stop-worrying-and-love-trusted-setups/?tab=YouTube) +- [Περισσότερα για τη δειγματοληψία διαθεσιμότητας δεδομένων για blobs](https://hackmd.io/@vbuterin/sharding_proposal#ELI5-data-availability-sampling) +- [Ο Dankrad Feist για τις δεσμεύσεις και αποδείξεις KZG](https://youtu.be/8L2C6RDMV9Q) +- [Πολυωνυμικές δεσμεύσεις KZG](https://dankradfeist.de/ethereum/2020/06/16/kate-polynomial-commitments.html) diff --git a/public/content/translations/el/roadmap/dencun/index.md b/public/content/translations/el/roadmap/dencun/index.md index 72b592c6468..2c3c8c4e212 100644 --- a/public/content/translations/el/roadmap/dencun/index.md +++ b/public/content/translations/el/roadmap/dencun/index.md @@ -68,9 +68,9 @@ lang: el Οι πελάτες συναίνεσης χειρίζονται το λογισμικό _Επικυρωτή_, το οποίο έχει ενημερωθεί πλήρως για να φιλοξενήσει την αναβάθμιση. -## Πώς επηρεάζει το Cancun-Deneb (Dencun) το Goerli ή άλλα δοκιμαστικά δίκτυα Ethereum; {#testnet-impact} +## Πώς επηρεάζει το Cancun-Deneb (Dencun) τα δίκτυα δοκιμών Ethereum; {#testnet-impact} -- Τα Devnets, Goerli, Sepolia και Holesky έχουν υποβληθεί στην αναβάθμιση Dencun και έχουν το Proto-Danksharding πλήρως λειτουργικό +- Τα Devnets, Sepolia και Holesky έχουν υποβληθεί στην αναβάθμιση Dencun και έχουν το Proto-Danksharding πλήρως λειτουργικό - Οι προγραμματιστές πακέτων ενημέρωσης μπορούν να χρησιμοποιήσουν αυτά τα δίκτυα για δοκιμές EIP-4844 - Οι περισσότεροι χρήστες δε θα επηρεαστούν καθόλου από αυτήν την αλλαγή σε κάθε δίκτυο δοκιμής diff --git a/public/content/translations/el/roadmap/future-proofing/index.md b/public/content/translations/el/roadmap/future-proofing/index.md index 565a91d37da..b881682e37e 100644 --- a/public/content/translations/el/roadmap/future-proofing/index.md +++ b/public/content/translations/el/roadmap/future-proofing/index.md @@ -15,24 +15,39 @@ template: roadmap Η πρόκληση που αντιμετωπίζουν οι προγραμματιστές του Ethereum είναι ότι το τρέχον πρωτόκολλο [απόδειξης συμμετοχής](/glossary/#pos) βασίζεται σε ένα πολύ αποτελεσματικό σχήμα υπογραφών γνωστό ως BLS για τη συγκέντρωση ψήφων σε έγκυρα [μπλοκ](/glossary/#block). Αυτό το σχήμα υπογραφών έχει σπάσει από τους κβαντικούς υπολογιστές, αλλά οι εναλλακτικές λύσεις που είναι ανθεκτικές σε κβαντικά δεν είναι τόσο αποτελεσματικές. -Τα [σχήματα δέσμευσης «KZG»](/roadmap/danksharding/#what-is-kzg) που χρησιμοποιούνται σε πολλά σημεία στο Ethereum για τη δημιουργία κρυπτογραφικών μυστικών είναι γνωστό ότι είναι κβαντικά ευάλωτα. Επί του παρόντος, αυτό παρακάμπτεται με τη χρήση «αξιόπιστων ρυθμίσεων» όπου πολλοί χρήστες δημιουργούν τυχαίες καταστάσεις που δεν μπορούν να δημιουργηθούν αντίστροφα από έναν κβαντικό υπολογιστή. Ωστόσο, η ιδανική λύση θα ήταν απλώς η ενσωμάτωση της κβαντικής ασφαλούς κρυπτογραφίας. Υπάρχουν δύο κορυφαίες προσεγγίσεις που θα μπορούσαν να γίνουν αποτελεσματικές αντικαταστάσεις για το σχήμα BLS: [το βασισμένο σε STARK](https://hackmd.io/@vbuterin/stark_aggregation) και [το βασισμένο σε πλέγμα](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) υπογραφή. **Αυτά είναι ακόμα υπό έρευνα και δημιουργία πρωτότυπου.** +Τα [σχήματα δέσμευσης «KZG»](/roadmap/danksharding/#what-is-kzg) που χρησιμοποιούνται σε πολλά σημεία στο Ethereum για τη δημιουργία κρυπτογραφικών μυστικών είναι γνωστό ότι είναι κβαντικά ευάλωτα. Προς το παρόν, αυτό παρακάμπτεται χρησιμοποιώντας «αξιόπιστες ρυθμίσεις» (για τις οποίες η κύρια τελετή ρύθμισης ολοκληρώθηκε με επιτυχία το 2023), όπου πολλοί χρήστες δημιούργησαν τυχαιότητα που δεν μπορεί να αντιστραφεί από έναν κβαντικό υπολογιστή. Ωστόσο, η ιδανική μακροπρόθεσμη λύση θα ήταν η ενσωμάτωση της κβαντικής ασφαλούς κρυπτογραφίας. Υπάρχουν δύο κορυφαίες προσεγγίσεις που θα μπορούσαν να γίνουν αποτελεσματικές αντικαταστάσεις για το σχήμα BLS: [το βασισμένο σε STARK](https://hackmd.io/@vbuterin/stark_aggregation) και [το βασισμένο σε πλέγμα](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) υπογραφή. **Αυτά εξακολουθούν να βρίσκονται υπό ενεργό έρευνα και δημιουργία πρωτοτύπων**. - Διαβάστε για το KZG και τις αξιόπιστες ρυθμίσεις +[Διαβάστε για το KZG και τις αξιόπιστες ρυθμίσεις](/roadmap/danksharding#what-is-kzg) ## Πιο απλό και αποτελεσματικό Ethereum {#simpler-more-efficient-ethereum} -Η πολυπλοκότητα δημιουργεί ευκαιρίες για σφάλματα ή τρωτά σημεία που μπορούν να εκμεταλλευτούν οι κακόβουλοι. Ως εκ τούτου, μέρος του οδικού χάρτη είναι η απλοποίηση του Ethereum και η κατάργηση του κώδικα που έχει κολλήσει μέσα από διάφορες αναβαθμίσεις αλλά δε χρειάζονται πλέον ή μπορούν να βελτιωθούν. Μια πιο λιτή, απλούστερη βάση κώδικα είναι ευκολότερο για τους προγραμματιστές να διατηρούν και να συλλογίζονται. +Η πολυπλοκότητα δημιουργεί ευκαιρίες για σφάλματα ή τρωτά σημεία που μπορούν να εκμεταλλευτούν οι εισβολείς. Ως εκ τούτου, μέρος του οδικού χάρτη είναι η απλοποίηση του Ethereum και η κατάργηση του τροποποιημένου κώδικα που έχει κολλήσει μέσα από διάφορες αναβαθμίσεις αλλά δε χρειάζεται πλέον ή μπορεί να βελτιωθεί. Μια πιο λιτή και απλούστερη βάση κώδικα είναι πιο εύκολη στη συντήρηση και τη λογική για τους προγραμματιστές. -Υπάρχουν πολλές ενημερώσεις που θα γίνουν στην [Εικονική Μηχανή Ethereum (EVM)](/developers/docs/evm) για να γίνει απλούστερη και πιο αποτελεσματική. Σε αυτά περιλαμβάνονται η [κατάργηση του κωδικού λειτουργίας SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct) - μια σπάνια χρησιμοποιούμενη εντολή που δε χρειάζεται πλέον και σε ορισμένες περιπτώσεις μπορεί να είναι επικίνδυνη για χρήση, ειδικά όταν συνδυάζεται με άλλες μελλοντικές αναβαθμίσεις στο μοντέλο αποθήκευσης του Ethereum. Οι [εφαρμογές πελάτη Ethereum](/glossary/#consensus-client) υποστηρίζουν επίσης ορισμένους παλιούς τύπους συναλλαγών που μπορούν πλέον να αφαιρεθούν εντελώς. Ο τρόπος υπολογισμού των [κρατήσεων](/glossary/#gas) μπορεί επίσης να βελτιωθεί και να εισαχθούν πιο αποτελεσματικές μέθοδοι για την αριθμητική υποστήριξη ορισμένων κρυπτογραφικών λειτουργιών. +Για να καταστεί η [Εικονική Μηχανή (EVM) του Ethereum](/developers/docs/evm) απλούστερη και πιο αποτελεσματική, οι βελτιώσεις ερευνώνται και εφαρμόζονται συνεχώς. Αυτό περιλαμβάνει τόσο την αντιμετώπιση παλαιών στοιχείων όσο και την εισαγωγή βελτιστοποιήσεων. -Ομοίως, υπάρχουν ενημερώσεις που μπορούν να γίνουν σε άλλα μέρη των σημερινών εφαρμογών πελάτη Ethereum. Ένα παράδειγμα είναι ότι οι τρέχοντες εφαρμογές πελάτη εκτέλεσης και συναίνεσης χρησιμοποιούν διαφορετικό τύπο συμπίεσης δεδομένων. Θα είναι πολύ πιο εύκολο και πιο διαισθητικό να μοιράζεστε δεδομένα μεταξύ των πελατών όταν το σχήμα συμπίεσης είναι ενοποιημένο σε ολόκληρο το δίκτυο. +**Πρόσφατες αλλαγές που εφαρμόστηκαν:** + +- **Αναθεώρηση Υπολογισμού Gas:** Ο τρόπος υπολογισμού του [gas](/glossary/#gas) βελτιώθηκε σημαντικά με το **EIP-1559 (που εφαρμόστηκε στην αναβάθμιση London το 2021)**, εισάγοντας έναν βασικό μηχανισμό χρέωσης και καύσης για πιο προβλέψιμη τιμολόγηση συναλλαγών. +- **`SELFDESTRUCT` Περιορισμός:** Ο κώδικας λειτουργίας `SELFDESTRUCT`, αν και σπάνια χρησιμοποιείται, ενέχει πιθανούς κινδύνους. Η λειτουργικότητά του **περιορίστηκε σημαντικά στην αναβάθμιση Dencun (Μάρτιος 2024) μέσω του EIP-6780** για τον μετριασμό των κινδύνων, ιδίως όσον αφορά τη διαχείριση καταστάσεων. +- **Εκσυγχρονισμένοι τύποι συναλλαγών:** Έχουν εισαχθεί νέες μορφές συναλλαγών (π.χ., μέσω **EIP-2718** και **EIP-4844** για blob στην αναβάθμιση Dencun) για την υποστήριξη νέων λειτουργιών και τη βελτίωση της αποδοτικότητας σε σχέση με τους παλαιότερους τύπους. + +**Τρέχοντες και μελλοντικοί στόχοι:** + +- **Περαιτέρω χειρισμός του `SELFDESTRUCT`:** Ενώ υπάρχει περιορισμός, η **πιθανή πλήρης κατάργηση** του κώδικα λειτουργίας `SELFDESTRUCT` εξακολουθεί να λαμβάνεται υπόψη για μελλοντικές αναβαθμίσεις, ώστε να απλοποιηθεί περαιτέρω η κατάσταση του EVM. ([Περισσότερα συμφραζόμενα σχετικά με ζητήματα SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct)). +- **Σταδιακή κατάργηση παλαιών συναλλαγών:** Παρόλο που οι [πελάτες Ethereum](/glossary/#consensus-client) εξακολουθούν να υποστηρίζουν παλαιότερους τύπους συναλλαγών για συμβατότητα με παλαιότερες εκδόσεις, ο στόχος είναι να ενθαρρυνθεί η μετάβαση σε νεότερους τύπους και **ενδεχομένως να καταργηθεί ή να καταργηθεί πλήρως η υποστήριξη για τις παλαιότερες μορφές** στο μέλλον. +- **Συνεχιζόμενη Έρευνα για την Απόδοση του Gas:** Η διερεύνηση συνεχίζεται για **περαιτέρω βελτιώσεις στον υπολογισμό του gas**, ενδεχομένως συμπεριλαμβάνοντας έννοιες όπως το πολυδιάστατο gas για την καλύτερη απεικόνιση της χρήσης πόρων. +- **Βελτιστοποιημένες Κρυπτογραφικές Λειτουργίες:** Συνεχίζονται οι προσπάθειες για την **εισαγωγή πιο αποτελεσματικών μεθόδων για την αριθμητική** που υποστηρίζουν τις κρυπτογραφικές λειτουργίες που χρησιμοποιούνται στο EVM. + +Ομοίως, υπάρχουν ενημερώσεις που μπορούν να γίνουν σε άλλα μέρη των σύγχρονων πελατών Ethereum. Ένα παράδειγμα είναι ότι οι τρέχοντες πελάτες εκτέλεσης και συναίνεσης χρησιμοποιούν διαφορετικό τύπο συμπίεσης δεδομένων. Θα είναι πολύ πιο εύκολο και πιο εύχρηστο να μοιράζεστε δεδομένα μεταξύ των πελατών όταν το σχήμα συμπίεσης είναι ενιαίο σε ολόκληρο το δίκτυο. Αυτό παραμένει ένα πεδίο εξερεύνησης. ## Τρέχουσα πρόοδος {#current-progress} -Οι περισσότερες από τις αναβαθμίσεις που απαιτούνται για το μελλοντικό Ethereum βρίσκονται ακόμα σε **ερευνητικό στάδιο και ενδέχεται να απέχουν αρκετά χρόνια** από την εφαρμογή τους. Αναβαθμίσεις, όπως η κατάργηση της ΑΥΤΟΚΑΤΑΣΤΡΟΦΗΣ και η εναρμόνιση του συστήματος συμπίεσης που χρησιμοποιείται στα λογισμικά πελάτη εκτέλεσης και συναίνεσης, είναι πιθανό να έρθουν νωρίτερα από την κβαντική κρυπτογραφία. +Πολλές από τις μακροπρόθεσμες αναβαθμίσεις που είναι ανθεκτικές στο μέλλον, ιδιαίτερα η **πλήρης κβαντική αντίσταση για τα βασικά πρωτόκολλα, βρίσκονται ακόμη σε ερευνητικό στάδιο και ενδέχεται να απέχουν αρκετά χρόνια** από την εφαρμογή τους. + +Ωστόσο, **έχει ήδη σημειωθεί σημαντική πρόοδος στις προσπάθειες απλοποίησης.** Για παράδειγμα, βασικές αλλαγές όπως ο **περιορισμός του `SELFDESTRUCT` (EIP-6780)** και η εισαγωγή των **συναλλαγών που φέρουν blob (EIP-4844)** εφαρμόστηκαν στην **αναβάθμιση Dencun (Μάρτιος 2024)**. Συνεχίζονται επίσης οι εργασίες για την εναρμόνιση των συστημάτων συμπίεσης πελατών και άλλες βελτιώσεις στην αποδοτικότητα. **Περισσότερες πληροφορίες** - [Κρατήσεις (Gas)](/developers/docs/gas) - [EVM](/developers/docs/evm) -- [Δομές δεδομένων](/developers/docs/data-structures-and-encoding) +- [Δομές δεδομένων](/developers/docs/data-structures-and-encoding) \ No newline at end of file diff --git a/public/content/translations/el/roadmap/scaling/index.md b/public/content/translations/el/roadmap/scaling/index.md index c6d3300a253..ba13a86a555 100644 --- a/public/content/translations/el/roadmap/scaling/index.md +++ b/public/content/translations/el/roadmap/scaling/index.md @@ -1,5 +1,5 @@ --- -title: Επεκτασιμότητα Ethereum +title: Κλιμάκωση του Ethereum description: Συγκέντρωση ομαδικών συναλλαγών εκτός αλυσίδας, μειώνοντας το κόστος για τον χρήστη. Ωστόσο, ο τρόπος με τον οποίο τα πακέτα συναλλαγών χρησιμοποιούν δεδομένα επί του παρόντος είναι πολύ ακριβός, περιορίζοντας το πόσο φθηνές μπορεί να είναι οι συναλλαγές. Αυτό διορθώνεται με το Proto-Danksharding. lang: el image: /images/roadmap/roadmap-transactions.png @@ -32,7 +32,7 @@ template: roadmap Το δεύτερο στάδιο επέκτασης των δεδομένων blob είναι περίπλοκο γιατί απαιτεί νέες μεθόδους για τον έλεγχο της διαθεσιμότητας των δεδομένων rollup στο δίκτυο και βασίζεται σε [επικυρωτές](/glossary/#validator) που διαχωρίζουν τις αρμοδιότητες δημιουργίας [μπλοκ](/glossary/#block) και πρότασης μπλοκ. Απαιτεί επίσης έναν τρόπο για να αποδεικνύεται κρυπτογραφικά ότι οι επικυρωτές έχουν επαληθεύσει μικρά υποσύνολα των δεδομένων blob. -Το δεύτερο βήμα είναι γνωστό ως [«Danksharding»](/roadmap/danksharding/). Η πλήρης εφαρμογή του **απέχει πιθανότατα αρκετά χρόνια**. Το Danksharding βασίζεται σε άλλες εξελίξεις, όπως ο διαχωρισμός [δημιουργίας μπλοκ και της πρότασης μπλοκ](/roadmap/pbs), καθώς και σε νέους σχεδιασμούς δικτύου που επιτρέπουν στο δίκτυο να επιβεβαιώνει αποτελεσματικά τη διαθεσιμότητα των δεδομένων με τυχαία δειγματοληψία λίγων kilobytes κάθε φορά, μια διαδικασία γνωστή ως [δειγματοληψία διαθεσιμότητας δεδομένων (DAS)](/developers/docs/data-availability). +Το δεύτερο βήμα είναι γνωστό ως [«Danksharding»](/roadmap/danksharding/). Οι εργασίες υλοποίησης συνεχίζονται, με την πρόοδο να σημειώνεται σε προαπαιτούμενα όπως ο [διαχωρισμός της δημιουργίας μπλοκ και της πρότασης μπλοκ](/roadmap/pbs) και νέα σχέδια δικτύου που επιτρέπουν στο δίκτυο να επιβεβαιώνει αποτελεσματικά ότι τα δεδομένα είναι διαθέσιμα, λαμβάνοντας τυχαία δειγματοληψία μερικών κιλομπάιτ κάθε φορά, γνωστή ως [δειγματοληψία διαθεσιμότητας δεδομένων (DAS)](/developers/docs/data-availability). Περισσότερα για το Danksharding @@ -44,8 +44,10 @@ template: roadmap ## Τρέχουσα πρόοδος {#current-progress} -Το Proto-Danksharding είναι το πρώτο από αυτά τα στοιχεία του οδικού χάρτη που θα εφαρμοστεί ως μέρος της αναβάθμισης δικτύου Cancun-Deneb (Dencun) τον Μάρτιο του 2024. Η **πλήρης εφαρμογή του Danksharding απέχει πιθανότατα αρκετά χρόνια**, καθώς προϋποθέτει την ολοκλήρωση αρκετών άλλων στοιχείων του οδικού χάρτη. Η αποκέντρωση της υποδομής των rollup είναι πιθανό να είναι μια σταδιακή διαδικασία, ωστόσο υπάρχουν πολλά διαφορετικά rollup που δημιουργούν ελαφρώς διαφορετικά συστήματα και θα αποκεντρωθούν πλήρως με διαφορετικούς ρυθμούς. +Το Proto-Danksharding υλοποιήθηκε με επιτυχία στο πλαίσιο της αναβάθμισης του δικτύου Cancun-Deneb («Dencun») τον Μάρτιο του 2024. Από την εφαρμογή τους, τα πακέτα ενημέρωσης έχουν αρχίσει να χρησιμοποιούν την αποθήκευση blob, με αποτέλεσμα τη μείωση του κόστους συναλλαγών για τους χρήστες και εκατομμύρια συναλλαγές που υποβάλλονται σε επεξεργασία σε blob. -[Περισσότερα για την αναβάθμιση δικτύου Dencun](/roadmap/dencun/) +Οι εργασίες για το πλήρες Danksharding συνεχίζονται, με πρόοδο στις προαπαιτούμενες γνώσεις όπως το PBS (Διαχωρισμός Προτείνοντος-Δημιουργού) και το DAS (Δειγματοληψία Διαθεσιμότητας Δεδομένων). Η αποκέντρωση της υποδομής των rollup είναι μια σταδιακή διαδικασία, ωστόσο υπάρχουν πολλά διαφορετικά rollup που δημιουργούν ελαφρώς διαφορετικά συστήματα και θα αποκεντρωθούν πλήρως με διαφορετικούς ρυθμούς. - +[Περισσότερα για την αναβάθμιση δικτύου Dencun και τις επιπτώσεις](/roadmap/dencun/) + + \ No newline at end of file diff --git a/public/content/translations/el/roadmap/statelessness/index.md b/public/content/translations/el/roadmap/statelessness/index.md new file mode 100644 index 00000000000..3458e0c9c6e --- /dev/null +++ b/public/content/translations/el/roadmap/statelessness/index.md @@ -0,0 +1,103 @@ +--- +title: Statelessness, λήξη κατάστασης και ιστορικού +description: Εξήγηση της λήξης ιστορικού και της μη διατήρησης πλήρους κατάστασης στο Ethereum +lang: el +--- + +# Statelessness, λήξη κατάστασης και ιστορικού {#statelessness} + +Η δυνατότητα εκτέλεσης κόμβων Ethereum με κοινό υλικό είναι κρίσιμη για την πραγματική αποκέντρωση. Αυτό συμβαίνει επειδή η εκτέλεση ενός κόμβου δίνει στους χρήστες τη δυνατότητα να επαληθεύουν πληροφορίες εκτελώντας κρυπτογραφικούς ελέγχους και να μην εμπιστεύονται τρίτο μέρος για την παροχή δεδομένων. Η εκτέλεση ενός κόμβου επιτρέπει στους χρήστες να υποβάλλουν συναλλαγές απευθείας μεταξύ χρηστών στο δίκτυο του Ethereum, αντί να χρειάζεται να εμπιστεύονται έναν ενδιάμεσο. Η αποκέντρωση δεν είναι δυνατή εάν αυτά τα οφέλη είναι διαθέσιμα μόνο σε χρήστες με ακριβό υλικό. Αντίθετα, οι κόμβοι θα πρέπει να μπορούν να εκτελούνται με εξαιρετικά μέτριες απαιτήσεις σε επεξεργαστική ισχύ και μνήμη, ώστε να μπορούν να εκτελούνται σε κινητά τηλέφωνα, μικροϋπολογιστές ή και σε υπολογιστή στο σπίτι. + +Σήμερα, οι υψηλές απαιτήσεις για χώρο στο δίσκο, είναι το κύριο εμπόδιο που εμποδίζει την παγκόσμια πρόσβαση στους κόμβους. Αυτό οφείλεται κυρίως στην ανάγκη αποθήκευσης μεγάλων τμημάτων των δεδομένων κατάστασης του Ethereum. Αυτά τα δεδομένα κατάστασης περιέχουν κρίσιμες πληροφορίες που απαιτούνται για τη σωστή επεξεργασία νέων μπλοκ και συναλλαγών. Αυτή τη στιγμή, συνιστάται ένας γρήγορος 2TB SSD για την εκτέλεση ενός πλήρους κόμβου Ethereum. Για έναν κόμβο που δεν περικόπτει παλαιότερα δεδομένα, η απαίτηση σε αποθηκευτικό χώρο αυξάνεται περίπου στα 14GB ανά εβδομάδα και οι κόμβοι αρχειοθέτησης που αποθηκεύουν όλα τα δεδομένα από τη στιγμή της γένεσης, πλησιάζει τα 12 TB (Φεβρουάριος 2023). + +Μπορούν να χρησιμοποιηθούν φθηνότεροι σκληροί δίσκοι για την αποθήκευση παλαιότερων δεδομένων, αλλά είναι πολύ αργοί για να διαχειριστούν τα εισερχόμενα μπλοκ. Η διατήρηση των υφιστάμενων μοντέλων αποθηκευτικού χώρου για πελάτες, ενώ η αποθήκευση δεδομένων γίνεται φθηνότερα και ευκολότερα, είναι μόνο μια προσωρινή και μερική λύση στο πρόβλημα επειδή η ανάπτυξη κατάστασης του Ethereum είναι «απεριόριστη», πράγμα που σημαίνει ότι οι απαιτήσεις σε αποθηκευτικό χώρο μπορούν μόνο να αυξηθούν και οι τεχνολογικές βελτιώσεις θα πρέπει πάντα να συμβαδίζουν με τη συνεχή ανάπτυξη της κατάστασης. Αντίθετα, οι πελάτες πρέπει να βρουν νέους τρόπους επαλήθευσης μπλοκ και συναλλαγών που δε βασίζονται στην αναζήτηση δεδομένων από τοπικές βάσεις. + +## Μείωση αποθηκευτικού χώρου κόμβων {#reducing-storage-for-nodes} + +Υπάρχουν διάφοροι τρόποι μείωσης του όγκου των δεδομένων που κάθε κόμβος πρέπει να αποθηκεύσει, όπου για τον καθένα απαιτείται ενημέρωση του βασικού πρωτοκόλλου Ethereum σε διαφορετικό βαθμό: + +- **Λήξη ιστορικού (History expiry)**: Επιτρέπει στους κόμβους να απορρίπτουν δεδομένα κατάστασης παλαιότερα από Χ μπλοκ, αλλά δεν αλλάζει τον τρόπο με τον οποίο χειρίζεται τα δεδομένα κατάστασης ο πελάτης Ethereum. +- **Λήξη κατάστασης (State expiry)**: Επιτρέπει στα δεδομένα κατάστασης που δε χρησιμοποιούνται συχνά να χαρακτηριστούν ανενεργά. Τα ανενεργά δεδομένα μπορούν να αγνοηθούν από τους πελάτες μέχρι την επόμενη χρήση τους. +- **Ασθενής λειτουργία χωρίς κατάσταση (Weak statelessness)**: Μόνο οι παραγωγοί μπλοκ χρειάζονται πρόσβαση σε δεδομένα πλήρους κατάστασης καθώς οι υπόλοιποι κόμβοι μπορούν να επαληθεύσουν μπλοκ χωρίς τοπική βάση των δεδομένων κατάστασης. +- **Ισχυρή λειτουργία χωρίς κατάσταση (Strong statelessness)**: Κανένας κόμβος δε χρειάζεται πρόσβαση στα πλήρη δεδομένα κατάστασης. + +## Λήξη δεδομένων {#data-expiry} + +### Λήξη ιστορικού {#history-expiry} + +Η λήξη ιστορικού αναφέρεται σε πελάτες που αφαιρούν τα παλαιότερα δεδομένα που είναι απίθανο να χρειαστούν, έτσι ώστε να αποθηκεύουν μόνο έναν μικρό αριθμό δεδομένων ιστορικού, απορρίπτοντας παλαιότερα δεδομένα κατά τη λήψη νεότερων. Υπάρχουν δύο λόγοι για τους οποίους οι πελάτες απαιτούν δεδομένα ιστορικού: συγχρονισμός και εξυπηρέτηση αιτημάτων δεδομένων. Αρχικά, οι πελάτες έπρεπε να συγχρονιστούν από το μπλοκ γένεσης, επαληθεύοντας ότι κάθε διαδοχικό μπλοκ είναι σωστό μέχρι την κεφαλή της αλυσίδας. Σήμερα, οι πελάτες χρησιμοποιούν «σημεία ελέγχου αδύναμης υποκειμενικότητας» για να οδηγηθούν στην κορυφή της αλυσίδας. Αυτά τα σημεία ελέγχου είναι αξιόπιστα σημεία έναρξης, όπως η ύπαρξη ενός μπλοκ γένεσης κοντά στην τρέχουσα κατάσταση και όχι στην έναρξη του Ethereum. Αυτό σημαίνει ότι οι πελάτες μπορούν να απορρίψουν όλες τις πληροφορίες πριν από το πιο πρόσφατο σημείο ελέγχου αδύναμης υποκειμενικότητας, χωρίς να χάσουν τη δυνατότητα συγχρονισμού με την κεφαλή της αλυσίδας. Επί του παρόντος, οι πελάτες εξυπηρετούν αιτήματα (που φτάνουν μέσω JSON-RPC) για δεδομένα ιστορικού, συλλέγοντάς τα από τις τοπικές βάσεις δεδομένων τους. Ωστόσο, με τη λήξη του ιστορικού αυτό δε θα είναι δυνατό εάν τα ζητούμενα δεδομένα έχουν περικοπεί. Η διάθεση αυτών των δεδομένων ιστορικού πραγματοποιείται όπου απαιτούνται καινοτόμες λύσεις. + +Μια επιλογή είναι οι πελάτες να ζητούν δεδομένα ιστορικού από ομοτίμους χρησιμοποιώντας μια λύση όπως το Δίκτυο Portal. Το Δίκτυο Portal είναι ένα υπό ανάπτυξη δίκτυο peer-to-peer για την εξυπηρέτηση δεδομένων ιστορικού, όπου κάθε κόμβος αποθηκεύει ένα μικρό κομμάτι της ιστορίας του Ethereum έτσι ώστε ολόκληρο το ιστορικό να υπάρχει κατανεμημένο σε όλο το δίκτυο. Τα αιτήματα εξυπηρετούνται αναζητώντας ομοτίμους που αποθηκεύουν τα σχετικά δεδομένα και ζητώντας τα από αυτούς. Εναλλακτικά, δεδομένου ότι οι εφαρμογές απαιτείται να έχουν πρόσβαση σε δεδομένα ιστορικού, μπορεί να είναι δική τους ευθύνη να τα αποθηκεύσουν. Μπορεί επίσης να υπάρχουν αρκετά αλτρουιστικά άτομα στον χώρο του Ethereum που θα ήταν πρόθυμοι να διατηρήσουν ιστορικά αρχεία. Θα μπορούσε να είναι ένα DAO που ενδιαφέρεται για τη διαχείριση της αποθήκευσης δεδομένων ιστορικού ή ιδανικά ένας συνδυασμός όλων αυτών των επιλογών. Αυτοί οι πάροχοι θα μπορούσαν να εξυπηρετήσουν τα δεδομένα με πολλούς τρόπους, όπως σε ένα torrent, FTP, Filecoin ή IPFS. + +Η λήξη του ιστορικού είναι κάπως αμφιλεγόμενη επειδή μέχρι στιγμής το Ethereum εγγυάται πάντα έμμεσα τη διαθεσιμότητα οποιωνδήποτε δεδομένων ιστορικού. Ένας πλήρης συγχρονισμός από τη γένεση ήταν πάντα δυνατός ως καθιερωμένο, ακόμα και αν βασίζεται στην ανακατασκευή κάποιων παλαιότερων δεδομένων από διάφορα στιγμιότυπα. Η λήξη του ιστορικού μεταφέρει την ευθύνη για την παροχή αυτής της εγγύησης εκτός του βασικού πρωτοκόλλου Ethereum. Αυτό θα μπορούσε να δημιουργήσει νέους κινδύνους λογοκρισίας, εάν οι κεντρικοί οργανισμοί καταλήξουν να παρέμβουν στην παροχή ιστορικών δεδομένων. + +Το EIP-4444 δεν είναι ακόμη έτοιμο για δημοσίευση, αλλά βρίσκεται υπό ενεργή συζήτηση. Είναι ενδιαφέρον ότι οι προκλήσεις με το EIP-4444 δεν είναι τόσο τεχνικές όσο η διαχείριση της κοινότητας. Προκειμένου αυτό να δημοσιευθεί, πρέπει να υπάρχει συμμετοχή στην κοινότητα που να περιλαμβάνει όχι μόνο συμφωνία αλλά και δεσμεύσεις για τον τρόπο αποθήκευσης και εξυπηρέτησης των δεδομένων ιστορικού από αξιόπιστες οντότητες. + +Αυτή η αναβάθμιση ουσιαστικά δεν αλλάζει τον τρόπο με τον οποίο οι κόμβοι Ethereum χειρίζονται τα δεδομένα κατάστασης, απλώς αλλάζει τον τρόπο πρόσβασης στα δεδομένα ιστορικού. + +### Λήξη κατάστασης {#state-expiry} + +Η λήξη κατάστασης αναφέρεται στην αφαίρεση της κατάστασης του δικτύου από μεμονωμένους κόμβους, εάν δεν έχει χρησιμοποιηθεί πρόσφατα. Υπάρχουν διάφοροι τρόποι που θα μπορούσε να εφαρμοστεί, όπως: + +- **Λήξη με ενοικίαση (Expire by rent)**: Χρέωση σε λογαριασμούς με «ενοίκιο» και λήξη όταν το ενοίκιο τους μηδενιστεί. +- **Χρονική λήξη (Expire by time)**: Χαρακτηρίζοντας λογαριασμούς ανενεργούς εάν δεν υπάρχει ανάγνωση/εγγραφή για κάποιο χρονικό διάστημα. + +Η λήξη με ενοικίαση θα μπορούσε να είναι ένα άμεσο ενοίκιο που χρεώνεται σε λογαριασμούς για να διατηρηθούν στην ενεργή βάση δεδομένων κατάστασης. Η χρονική λήξη μπορεί να είναι με αντίστροφη μέτρηση από την τελευταία αλληλεπίδραση λογαριασμού ή μπορεί να είναι περιοδική λήξη όλων των λογαριασμών. Θα μπορούσαν επίσης να υπάρχουν μηχανισμοί που συνδυάζουν στοιχεία τόσο του χρόνου όσο και του μοντέλου βασισμένου στο ενοίκιο, για παράδειγμα μεμονωμένοι λογαριασμοί παραμένουν σε ενεργή κατάσταση εάν πληρώσουν κάποια μικρή προμήθεια πριν από τη λήξη του χρόνου. Με τη λήξη της κατάστασης είναι σημαντικό να σημειωθεί ότι η μη ενεργή κατάσταση **δεν διαγράφεται**, απλώς αποθηκεύεται ξεχωριστά από την τρέχουσα κατάσταση. Η μη ενεργή κατάσταση μπορεί να επανέλθει στην ενεργή κατάσταση. + +Ο τρόπος με τον οποίο θα λειτουργούσε αυτό είναι πιθανώς να έχετε ένα δέντρο κατάστασης για συγκεκριμένες χρονικές περιόδους (ίσως ~ 1 έτος). Κάθε φορά που ξεκινά μια νέα περίοδος, κάνει το ίδιο και ένα νέο δέντρο κατάστασης. Μόνο το τρέχον δέντρο κατάστασης μπορεί να τροποποιηθεί, όλα τα άλλα είναι αμετάβλητα. Οι κόμβοι Ethereum αναμένεται να διατηρούν μόνο το τρέχον δέντρο κατάστασης και το επόμενο πιο πρόσφατο. Αυτό απαιτεί έναν τρόπο για τη χρονική σήμανση μιας διεύθυνσης με την περίοδο στην οποία υπάρχει. Υπάρχουν [διάφοροι πιθανοί τρόποι](https://ethereum-magicians.org/t/types-of-resurrection-metadata-in-state-expiry/6607) για να γίνει αυτό, αλλά η κύρια επιλογή απαιτεί [επιμήκυνση των διευθύνσεων](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485) για να χωρέσουν οι πρόσθετες πληροφορίες με το πλεονέκτημα ότι οι μεγαλύτερες διευθύνσεις είναι πολύ πιο ασφαλείς. Το στοιχείο του οδικού χάρτη που το εφαρμόζει ονομάζεται [επέκταση χώρου διεύθυνσης](https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485). + +Ομοίως, με τη λήξη του ιστορικού η ευθύνη λήξης της κατάστασης για την αποθήκευση παλαιών δεδομένων κατάστασης αφαιρείται από μεμονωμένους χρήστες και προωθείται σε άλλες οντότητες, όπως κεντρικούς παρόχους, αλτρουιστικά μέλη της κοινότητας ή πιο φουτουριστικές αποκεντρωμένες λύσεις, όπως το Δίκτυο Portal. + +Η λήξη κατάστασης βρίσκεται ακόμη στο στάδιο της έρευνας και δεν είναι ακόμη έτοιμη για δημοσίευση. Η λήξη κατάστασης μπορεί να συμβεί αργότερα από τη λήξη των πελατών χωρίς κατάσταση και του ιστορικού, επειδή οι αναβαθμίσεις καθιστούν τα μεγάλα μεγέθη κατάστασης εύκολα διαχειρίσιμα για την πλειοψηφία των επικυρωτών. + +## Statelessness {#statelessness} + +Η λειτουργία χωρίς κατάσταση είναι λίγο λανθασμένη ονομασία γιατί δε σημαίνει ότι η έννοια της «κατάστασης» εξαλείφεται, αλλά περιλαμβάνει αλλαγές στον τρόπο με τον οποίο οι κόμβοι Ethereum χειρίζονται τα δεδομένα κατάστασης. Η ίδια η λειτουργία χωρίς κατάσταση έχει δύο πλευρές: την ασθενή και την ισχυρή λειτουργία χωρίς κατάσταση. Η ασθενής λειτουργία χωρίς κατάσταση δίνει τη δυνατότητα στους περισσότερους κόμβους να μένουν χωρίς κατάσταση, αναθέτοντας την ευθύνη για την αποθήκευση κατάστασης σε λίγους. Η ισχυρή λειτουργία χωρίς κατάσταση καταργεί εντελώς την ανάγκη για οποιονδήποτε κόμβο να αποθηκεύει τα πλήρη δεδομένα κατάστασης. Τόσο η ασθενής όσο και η ισχυρή λειτουργία χωρίς κατάσταση προσφέρουν τα ακόλουθα οφέλη στους κανονικούς επικυρωτές: + +- Σχεδόν άμεσο συγχρονισμό. +- Δυνατότητα επικύρωσης μπλοκ εκτός σειράς. +- Κόμβοι που μπορούν να εκτελούνται με πολύ χαμηλές απαιτήσεις υλικού (π.χ. σε τηλέφωνα). +- Οι κόμβοι μπορούν να εκτελούνται από φθηνούς σκληρούς δίσκους επειδή δεν απαιτείται ανάγνωση/εγγραφή δίσκου. +- Συμβατότητα με μελλοντικές αναβαθμίσεις στην κρυπτογράφηση του Ethereum. + +### Ασθενής λειτουργία χωρίς κατάσταση {#weak-statelessness} + +Η ασθενής λειτουργία χωρίς κατάσταση συνεπάγεται αλλαγές στον τρόπο με τον οποίο οι κόμβοι Ethereum επαληθεύουν τις αλλαγές κατάστασης, αλλά δεν εξαλείφει εντελώς την ανάγκη αποθήκευσης της κατάστασης σε όλους τους κόμβους του δικτύου. Αντίθετα, η ασθενής λειτουργία χωρίς κατάσταση θέτει την ευθύνη για την αποθήκευση κατάστασης στους προτείνοντες μπλοκ, ενώ όλοι οι άλλοι κόμβοι στο δίκτυο επαληθεύουν μπλοκ χωρίς να αποθηκεύουν τα πλήρη δεδομένα κατάστασης. + +**Στην περίπτωση ασθενής λειτουργία χωρίς κατάσταση, τα προτεινόμενα μπλοκ απαιτούν πρόσβαση σε δεδομένα πλήρους κατάστασης, αλλά η επαλήθευση μπλοκ δεν απαιτεί δεδομένα κατάστασης** + +Για να συμβεί αυτό, τα [Verkle trees](/roadmap/verkle-trees/) πρέπει να έχουν ήδη εφαρμοστεί σε πελάτες Ethereum. Τα δέντρα Verkle είναι μια δομή δεδομένων αντικατάστασης για την αποθήκευση δεδομένων κατάστασης Ethereum που επιτρέπουν σε μικρού μεγέθους "μάρτυρες" στα δεδομένα να διαβιβάζονται μεταξύ ομοτίμων και να χρησιμοποιούνται για την επαλήθευση μπλοκ αντί για επαλήθευση μπλοκ σε τοπικές βάσεις δεδομένων. Ο [διαχωρισμός πρωτείνοντος - δημιουργού](/roadmap/pbs/) απαιτείται επειδή επιτρέπει στους δημιουργούς μπλοκ να είναι εξειδικευμένοι κόμβοι με πιο ισχυρό υλικό και αυτοί είναι που απαιτούν πρόσβαση στα πλήρη δεδομένα κατάστασης. + + + +Η λειτουργία χωρίς κατάσταση βασίζεται στο ότι οι δημιουργοί μπλοκ διατηρούν αντίγραφο των πλήρων δεδομένων κατάστασης, έτσι ώστε να μπορούν να δημιουργήσουν μάρτυρες που μπορούν να χρησιμοποιηθούν για την επαλήθευση του μπλοκ. Άλλοι κόμβοι δε χρειάζονται πρόσβαση στα δεδομένα κατάστασης, όλες οι πληροφορίες που απαιτούνται για την επαλήθευση του μπλοκ είναι διαθέσιμες στον μάρτυρα. Αυτό δημιουργεί μια κατάσταση όπου η πρόταση ενός μπλοκ είναι ακριβή, αλλά η επαλήθευση του μπλοκ είναι φθηνή, πράγμα που σημαίνει ότι λιγότεροι χειριστές θα εκτελέσουν έναν κόμβο πρότασης μπλοκ. Ωστόσο, η αποκέντρωση των προτεινόμενων μπλοκ δεν είναι κρίσιμη, εφόσον όσο το δυνατόν περισσότεροι συμμετέχοντες μπορούν να επαληθεύσουν ανεξάρτητα ότι τα μπλοκ που προτείνουν είναι έγκυρα. + +Διαβάστε περισσότερα στις σημειώσεις του Dankrad. + + +Οι προτείνοντες μπλοκ χρησιμοποιούν τα δεδομένα κατάστασης για να δημιουργήσουν "μάρτυρες", το ελάχιστο σύνολο δεδομένων που αποδεικνύουν τις αξίες της κατάστασης που αλλάζουν από τις συναλλαγές σε ένα μπλοκ. Άλλα προγράμματα επικύρωσης δε διατηρούν την κατάσταση, αποθηκεύουν μόνο το root κατάστασης (ένα hash ολόκληρης της κατάστασης). Λαμβάνουν ένα μπλοκ και έναν μάρτυρα και τα χρησιμοποιούν για να ενημερώσουν το root κατάστασης τους. Αυτό κάνει έναν κόμβο επικύρωσης εξαιρετικά ελαφρύ. + +Η ασθενής λειτουργία χωρίς κατάσταση βρίσκεται σε προηγμένη κατάσταση έρευνας, αλλά βασίζεται στον διαχωρισμό προτείνοντα - δημιουργού και τα δέντρα Verkle που έχουν εφαρμοστεί έτσι ώστε να μπορούν να περάσουν μικροί μάρτυρες μεταξύ χρηστών. Αυτό σημαίνει ότι η ασθενής λειτουργία χωρίς κατάσταση είναι πιθανώς μερικά χρόνια μακριά από το Ethereum Mainnet. + +### Ισχυρή λειτουργία χωρίς κατάσταση {#strong-statelessness} + +Η ισχυρή λειτουργία χωρίς κατάσταση καταργεί την ανάγκη οποιουδήποτε κόμβου να αποθηκεύει δεδομένα κατάστασης. Αντίθετα, οι συναλλαγές αποστέλλονται με μάρτυρες που μπορούν να συγκεντρωθούν από τους παραγωγούς μπλοκ. Οι δημιουργοί μπλοκ είναι υπεύθυνοι για την αποθήκευση μόνο εκείνης της κατάστασης που απαιτείται για τη δημιουργία μαρτύρων για σχετικούς λογαριασμούς. Η ευθύνη για την κατάσταση μεταφέρεται σχεδόν εξ ολοκλήρου στους χρήστες, καθώς στέλνουν μάρτυρες και «λίστες πρόσβασης» για να δηλώσουν με ποιους λογαριασμούς και κλειδιά αποθήκευσης αλληλεπιδρούν. Αυτό θα επέτρεπε εξαιρετικά ελαφρούς κόμβους, αλλά υπάρχουν συμβιβασμοί, συμπεριλαμβανομένης της δυσκολότερης συναλλαγής με έξυπνα συμβόλαια. + +Η ισχυρή λειτουργία χωρίς κατάσταση έχει διερευνηθεί από ερευνητές, αλλά επί του παρόντος δεν αναμένεται να είναι μέρος του οδικού χάρτη του Ethereum καθώς είναι πιο πιθανό ότι η ασθενής λειτουργία χωρίς κατάσταση είναι επαρκής για τις ανάγκες κλιμάκωσης του Ethereum. + +## Τρέχουσα πρόοδος {#current-progress} + +Η ασθενής λειτουργία χωρίς κατάσταση, η λήξη του ιστορικού και η λήξη κατάστασης βρίσκονται όλα στη φάση της έρευνας και αναμένεται να είναι έτοιμα σε αρκετά χρόνια από τώρα. Δεν υπάρχει καμία εγγύηση ότι όλες αυτές οι προτάσεις θα εφαρμοστούν, για παράδειγμα εάν πρώτα εφαρμοστεί η λήξη της κατάστασης, ενδέχεται να μη χρειάζεται να εφαρμοστεί και η λήξη ιστορικού. Υπάρχουν επίσης άλλα στοιχεία οδικού χάρτη ανάπτυξης, όπως τα [Verkle Trees](/roadmap/verkle-trees) και [Proposer-builder separation](/roadmap/pbs) που πρέπει να ολοκληρωθούν πρώτα. + +## Περισσότερες πληροφορίες {#further-reading} + +- [Συνέντευξη του Vitalik για τη λειτουργία χωρίς κατάσταση](https://www.reddit.com/r/ethereum/comments/o9s15i/impromptu_technical_ama_on_statelessness_and/) +- [Θεωρία διαχείρισης του μεγέθους κατάστασης](https://hackmd.io/@vbuterin/state_size_management) +- [Σχέση κατάστασης επαναφοράς - διένεξης - ελαχιστοποίησης](https://ethresear.ch/t/resurrection-conflict-minimized-state-bounding-take-2/8739) +- [Τρόποι προς τη λειτουργία χωρίς κατάσταση και λήξη κατάστασης](https://hackmd.io/@vbuterin/state_expiry_paths) +- [Προδιαγραφή EIP-4444](https://eips.ethereum.org/EIPS/eip-4444) +- [Alex Stokes για το EIP-4444](https://youtu.be/SfDC_qUZaos) +- [Γιατί είναι σημαντική η μετάβαση σε λειτουργία χωρίς κατάσταση](https://dankradfeist.de/ethereum/2021/02/14/why-stateless.html) +- [Αρχικές σημειώσεις σχεδίου για πελάτη χωρίς κατάσταση](https://ethresear.ch/t/the-stateless-client-concept/172) +- [Περισσότερα για τη λήξη κατάστασης](https://hackmd.io/@vbuterin/state_size_management#A-more-moderate-solution-state-expiry) +- [Ακόμη περισσότερα για τη λήξη κατάστασης](https://hackmd.io/@vbuterin/state_expiry_paths#Option-2-per-epoch-state-expiry) diff --git a/public/content/translations/el/security/index.md b/public/content/translations/el/security/index.md index a9c534910ae..9fbabd3d503 100644 --- a/public/content/translations/el/security/index.md +++ b/public/content/translations/el/security/index.md @@ -1,48 +1,295 @@ --- -title: Ένα ποιο ασφαλές Ethereum -description: Το Ethereum είναι η πιο ασφαλής και αποκεντρωμένη πλατφόρμα έξυπνων συμβολαίων που υπάρχει. Ωστόσο, υπάρχουν ακόμα βελτιώσεις που μπορούν να γίνουν έτσι ώστε το Ethereum να παραμείνει ανθεκτικό σε οποιοδήποτε επίπεδο επίθεσης για πολύ καιρό στο μέλλον. +title: Ασφάλεια του Ethereum και πρόληψη κατά της απάτης +description: Μείνετε ασφαλείς στο Ethereum lang: el -image: /images/roadmap/roadmap-security.png -alt: "Οδικός χάρτης" -template: roadmap --- -Το **Ethereum είναι ήδη μια πολύ ασφαλής** και αποκεντρωμένη πλατφόρμα [έξυπνων συμβολαίων](/glossary/#smart-contract). Ωστόσο, υπάρχουν ακόμα περιθώρια βελτίωσης ώστε το Ethereum να παραμείνει ανθεκτικό σε κάθε είδους επίθεση και στο μακρινό μέλλον. Αυτές οι βελτιώσεις περιλαμβάνουν μικρές αλλαγές στον τρόπο με τον οποίο οι [εφαρμογές πελάτη Ethereum](/glossary/#consensus-client) διαχειρίζονται την ολοκλήρωση των [μπλοκ](/glossary/#block), καθώς και την αύξηση της ταχύτητας με την οποία το δίκτυο θεωρεί τα μπλοκ ως [οριστικοποιημένα](/developers/docs/consensus-mechanisms/pos/#finality) (δηλαδή δεν μπορούν να αλλάξουν χωρίς εξαιρετικά οικονομικές απώλειες για έναν επιτιθέμενο). +# Ασφάλεια του Ethereum και πρόληψη κατά της απάτης {#introduction} -Υπάρχουν επίσης βελτιώσεις που δυσκολεύουν πολύ περισσότερο τη λογοκρισία συναλλαγών, κάνοντας αυτούς που προτείνουν νέο μπλοκ να μην μπορούν να δουν το πραγματικό περιεχόμενο των μπλοκ τους, καθώς και νέους τρόπους για τον εντοπισμό πελατών που λογοκρίνουν. Συνολικά, αυτές οι βελτιώσεις θα αναβαθμίσουν το πρωτόκολλο [Απόδειξης συμμετοχής](/glossary/#pos) έτσι ώστε οι χρήστες, από άτομα έως εταιρείες, να έχουν άμεση εμπιστοσύνη στις εφαρμογές, τα δεδομένα και τα περιουσιακά τους στοιχεία στο Ethereum. +Το αυξανόμενο ενδιαφέρον για τα κρυπτονομίσματα συνεπάγεται αυξανόμενο κίνδυνο από απατεώνες και χάκερ. Αυτό το άρθρο παρουσιάζει ορισμένες βέλτιστες πρακτικές για τον μετριασμό αυτών των κινδύνων. -## Αναλήψεις από αποθηκευμένο κεφάλαιο {#staking-withdrawals} +**Να θυμάστε: Κανείς από το ethereum.org δε θα επικοινωνήσει ποτέ μαζί σας. Μην απαντάτε σε email λέγοντας ότι προέρχονται από την επίσημη υποστήριξη του Ethereum.** -Η μετάβαση από την [απόδειξη εργασίας](/glossary/#pow) σε απόδειξη συμμετοχής ξεκίνησε με τους πρωτοπόρους του Ethereum να «αποθηκεύουν» (staking) τα ETH τους σε ένα ειδικό έξυπνο συμβόλαιο. Αυτά τα ETH χρησιμοποιείται για την προστασία του δικτύου. Στις 12 Απριλίου 2023 υπήρξε μια δεύτερη αναβάθμιση που επιτρέπει την ανάληψη των «αποθηκευμένων» ETH. Από τότε, οι επικυρωτές μπορούν ελεύθερα να «αποθηκεύσουν» ή να αποσύρουν τα ETH τους. + -Δείτε περισσότερα για τις αναλήψεις +## Ασφάλεια κρυπτονομισμάτων 101 {#crypto-security} -## Άμυνα κατά των επιθέσεων {#defending-against-attacks} +### Εμπλουτίστε τις γνώσεις σας {#level-up-your-knowledge} -Μπορούν να γίνουν βελτιώσεις στο πρωτόκολλο απόδειξης συμμετοχής του Ethereum. Μία από αυτές είναι γνωστή ως [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), ένας πιο ασφαλής αλγόριθμος επιλογής διακλάδωσης [(fork-choice)](/glossary/#fork) που δυσκολεύει ορισμένους πολύπλοκους τύπους επίθεσης. +Η λανθασμένη κατανόηση σχετικά με το πώς λειτουργούν τα κρυπτονομίσματα μπορεί να οδηγήσουν σε δαπανηρά λάθη. Για παράδειγμα, εάν κάποιος προσποιείται ότι είναι ένας υπάλληλος εξυπηρέτησης πελατών που μπορεί να επιστρέψει τα χαμένα ETH με αντάλλαγμα τα ιδιωτικά σας κλειδιά, πλήττει ανθρώπους που δεν καταλαβαίνουν ότι το Ethereum είναι ένα αποκεντρωμένο δίκτυο που δε διαθέτει αυτού του είδους τη λειτουργικότητα. Το να εκπαιδεύσετε τον εαυτό σας για το πώς λειτουργεί το Ethereum είναι μια αξιόλογη επένδυση. -Η μείωση του χρόνου που απαιτεί το Ethereum για την [οριστικοποίηση](/glossary/#finality) των μπλοκ θα παρέδιδε μια καλύτερη εμπειρία χρήστη και θα απέτρεπε περίπλοκες επιθέσεις «reorg» όπου οι επιτιθέμενοι προσπαθούν να ανακατατάξουν πολύ πρόσφατα μπλοκ για να αποκομίσουν κέρδος ή να λογοκρίνουν ορισμένες συναλλαγές. [**Το Single Slot Finality (SSF)**](/roadmap/single-slot-finality/) είναι ένας **τρόπος ελαχιστοποίησης της καθυστέρησης οριστικοποίησης**. Αυτή τη στιγμή υπάρχουν 15 λεπτά «worth of blocks» που ένας επιτιθέμενος θα μπορούσε θεωρητικά να πείσει άλλους επικυρωτές να αναδιαμορφώσουν. Με το SSF, αυτός ο χρόνος είναι 0. Οι χρήστες, από άτομα έως εφαρμογές και ανταλλακτήρια, ωφελούνται από τη γρήγορη διαβεβαίωση ότι οι συναλλαγές τους δε θα αναστραφούν και το δίκτυο ωφελείται από τον τερματισμό ολόκληρης κατηγορίας επιθέσεων. + + Τι είναι το Ethereum; + -Διαβάστε περισσότερα για την οριστικοποίηση απλής θέσης + + Τι είναι το ether; + + -## Άμυνα κατά της λογοκρισίας {#defending-against-censorship} +## Ασφάλεια πορτοφολιού {#wallet-security} -Η αποκέντρωση εμποδίζει άτομα ή μικρές ομάδες [επικυρωτών](/glossary/#validator) να αποκτήσουν υπερβολική επιρροή. Νέες τεχνολογίες αποθήκευσης μπορούν να βοηθήσουν στη διασφάλιση της μέγιστης δυνατής αποκέντρωσης των επικυρωτών του Ethereum, ενώ παράλληλα τους υπερασπίζονται από αποτυχίες υλικού, λογισμικού και δικτύου. Αυτό περιλαμβάνει λογισμικό που μοιράζει τις ευθύνες των επικυρωτών σε πολλούς [κόμβους](/glossary/#node). Αυτό είναι γνωστό ως **τεχνολογία κατανεμημένου επικυρωτή (Distributed Validator Technology - DVT)**. Οι [Δεξαμενές αποθήκευσης](/glossary/#staking-pool) έχουν κίνητρο να χρησιμοποιούν το DVT επειδή επιτρέπει σε πολλούς υπολογιστές να συμμετέχουν συλλογικά στην επικύρωση, προσθέτοντας εφεδρεία και ανθεκτικότητα σε σφάλματα. Επίσης, διαχωρίζει τα κλειδιά επικυρωτή σε διάφορα συστήματα, αντί να έχει μεμονωμένους χειριστές να εκτελούν πολλούς επικυρωτές. Αυτό δυσκολεύει τους ανέντιμους χειριστές να συντονίσουν επιθέσεις στο Ethereum. Συνολικά, η ιδέα είναι να αποκτηθούν οφέλη ασφαλείας με τη λειτουργία των επικυρωτών ως _κοινότητες_ και όχι ως άτομα. +### Μην κοινοποιείτε τα ιδιωτικά κλειδιά σας {#protect-private-keys} -Διαβάστε περισσότερα για την τεχνολογία κατανεμημένου επικυρωτή +**Ποτέ και για οποιονδήποτε λόγο μη διαμοιράσετε τα ιδιωτικά σας κλειδιά!** -Η εφαρμογή διαχωρισμού **φορέα πρότασης και δημιουργού μπλοκ (proposer-builder separation - PBS)** θα βελτιώσει δραστικά τις ενσωματωμένες άμυνες του Ethereum κατά της λογοκρισίας. Το PBS επιτρέπει σε έναν επικυρωτή να δημιουργεί ένα μπλοκ και σε έναν άλλον να το μεταδώσει σε ολόκληρο το δίκτυο Ethereum. Αυτό εξασφαλίζει ότι τα οφέλη από τους επαγγελματικούς αλγόριθμους δημιουργίας μπλοκ που μεγιστοποιούν τα κέρδη μοιράζονται πιο δίκαια σε όλο το δίκτυο, **αποτρέποντας τη μακροπρόθεσμη συγκέντρωση του αποθηκευμένου κεφαλαίου** στους πιο αποδοτικούς θεσμικούς χρήστες με αποθηκευμένο κεφάλαιο. Ο χρήστης που προτείνει νέο μπλοκ επιλέγει το πιο επικερδές μπλοκ που του προσφέρεται από μια αγορά δημιουργών μπλοκ. Για να λογοκρίνει, ένας χρήστης που προτείνει μπλοκ θα έπρεπε συχνά να επιλέξει ένα λιγότερο επικερδές μπλοκ, κάτι που θα ήταν **οικονομικά παράλογο και επίσης προφανές στους υπόλοιπους επικυρωτές** του δικτύου. +Το ιδιωτικό κλειδί του πορτοφολιού σας είναι ο κωδικός πρόσβασης στο πορτοφόλι Ethereum σας. Είναι το μόνο πράγμα που εμποδίζει κάποιον που γνωρίζει τη διεύθυνση του πορτοφολιού σας να αφαιρέσει από τον λογαριασμό σας από όλα τα περιουσιακά του στοιχεία! -Υπάρχουν πιθανά πρόσθετα στο PBS, όπως κρυπτογραφημένες συναλλαγές και λίστες συμπερίληψης, που θα μπορούσαν να βελτιώσουν περαιτέρω την ανθεκτικότητα του Ethereum στη λογοκρισία. Αυτά καθιστούν τον δημιουργό και τον φορέα πρότασης μπλοκ τυφλούς στις πραγματικές συναλλαγές που περιλαμβάνονται στα μπλοκ τους. + + Τι είναι το πορτοφόλι Ethereum; + -Διαβάστε περισσότερα για τον διαχωρισμό χρήστη πρότασης και δημιουργού μπλοκ +#### Μη λαμβάνετε στιγμιότυπο οθόνης των λέξεων ασφαλείας/ιδιωτικών κλειδιών {#screenshot-private-keys} -## Προστασία επικυρωτών {#protecting-validators} +Η λήψη στιγμιότυπου οθόνης των μυστικών λέξεων επαναφοράς ή των ιδιωτικών κλειδιών σας μπορεί να συγχρονιστεί με έναν πάροχο δεδομένων cloud, κάτι που θα μπορούσε να τα κάνει προσβάσιμα σε χάκερ. Η απόκτηση ιδιωτικών κλειδιών από το cloud είναι ένας κοινός φορέας επίθεσης για τους χάκερ. -Είναι πιθανό ένας προχωρημένος χρήστης που επιτίθεται να μπορέσει να εντοπίσει τους επόμενους επικυρωτές και να τους στείλει ανεπιθύμητα μηνύματα για να τους εμποδίσει να προτείνουν μπλοκ. Αυτό είναι γνωστό ως επίθεση **άρνησης υπηρεσίας (DoS)**. Η εφαρμογή της [**μυστικής εκλογής αρχηγού (secret leader election - SLE)**](/roadmap/secret-leader-election) θα προστατεύσει από αυτόν τον τύπο επίθεσης, αποτρέποντας την εκ των προτέρων γνώση των φορέων πρότασης μπλοκ. Αυτό λειτουργεί με τη συνεχή ανάμειξη ενός συνόλου κρυπτογραφικών δεσμεύσεων που αντιπροσωπεύουν υποψήφιους χρήστες πρότασης μπλοκ και χρησιμοποιώντας τη σειρά τους για να καθοριστεί ποιος επικυρωτής επιλέγεται με τέτοιο τρόπο ώστε μόνο οι ίδιοι οι επικυρωτές να γνωρίζουν εκ των προτέρων τη σειρά τους. +### Χρήση μιας συσκευής πορτοφολιού {#use-hardware-wallet} -Διαβάστε περισσότερα για τη μυστική εκλογή αρχηγού +Ένα πορτοφόλι υλικού παρέχει αποθήκευση εκτός σύνδεσης για ιδιωτικά κλειδιά. Θεωρούνται η πιο ασφαλής επιλογή πορτοφολιού για την αποθήκευση των ιδιωτικών κλειδιών σας: το ιδιωτικό σας κλειδί δεν επικοινωνεί ποτέ με το διαδίκτυο και παραμένει τοπικά στη συσκευή σας. -## Τρέχουσα πρόοδος {#current-progress} +Η διατήρηση των ιδιωτικών κλειδιών εκτός σύνδεσης μειώνει σε μεγάλο βαθμό τον κίνδυνο χακαρίσματος, ακόμα και αν ένας χάκερ πάρει τον έλεγχο του υπολογιστή σας. -Οι **αναβαθμίσεις ασφαλείας στο οδικό χάρτη βρίσκονται σε προχωρημένα στάδια έρευνας**, αλλά δεν αναμένεται να εφαρμοστούν για αρκετό καιρό. Τα επόμενα βήματα για το view-merge, PBS, SSF και SLE είναι να οριστικοποιηθεί μια προδιαγραφή και να ξεκινήσει η κατασκευή πρωτοτύπων. +#### Δοκιμάστε μια συσκευή πορτοφολιού: {#try-hardware-wallet} + +- [Ledger](https://www.ledger.com/) +- [Trezor](https://trezor.io/) + +### Ελέγξτε ξανά τις συναλλαγές σας πριν από την αποστολή {#double-check-transactions} + +Η αποστολή κρυπτονομισμάτων σε λάθος διεύθυνση πορτοφολιού είναι ένα συνηθισμένο λάθος. **Μια συναλλαγή που εκτελείται στο Ethereum είναι μη αναστρέψιμη.** Εκτός εάν γνωρίζετε τον κάτοχο της διεύθυνσης και μπορείτε να τον πείσετε να σας επιστρέψει το κεφάλαιό σας, δεν υπάρχει τρόπος να ανακτήσετε τα χρήματά σας. + +Να βεβαιώνεστε πάντα ότι η διεύθυνση προς την οποία στέλνετε συμπίπτει ακριβώς με τη διεύθυνση του επιθυμητού παραλήπτη πριν στείλετε μια συναλλαγή. Μια καλή πρακτική είναι επίσης, όταν αλληλεπιδράτε με ένα έξυπνο συμβόλαιο, να διαβάσετε το μήνυμα της συναλλαγής πριν το υπογράψετε. + +### Ορίστε όριο δαπανών του έξυπνου συμβολαίου {#spend-limits} + +Όταν αλληλεπιδράτε με έξυπνα συμβόλαια, μην επιτρέπετε όρια απεριόριστων δαπανών. Ένα απεριόριστο όριο δαπανών θα μπορούσε να επιτρέψει στο έξυπνο συμβόλαιο να αδειάσει το πορτοφόλι σας. Αντίθετα, ορίστε όρια δαπανών μόνο για το ποσό που είναι απαραίτητο για τη συναλλαγή. + +Πολλά πορτοφόλια Ethereum προσφέρουν προστασία ορίων για να αποτρέψουν την εξάντληση των λογαριασμών. + +[Πώς να ανακαλέσετε την πρόσβαση ενός έξυπνου συμβολαίου στο κεφάλαιο κρυπτονομισμάτων σας](/guides/how-to-revoke-token-access/) + + + +## Συχνές απάτες {#common-scams} + +Είναι αδύνατο να σταματήσουμε εντελώς τους απατεώνες, αλλά μπορούμε να τους κάνουμε λιγότερο αποτελεσματικούς γνωρίζοντας τις πιο χρησιμοποιούμενες τεχνικές τους. Υπάρχουν πολλές παραλλαγές αυτών των απατών, αλλά γενικά ακολουθούν τα ίδια μοτίβα υψηλού επιπέδου. Εάν δεν υπάρχει τίποτα άλλο, να θυμάστε: + +- Να είστε πάντα επιφυλακτικοί. +- Κανείς δε θα σας δώσει δωρεάν ή με μειωμένη τιμή ETH. +- Κανείς δε χρειάζεται πρόσβαση στα ιδιωτικά σας κλειδιά ή στα προσωπικά σας στοιχεία. + +### Twitter απάτες μέσω διαφημίσεων {#ad-phishing} + +![Πλαστογράφηση συνδέσμων στο Twitter](./twitterPhishingScam.png) + +Υπάρχει μια μέθοδος πλαστογράφησης της λειτουργίας προεπισκόπησης συνδέσμων του Twitter (unfurling) που μπορεί να εξαπατήσει τους χρήστες να πιστέψουν ότι επισκέπτονται έναν νόμιμο ιστότοπο. Αυτή η τεχνική εκμεταλλεύεται τον μηχανισμό του Twitter για τη δημιουργία προεπισκοπήσεων των URL που κοινοποιούνται σε tweets. Έτσι, μπορεί να δείχνει ότι ο σύνδεσμος οδηγεί στο _ethereum.org_ (όπως στο παράδειγμα), ενώ στην πραγματικότητα θα ανακατευθυνθείτε σε κακόβουλο ιστότοπο. + +Ελέγχετε πάντα ότι βρίσκεστε στον σωστό τομέα, ειδικά μετά το κλικ σε έναν σύνδεσμο. + +[Περισσότερες πληροφορίες εδώ.](https://harrydenley.com/faking-twitter-unfurling) + +### Απάτη δωρεών {#giveaway} + +Μια από τις πιο συνηθισμένες απάτες στα κρυπτονομίσματα είναι η απάτη με δωρεάν κρυπτονομίσματα (giveaway scam). Αυτή η απάτη μπορεί να πάρει πολλές μορφές, αλλά η γενική ιδέα είναι ότι εάν στείλετε ETH στη διεύθυνση πορτοφολιού που παρέχεται, θα λάβετε πίσω το ETH σας διπλασιασμένο. *Για αυτόν τον λόγο, είναι επίσης γνωστή ως απάτη 2 προς 1.* + +Αυτές οι απάτες συνήθως ορίζουν περιορισμένο χρονικό περιθώριο για να διεκδικήσετε το δώρο και να δημιουργήσουν μια ψευδή αίσθηση κατεπείγοντος. + +### Παραβιάσεις κοινωνικών δικτύων {#social-media-hacks} + +Ένα διάσημο παράδειγμα συνέβη τον Ιούλιο του 2020, όταν οι λογαριασμοί Twitter διάσημων προσωπικοτήτων και οργανισμών παραβιάστηκαν. Οι χάκερ δημοσίευσαν ταυτόχρονα μια δωρεάν κλήρωση Bitcoin στους λογαριασμούς που είχαν παραβιαστεί. Παρόλο που τα παραπλανητικά tweets εντοπίστηκαν και διαγράφηκαν γρήγορα, οι χάκερ κατάφεραν να διαφύγουν με 11 bitcoin (ή 500.000 $ την περίοδο Σεπτεμβρίου 2021). + +![Απάτη στο Twitter](./appleTwitterScam.png) + +### Δωρεές από διασημότητες {#celebrity-giveaway} + +Μια άλλη κοινή μορφή της απάτης με δωρεάν κρυπτονομίσματα είναι αυτή που χρησιμοποιεί διασημότητες. Οι απατεώνες μπορεί να χρησιμοποιήσουν μια μαγνητοσκοπημένη συνέντευξη ή ομιλία μιας διάσημης προσωπικότητας και να την κάνουν livestream στο YouTube, κάνοντας να φαίνεται σαν να δίνει μια ζωντανή συνέντευξη που υποστηρίζει μια κλήρωση κρυπτονομισμάτων. + +Ο Vitalik Buterin χρησιμοποιείται πιο συχνά σε αυτήν την απάτη, αλλά χρησιμοποιούνται και πολλοί άλλοι διάσημοι άνθρωποι που εμπλέκονται με τα κρυπτονομίσματα (π.χ. ο Elon Musk ή ο Charles Hoskinson). Η συμπερίληψη ενός γνωστού προσώπου δίνει στις livestream των απατεώνων μια αίσθηση νομιμότητας (φαίνεται ύποπτο, αλλά συμμετέχει ο Vitalik, οπότε μάλλον είναι εντάξει). + +**Οι διαφημίσεις με δωρεάν κρυπτονομίσματα είναι πάντα απάτες. Αν στείλετε τα χρήματά σας σε αυτούς τους λογαριασμούς, θα τα χάσετε οριστικά.** + +![Απάτη στο YouTube](./youtubeScam.png) + +### Υποστήριξη κατά της απάτης {#support-scams} + +Το κρυπτονόμισμα είναι μια σχετικά μια νέα και παρεξηγημένη τεχνολογία. Μια συνηθισμένη απάτη που το εκμεταλλεύεται αυτό, είναι η απάτη ως υποστήριξη, όπου οι απατεώνες υποδύονται το προσωπικό υποστήριξης για δημοφιλή πορτοφόλια, ανταλλακτήρια ή κρυπτοαλυσίδες. + +Μεγάλο μέρος της συζήτησης για το Ethereum συμβαίνει στο Discord. Οι απατεώνες που υποδύονται προσωπικό υποστήριξης, βρίσκουν συνήθως τον στόχο τους αναζητώντας ερωτήσεις υποστήριξης σε δημόσια κανάλια και στη συνέχεια στέλνοντας στον ερωτώντα ένα ιδιωτικό μήνυμα που προσφέρει υποστήριξη. Χτίζοντας εμπιστοσύνη, οι απατεώνες ως προσωπικό υποστήριξης, προσπαθούν να σας ξεγελάσουν ώστε να αποκαλύψετε τα ιδιωτικά σας κλειδιά ή να στείλετε τα χρήματά σας στα πορτοφόλια τους. + +![Υποστήριξη κατά της απάτης στο Discord](./discordScam.png) + +Κατά γενικό κανόνα, το προσωπικό δε θα επικοινωνεί ποτέ μαζί σας μέσω ιδιωτικών, ανεπίσημων καναλιών. Μερικά απλά πράγματα που πρέπει να έχετε κατά νου όταν επικοινωνείτε με την υποστήριξη: + +- Ποτέ μη μοιράζεστε τα ιδιωτικά κλειδιά σας, τις μυστικές λέξεις σας ή τους κωδικούς πρόσβασης σας +- Μην επιτρέπετε ποτέ σε κανέναν την απομακρυσμένη πρόσβαση στον υπολογιστή σας +- Ποτέ μην επικοινωνείτε έξω από τα καθορισμένα κανάλια ενός οργανισμού + + +
+ Προσοχή: αν και οι απάτες τύπου υποστήριξης συμβαίνουν συνήθως στο Discord, μπορεί επίσης να είναι διαδεδομένες σε οποιεσδήποτε εφαρμογές συνομιλίας όπου διεξάγονται συζητήσεις κρυπτονομισμάτων, συμπεριλαμβανομένου του email. +
+
+ +### Απάτη κρυπτονομίσματος «Eth2» {#eth2-token-scam} + +Προς το τέλος της ενημέρωσης [Η Συγχώνευση](/roadmap/merge/), απατεώνες εκμεταλλεύτηκαν τη σύγχυση γύρω από τον όρο «Eth2» για να προσπαθήσουν να εξαπατήσουν τους χρήστες να εξαργυρώσουν τα ETH τους για ένα κρυπτονόμισμα «ETH2». Δεν υπάρχει «ETH2» και κανένα άλλο νόμιμο κρυπτονόμισμα δεν εισήχθη με τη Συγχώνευση. Το ETH που κατείχατε πριν είναι το ίδιο ETH και τώρα. **Δε χρειάζεται να κάνετε καμία ενέργεια σχετικά με τα ETH σας για τη μετάβαση από την απόδειξη εργασίας στην απόδειξη συμμετοχής.** + +Ενδέχεται να εμφανιστούν απατεώνες ως «υποστήριξη», λέγοντάς σας ότι εάν καταθέσετε τα ETH σας, θα λάβετε πίσω «ETH2». Δεν υπάρχει [επίσημη υποστήριξη Ethereum](/community/support/) και δεν υπάρχει νέο κρυπτονόμισμα. Μη μοιραστείτε ποτέ τις μυστικές λέξεις του πορτοφολιού σας με κανέναν. + +_Σημείωση: Υπάρχουν παράγωγα token/tickers που μπορεί να αντιπροσωπεύουν τα αποθηκευμένα ETH (π.χ. rETH από το Rocket Pool, stETH από το Lido, ETH2 από το Coinbase), αλλά δεν είναι κάτι στο οποίο πρέπει να «μεταφερθείτε»._ + +### Απάτες ηλεκτρονικού «ψαρέματος» {#phishing-scams} + +Οι απάτες ηλεκτρονικού ψαρέματος είναι μια άλλη, ολοένα και πιο κοινή προσέγγιση που χρησιμοποιούν οι απατεώνες για να προσπαθήσουν να κλέψουν τα χρήματα του πορτοφολιού σας. + +Μερικά ψεύτικα email ζητούν από τους χρήστες να κάνουν κλικ σε συνδέσμους που θα τους ανακατευθύνουν σε ψεύτικους ιστότοπους, ζητώντας τους να εισάγουν τις μυστικές λέξεις τους, για να επαναφέρουν τον κωδικό πρόσβασης τους ή να στείλουν ETH. Άλλα μπορεί να σας ζητήσουν να εγκαταστήσετε εν αγνοία σας κακόβουλο λογισμικό για να μολύνουν τον υπολογιστή σας και να δώσουν στους απατεώνες πρόσβαση στα αρχεία του υπολογιστή σας. + +Εάν λάβετε email από άγνωστο αποστολέα, θυμηθείτε: + +- Ποτέ μην ανοίγετε σύνδεσμο ή συνημμένο αρχείο από διευθύνσεις email που δεν αναγνωρίζετε. +- Ποτέ μην αποκαλύπτετε τα προσωπικά σας στοιχεία ή κωδικούς πρόσβασης σε κανέναν. +- Διαγράψτε email από άγνωστους αποστολείς. + +[Περισσότερα για την αποφυγή απάτης ηλεκτρονικού ψαρέματος.](https://support.mycrypto.com/staying-safe/mycrypto-protips-how-not-to-get-scammed-during-ico) + +### Απάτες ανταλλακτηρίων κρυπτονομισμάτων {#broker-scams} + +Οι απατεώνες «σύμβουλοι» ανταλλακτηρίων κρυπτονομισμάτων ισχυρίζονται ότι είναι εξειδικευμένοι μεσίτες κρυπτονομισμάτων που θα αναλάβουν τα χρήματά σας και θα τα επενδύσουν για εσάς. Αφού ο απατεώνας λάβει τα χρήματά σας, μπορεί είτε να σας καθυστερεί ζητώντας να στείλετε περισσότερα χρήματα για να μη χάσετε περαιτέρω κέρδη από επενδύσεις, είτε μπορεί να εξαφανιστεί εντελώς. + +Αυτοί οι απατεώνες βρίσκουν συχνά στόχους χρησιμοποιώντας ψεύτικους λογαριασμούς στο YouTube για να ξεκινήσουν φαινομενικά φυσικές συζητήσεις σχετικά με τον «μεσάζοντα». Αυτές οι συζητήσεις συχνά λαμβάνουν πολλές θετικές ψήφους για να αυξήσουν τη νομιμότητα, αλλά όλες οι θετικές ψήφοι προέρχονται από ψεύτικους λογαριασμούς. + +**Μην εμπιστεύεστε αγνώστους στο διαδίκτυο να επενδύσουν για εσάς. Θα χάσετε τα κρυπτονομισμάτά σας.** + +![Απάτη μεσάζοντα συναλλαγών στο YouTube](./brokerScam.png) + +### Απάτες δεξαμενών κρυπτόρυξης κρυπτονομισμάτων {#mining-pool-scams} + +Από τον Σεπτέμβριο του 2022, η κρυπτόρυξη στο Ethereum δεν είναι πλέον δυνατή. Ωστόσο, οι απάτες με δεξαμενές κρυπτόρυξης εξακολουθούν να υπάρχουν. Οι απάτες με δεξαμενές κρυπτόρυξης περιλαμβάνουν άτομα που επικοινωνούν απρόκλητα και ισχυρίζονται ότι μπορείτε να αποκομίσετε μεγάλα κέρδη συμμετέχοντας σε μια δεξαμενή κρυπτόρυξης Ethereum. Ο απατεώνας θα κάνει ισχυρισμούς και θα παραμείνει σε επαφή μαζί σας για όσο χρόνο χρειαστεί. Ουσιαστικά, ο απατεώνας θα προσπαθήσει να σας πείσει ότι όταν εγγραφείτε σε μια δεξαμενή κρυπτόρυξης Ethereum, το κρυπτονόμισμα σας θα χρησιμοποιηθούν για τη δημιουργία ETH και ότι θα λάβετε μερίσματα σε ETH. Στη συνέχεια, θα δείτε ότι το κρυπτονόμισμα σας κάνει μικρές αποδόσεις. Αυτό γίνεται απλώς για να σας δελεάσει να επενδύσετε περισσότερα. Τελικά, όλα τα χρήματά σας θα αποσταλούν σε μια άγνωστη διεύθυνση και ο απατεώνας θα εξαφανιστεί ή σε ορισμένες περιπτώσεις θα συνεχίσει να διατηρεί επαφή, όπως συνέβη σε μια πρόσφατη περίπτωση. + +Συμπέρασμα, να είστε επιφυλακτικοί με άτομα που επικοινωνούν μαζί σας στα μέσα κοινωνικής δικτύωσης ζητώντας σας να συμμετάσχετε σε δεξαμενή κρυπτόρυξης. Μόλις χάσετε τα κρυπτονομισμάτά σας, δεν υπάρχει επιστροφή. + +Ορισμένα στοιχεία που πρέπει να θυμάστε: + +- Να είστε επιφυλακτικοί με οποιονδήποτε επικοινωνεί μαζί σας σχετικά με διάφορους τρόπους για να κερδίσετε χρήματα από τα κρυπτονομίσματά σας +- Κάντε την έρευνά σας σχετικά με την αποθήκευση κεφαλαίου, τις δεξαμενές ρευστότητας ή άλλους τρόπους επένδυσης των κρυπτονομισμάτων σας +- Σπάνια, έως ποτέ, τέτοια συστήματα είναι θεμιτά. Αν ήταν, πιθανότατα θα ήταν διάσημα και θα τα είχατε ακούσει. + +[Άνδρας χάνει 200.000$ σε απάτη δεξαμενής κρυπτόρυξης](https://www.reddit.com/r/CoinBase/comments/r0qe0e/scam_or_possible_incredible_payout/) + +### Απάτες airdrop {#airdrop-scams} + +Οι απάτες με Airdrop περιλαμβάνουν ένα απατηλό project που στέλνει δωρεάν περιουσιακό στοιχείο (NFT, token) στο πορτοφόλι σας (airdrop) και στη συνέχεια σας κατευθύνει σε έναν ψεύτικο ιστότοπο για να το διεκδικήσετε. Όταν προσπαθήσετε να διεκδικήσετε το δωρεάν περιουσιακό στοιχείο, θα σας ζητηθεί να συνδεθείτε με το πορτοφόλι Ethereum σας και να «εγκρίνετε» μια συναλλαγή. Αυτή η συναλλαγή θέτει σε κίνδυνο τον λογαριασμό σας στέλνοντας τα δημόσια και ιδιωτικά σας κλειδιά στους απατεώνες. Μια εναλλακτική μορφή αυτής της απάτης μπορεί να σας ζητήσει να επιβεβαιώσετε μια συναλλαγή που στέλνει χρήματα στον λογαριασμό του απατεώνα. + +[Περισσότερα για τις απάτες airdrop](https://www.youtube.com/watch?v=LLL_nQp1lGk) + + + +## Ασφάλεια διαδικτύου 101 {#web-security} + +### Χρήση ισχυρών κωδικών πρόσβασης {#use-strong-passwords} + +[Πάνω από 80% των παραβιάσεων λογαριασμού είναι αποτέλεσμα αδύναμων ή κλεμμένων κωδικών πρόσβασης](https://cloudnine.com/ediscoverydaily/electronic-discovery/80-percent-hacking-related-breaches-related-password-issues-cybersecurity-trends/). Ένας μεγάλος συνδυασμός χαρακτήρων, αριθμών και συμβόλων θα βοηθήσει να διατηρήσετε τους λογαριασμούς σας ασφαλείς. + +Ένα συνηθισμένο λάθος είναι η χρήση συνδυασμού μερικών κοινών, συνηθισμένων λέξεων. Τέτοιοι κωδικοί πρόσβασης δεν είναι ασφαλείς, επειδή είναι επιρρεπείς σε τεχνικές hacking γνωστές ως επίθεση λεξικού. + +```md +Παράδειγμα εύκολου κωδικού πρόσβασης: CuteFluffyKittens! + +Παράδειγμα δύσκολου κωδικού πρόσβασης: ymv\*azu.EAC8eyp8umf +``` + +Ένα άλλο συνηθισμένο λάθος είναι η χρήση κωδικών πρόσβασης που μπορούν εύκολα να μαντέψουν ή να εντοπίσουν μέσω [κοινωνικών δικτύων](https://wikipedia.org/wiki/Social_engineering_(security)). Η συμπερίληψη του πατρικού ονόματος της μητέρας σας, των ονομάτων των παιδιών ή των κατοικίδιων σας ή των ημερομηνιών γέννησης στον κωδικό πρόσβασής σας θα αυξήσει τον κίνδυνο παραβίασης. + +#### Σωστές πρακτικές κωδικών πρόσβασης: {#good-password-practices} + +- Δημιουργήστε κωδικούς πρόσβασης με όσους χαρακτήρες σας επιτρέπει είτε το πρόγραμμα δημιουργίας κωδικών πρόσβασης είτε η φόρμα που συμπληρώνετε +- Χρησιμοποιήστε ένα μείγμα κεφαλαίων, πεζών, αριθμών και συμβόλων +- Μη χρησιμοποιείτε προσωπικά στοιχεία, όπως οικογενειακά ονόματα, στον κωδικό πρόσβασής σας +- Αποφύγετε συχνά χρησιμοποιούμενες λέξεις + +[Περισσότερα για τη δημιουργία ισχυρών κωδικών πρόσβασης](https://terranovasecurity.com/how-to-create-a-strong-password-in-7-easy-steps/) + +### Χρησιμοποιείστε διαφορετικού κωδικούς πρόσβασης {#use-unique-passwords} + +Ένας ισχυρός κωδικός πρόσβασης που έχει αποκαλυφθεί σε περίπτωση παραβίασης δεδομένων δεν είναι πλέον ισχυρός κωδικός πρόσβασης. Ο ιστότοπος [Have I Been Pwned](https://haveibeenpwned.com) σάς επιτρέπει να ελέγχετε εάν οι λογαριασμοί σας εμπλέκονται σε δημόσιες παραβιάσεις δεδομένων. Εάν συμβεί αυτό, **αλλάξτε αμέσως τους κωδικούς πρόσβασής σας**. Η χρήση μοναδικών κωδικών πρόσβασης για κάθε λογαριασμό μειώνει τον κίνδυνο οι χάκερ να αποκτήσουν πρόσβαση στους λογαριασμούς σας εάν ένας από τους κωδικούς πρόσβασής σας παραβιαστεί. + +### Χρησιμοποιείστε έναν διαχειριστή κωδικών πρόσβασης {#use-password-manager} + + +
+ Η χρήση ενός διαχειριστή κωδικών πρόσβασης φροντίζει για τη δημιουργία ισχυρών, μοναδικών κωδικών πρόσβασης και την απομνημόνευση τους! Συνιστούμε ανεπιφύλακτα να χρησιμοποιήσετε ένα και τα περισσότερα από αυτά είναι δωρεάν! +
+
+ +Το να θυμάστε ισχυρούς, μοναδικούς κωδικούς πρόσβασης για κάθε λογαριασμό που έχετε δεν είναι ο ιδανικός τρόπος. Ένας διαχειριστής κωδικών πρόσβασης προσφέρει ένα ασφαλές, κρυπτογραφημένο χώρο αποθήκευσης για όλους τους κωδικούς πρόσβασης στον οποίο μπορείτε να αποκτήσετε πρόσβαση μέσω ενός ισχυρού κύριου κωδικού πρόσβασης. Προτείνουν επίσης ισχυρούς κωδικούς πρόσβασης κατά την εγγραφή σας σε μια νέα υπηρεσία, ώστε να μη χρειάζεται να δημιουργήσετε δικούς σας. Πολλοί διαχειριστές κωδικών πρόσβασης θα σας πουν επίσης εάν έχετε εμπλακεί σε παραβίαση δεδομένων, επιτρέποντάς σας να αλλάξετε τους κωδικούς πρόσβασης πριν από τυχόν κακόβουλες επιθέσεις. + +![Παράδειγμα χρήσης διαχειριστή κωδικών πρόσβασης](./passwordManager.png) + +#### Δοκιμάστε έναν διαχειριστή κωδικών πρόσβασης: {#try-password-manager} + +- [Bitwarden](https://bitwarden.com/) +- [KeePass](https://keepass.info/) +- [1Password](https://1password.com/) +- Ή δείτε άλλους [προτεινόμενους διαχειριστές κωδικών πρόσβασης](https://www.privacytools.io/secure-password-manager) + +### Χρήση επαληθευτή Δύο Παραγόντων {#two-factor-authentication} + +Μερικές φορές μπορεί να σας ζητηθεί να πιστοποιήσετε την ταυτότητά σας μέσω μοναδικών αποδείξεων. Αυτές οι αποδείξεις είναι γνωστές ως **παράγοντες**. Οι τρεις βασικοί παράγοντες είναι: + +- Κάτι που γνωρίζετε (όπως κωδικός πρόσβασης ή ερώτηση ασφαλείας) +- Κάτι που είστε (όπως δακτυλικό αποτύπωμα ή σαρωτής ίριδας/προσώπου) +- Κάτι που σας ανήκει (ένα κλειδί ασφαλείας ή εφαρμογή ελέγχου ταυτότητας στο τηλέφωνό σας) + +Η χρήση ενός **Επαληθευτή ταυτότητας δύο παραγόντων (2FA)** παρέχει ένα πρόσθετο *παράγοντα ασφαλείας* για τους διαδικτυακούς σας λογαριασμούς. Το 2FA διασφαλίζει ότι το να έχετε απλώς τον κωδικό πρόσβασής σας δεν αρκεί για την πρόσβαση σε έναν λογαριασμό. Συνηθέστερα, ο δεύτερος παράγοντας είναι ένας τυχαίος 6ψήφιος κωδικός, γνωστός ως **time-based one-time password (TOTP)**, στον οποίο μπορείτε να αποκτήσετε πρόσβαση μέσω μιας εφαρμογής ελέγχου ταυτότητας όπως το Google Authenticator ή το Authy. Αυτά λειτουργούν ως παράγοντας «κάτι που κατέχετε», επειδή η φράση ασφαλείας που δημιουργεί τον χρονομετρημένο κώδικα αποθηκεύεται στη συσκευή σας. + + +
+ Σημείωση: Η χρήση 2FA με χρήση SMS είναι ευάλωτη στην κλοπή SIM και δεν είναι ασφαλής. Για καλύτερη ασφάλεια, χρησιμοποιήστε μια υπηρεσία όπως το Google Authenticator ή το Authy. +
+
+ +#### Κλειδιά ασφαλείας {#security-keys} + +Ένα κλειδί ασφαλείας είναι ένας πιο προηγμένος και ασφαλής τύπος 2FA. Τα κλειδιά ασφαλείας είναι φυσικές συσκευές ελέγχου ταυτότητας που λειτουργούν όπως οι εφαρμογές ελέγχου ταυτότητας. Η χρήση κλειδιού ασφαλείας είναι ο πιο ασφαλής τρόπος για χρήση 2FA. Πολλά από αυτά τα κλειδιά χρησιμοποιούν το πρότυπο FIDO Universal 2nd Factor (U2F). [Μάθετε περισσότερα σχετικά με το FIDO U2F](https://www.yubico.com/authentication-standards/fido-u2f/). + +Δείτε περισσότερα για το 2FA: + + + +### Απεγκαταστήστε τις επεκτάσεις του φυλλομετρητή {#uninstall-browser-extensions} + +Οι επεκτάσεις του προγράμματος περιήγησης, όπως οι επεκτάσεις του Chrome ή τα πρόσθετα για το Firefox, μπορούν να βελτιώσουν τη λειτουργικότητα του προγράμματος περιήγησης, αλλά ενέχουν κινδύνους. Από προεπιλογή, οι περισσότερες επεκτάσεις προγράμματος περιήγησης ζητούν πρόσβαση για «ανάγνωση και αλλαγή δεδομένων ιστότοπου», επιτρέποντάς τους να κάνουν σχεδόν οτιδήποτε με τα δεδομένα σας. Οι επεκτάσεις του Chrome ενημερώνονται πάντα αυτόματα, επομένως μια προηγουμένως ασφαλής επέκταση μπορεί να ενημερωθεί αργότερα για να περιλαμβάνει κακόβουλο κώδικα. Οι περισσότερες επεκτάσεις προγράμματος περιήγησης δεν προσπαθούν να κλέψουν τα δεδομένα σας, αλλά θα πρέπει να γνωρίζετε ότι μπορούν. + +#### Μείνετε ασφαλείς με: {#browser-extension-safety} + +- Εγκατάσταση επεκτάσεων φυλλομετρητή μόνο από αξιόπιστες πηγές +- Αφαίρεση αχρησιμοποίητων επεκτάσεων φυλλομετρητή +- Εγκατάσταση τοπικά των επεκτάσεων Chrome για μη αυτόματη ενημέρωση (για προχωρημένους) + +[Περισσότερα για τους κινδύνους των επεκτάσεων του φυλλομετρητή](https://www.kaspersky.co.uk/blog/browser-extensions-security/12750/) + + + +## Περισσότερες πληροφορίες {#further-reading} + +### Ασφάλεια διαδικτύου {#reading-web-security} + +- [Περισσότερες από 3 εκατομμύρια συσκευές μολύνθηκαν από κακόβουλα πρόσθετα του Chrome και του Edge](https://arstechnica.com/information-technology/2020/12/up-to-3-million-devices-infected-by-malware-laced-chrome-and-edge-add-ons/) - _Dan Goodin_ +- [Πώς να δημιουργήσετε ισχυρό κωδικό πρόσβασης — Αυτόν που δε θα ξεχάσετε](https://www.avg.com/en/signal/how-to-create-a-strong-password-that-you-wont-forget) - _AVG_ +- [Τι είναι το κλειδί ασφαλείας;](https://help.coinbase.com/en/coinbase/getting-started/verify-my-account/security-keys-faq) - _Coinbase_ + +### Ασφάλεια κρυπτονομισμάτων {#reading-crypto-security} + +- [Προστατεύστε τον εαυτό σας και το κεφάλαιό σας](https://support.mycrypto.com/staying-safe/protecting-yourself-and-your-funds) - _MyCrypto_ +- [Ζητήματα ασφαλείας σε συνήθη λογισμικά επικοινωνίας κρυπτονομισμάτων](https://docs.salusec.io/untitled/web3-penetration-test/risks-in-social-media) - _Salus_ +- [Οδηγός ασφαλείας για αρχάριους και έξυπνους χρήστες](https://medium.com/mycrypto/mycryptos-security-guide-for-dummies-and-smart-people-too-ab178299c82e) - _MyCrypto_ +- [Ασφάλεια κρυπτονομισμάτων: Κωδικοί πρόσβασης και Αυθεντικοποίηση](https://www.youtube.com/watch?v=m8jlnZuV1i4) - _Ανδρέας Μ. Αντωνόπουλος_ + +### Εκπαίδευση κατά της απάτης {#reading-scam-education} + +- [Οδηγός: Πως να αναγνωρίσετε τα μη αυθεντικά κρυπτονομίσματα](/guides/how-to-id-scam-tokens/) +- [Μείνετε ασφαλής: Κοινές απάτες](https://support.mycrypto.com/staying-safe/common-scams) - _MyCrypto_ +- [Αποφεύγοντας τις απάτες](https://bitcoin.org/en/scams) - _Bitcoin.org_ +- [Νήμα στο Twitter για κοινές απάτες ηλεκτρονικού ψαρέματος email και μηνυμάτων για κρυπτονομίσματα](https://twitter.com/tayvano_/status/1516225457640787969) - _Taylor Monahan_ + + diff --git a/public/content/translations/el/social-networks/index.md b/public/content/translations/el/social-networks/index.md index 2fad91df5d7..4c318b6f18e 100644 --- a/public/content/translations/el/social-networks/index.md +++ b/public/content/translations/el/social-networks/index.md @@ -74,33 +74,31 @@ summaryPoint3: Τα κρυπτονομίσματα και τα NFT δημιου ## Κοινωνικά δίκτυα Web2 στο Ethereum {#web2-social-networks-and-ethereum} -Οι εγγενείς πλατφόρμες κοινωνικής δικτύωσης [Web3](/glossary/#web3) δεν είναι οι μόνες που προσπαθούν να ενσωματώσουν την τεχνολογία κρυπτοαλυσίδας στα μέσα κοινωνικής δικτύωσης. Πολλές κεντρικές πλατφόρμες σχεδιάζουν επίσης να ενσωματώσουν το Ethereum στην υποδομή τους: +Οι εγγενείς πλατφόρμες κοινωνικής δικτύωσης [Web3](/glossary/#web3) δεν είναι οι μόνες που προσπαθούν να ενσωματώσουν την τεχνολογία κρυπτοαλυσίδας στα μέσα κοινωνικής δικτύωσης. Πολλές κεντρικές πλατφόρμες διερευνούν επίσης ή έχουν πειραματιστεί με την ενσωμάτωση του Ethereum στην υποδομή τους: ### Reddit {#reddit} -Το Reddit έχει προωθήσει τους [πόντους κοινότητας](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), δηλαδή ψηφιακά στοιχεία ERC-20 τα οποία μπορούν να κερδίσουν οι χρήστες δημοσιεύοντας ποιοτικό περιεχόμενο και συνεισφέροντας σε διαδικτυακές κοινότητες (subreddits). Μπορείτε να εξαργυρώσετε αυτά τα κρυπτονομίσματα μέσα σε ένα subreddit για να λάβετε αποκλειστικά προνόμια. Για αυτό το έργο, το Reddit συνεργάζεται με το Arbitrum, ένα δίκτυο [επιπέδου 2](/glossary/#layer-2) που έχει σχεδιαστεί για την κλιμακωτή αναβάθμιση των συναλλαγών στο Ethereum. - -Το πρόγραμμα είναι ήδη σε λειτουργία, με το subreddit r/CryptoCurrency [που εκτελεί την έκδοση των σημείων κοινότητας που ονομάζεται "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Σύμφωνα με την επίσημη περιγραφή, το Moons «επιβραβεύει αφίσες, σχολιαστές και συντονιστές για τη συνεισφορά τους στο subreddit». Επειδή αυτά τα κρυπτονομίσματα βρίσκονται στην κρυπτοαλυσίδα (οι χρήστες τα λαμβάνουν σε πορτοφόλια), είναι ανεξάρτητα από το Reddit και δεν μπορούν να αφαιρεθούν. - -Εκτός από τη χρήση των πόντων κοινότητας για την πρόσβαση σε ειδικές λειτουργίες, οι χρήστες μπορούν επίσης να τους ανταλλάξουν με υποχρεωτικό χρήμα (fiat) σε ανταλλακτήρια. Επίσης, ο αριθμός των πόντων κοινότητας που κατέχει ένας χρήστης καθορίζει την επιρροή του στη διαδικασία λήψης αποφάσεων εντός της κοινότητας. +- Το Reddit είχε πειραματιστεί προηγουμένως με **Πόντους Κοινότητας**, οι οποίοι ήταν στοιχεία ERC-20 που οι χρήστες μπορούσαν να κερδίσουν δημοσιεύοντας ποιοτικό περιεχόμενο και συνεισφέροντας σε συγκεκριμένες διαδικτυακές κοινότητες (subreddits). Οι χρήστες μπορούσαν να εξαργυρώσουν αυτά τα tokens μέσα σε ένα subreddit για αποκλειστικά προνόμια ή να τα ανταλλάξουν. Για αυτό το έργο, το Reddit χρησιμοποίησε το Arbitrum Nova, ένα δίκτυο [επιπέδου 2](/glossary/#layer-2) που έχει σχεδιαστεί για την κλιμάκωση των συναλλαγών Ethereum. +- Το πρόγραμμα ήταν αξιοσημείωτα ενεργό στο subreddit r/CryptoCurrency με το "Moons" του και στο subreddit r/FortNiteBR με το "Bricks" του. Επειδή αυτά τα κρυπτονομίσματα βρίσκονταν στο blockchain, ήταν ανεξάρτητα από το Reddit από τη στιγμή που καταχωρούνταν στο [πορτοφόλι](/glossary/#wallet) ενός χρήστη. +- Ωστόσο, το **Reddit [τερμάτισε το πρόγραμμα Community Points](https://www.reddit.com/r/CryptoCurrency/comments/17a33ql/reddit_is_officially_deprecating_community_points/) στα τέλη του 2023**, επικαλούμενο προβλήματα επεκτασιμότητας και πόρων. Ενώ τα ψηφιακά στοιχεία εξακολουθούν να υπάρχουν στο blockchain, το Reddit δεν τα υποστηρίζει πλέον ενεργά ούτε τα ενσωματώνει στις λειτουργίες της πλατφόρμας του. ## Περισσότερες πληροφορίες {#further-reading} ### Άρθρα {#articles} -- [Αποκέντρωση μέσων κοινωνικής δικτύωσης: ένας οδηγός για τα κοινωνικά δίκτυα web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Αποκέντρωση των μέσων κοινωνικής δικτύωσης: ένας οδηγός για το web3 social stack](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ - [Τα κοινωνικά δίκτυα είναι η επόμενη μεγάλη ευκαιρία αποκέντρωσης](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Το Web3 υπόσχεται αποκεντρωμένα κοινωνικά δίκτυα που υποστηρίζονται από την κοινότητα](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [Μια επισκόπηση του χώρου των μέσων κοινωνικής δικτύωσης σε Blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — *Cryptopedia Gemini* -- [Πώς το Blockchain μπορεί να λύσει το απόρρητο των μέσων κοινωνικής δικτύωσης](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Επαρκής αποκέντρωση για κοινωνικά δίκτυα](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — *Varun Srinivasan* +- [Το Web3 διατηρεί την υπόσχεση για αποκεντρωμένα, κοινωνικά δίκτυα που υποστηρίζονται από την κοινότητα](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Μια επισκόπηση του τοπίου των μέσων κοινωνικής δικτύωσης Blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Πώς το Blockchain Μπορεί να Λύσει το Απόρρητο των Κοινωνικών Δικτύων](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Επαρκής Αποκέντρωση για Κοινωνικά Δίκτυα](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ ### Βίντεο {#videos} -- [Επεξήγηση αποκεντρωμένων μέσων κοινωνικής δικτύωσης](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [Η DeSo Blockchain θέλει να αποκεντρώσει τα μέσα κοινωνικής δικτύωσης](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Τεχνολογία Bloomberg_ -- [Το μέλλον των αποκεντρωμένων μέσων κοινωνικής δικτύωσης των Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — *ETHGlobal* +- [Επεξήγηση των Αποκεντρωμένων Κοινωνικών Δικτύων](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [Το DeSo Blockchain θέλει να αποκεντρώσει τα μέσα κοινωνικής δικτύωσης](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Το μέλλον των αποκεντρωμένων μέσων κοινωνικής δικτύωσης με τους Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ ### Κοινότητες {#communities} -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) \ No newline at end of file diff --git a/public/content/translations/el/zero-knowledge-proofs/index.md b/public/content/translations/el/zero-knowledge-proofs/index.md index 5fcd282e175..4b59eed316d 100644 --- a/public/content/translations/el/zero-knowledge-proofs/index.md +++ b/public/content/translations/el/zero-knowledge-proofs/index.md @@ -34,7 +34,7 @@ lang: el Τα κρυπτονομίσματα προορίζονταν να παρέχουν στους χρήστες έναν τρόπο για να διεξάγουν ιδιωτικές συναλλαγές peer-to-peer. Όμως, οι περισσότερες συναλλαγές κρυπτονομισμάτων είναι ευρέως ορατές σε δημόσια blockchains. Οι ταυτότητες χρηστών είναι συχνά ψεύτικες και είτε συνδέονται σκόπιμα με πραγματικές ταυτότητες (π.χ. συμπεριλαμβάνοντας διευθύνσεις ETH σε προφίλ Twitter ή GitHub) είτε μπορούν να συσχετιστούν με πραγματικές ταυτότητες χρησιμοποιώντας βασική ανάλυση δεδομένων εντός και εκτός αλυσίδας. -Υπάρχουν συγκεκριμένα «νομίσματα» απορρήτου» σχεδιασμένα για εντελώς ανώνυμες συναλλαγές. Blockchain εστιασμένα στο απόρρητο, όπως τα Zcash και Monero, αποκρύπτουν λεπτομέρειες συναλλαγών, συμπεριλαμβανομένων των διευθύνσεων αποστολέα/λήπτη, του τύπου ψηφιακού στοιχείου, της ποσότητας και του χρονοδιαγράμματος συναλλαγών. +Υπάρχουν συγκεκριμένα «νομίσματα απορρήτου» σχεδιασμένα για εντελώς ανώνυμες συναλλαγές. Blockchain εστιασμένα στο απόρρητο, όπως τα Zcash και Monero, αποκρύπτουν λεπτομέρειες συναλλαγών, συμπεριλαμβανομένων των διευθύνσεων αποστολέα/λήπτη, του τύπου ψηφιακού στοιχείου, της ποσότητας και του χρονοδιαγράμματος συναλλαγών. Ενσωματώνοντας την τεχνολογία αποδείξεων μηδενικής γνώσης στο πρωτόκολλο, τα δίκτυα [blockchain](/glossary/#blockchain) που εστιάζουν στο απόρρητο, επιτρέπουν στους [κόμβους](/glossary/#node) να επικυρώνουν συναλλαγές χωρίς να χρειάζεται να αποκτήσουν πρόσβαση σε δεδομένα συναλλαγών. Το [EIP-7503](https://eips.ethereum.org/EIPS/eip-7503) είναι ένα παράδειγμα προτεινόμενου σχεδιασμού που θα επιτρέψει εγγενείς ιδιωτικές μεταφορές αξίας στο blockchain Ethereum. Ωστόσο, τέτοιες προτάσεις είναι δύσκολο να εφαρμοστούν λόγω ενός μείγματος ανησυχιών για την ασφάλεια, τους ρυθμιστικούς κανόνες και το UX. @@ -80,7 +80,7 @@ lang: el Τα συστήματα ψηφοφορίας εντός κρυπτοαλυσίδας έχουν πολλά ευνοϊκά χαρακτηριστικά: είναι πλήρως ελεγμένα, ασφαλή έναντι επιθέσεων, ανθεκτικά στη λογοκρισία και απαλλαγμένα από γεωγραφικούς περιορισμούς. Ωστόσο, ούτε καν τα συστήματα ψηφοφορίας εντός αλυσίδας είναι απρόσβλητα στο πρόβλημα της **συνεννόησης**. -Η συνεννόηση, που ορίζεται ως «συντονισμός για τον περιορισμό του ανοιχτού ανταγωνισμού μέσω της εξαπάτησης, της απάτης και της «παραπλάνησης», μπορεί να λάβει τη μορφή ενός κακόβουλου παράγοντα που επηρεάζει την ψηφοφορία προσφέροντας δωροδοκίες. Για παράδειγμα, η Αλίκη μπορεί να λάβει δωροδοκία από τον Μπομπ για να ψηφίσει την `επιλογή Β` σε μια ψηφοφορία ακόμα και αν προτιμά την `επιλογή Α`. +Η συνεννόηση, που ορίζεται ως «συντονισμός για τον περιορισμό του ανοιχτού ανταγωνισμού μέσω της εξαπάτησης, της απάτης και της παραπλάνησης», μπορεί να λάβει τη μορφή ενός κακόβουλου παράγοντα που επηρεάζει την ψηφοφορία προσφέροντας δωροδοκίες. Για παράδειγμα, η Αλίκη μπορεί να λάβει δωροδοκία από τον Μπομπ για να ψηφίσει την `επιλογή Β` σε μια ψηφοφορία ακόμα και αν προτιμά την `επιλογή Α`. Η δωροδοκία και η συνεννόηση περιορίζουν την αποτελεσματικότητα οποιασδήποτε διαδικασίας που χρησιμοποιεί την ψηφοφορία ως μηχανισμό σηματοδότησης (ειδικά όταν οι χρήστες μπορούν να αποδείξουν πώς ψήφισαν). Αυτό μπορεί να έχει σημαντικές συνέπειες, ειδικά όταν οι ψήφοι είναι υπεύθυνες για την κατανομή σπάνιων πόρων. diff --git a/public/content/translations/fa/community/events/index.md b/public/content/translations/fa/community/events/index.md index 373618a54a3..e7f518ba37a 100644 --- a/public/content/translations/fa/community/events/index.md +++ b/public/content/translations/fa/community/events/index.md @@ -13,12 +13,14 @@ hideEditButton: true این یک لیست غیرجامع است که توسط انجمن ما نگهداری می شود. از رویداد آتی اتریوم برای اضافه کردن به این لیست اطلاع دارید؟ [لطفاً آن را اضافه کنید](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + ## گردهمایی‌های اتریوم {#meetups} -رویدادی را نمی‌بینید که برای شما مفید باشد؟ شرکت در یک گردهمایی را امتحان کنید. گردهمایی‌ها رویدادهای کوچک‌تری هستند که توسط گروه‌هایی از علاقه‌مندان به اتریوم برگزار می‌شوند - فرصتی برای افراد علاقه‌مند به اتریوم تا دور هم جمع شوند، درباره اتریوم صحبت کنند، و در مورد پیشرفت‌های اخیر اطلاعات کسب کنند. +رویدادی را نمی‌بینید که برای شما مفید باشد؟ شرکت در یک گردهمایی را امتحان کنید. گردهمایی‌ها رویدادهای کوچک‌تری هستند که گروه‌هایی از علاقه‌مندان به اتریوم آن‌ها را برگزار می‌کنند - فرصتی برای افراد علاقه‌مند به اتریوم تا دور هم جمع شوند، درباره اتریوم صحبت کنند، و درباره پیشرفت‌های اخیر اطلاعات کسب کنند. -علاقه‌مند به برگزاری گردهمایی خود هستید؟ [شبکه‌ی BUIDL](https://consensys.net/developers/buidlnetwork/) را بررسی کنید، ابتکاری توسط ConsenSys برای کمک به حمایت از انجمن‌های ملاقات اتریوم. +علاقه‌مند به برگزاری گردهمایی خود هستید؟ [شبکه BUIDL](https://consensys.net/developers/buidlnetwork/)، ابتکاری توسط ConsenSys برای کمک به حمایت از انجمن‌های ملاقات اتریوم، را بررسی کنید. -این یک فهرست غیرجامع است که توسط انجمن ما ساخته شده است. می‌توانید [گردهمایی‌های اتریوم بیشتری را در اینجا بیابید](https://www.meetup.com/topics/ethereum/). گروه ملاقات فعالی برای اضافه کردن به این فهرست می‌شناسید؟ [لطفاً آن را اضافه کنید](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! +این فهرستی غیرجامع است که آن را انجمن ما ساخته است. می‌توانید [گردهمایی‌های اتریوم بیشتری را در اینجا بیابید](https://www.meetup.com/topics/ethereum/). گروه ملاقات فعالی برای اضافه کردن به این فهرست می‌شناسید؟ [لطفاً آن را اضافه کنید](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/fa/contributing/design/index.md b/public/content/translations/fa/contributing/design/index.md index 34fc9131d43..623b1dfd7b2 100644 --- a/public/content/translations/fa/contributing/design/index.md +++ b/public/content/translations/fa/contributing/design/index.md @@ -6,7 +6,7 @@ lang: fa # همکاری طراحی با ethereum.org {#design-contributions} -طراحی، یک بخش حیاتی هر پروژه است،‌ و با اختصاص دادن زمان و مهارت‌های طراحی‌تان به ethereum.org می‌توانید به بهتر شدن تجربه‌ کاربری بازدیدکنندگان ما کمک کنید. مشارکت در یک پروژه منبع باز فرصتی را برای کسب تجربه مرتبط و توسعه مهارت های خود در یک محیط مشارکتی فراهم می کند. شما این شانس را خواهید داشت که با دیگر طراحان، توسعه دهندگان و اعضای جامعه کار کنید، که همگی دیدگاه ها و بینش های منحصر به فرد خود را خواهند داشت. +طراحی جزء حیاتی هر پروژه است و با اختصاص زمان و مهارت‌های طراحی خود به ethereum.org، می‌توانید تجربه کاربری بازدیدکنندگان ما را بهبود ببخشید. مشارکت در یک پروژه منبع باز فرصتی را برای کسب تجربه مرتبط و توسعه مهارت های خود در یک محیط مشارکتی فراهم می کند. شما این شانس را خواهید داشت که با دیگر طراحان، توسعه دهندگان و اعضای جامعه کار کنید، که همگی دیدگاه ها و بینش های منحصر به فرد خود را خواهند داشت. در نهایت، این یک راه عالی برای ایجاد یک نمونه کار متنوع و چشمگیر است که مهارت های طراحی شما را به نمایش می گذارد. @@ -30,7 +30,7 @@ lang: fa ###  مسائل مربوط به طراحی را در وب سایت بیابید و گزارش دهید {#report-design-issues} -Ethereum.org وبسایتی است با ویژگی‌ها و محتوای زیاد که سریع در حال رشد است. برخی از UIها به راحتی می توانند منسوخ شوند یا می توانند بهبود یابند. اگر با چنین موردی مواجه شدید، لطفا گزارش دهید تا توجه ما را به خود جلب کند. +ethereum.org یک وب‌سایت در حال رشد سریع با ویژگی‌ها و محتوای بسیار است. برخی از UIها به راحتی می توانند منسوخ شوند یا می توانند بهبود یابند. اگر با چنین موردی مواجه شدید، لطفا گزارش دهید تا توجه ما را به خود جلب کند. 1. وب سایت را مرور کنید و به طراحی آن توجه کنید. 2. در صورت مشاهده هر گونه مشکل بصری یا UX، اسکرین شات بگیرید و یادداشت کنید. @@ -51,10 +51,10 @@ Ethereum.org وبسایتی است با ویژگی‌ها و محتوای زیا 1. مشکلی را برای کار از [برد سیستم طراحی](https://github.com/ethereum/ethereum-org-website/labels/design%20system) در GitHub انتخاب کنید یا یک مورد جدید ایجاد کنید. 2. درخواست کنید موضوع انتخاب شده به شما اختصاص داده شود. -3. طراحی قطعه درخواست شده در فیگما را آغاز کنید. +3. طراحی مؤلفه درخواست‌شده را در فیگما شروع کنید. 4. پس از نیاز به بررسی یا راهنمایی، آن را با تیم طراحی در گیت‌هاب به اشتراک بگذارید. 5. تیم طراحی بررسی خواهد کرد. -6. تیم طراحی، تغییرات را در فایل اصلی خواهد گنجاند و فایل را برای جامعه منتشر خواهد کرد. +6. تیم طراحی تغییرات را در فایل اصلی می‌گنجاند و فایل را در جامعه منتشر می‌کند. ###  مطالب مرتبط با طراحی را در وب سایت بنویسید {#write-design-articles} @@ -64,7 +64,7 @@ Ethereum.org وبسایتی است با ویژگی‌ها و محتوای زیا 2. به مخزن گیت‌هاب ما بروید و [مسئله‌ای را مطرح کنید](https://github.com/ethereum/ethereum-org-website/issues/new) که یک موضوع را پیشنهاد می‌دهد (فعلا محتوا را ننویسید). 3. منتظر تایید تیم طراحی باشید. 4. پس از تایید، محتوا را بنویسید. -5. آن را در مسئله گیت‌هاب مربوطه ارائه کنید. +5. آن را در نسخه مربوط به گیت‌هاب ارسال کنید. ###  تصاویر جدید بکشید {#prepare-illustrations} diff --git a/public/content/translations/fa/contributing/index.md b/public/content/translations/fa/contributing/index.md index 2dd47a1bc41..0f4e2b6f963 100644 --- a/public/content/translations/fa/contributing/index.md +++ b/public/content/translations/fa/contributing/index.md @@ -19,13 +19,12 @@ Ethereum.org یک پروژه اجرا شده منبع باز با **بیش از - [روی یک مسئله باز کار کنید](https://github.com/ethereum/ethereum-org-website/issues) - کاری که ما تشخیص داده ایم نیاز به انجام دارد **طراحی** -- [کمک به طراحی وب سایت](/contributing/design/) طراحان همه سطوح می توانند به بهبود وب سایت کمک کنند +- [کمک به طراحی وب‌سایت](/contributing/design/) طراحان با هر سطحی می‌توانند به بهبود وب‌سایت کمک کنند **محتوا** - [ایجاد/ویرایش محتوا](/contributing/#how-to-update-content) - صفحات جدیدی پیشنهاد دهید یا تغییراتی را در آنچه قبلاً در اینجا وجود دارد ایجاد کنید - [افزودن منابع جامعه](/contributing/content-resources/) - یک مقاله یا منبع مفید را به صفحه مربوطه اضافه کنید - [یک منبع طراحی پیشنهاد کنید](/contributing/design/adding-design-resources/) – منابع طراحی مفید را اضافه کنید، به‌روزرسانی کنید و حذف کنید -- [افزودن اصطلاح به واژه نامه](/contributing/adding-glossary-terms/) – به ما در ادامه گسترش [واژه نامه](/glossary/) اتریوم کمک کنید - [آزمون‌ها](/contributing/quizzes/) - بانک‌های سوالات آزمون را برای صفحه مربوطه اضافه، به‌روزرسانی و حذف کنید **ایده برای ویژگی‌ها** @@ -68,7 +67,7 @@ Ethereum.org یک پروژه اجرا شده منبع باز با **بیش از - [راهنمای سبک](/contributing/style-guide/) ما - [آیین رفتاری](/community/code-of-conduct) ما - + ## نحوه تصمیم گیری در مورد سایت {#how-decisions-about-the-site-are-made} @@ -90,11 +89,11 @@ Ethereum.org یک پروژه اجرا شده منبع باز با **بیش از اگر مشارکت شما در ethereum.org ادغام شود، فرصتی برای مطالبه یک توکن ویژه در [Galxe](https://app.galxe.com/quest/ethereumorg) خواهید داشت. توکن OAT دلیلی بر این است که شما کمک کردید اکوسیستم کمی بهتر شود. -[جزئیات بیشتر درباره OATها](https://help.galxe.com/en/articles/7067290-galxe-oats-reward-and-celebrate-achievements) +[جزئیات بیشتر درباره OATها](https://help.galxe.com/en/articles/9645630-create-quest-rewards#h_1c5d63ba03) ### چگونه درخواست کنید 1. به [سرور دیسکورد](https://discord.gg/ethereum-org) ما بپیوندید. -2. لینک مشارکت خود را در کانال `#🥇 | اثبات مشارکت` قرار دهید +2. لینک مشارکت خود را در کانال `#🥇 | اثبات مشارکت` قرار دهید. 3. منتظر بمانید تا یکی از اعضای تیم ما لینک OAT را برای شما ارسال کند. 4. OAT‌ خود را درخواست کنید! diff --git a/public/content/translations/fa/contributing/translation-program/how-to-translate/index.md b/public/content/translations/fa/contributing/translation-program/how-to-translate/index.md index 994adc6f47a..d6dc2b89955 100644 --- a/public/content/translations/fa/contributing/translation-program/how-to-translate/index.md +++ b/public/content/translations/fa/contributing/translation-program/how-to-translate/index.md @@ -18,7 +18,7 @@ description: راهنمای استفاده از Crowdin جهت ترجمه‌ eth شما باید به حساب کاربری خود در Crowdin وارد شوید و یا اگر از قبل حسابی ندارید، ثبت‌نام کنید. برای ثبت نام تنها چیزی که لازم است یک حساب ایمیل و رمز عبور است. - + به پروژه ما بپیوندید @@ -82,8 +82,8 @@ description: راهنمای استفاده از Crowdin جهت ترجمه‌ eth ### در ارتباط باشید {#get-in-touch} -سوالی دارید؟ یا می خواهید با تیم ما و سایر مترجمان همکاری کنید؟ لطفاً در کانال [سرور دیسکورد ethereum.org](/discord/) ما پست کنید +سؤالی دارید؟ یا می‌خواهید با تیم ما و سایر مترجمان همکاری کنید؟ لطفاً در کانال [سرور دیسکورد ethereum.org](/discord/) ما پست کنید -همچنین می توانید از طریق translations@ethereum.org با ما در تماس باشید +همچنین می‌توانید از طریق translations@ethereum.org با ما در تماس باشید از مشارکت شما در برنامه ترجمه ethereum.org سپاسگزاریم! diff --git a/public/content/translations/fa/contributing/translation-program/index.md b/public/content/translations/fa/contributing/translation-program/index.md index f97ffa43681..1ad4974bff5 100644 --- a/public/content/translations/fa/contributing/translation-program/index.md +++ b/public/content/translations/fa/contributing/translation-program/index.md @@ -36,9 +36,9 @@ _به دیسکورد [ethereum.org Discord](/discord/) بپیوندید تا د ### پیشرفت ما تاکنون {#our-progress} -- [بیش از **6,000 +** مترجم](/contributing/translation-program/contributors/) -- **62** زبان در سایت موجود است -- [ترجمه **3 میلیون** کلمه در سال 2023](/contributing/translation-program/acknowledgements/) +- [**بیش از 6,900** مترجم](/contributing/translation-program/contributors/) +- **68** زبان در سایت +- [**2.89 میلیون** کلمه ترجمه‌شده در سال 2024](/contributing/translation-program/acknowledgements/) diff --git a/public/content/translations/fa/contributing/translation-program/resources/index.md b/public/content/translations/fa/contributing/translation-program/resources/index.md index fa7e39d5113..f2e3ed5745c 100644 --- a/public/content/translations/fa/contributing/translation-program/resources/index.md +++ b/public/content/translations/fa/contributing/translation-program/resources/index.md @@ -12,8 +12,8 @@ description: منابع مفید برای مترجمان ethereum.org - [راهنمای سبک ترجمه](/contributing/translation-program/translators-guide/) _– دستورالعمل ها و نکاتی برای مترجمان ethereum.org_ - [سؤالات متداول ترجمه](/contributing/translation-program/faq/) _– پرسش‌ها و پاسخ‌های متداول درباره برنامه ترجمه ethereum.org_ -- [راهنمای ویرایشگر آنلاین Crowdin](https://support.crowdin.com/online-editor/) _– یک راهنمای عمیق برای استفاده از ویرایشگر آنلاین Crowdin و برخی ویژگی های پیشرفته Crowdin_ -- [سطل های محتوا](/contributing/translation-program/content-buckets/)_ – کدام صفحات در هر سطل محتوای ethereum.org گنجانده شده است_ +- [راهنمای ویرایشگر آنلاین Crowdin](https://support.crowdin.com/online-editor/) _– راهنمای عمیق استفاده از ویرایشگر آنلاین Crowdin و برخی ویژگی‌های پیشرفته Crowdin_ +- [سطل‌های محتوا](/contributing/translation-program/content-buckets/)_ – کدام صفحات در هر سطل محتوای ethereum.org گنجانده شده است_ ## ابزارها {#tools} diff --git a/public/content/translations/fa/contributing/translation-program/translators-guide/index.md b/public/content/translations/fa/contributing/translation-program/translators-guide/index.md index 1042919e6da..1c8384ba14e 100644 --- a/public/content/translations/fa/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/fa/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ Crowdin دارای یک ویژگی داخلی است که به مترجمان ه ![مثال link.png](./example-of-link.png) -لینک ها همچنین در متن مبدأ به شکل برچسب ظاهر می شوند (یعنی \<0> \). اگر ماوس را روی برچسب نگه دارید، ویرایشگر محتوای کامل آن را نشان می دهد - گاهی اوقات این برچسب ها نشان دهنده لینک‌ها هستند. +لینک‌ها همچنین در متن مبدأ به شکل برچسب ظاهر می‌شوند (یعنی \<0> \). اگر ماوس را روی برچسب نگه دارید، ویرایشگر محتوای کامل آن را نشان می دهد - گاهی اوقات این برچسب ها نشان دهنده لینک‌ها هستند. بسیار مهم است که لینک ها را از منبع کپی کنید و ترتیب آنها را تغییر ندهید. @@ -154,7 +154,7 @@ Crowdin دارای یک ویژگی داخلی است که به مترجمان ه متن منبع همچنین حاوی برچسب های کوتاه شده است که فقط حاوی اعداد هستند، به این معنی که عملکرد آنها بلافاصله مشخص نمی شود. می‌توانید ماوس را روی این برچسب‌ها نگه دارید تا ببینید دقیقاً کدام عملکرد را انجام می‌دهند. -در مثال زیر، می‌توانید آیتم های نگه داشتن ماوس را ببینید \<0> برچسب نشان می دهد که نشان دهنده `` است و حاوی یک قطعه کد است، بنابراین محتوای داخل این برچسب ها نباید ترجمه شود. +در مثال زیر، می‌توانید آیتم‌های نگه داشتن ماوس را ببینید \<0> برچسب نشان می دهد که نشان دهنده `` است و حاوی یک قطعه کد است، بنابراین محتوای داخل این برچسب ها نباید ترجمه شود. ![نمونه ای از تگ‌های مبهم.png](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/fa/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/fa/guides/how-to-create-an-ethereum-account/index.md index fd82213725d..4b23e889a86 100644 --- a/public/content/translations/fa/guides/how-to-create-an-ethereum-account/index.md +++ b/public/content/translations/fa/guides/how-to-create-an-ethereum-account/index.md @@ -6,21 +6,22 @@ lang: fa # چگونگی «ساخت» یک حساب اتریوم -همه هر لحظه می‌توانند به طور رایگان یک حساب اتریوم بسازند. اگرچه مسیرهای متعددی وجود دارد اما ساده‌ترین و معمول‌ترین روش، استفاده از اپلیکیشنی است که تحت عنوان کیف پول شناخته می‌شود. کیف پول‌ها کلیدها را تولید کرده و از آنها محافظت می‌کنند تا بتوانید از اتریوم استفاده کنید. می‌توانید از کیف پول خود برای ارسال تراکنش‌ها، بررسی موجودی توکن‌های خود و اتصال به برنامه‌های مبتنی بر اتریوم، مثل مراکز تبادل توکن، بازی‌ها، بازارهای NFT و غیره استفاده کنید. برخی از اپلیکیشن‌های "web2" هم اکنون به شما اجازه وارد شدن با اتریوم را هم می دهند. +**هر کس می‌تواند یک حساب اتریوم به صورت رایگان ایجاد کند.** فقط باید یک برنامه کیف‌پول رمزارزی نصب کنید. کیف‌پول‌ها حساب اتریوم شما را ایجاد و مدیریت می‌کنند. آنها می‌توانند تراکنش‌ها را ارسال کنند، موجودی‌های شما را بررسی کنند، و شما را به سایر برنامه‌های ساخته شده بر روی اتریوم متصل کنند. -بر خلاف روند افتتاح حساب در یک شرکت، ساخت حساب در اتریوم رایگان و محرمانه است و نیازی به دریافت مجوز ندارد. حساب‌ها به واسطه کلیدهایی که نرم‌افزار کیف پول شما برایتان ایجاد می‌کند کنترل می‌شوند. کلیدها نه توسط یک نفر سوم ایجاد می‌شود و نه در هیچ سازمان متمرکزی ذخیره می‌شوند. +با یک کیف‌پول می‌توانید فوراً وارد هر صرافی، بازی، و بازار [NFT](/glossary/#nft) شوید. نیازی به ثبت‌نام جداگانه نیست، یک حساب برای همه برنامه‌های ساخته شده بر روی اتریوم به اشتراک گذاشته می‌شود. ## قدم اول: یک کیف پول انتخاب کنید -کیف پول اپلیکیشنی است که به شما کمک می کند حساب اتریوم خود را مدیریت کنید. از کلیدهای شما برای ارسال و دریافت تراکنش ها و ورود به اپلیکیشن‌ها استفاده می کند. ده‌ها کیف پول مختلف وجود دارند که می‌توانید آن‌ها را انتخاب کنید، از جمله افزونه‌های موبایل، دسکتاپ یا حتی مرورگر. +کیف پول اپلیکیشنی است که به شما کمک می کند حساب اتریوم خود را مدیریت کنید. ده‌ها کیف‌پول مختلف برای انتخاب وجود دارد: موبایل، دسکتاپ یا حتی افزونه‌های مرورگر. + - یافتن یک کیف پول + لیست کیف پول ها اگر تازه‌کار هستید، می‌توانید فیلتر «New to crypto» را در صفحه «یافتن کیف پول» انتخاب کنید تا کیف‌هایی را که باید شامل همه ویژگی‌های لازم برای مبتدیان باشند، شناسایی کنید. -![انتخاب فیلتر در صفحه 'انتخاب یک کیف پول'](./wallet-box.png) +![انتخاب فیلتر در صفحه «یافتن کیف‌پول»](./wallet-box.png) همچنین سایر فیلترهای پروفایل برای رفع نیازهای شما وجود دارد. اینها نمونه هایی از کیف پول‌های رایج هستند - قبل از اعتماد به هر نرم‌افزار باید تحقیق خود را انجام دهید. @@ -28,45 +29,45 @@ lang: fa هنگامی که تصمیم گرفتید یک کیف پول خاص را انتخاب کنید، به وب سایت رسمی آن یا app store مراجعه کنید، آن را دانلود و نصب کنید. همه آن‌ها باید رایگان باشند. -## مرحله 3: اپلیکیشن را باز کنید و حساب اتریوم خود را ایجاد یا وارد کنید +## مرحله سوم: برنامه را باز کنید و حساب اتریوم خود را بسازید -اولین باری که کیف پول جدید خود را باز می‌کنید ممکن است از شما خواسته شود بین ایجاد یک حساب جدید یا وارد کردن یک حساب موجود یکی را انتخاب کنید. روی ساخت حساب جدید کلیک کنید. +اولین باری که کیف پول جدید خود را باز می‌کنید ممکن است از شما خواسته شود بین ایجاد یک حساب جدید یا وارد کردن یک حساب موجود یکی را انتخاب کنید. روی ساخت حساب جدید کلیک کنید. **این مرحله‌ای است که طی آن نرم‌افزار کیف‌پول حساب اتریوم شما را تولید می‌کند.** ## مرحله 4: عبارت بازیابی خود را ذخیره کنید -برخی از اپلیکیشن‌ها از شما می‌خواهند یک «عبارت بذر» مخفی را ذخیره کنید (همچنین ممکن است این عبارت را به عنوان «عبارت بازیابی» یا «mnemonic» ببینید). ایمن نگه داشتن این "عبارت بذر" بسیار مهم است! عبارت بذر به منظور تولید یک کلید محرمانه برای یک حساب استفاده می‌شود که می تواند برای ورود و ارسال تراکنش‌ها استفاده شود. هر فردی که عبارت بذر را بداند می تواند کنترل تمام حساب های ایجاد شده توسط آن را در دست بگیرد. هرگز عبارت بذر خود را با کسی به‌ اشتراک نگذارید. عبارت بذر باید شامل 12 الی 24 کلمه تصادفی باشد (ترتیب کلمه ها اهمیت دارد). - -هنگامی که عبارت بذر خود را ذخیره کردید باید بتوانید به پنل کاربری کیف پول و موجودی خود دسترسی داشته باشید. نگاهی به راهنمای ما بیندازید:[چگونه از یک کیف پول استفاده کنید.](/guides/how-to-use-a-wallet) +برخی از برنامه‌ها از شما درخواست می‌کنند که یک "عبارت بازیابی" مخفی را ذخیره کنید (که گاهی اوقات "عبارت بذر" یا "مانمونیک" نامیده می‌شوند). ایمن نگه داشتن این عبارت بسیار مهم است! از آن بذر برای ایجاد حساب اتریوم شما استفاده می‌شود و می توان از آن برای ارسال تراکنش ها استفاده کرد. -
+**هر فرد که از این عبارات آگاه است می‌تواند کنترل همه سرمایه‌ها را در دست بگیرد.** هرگز آن را با کسی به اشتراک نگذارید. این عبارت باید شامل 12 تا 24 کلمه باشد که به‌طور تصادفی تولید شده باشند (ترتیب کلمات مهم است). +
-
می‌خواهید بیشتر بدانید؟
- - راهنماهای دیگر ما را ببینید +
کیف‌پول نصب شد؟
نحوه استفاده اینجاست.
+ + چگونگی استفاده از کیف‌پول
+
+ +به راهنماهای دیگر علاقه‌مندید؟ [راهنماهای گام‌به‌گام](/guides/) ما را بررسی کنید ## پرسش‌های متداول ### آیا کیف پول و حساب اتریوم من یکی هستند؟ -خیر. کیف پول یک ابزار مدیریت است که به شما کمک می کند حساب‌های خود را مدیریت کنید. یک کیف پول ممکن است به چندین حساب دسترسی داشته باشد، و یک حساب می تواند توسط چندین کیف پول مورد دسترسی قرار گیرد. عبارت بذر برای ساختن حساب ها استفاده می شود که سپس بوسیله کیف پول کنترل می شوند. - -شما می توانید حساب ها را به عنوان برگ‌های درخت در نظر بگیرید که همه از یک عبارت بذر یکسان «رشد» می‌کنند. هر بذر منحصر یه فرد، درخت کاملا متفاوتی از حساب ها را می‌سازد. +خیر. کیف پول یک ابزار مدیریت است که به شما کمک می کند حساب‌های خود را مدیریت کنید. یک کیف‌پول ممکن است به چندین حساب دسترسی داشته باشد و یک حسابِ تنها، توسط چندین کیف‌پول قابل دسترسی است. عبارت بازیابی برای ایجاد حساب‌ها استفاده می‌شود و به یک برنامه کیف‌پول اجازه می‌دهد تا دارایی‌ها را مدیریت کند. ### آیا میتوانم بیتکوین به یک آدرس اتریوم و یا اتر به یک آدرس بیتکوین ارسال کنیم؟ -خیر، نمی‌توانید. بیتکوین و اتر در دو شبکه متفاوت (یعنی بلاک‌چین‌های متفاوت) وجود دارند، هر کدام از آنها مدل‌های حسابرسی و فرمت آدرس منحصر به خود را دارند. تلاش های مختلفی برای پل زدن بین این دو شبکه وجود داشته است که فعال‌ترین آنها در حال حاضر [رپد بیتکوین یا WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/) است. این به معنی تایید WBTC نیست، چون توکن WBTC از طریق یک راه‌کار سرپرستی است (به این معنی که یک گروه از افراد کنترل توابع حیاتی خاص را دارند) و اینجا تنها برای اطلاع‌رسانی از آن یاد شده است. +خیر، نمی‌توانید. بیت‌کوین و اتر در دو شبکه مجزا (یعنی بلاکچین های مختلف) وجود دارند که هر کدام دارای فرمت‌های حسابداری و آدرس مختص خود هستند. تلاش‌های مختلف برای ایجاد پل ارتباطی بین دو شبکه مختلف صورت گرفته است که فعال‌ترین آنها در حال حاضر[ رپد بیتکوین یا WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/) است. این به معنی تایید WBTC نیست، چون توکن WBTC از طریق یک راه‌کار سرپرستی است (به این معنی که یک گروه از افراد کنترل توابع حیاتی خاص را دارند) و اینجا تنها برای اطلاع‌رسانی از آن یاد شده است. ### اگر من صاحب یک آدرس اتریوم باشم، صاحب همان آدرس روی سایر بلاک‌چین‌ها نیز هستم؟ -می‌توانید در تمام بلاک‌چین‌هایی که از زیرساخت نرم‌افزاری یکسان با اتریوم (به عنوان زنجیره سازگار با EVM شناخته می شوند) استفاده می‌کنند از آدرس اتریومی خود استفاده کنید. این [لیست](https://chainlist.org/) بلاک‌چین‌هایی را که در آن می‌توانید از آدرس یکسان استفاده کنید نمایش میدهد. بعضی بلاک‌چین‌ها، مثل بیتکوین، قوانین شبکه کاملا متفاوتی اجرا می‌کنند و برای استفاده از آن شبکه به آدرس متفاوت با فرمت متفاوت احتیاج است. اگر از یک کیف پول مبتنی بر قرارداد هوشند استفاده می‌کنید، باید وب‌سایت ارائه دهنده خدمات را برای کسب اطلاعات درباره بلاک‌چین‌های مورد پشتیبانی بررسی کنید. +می‌توانید از یک [آدرس](/glossary/#address) در همه بلاک‌چین‌هایی که از نرم‌افزار زیربنایی مشابه اتریوم (معروف به «سازگار با EVM») استفاده می‌کنند، استفاده کنید. این [لیست](https://chainlist.org/) بلاک‌چین‌هایی را که در آن می‌توانید از آدرس یکسان استفاده کنید نمایش میدهد. بعضی بلاک‌چین‌ها، مثل بیتکوین، قوانین شبکه کاملا متفاوتی اجرا می‌کنند و برای استفاده از آن شبکه به آدرس متفاوت با فرمت متفاوت احتیاج است. اگر یک کیف پول قرارداد هوشمند دارید، باید وب سایت محصول آن را برای اطلاعات بیشتر در مورد اینکه کدام بلاکچین ها پشتیبانی می‌شوند بررسی کنید، زیرا معمولاً آن ها دامنه محدود اما ایمن‌تری دارند. ### آیا نگهداری دارایی دیجیتال در کیف پول شخصی، ایمن‌تر از نگهداری آن در صرافی است؟ -استفاده از کیف پول شخصی به معنی قبول مسئولیت امنیت دارایی‌هایتان است. متأسفانه مثال‌های زیادی از اتفاقات ناگوار در صرافی‌ها وجود دارند که باعث از دست رفتن سرمایه مشتریان آنها شده‌اند. داشتن یک کیف پول (به همراه عبارت بذر) خطرات مربوط به اعتماد به یک نهاد برای سرپرستی دارایی‌هایتان را از بین می‌برد. با این حال، باید امنیت کلیدهای خود را تامین کنید و از قرار گرفتن در معرض حمله فیشینگ، تایید اتفاقی تراکنش‌ها یا افشای کلیدها، تعامل با وبسایت‌های تقلبی و دیگر ریسک هایی که دارایی‌تان را به خطر می اندازند دوری کنید. ریسک ها و فواید متفاوتند. +استفاده از کیف پول شخصی به معنی قبول مسئولیت امنیت دارایی‌هایتان است. متأسفانه مثال‌های زیادی از اتفاقات ناگوار در صرافی‌ها وجود دارند که باعث از دست رفتن سرمایه مشتریان آنها شده‌اند. داشتن یک کیف‌پول (با عبارت بازیابی) خطر مربوط به اعتماد به برخی نهادها برای نگهداری دارایی‌های شما را از بین می‌برد. بااین‌حال، خودتان باید آن را ایمن کنید و از کلاهبرداری‌های فیشینگ، تایید تصادفی تراکنش‌ها یا افشای عبارت بازیابی، تعامل با وبسایت های جعلی، و سایر خطرات مربوط به حضانت دارایی خودداری کنید. ریسک ها و فواید متفاوتند. ### اگر گوشی تلفن همراه/کیف پول سخت‌افزاری خودم را گم کنم، لازم است از همان اپلیکیشن کیف پول دیجیتال قبلی برای بازیابی حساب از دست رفته استفاده کنم؟ -خیر، می‌توانید از کیف پول دیگری هم استفاده کنید. مادامی که عبارت بذر خود را داشته باشید می‌توانید با وارد کردن آن در اکثر کیف پول های دیجیتال حساب خود را بازیابی کنید. اگر زمانی خواستید این کار را انجام دهید مراقب باشید: بهتر است مطمئن شوید هنگام بازیابی کیف پول به اینترنت متصل نباشید تا از نشت اتفاقی عبارت بذر در اینترنت جلوگیری کنید. معمولا بازیابی دارایی‌های از دست رفته بدون داشتن عبارت بذر غیرممکن است. +خیر، می‌توانید از کیف پول دیگری هم استفاده کنید. مادامی که عبارت بذر خود را داشته باشید می‌توانید با وارد کردن آن در اکثر کیف پول های دیجیتال حساب خود را بازیابی کنید. اگر زمانی خواستید این کار را انجام دهید مراقب باشید: بهتر است مطمئن شوید هنگام بازیابی کیف پول به اینترنت متصل نباشید تا از نشت اتفاقی عبارت بذر در اینترنت جلوگیری کنید. غالباً بازیابی وجوه از دست رفته بدون داشتن عبارات بازیابی غیرممکن است. diff --git a/public/content/translations/fr/bridges/index.md b/public/content/translations/fr/bridges/index.md index 5d13cf4b8fc..efad310fea1 100644 --- a/public/content/translations/fr/bridges/index.md +++ b/public/content/translations/fr/bridges/index.md @@ -24,7 +24,7 @@ Mais, que feriez-vous si vous vouliez faire le même échange pour utiliser une Toutes les blockchains ont leurs limites. Pour qu'Ethereum puisse évoluer et répondre à la demande, il a fallu procéder à des [rollups](/glossary/#rollups). Alternativement, des L1 comme Solana ou Avalanche sont conçues différemment pour permettre un débit plus élevé mais au prix de la décentralisation. -Toutes les blockchains se développent néanmoins dans des environnements isolés et ont cependant des règles et des mécanismes de [consensus](/glossary/#consensus) différents. Cela signifie qu'elles ne peuvent pas communiquer de manière native et que les jetons ne peuvent pas circuler librement entre les blockchains. +Cependant, toutes les blockchains se développent dans des environnements isolés et possèdent des règles et des mécanismes de [consensus](/glossary/#consensus) différents. Cela signifie qu'elles ne peuvent pas communiquer de manière native et que les jetons ne peuvent pas circuler librement entre les blockchains. Les ponts existent pour connecter les blockchains, permettant le transfert d'informations et de jetons entre elles. @@ -65,7 +65,7 @@ Disons que vous voulez posséder des bitcoins (BTC) natifs, mais que vous n'avez -## Type de pont {#types-of-bridge} +## Types de ponts {#types-of-bridge} Les ponts présentent de nombreux types de conceptions et de subtilités. En général, les ponts se divisent en deux catégories : les ponts sans risque et les ponts risqués. @@ -131,7 +131,9 @@ Les ponts sont essentiels pour l'accueil des utilisateurs sur les L2 d'Ethereum, ## En savoir plus {#further-reading} +- [EIP-5164: Exécution Cross-Chain](https://ethereum-magicians.org/t/eip-5164-cross-chain-execution/9658) - _18 juin 2022 - Brendan Asselstine_ +- [L2Bridge Risk Framework](https://gov.l2beat.com/t/l2bridge-risk-framework/31) - _5 juillet 2022 - Bartek Kiepuszewski_ +- [Pourquoi l'avenir sera multi-chaînes, mais ne sera pas cross-chaînes."](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) - _8 janvier 2022 - Vitalik Buterin_ +- [Exploiter la sécurité partagée pour une interopérabilité cross-chain sécurisée : Comités d'état Lagrange et au-delà](https://research.2077.xyz/harnessing-shared-security-for-secure-blockchain-interoperability) - _12 juin 2024 - Emmanuel Awosika_ +- [L'état des solutions d'interopérabilité des rollups](https://research.2077.xyz/the-state-of-rollup-interoperability) - _20 juin 2024 - Alex Hook_ -- [EIP-5164 : Exécution en chaines croisées](https://ethereum-magicians.org/t/eip-5164-cross-chain-execution/9658) _18 juin 2022 - Brendan Asselstine_ -- [L2Bridge Risk Framework](https://gov.l2beat.com/t/l2bridge-risk-framework/31) _5 juillet 2022 - Bartek Kiepuszewski_ -- ["Pourquoi le futur sera multi-chaîne, mais ne sera pas celui des chaînes croisées.](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) _8 janvier 2022 - Vitalik Buterin_ diff --git a/public/content/translations/fr/community/events/index.md b/public/content/translations/fr/community/events/index.md index e149ee771b1..eb72a63ecf2 100644 --- a/public/content/translations/fr/community/events/index.md +++ b/public/content/translations/fr/community/events/index.md @@ -13,12 +13,14 @@ hideEditButton: true Ceci est une liste non exhaustive maintenue par notre communauté. Connaissez-vous un événement Ethereum à venir à ajouter à cette liste ? [Veuillez l'ajouter](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json) ! + + ## Rencontres Ethereum {#meetups} -Vous ne voyez pas d'événement qui vous convient ? Essayez de rejoindre une rencontre. Les rencontres sont de petits événements organisés par des groupes de passionnés d'Ethereum - une chance pour les personnes intéressées par Ethereum de se rencontrer, parlez d'Ethereum, et apprenez-en plus sur les développements récents. +Vous ne voyez pas d'événement qui vous convient ? Essayez de rejoindre une rencontre. Les rencontres sont de petits événements organisés par des groupes de passionnés d'Ethereum - une chance pour les personnes intéressées par Ethereum de se rencontrer, de parler d'Ethereum, et d'en savoir plus sur les développements récents. -Intéressé à créer votre propre rencontre ? Découvrez le [BUIDL Network](https://consensys.net/developers/buidlnetwork/), une initiative de ConsenSys pour aider à soutenir les communautés de rencontre d'Ethereum. +Vous souhaitez créer votre propre rencontre ? Découvrez le [BUIDL Network](https://consensys.net/developers/buidlnetwork/), une initiative de ConsenSys pour aider à soutenir les communautés de rencontre d'Ethereum. -Ceci est une liste non exhaustive construite par notre communauté. Vous pouvez [trouver plus de rencontres Ethereum ici](https://www.meetup.com/topics/ethereum/). Vous connaissez un groupe de rencontre actif à ajouter à cette liste ? [Veuillez l'ajouter](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json) ! +Ceci est une liste non exhaustive construite par notre communauté. Vous pouvez [trouver plus de rencontres Ethereum ici](https://www.meetup.com/topics/ethereum/). Vous connaissez un groupe de rencontre actif à ajouter à cette liste ? [N'hésitez pas à l'ajouter](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json) ! diff --git a/public/content/translations/fr/community/online/index.md b/public/content/translations/fr/community/online/index.md index 27a544ca3f0..9da12bb0723 100644 --- a/public/content/translations/fr/community/online/index.md +++ b/public/content/translations/fr/community/online/index.md @@ -55,13 +55,14 @@ Si vous pensez qu'une communauté devrait être ajoutée ou supprimée selon ces Solidity Gitter - forum de discussion pour le développement Solidity (Gitter) Solidity Matrix - forum de discussion pour le développement Solidity (Matrix) Ethereum Stack Exchange *- forum de questions-réponses* -Peeranha *- forum de questions-réponses décentralisé* +Forum communautaire Peera *- forum décentralisé de questions-réponses* -## YouTube et Twitter {#youtube-and-twitter} +## YouTube et X (anciennement Twitter) {#youtube-and-twitter} Ethereum Foundation - Tenez-vous au courant des dernières nouvelles de la fondation Ethereum -@ethereum - Compte officiel de la Fondation Ethereum -@ethdotorg - Le portail vers Ethereum, construit pour notre communauté mondiale grandissante +@ethereum - Compte principal Ethereum pour la communauté +@ethereumfndn - Compte officiel de la Fondation Ethereum +@ethdotorg - Le portail vers Ethereum, construit pour notre communauté mondiale grandissante Liste des comptes Twitter Ethereum influents diff --git a/public/content/translations/fr/community/research/index.md b/public/content/translations/fr/community/research/index.md index 682f4768c89..2a5f22b255d 100644 --- a/public/content/translations/fr/community/research/index.md +++ b/public/content/translations/fr/community/research/index.md @@ -358,7 +358,7 @@ Les outils destinés aux développeurs Ethereum s'améliorent rapidement. Il res ### Oracles {#oracles} -Les oracles importent des données hors chaîne sur la blockchain de manière décentralisée et sans autorisation. L'obtention de ces données sur la chaîne permet aux DApps d'être réactives aux phénomènes du monde réel, tels que les fluctuations de prix des actifs réels, les événements dans les applications hors chaîne, ou même les changements météorologiques. +Les oracles importent des données hors chaîne sur la blockchain de manière décentralisée et sans autorisation. L'obtention de ces données sur la chaîne permet aux Dapps d'être réactives aux phénomènes du monde réel, tels que les fluctuations de prix des actifs réels, les événements dans les applications hors chaîne, ou même les changements météorologiques. #### Lectures de référence {#background-reading-18} diff --git a/public/content/translations/fr/contributing/index.md b/public/content/translations/fr/contributing/index.md index a6e77482538..d86c093b624 100644 --- a/public/content/translations/fr/contributing/index.md +++ b/public/content/translations/fr/contributing/index.md @@ -25,7 +25,6 @@ Nous sommes une communauté accueillante qui vous aidera à grandir et à vous f - [Créer/modifier du contenu](/contributing/#how-to-update-content) – Proposez de nouvelles pages ou des modifications de ce qui existe déjà - [Ajouter un article pour la communauté](/contributing/content-resources/) – Ajoutez un article utile à une page pertinente - [Suggérer une ressource de design](/contributing/design/adding-design-resources/) - Ajoutez, mettez à jour et supprimez des ressources de design utiles -- [Ajouter un terme au glossaire](/contributing/adding-glossary-terms/) – Aidez-nous à poursuivre le développement du [glossaire](/glossary/) Ethereum - [Quiz](/contributing/quizzes/) - Ajoutez, mettez à jour et supprimez des questions de quiz sur une page pertinente **Idées de fonctionnalités** @@ -90,7 +89,7 @@ Sur notre dépôt GitHub, nous avons des questions à faible barrière d'entrée Si votre contribution est intégrée à ethereum.org, vous aurez la possibilité de recevoir un badge spécial sur [Galxe](https://app.galxe.com/quest/ethereumorg). Un Onchain Achievement Token (OAT) est la preuve que vous avez contribué à rendre l'écosystème un peu plus incroyable. -[En savoir plus sur les OAT](https://help.galxe.com/en/articles/7067290-galxe-oats-reward-and-celebrate-achievements) +[En savoir plus sur les OAT](https://help.galxe.com/en/articles/9645630-create-quest-rewards#h_1c5d63ba03) ### Comment le récupérer 1. Rejoignez notre [serveur Discord](https://discord.gg/ethereum-org). diff --git a/public/content/translations/fr/contributing/quizzes/index.md b/public/content/translations/fr/contributing/quizzes/index.md index 837c2e15c75..adaf15f8b4d 100644 --- a/public/content/translations/fr/contributing/quizzes/index.md +++ b/public/content/translations/fr/contributing/quizzes/index.md @@ -12,7 +12,7 @@ Les questions sont structurées comme suit. La question invite à donner 1 répo Vous trouverez ici quelques exemples de quiz actuels : -- [Niveau 2](/layer-2) +- [Couche 2](/layer-2) - [NFT](/nft/) - [Qu'est-ce qu'Ethereum ?](/what-is-ethereum/) - [Qu'est-ce que l'ETH ?](/eth/) diff --git a/public/content/translations/fr/contributing/translation-program/how-to-translate/index.md b/public/content/translations/fr/contributing/translation-program/how-to-translate/index.md index 473a2c713aa..c465d38b8ab 100644 --- a/public/content/translations/fr/contributing/translation-program/how-to-translate/index.md +++ b/public/content/translations/fr/contributing/translation-program/how-to-translate/index.md @@ -82,7 +82,7 @@ Une fois que vous avez terminé la traduction (c'est-à-dire que tous les fichie ### Nous contacter {#get-in-touch} -Vous avez d'autres questions ? Ou souhaitez-vous collaborer avec notre équipe et d'autres traducteurs ? Envoyez un message dans le canal #translations sur notre [serveur Discord ethereum.org](/discord/) +Avez-vous d'autres questions ? Ou souhaitez-vous collaborer avec notre équipe et d'autres traducteurs ? Envoyez un message dans le canal #translations sur notre [serveur Discord ethereum.org](/discord/) Vous pouvez également nous contacter à l'adresse translations@ethereum.org diff --git a/public/content/translations/fr/contributing/translation-program/index.md b/public/content/translations/fr/contributing/translation-program/index.md index fe89d2bd969..2aad617a64f 100644 --- a/public/content/translations/fr/contributing/translation-program/index.md +++ b/public/content/translations/fr/contributing/translation-program/index.md @@ -36,9 +36,9 @@ En savoir plus sur [la mission et la vision](/contributing/translation-program/m ### Les progrès réalisés jusqu'à présent {#our-progress} -- [**Plus de 6 000** traducteurs](/contributing/translation-program/contributors/) -- **62** langues en direct sur le site -- [**3 millions** de mots traduits en 2023](/contributing/translation-program/acknowledgements/) +- [**plus de 6900** traducteurs](/contributing/translation-program/contributors/) +- **68** langues présentes sur le site +- [**2,89 millions** de mots traduits en 2024](/contributing/translation-program/acknowledgements/) diff --git a/public/content/translations/fr/contributing/translation-program/translators-guide/index.md b/public/content/translations/fr/contributing/translation-program/translators-guide/index.md index f61b9f09706..bcb331c2aca 100644 --- a/public/content/translations/fr/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/fr/contributing/translation-program/translators-guide/index.md @@ -116,7 +116,7 @@ La meilleure façon de gérer les liens est de les copier directement à partir ![Exemple de lien.png](./example-of-link.png) -Les liens apparaissent également dans le texte source sous la forme de balises (c'est-à-dire `<0> `). Si vous survolez la balise, l'éditeur affichera son véritable contenu. Parfois, ces balises désigneront des liens. +Les liens apparaissent également dans le texte source sous la forme de balises (c'est-à-dire `<0> `). Si vous survolez la balise, l'éditeur affichera son véritable contenu. Parfois, ces balises désigneront des liens. Il est très important de copier les liens depuis le texte source et de ne pas modifier l'ordre des balises. diff --git a/public/content/translations/fr/dao/index.md b/public/content/translations/fr/dao/index.md index 7b566bf3444..cf3b0387e44 100644 --- a/public/content/translations/fr/dao/index.md +++ b/public/content/translations/fr/dao/index.md @@ -19,7 +19,7 @@ Une DAO est une organisation collectivement détenue et qui travaille à une mis Les DAO nous permettent de travailler avec des personnes partageant le même état d'esprit et dans le monde entier, sans pour autant faire confiance à un dirigeant bienveillant pour gérer les fonds ou les opérations. Il n'y a pas de Directeur Général qui puisse dépenser des fonds sur un caprice ou un Chef de la direction financière capable de manipuler les registres. Au lieu de cela, les règles basées sur la blockchain ont été intégrées dans le code et définissent comment fonctionne l'organisation et comment les fonds sont dépensés. -Elles possèdent une trésorerie intégrée à laquelle personne ne peut accéder sans l'accord du groupe. Les décisions sont régies par des propositions et des votes pour s'assurer que tout le monde au sein de l'organisation a une voix et que tout se passe de manière transparente [sur la chaîne](/glossary/#on-chain). +Elles possèdent une trésorerie intégrée à laquelle personne ne peut accéder sans l'accord du groupe. Les décisions sont régies par des propositions et des votes pour s'assurer que tout le monde au sein de l'organisation puisse s'exprimer et que tout se passe de manière transparente [onchain](/glossary/#onchain). ## Pourquoi avons-nous besoin des DAO ? {#why-dao} diff --git a/public/content/translations/fr/developers/docs/bridges/index.md b/public/content/translations/fr/developers/docs/bridges/index.md index 9c187370754..7cd562fba03 100644 --- a/public/content/translations/fr/developers/docs/bridges/index.md +++ b/public/content/translations/fr/developers/docs/bridges/index.md @@ -121,12 +121,14 @@ Pour surveiller l'activité des contrats dans les chaînes, les développeurs pe - [Tenderly](https://tenderly.co/) ## Complément d'information {#further-reading} - - [Blockchain Bridges](/bridges/) – ethereum.org -- [Blockchain Bridges: Building Networks of Cryptonetworks](https://medium.com/1kxnetwork/blockchain-bridges-5db6afac44f8) Sep 8, 2021 – Dmitriy Berenzon -- [The Interoperability Trilemma](https://blog.connext.network/the-interoperability-trilemma-657c2cf69f17) Oct 1, 2021 – Arjun Bhuptani -- [Clusters: How Trusted & Trust-Minimized Bridges Shape the Multi-Chain Landscape](https://blog.celestia.org/clusters/) Oct 4, 2021 – Mustafa Al-Bassam -- [LI.FI: With Bridges, Trust is a Spectrum](https://blog.li.fi/li-fi-with-bridges-trust-is-a-spectrum-354cd5a1a6d8) Apr 28, 2022 – Arjun Chand +- [Cadre d’évaluation des risques des ponts de L2Beat](https://l2beat.com/bridges/summary) +- [Ponts Blockchain : Construire des réseaux de crypto-réseaux](https://medium.com/1kxnetwork/blockchain-bridges-5db6afac44f8) - 8 septembre 2021– Dmitriy Berenzon +- [Le Trilemme d'interopérabilité](https://blog.connext.network/the-interoperability-trilemma-657c2cf69f17) - 1er octobre 2021 – Arjun Bhuptani +- [Clusters : comment les ponts de confiance et les ponts à confiance minimisée façonnent le paysage multi-chaîne](https://blog.celestia.org/clusters/) – 4 octobre 2021 – Mustafa Al-Bassam +- [LI.FI : Avec les ponts, la confiance est un spectre](https://blog.li.fi/li-fi-with-bridges-trust-is-a-spectrum-354cd5a1a6d8) – 28 avril 2022 – Arjun Chand +- [L'état des solutions d'interopérabilité des rollups](https://research.2077.xyz/the-state-of-rollup-interoperability) - 20 juin 2024 – Alex Hook +- [Exploiter la sécurité partagée pour une interopérabilité cross-chain sécurisée : comités d'état Lagrange et au-delà](https://research.2077.xyz/harnessing-shared-security-for-secure-blockchain-interoperability) - 12 juin 2024 – Emmanuel Awosika En outre, voici quelques présentations perspicaces de [James Prestwich](https://twitter.com/_prestwich) qui peuvent aider à développer une compréhension plus approfondie des ponts : diff --git a/public/content/translations/fr/developers/docs/data-availability/index.md b/public/content/translations/fr/developers/docs/data-availability/index.md index 38a692f76c4..8196536c2dc 100644 --- a/public/content/translations/fr/developers/docs/data-availability/index.md +++ b/public/content/translations/fr/developers/docs/data-availability/index.md @@ -6,7 +6,7 @@ lang: fr « Ne pas faire confiance, vérifier » est une maxime courante dans Ethereum. L'idée est que votre nœud peut vérifier de façon indépendante que les informations qu'il reçoit sont correctes en exécutant toutes les transactions dans les blocs qu'il reçoit de ses pairs pour s'assurer que les changements proposés correspondent exactement à ceux calculés indépendamment par le noeud. Cela signifie que les nœuds n'ont pas à croire que les expéditeurs du bloc sont honnêtes. Ce n'est pas possible si les données sont manquantes. -**La disponibilité des données** fait référence à la confiance qu'un utilisateur peut avoir que les données requises pour vérifier qu'un bloc est vraiment disponible pour tous les participants au réseau. Pour les nœuds complets de la couche Ethereum 1, c'est relativement simple ; le noeud complet télécharge une copie de toutes les données dans chaque bloc - les données _doivent être disponibles_ pour que le téléchargement soit possible. Un bloc avec des données manquantes serait jeté plutôt que d'être ajouté à la blockchain. Ceci est « sur la disponibilité des données en chaîne » et c'est une caractéristique des blockchains monolithiques. Les nœuds complets ne peuvent pas être amenés à accepter des transactions invalides car ils téléchargent et exécutent chaque transaction pour eux-mêmes. Cependant, pour les blockchains modulaires, les rollups de la couche 2 et les clients légers, le paysage de disponibilité des données est plus complexe, nécessitant des procédures de vérification plus sophistiquées. +**La disponibilité des données** fait référence à la confiance qu'un utilisateur peut avoir que les données requises pour vérifier qu'un bloc est vraiment disponible pour tous les participants au réseau. Pour les nœuds complets de la couche Ethereum 1, c'est relativement simple ; le noeud complet télécharge une copie de toutes les données dans chaque bloc - les données _doivent être disponibles_ pour que le téléchargement soit possible. Un bloc avec des données manquantes serait jeté plutôt que d'être ajouté à la blockchain. Il s'agit de la « disponibilité des données sur la chaîne » et c'est une caractéristique des blockchains monolithiques. Les nœuds complets ne peuvent pas être amenés à accepter des transactions invalides car ils téléchargent et exécutent chaque transaction pour eux-mêmes. Cependant, pour les blockchains modulaires, les rollups de la couche 2 et les clients légers, le paysage de disponibilité des données est plus complexe, nécessitant des procédures de vérification plus sophistiquées. ## Prérequis {#prerequisites} @@ -32,7 +32,7 @@ DAS sera employé pour permettre aux opérateurs de rollup de rendre leurs donn Les comités de disponibilité des données (DAC) sont des tiers de confiance qui fournissent ou attestent de la disponibilité des données. Les DAC peuvent être utilisés à la place de, [ou en combinaison avec](https://hackmd.io/@vbuterin/sharding_proposal#Why-not-use-just-committees-and-not-DAS) DAS. Les garanties données par les comités en matière de sécurité, relèvent de leur mise en place spécifique. Ethereum utilise des échantillons aléatoires de sous-ensembles de validateurs pour attester de la disponibilité des données pour les nœuds légers, par exemple. -Les DAC sont également utilisés par certains validiums. Le DAC est un ensemble de noeuds de confiance qui stocke des copies de données hors ligne. Le DAC est nécessaire pour la mise à disposition des données en cas de litige. Les membres de la DAC délivrent également des attestations en chaîne, attestant ainsi une vraie disponibilité desdites données. Certains Validiums remplacent les DAC par un système de validation par preuve d'enjeu (PoS). Ici, tout le monde peut devenir un validateur et stocker des données hors chaîne. Cependant, ils doivent fournir une « obligation », qui est déposée dans un contrat intelligent. En cas d'intention malveillante, telle que la retenue des données du validateur, cet accord pourrait être résilié. Les comités de disponibilité des données basée sur la preuve d'enjeu sont bien plus sécuritaires que les DAC régulières, car ils encouragent directement les comportements honnêtes. +Les DAC sont également utilisés par certains validiums. Le DAC est un ensemble de noeuds de confiance qui stocke des copies de données hors ligne. Le DAC est nécessaire pour la mise à disposition des données en cas de litige. Les membres de la DAC publient également des attestations en chaîne pour prouver que les données en question sont effectivement disponibles. Certains Validiums remplacent les DAC par un système de validation par preuve d'enjeu (PoS). Ici, tout le monde peut devenir un validateur et stocker des données hors chaîne. Cependant, ils doivent fournir une « obligation », qui est déposée dans un contrat intelligent. En cas d'intention malveillante, telle que la retenue des données du validateur, cet accord pourrait être résilié. Les comités de disponibilité des données basée sur la preuve d'enjeu sont bien plus sécuritaires que les DAC régulières, car ils encouragent directement les comportements honnêtes. ## Disponibilité des données et nœuds légers {#data-availability-and-light-nodes} @@ -54,9 +54,9 @@ Même dans ce scénario, les attaques qui retiennent seulement quelques octets p ## Disponibilité des données et couche 2 rollups {#data-availability-and-layer-2-rollups} -[Les solutions d'évolutivité de la couche 2](/layer-2/), telles que les [rollups](/glossary/#rollups), réduisent les coûts de transaction et augmentent le débit d'Ethereum par le traitement des transactions hors chaîne. Les transactions de rollup sont compressées et publiées par lots sur Ethereum. Les lots représentent des milliers de transactions individuelles hors chaîne dans une seule transaction sur Ethereum. Cela réduit la congestion de la couche de base et réduit les frais pour les utilisateurs. +[Les solutions d'évolutivité de la couche 2](/layer-2/), telles que les [rollups](/glossary/#rollups), réduisent les coûts de transaction et augmentent le débit d'Ethereum en traitant les transactions hors chaîne. Les transactions de rollup sont compressées et publiées par lots sur Ethereum. Les lots représentent des milliers de transactions individuelles hors chaîne en une seule transaction sur Ethereum. Cela réduit la congestion de la couche de base et réduit les frais pour les utilisateurs. -Cependant, il n'est possible de faire confiance aux transactions « résumées » postées sur Ethereum que si le changement d'état proposé peut être vérifié et confirmé indépendamment comme étant le résultat de l'application de toutes les transactions individuelles hors chaîne. Si les opérateurs de rollup ne rendent pas disponibles les données de transaction pour cette vérification, ils pourraient envoyer des données incorrectes à Ethereum. +Cependant, il n'est possible de faire confiance aux transactions « résumées » publiées sur Ethereum que si le changement d'état proposé peut être vérifié indépendamment et confirmé comme étant le résultat de l'application de toutes les transactions individuelles hors chaîne. Si les opérateurs de rollup ne rendent pas disponibles les données de transaction pour cette vérification, ils pourraient envoyer des données incorrectes à Ethereum. [Les rollups optimistes](/developers/docs/scaling/optimistic-rollups/) postent des données de transaction compressées sur Ethereum et attendent un certain temps (typiquement 7 jours) pour permettre aux vérificateurs indépendants de vérifier les données. Si quelqu'un identifie un problème, il peut générer une étanchéité à la fraude et l'utiliser pour défier le rollup. Cela provoquerait l'annulation de la chaîne et l'omission du bloc invalide. Ce n'est pas possible si les données sont manquantes. Actuellement, il existe deux façons pour les rollups optimistes de publier les données de transaction sur la couche de niveau 1. Certains rollups rendent les données disponibles de manière permanente en tant que `CALLDATA`, qui reste en permanence sur la chaîne. Avec l'introduction de l'EIP-4844, certains rollups publient plutôt leurs données de transaction dans un stockage blob moins coûteux. Il ne s'agit pas d'un stockage permanent. Les vérificateurs indépendants doivent interroger les blobs et soulever leurs objections dans un délai d'environ 18 jours avant que les données ne soient supprimées de la couche de niveau 1 d'Ethereum. La disponibilité des données n'est garantie que par le protocole Ethereum pour cette courte fenêtre fixe. Ensuite, cela incombe à d'autres entités de l'écosystème Ethereum. N'importe quel nœud peut vérifier la disponibilité des données en utilisant DAS, c'est-à-dire en téléchargeant de petits échantillons aléatoires des données du blob. @@ -74,11 +74,12 @@ Le protocole Ethereum de base est principalement concerné par la disponibilité - [Le WTF est-il la disponibilité des données ?](https://medium.com/blockchain-capital-blog/wtf-is-data-availability-80c2c95ded0f) - [Qu'est-ce que la disponibilité des données ?](https://coinmarketcap.com/alexandria/article/what-is-data-availability) -- [Le paysage de la disponibilité des données Ethereum hors chaîne](https://blog.celestia.org/ethereum-off-chain-data-availability-landscape/) +- [Le paysage de la disponibilité des données Ethereum hors chaîne](https://blog.celestia.org/ethereum-offchain-data-availability-landscape/) - [Un préfixe sur les vérifications de disponibilité des données](https://dankradfeist.de/ethereum/2019/12/20/data-availability-checks.html) - [Une explication de la proposition de fragmentation + DAS](https://hackmd.io/@vbuterin/sharding_proposal#ELI5-data-availability-sampling) - [Une note sur la disponibilité des données et le codage de l'effacement](https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding#can-an-attacker-not-circumvent-this-scheme-by-releasing-a-full-unavailable-block-but-then-only-releasing-individual-bits-of-data-as-clients-query-for-them) - [Comités de disponibilité des données.](https://medium.com/starkware/data-availability-e5564c416424) - [Comités de disponibilité des données de preuve d'enjeu.](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf) - [Solutions au problème de récupération des données](https://notes.ethereum.org/@vbuterin/data_sharding_roadmap#Who-would-store-historical-data-under-sharding) -- [Disponibilité des données ou : Comment les Rollups ont appris à ne plus s'inquiéter et à aimer Ethereum](https://ethereum2077.substack.com/p/data-availability-in-ethereum-rollups) +- [Disponibilité des données ou : Comment les Rollups ont appris à ne plus s'inquiéter et à aimer Ethereum](https://research.2077.xyz/data-availability-or-how-rollups-learned-to-stop-worrying-and-love-ethereum) +- [EIP-7623 - Augmenter le Coût du Calldata](https://research.2077.xyz/eip-7623-increase-calldata-cost) diff --git a/public/content/translations/fr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/fr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md index 194fc0fab09..4628119a47c 100644 --- a/public/content/translations/fr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md +++ b/public/content/translations/fr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md @@ -34,33 +34,33 @@ Il y a une différence entre rechercher quelque chose dans l'"arbre" et la "base Les opérations de mise à jour et de suppression pour les arbres radix peuvent être définies comme suit : ``` - def update(node,path,value): - curnode = db.get(node) if node else [ NULL ] * 17 + def update(node_hash, path, value): + curnode = db.get(node_hash) if node_hash else [ NULL ] * 17 newnode = curnode.copy() if path == '': newnode[-1] = value else: - newindex = update(curnode[path[0]],path[1:],value) + newindex = update(curnode[path[0]], path[1:], value) newnode[path[0]] = newindex - db.put(hash(newnode),newnode) + db.put(hash(newnode), newnode) return hash(newnode) - def delete(node,path): - if node is NULL: + def delete(node_hash, path): + if node_hash is NULL: return NULL else: - curnode = db.get(node) + curnode = db.get(node_hash) newnode = curnode.copy() if path == '': newnode[-1] = NULL else: - newindex = delete(curnode[path[0]],path[1:]) + newindex = delete(curnode[path[0]], path[1:]) newnode[path[0]] = newindex if all(x is NULL for x in newnode): return NULL else: - db.put(hash(newnode),newnode) + db.put(hash(newnode), newnode) return hash(newnode) ``` @@ -137,10 +137,10 @@ Exemples : Voici le code étendu pour obtenir un nœud dans l'arbre de Merkle Patricia : ``` - def get_helper(node,path): - if path == []: return node - if node = '': return '' - curnode = rlp.decode(node if len(node) < 32 else db.get(node)) + def get_helper(node_hash,path): + if path == []: return node_hash + if node_hash == '': return '' + curnode = rlp.decode(node_hash if len(node_hash) < 32 else db.get(node_hash)) if len(curnode) == 2: (k2, v2) = curnode k2 = compact_decode(k2) @@ -151,13 +151,13 @@ Voici le code étendu pour obtenir un nœud dans l'arbre de Merkle Patricia : elif len(curnode) == 17: return get_helper(curnode[path[0]],path[1:]) - def get(node,path): + def get(node_hash,path): path2 = [] for i in range(len(path)): path2.push(int(ord(path[i]) / 16)) path2.push(ord(path[i]) % 16) path2.push(16) - return get_helper(node,path2) + return get_helper(node_hash,path2) ``` ### Exemple d'arbre {#example-trie} diff --git a/public/content/translations/fr/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/translations/fr/developers/docs/data-structures-and-encoding/rlp/index.md index 13a535d2a20..863e915fb81 100644 --- a/public/content/translations/fr/developers/docs/data-structures-and-encoding/rlp/index.md +++ b/public/content/translations/fr/developers/docs/data-structures-and-encoding/rlp/index.md @@ -80,7 +80,7 @@ def to_binary(x): - l'octet '\\x00' = `[ 0x00 ]` - l'octet '\\x0f' = `[ 0x0f ]` - les octets '\\x04\\x00' = `[ 0x82, 0x04, 0x00 ]` -- la [représentation théorique en théorie des ensembles](https://fr.wikipedia.org/wiki/Construction_des_entiers_naturels) de trois, `[ [], [[]], [ [], [[]] ] ] = [ 0xc7, 0xc0, 0xc1, 0xc0, 0xc3, 0xc0, 0xc1, 0xc0 ]` +- la [représentation théorique en théorie des ensembles](https://fr.wikipedia.org/wiki/Construction_des_entiers_naturels) de trois, `[ [], [[]], [ [], [[]] ] ] = [ 0xc7, 0xc0, 0xc1, 0xc0, 0xc3, 0xc0, 0xc0, 0xc1, 0xc0 ]` - la chaîne de caractères "Lorem ipsum dolor sit amet, consectetur adipisicing elit" = `[ 0xb8, 0x38, 'L', 'o', 'r', 'e', 'm', ' ', ... , 'e', 'l', 'i', 't' ]` ## Décodage RLP {#rlp-decoding} diff --git a/public/content/translations/fr/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/fr/developers/docs/data-structures-and-encoding/ssz/index.md index 4f4b756bb23..c201445cd9c 100644 --- a/public/content/translations/fr/developers/docs/data-structures-and-encoding/ssz/index.md +++ b/public/content/translations/fr/developers/docs/data-structures-and-encoding/ssz/index.md @@ -5,7 +5,7 @@ lang: fr sidebarDepth: 2 --- -**Simple serialize (SSZ)** est la méthode de sérialisation utilisée sur la chaîne phare. Elle remplace la sérialisation RLP utilisée sur la couche d'exécution dans toute la couche de consensus, à l'exception du protocole de découverte des pairs. SSZ est conçu pour être déterministe et pour effectuer un Merkleize efficace. On peut imaginer SSZ comme ayant deux composantes : un système de sérialisation et un système de Merkleization conçu pour fonctionner efficacement avec la structure de données sérialisées. +**Simple serialize (SSZ)** est la méthode de sérialisation utilisée sur la chaîne phare. Elle remplace la sérialisation RLP utilisée sur la couche d'exécution dans toute la couche de consensus, à l'exception du protocole de découverte des pairs. Pour en savoir plus sur la sérialisation RLP, consultez [Préfixe de longueur récursive (RLP)](/developers/docs/data-structures-and-encoding/rlp/). SSZ est conçu pour être déterministe et pour effectuer un Merkleize efficace. On peut imaginer SSZ comme ayant deux composantes : un système de sérialisation et un système de Merkleization conçu pour fonctionner efficacement avec la structure de données sérialisées. ## Comment fonctionne SSZ ? {#how-does-ssz-work} diff --git a/public/content/translations/fr/developers/docs/design-and-ux/index.md b/public/content/translations/fr/developers/docs/design-and-ux/index.md index 02737bd83ba..e4ddf8ce3aa 100644 --- a/public/content/translations/fr/developers/docs/design-and-ux/index.md +++ b/public/content/translations/fr/developers/docs/design-and-ux/index.md @@ -21,32 +21,173 @@ Un design efficace va au-delà de la création d'interfaces utilisateur visuelle Il s'agit d'une liste organisée de recherches par des utilisateurs sur le Web3 qui peut aider à prendre des décisions de conception de produit ou servir d'inspiration pour mener sa propre étude. -| Domaine d'intervention | Nom | -|:------------------------------------------------------- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Crypto onboarding | [Le WalletConnect Pulse 2024 : Utilisation du sentiment & des consommateurs de crypto](https://walletconnect.com/pulse-2024-crypto-consumer-report) | -| Crypto onboarding | [CRADL : UX pour crypto-monnaie](https://docs.google.com/presentation/d/1s2OPSH5sMJzxRYaJSSRTe8W2iIoZx0PseIV-WeZWD1s/edit?usp=sharing) | -| Crypto onboarding | [CRADL : Intégration vers la crypto-monnaie](https://docs.google.com/presentation/d/1R9nFuzA-R6SxaGCKhoMbE4Vxe0JxQSTiHXind3LVq_w/edit?usp=sharing) | -| Crypto onboarding | [Rapport sur l'UX de Bitcoin](https://github.com/patestevao/BitcoinUX-report/blob/master/report.md) | -| Crypto onboarding | [ConSensys : L'état de la perception du Web3 dans le monde en 2023](https://consensys.io/insight-report/web3-and-crypto-global-survey-2023) | -| Crypto onboarding | [NEAR : Accélérer le processus d'adoption](https://drive.google.com/file/d/1VuaQP4QSaQxR5ddQKTMGI0b0rWdP7uGn/view) | -| Staking | [OpenUX : Expérience utilisateur des opérateurs de nœuds Rocket Pool](https://storage.googleapis.com/rocketpool/RocketPool-NodeOperator-UX-Report-Jan-2024.pdf) | -| Staking | [La mise en jeu : Tendances clés, points à retenir et prédictions - Eth Staker](https://lookerstudio.google.com/u/0/reporting/cafcee00-e1af-4148-bae8-442a88ac75fa/page/p_ja2srdhh2c?s=hmbTWDh9hJo) | -| Staking | [Mise en jeu multi-applications](https://github.com/threshold-network/UX-User-Research/blob/main/Multi-App%20Staking%20(MAS)/iterative-user-study/MAS%20Iterative%20User%20Study.pdf) | -| DAO | [Mise à jour de la recherche DAO 2022 : Que nécessitent les développeurs de DAO ?](https://blog.aragon.org/2022-dao-research-update/) | -| DeFi | [L'état de la DeFi en 2024](https://stateofdefi.org/) (enquête en cours) | -| DeFi | [Pools de garanties](https://github.com/threshold-network/UX-User-Research/tree/main/Keep%20Coverage%20Pool) | -| DeFi | [ConSensys : Rapport de recherche sur les utilisateurs de DeFi en 2022](https://cdn2.hubspot.net/hubfs/4795067/ConsenSys%20Codefi-Defi%20User%20ResearchReport.pdf) | -| Métavers | [Métaverse : Rapport de recherche sur les utilisateurs](https://www.politico.com/f/?id=00000187-7685-d820-a7e7-7e85d1420000) | -| Métavers | [Partir en safari : Rechercher des utilisateurs dans le métaverse](https://archive.devcon.org/archive/watch/6/going-on-safari-researching-users-in-the-metaverse/?tab=YouTube) (vidéo, 27 min) | -| Ethereum.org UX stats | [Tableau de bord de l'enquête sur la convivialité et la satisfaction des utilisateurs - Ethereum.org](https://lookerstudio.google.com/reporting/0a189a7c-a890-40db-a5c6-009db52c81c9) | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Domaine d'intervention + + Nom +
+ Intégration crypto + + Le Reown Pulse 2024 : Sentiment et utilisation des consommateurs de crypto +
+ Intégration crypto + + CRADL : UX pour crypto-monnaie +
+ Intégration crypto + + CRADL : Intégration vers la crypto-monnaie +
+ Intégration crypto + + Rapport sur l'UX de Bitcoin +
+ Intégration crypto + + ConSensys : L'état de la perception du Web3 dans le monde en 2023 +
+ Intégration crypto + + NEAR : Accélérer le processus d'adoption +
+ Staking + + OpenUX : Expérience utilisateur des opérateurs de nœuds Rocket Pool +
+ Staking + + La mise en jeu : Tendances clés, points à retenir et prédictions - Eth Staker +
+ Staking + + Mise en jeu multi-applications +
+ DAO + + Mise à jour de la recherche DAO 2022 : Que nécessitent les développeurs de DAO ? +
+ DeFi + + Pools de garanties +
+ DeFi + + ConSensys : Rapport de recherche sur les utilisateurs de DeFi en 2022 +
+ Métavers + + Métaverse : Rapport de recherche sur les utilisateurs +
+ Métavers + + Partir en safari : Rechercher des utilisateurs dans le métaverse (vidéo, 27 min) +
+ Ethereum.org UX stats + + Tableau de bord de l'enquête sur la convivialité et la satisfaction des utilisateurs - Ethereum.org +
## Conception pour le web3 {#design-for-web3} - [Manuel de conception UX pour le Web3](https://web3ux.design/) - Guide pratique pour concevoir des applications Web3 - [Principes de Design Web3](https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1) - Un cadre de règles UX pour les dapps basées sur la blockchain - [Principes de Design Blockchain](https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e) - Leçons apprises par l'équipe de design blockchain chez IBM -- [Modèles de conception Web3](https://www.web3designpatterns.io/) - Une bibliothèque organisée de modèles de conception issus de véritables produits Web3 -- [W3design.io](https://w3design.io/) - Une bibliothèque organisée de flux d'interface utilisateur de différents projets dans l'écosystème - [Neueux.com](https://neueux.com/apps) - Bibliothèque d'interface utilisateur de flux d'utilisateurs avec diverses options de filtrage - [La crise de la convivialité du Web3 : Ce que vous DEVEZ savoir !](https://www.youtube.com/watch?v=oBSXT_6YDzg) - Une table ronde sur les pièges de la construction de projets axés sur les développeurs (vidéo, 34 minutes) @@ -58,7 +199,6 @@ Il s'agit d'une liste organisée de recherches par des utilisateurs sur le Web3 ## Études de cas dans la conception pour le web3 {#design-case-studies} - [Deep Work Studio](https://deepwork.studio/case-studies/) -- [Manuel UX Crypto](https://www.cryptouxhandbook.com/) - [Vendre un NFT sur OpenSea](https://builtformars.com/case-studies/opensea) - [Analyse UX du portefeuille : comment les portefeuilles doivent changer](https://www.youtube.com/watch?v=oTpuxYj8JWI&ab_channel=ETHDenver) (vidéo, 20 min) @@ -74,12 +214,11 @@ Participez à des organisations professionnelles communautaires ou rejoignez des - [Vectordao.com](https://vectordao.com/) - [Deepwork.studio](https://www.deepwork.studio/) -- [Designer-dao.xyz](https://www.designer-dao.xyz/) - [We3.co](https://we3.co/) - [Openux.xyz](https://openux.xyz/) - [Open Source Web3Design](https://www.web3designers.org/) -## Concevoir des systèmes {#design-systems} +## Systèmes de design et autres ressources de conception {#design-systems-and-resources} - [Conception d'Optimism](https://www.figma.com/@optimism) (Figma) - [Ethereum.org Conception de system](https://www.figma.com/@ethdotorg) (Figma) diff --git a/public/content/translations/fr/developers/docs/mev/index.md b/public/content/translations/fr/developers/docs/mev/index.md index a678b6a6832..016cb2daf94 100644 --- a/public/content/translations/fr/developers/docs/mev/index.md +++ b/public/content/translations/fr/developers/docs/mev/index.md @@ -108,7 +108,7 @@ Cette possibilité de réorganisation de la blockchain a été [précédemment r ## État de la MEV {#state-of-mev} -L’extraction MEV a été organisée au début de 2021, ce qui a entraîné des prix de gaz extrêmement élevés au cours des premiers mois de l’année. L'émergence du relais MEV de Flashbots a réduit l'efficacité des favoris généralisés et en prenant les enchères sur les prix du gaz hors chaîne, a permis la baisse des prix de gaz pour les utilisateurs ordinaires. +L’extraction MEV a été organisée au début de 2021, ce qui a entraîné des prix de gaz extrêmement élevés au cours des premiers mois de l’année. L'émergence du relais MEV de Flashbots a réduit l'efficacité des favoris généralisés et a déplacé les enchères de prix du gaz hors de la chaîne, ce qui a fait baisser les prix du gaz pour les utilisateurs ordinaires. Bien que de nombreux chercheurs gagnent encore beaucoup d'argent avec la MEV, au fur et à mesure que les opportunités deviennent plus connues et que de plus en plus de chercheurs se font concurrence pour la même opportunité, les validateurs capteront de plus en plus le revenu total de la MEV (parce que le même type de ventes aux enchères de gaz, tel que décrit à l'origine ci-dessus, se produit également dans les Flashbots, bien que de manière privée, et les validateurs capteront le revenu des gaz qui en résulte). MEV n'est pas non plus l'apanage d'Ethereum et à mesure que les possibilités deviennent plus compétitives sur Ethereum, les chercheurs se déplacent vers des blockchains alternatifs comme Binance Smart Chain, où des possibilités MEV similaires à celles sur Ethereum existent mais avec moins de concurrence. @@ -130,7 +130,7 @@ Avec moins de ressources à leur disposition, il se peut que les stakers solos n ### Mempools autorisés {#permissioned-mempools} -En réponse aux attaques de type « sandwiching » et « frontrunning », les commerçants peuvent commencer à effectuer des transactions hors chaîne avec des validateurs pour assurer la confidentialité des transactions. Au lieu d'envoyer une transaction MEV potentielle au mempool public, le trader l'envoie directement au validateur, qui l'inclut dans un bloc et partage les bénéfices avec le trader. +En réponse aux attaques de type « sandwiching » et « frontrunning », les traders peuvent commencer à effectuer des transactions hors chaîne avec des validateurs pour assurer la confidentialité des transactions. Au lieu d'envoyer une transaction MEV potentielle au mempool public, le trader l'envoie directement au validateur, qui l'inclut dans un bloc et partage les bénéfices avec le trader. Les « dark pools » sont une version plus large de cet arrangement et fonctionnent comme des mempools à accès limité et autorisés, ouverts aux utilisateurs prêts à payer certains frais. Cette tendance diminuerait l'absence de permission et de confiance d'Ethereum et transformerait potentiellement la blockchain en un mécanisme « pay-to-play » qui favorise le plus offrant. @@ -156,7 +156,7 @@ La séparation entre le proposant et le constructeur dans le protocole réduit l Cela n'exclut pas totalement les validateurs des revenus liés à la MEV, car les constructeurs doivent faire des offres élevées pour que leurs blocs soient acceptés par les validateurs. Néanmoins, les validateurs n'étant plus directement axés sur l'optimisation des revenus de la MEV, la menace des attaques de type « time-bandit » diminue. -La séparation proposant-constructeur réduit également les risques de centralisation de la MEV. Par exemple, l'utilisation d'un schéma commit-reveal évite aux constructeurs de devoir faire confiance aux validateurs pour ne pas voler l'opportunité MEV ou l'exposer aux autres constructeurs. Cela réduit la barrière qui empêche les stakers solitaires de bénéficier de la MEV, sinon les constructeurs auraient tendance à favoriser les grands pools ayant une réputation hors chaîne et à conclure des accords hors chaîne avec eux. +La séparation proposant-constructeur réduit également les risques de centralisation de la MEV. Par exemple, l'utilisation d'un schéma commit-reveal évite aux constructeurs de devoir faire confiance aux validateurs pour ne pas voler l'opportunité MEV ou l'exposer aux autres constructeurs. Cela abaisse la barrière pour les validateurs solitaires qui souhaitent bénéficier de la MEV, sans quoi les constructeurs auraient tendance à favoriser les grands pools ayant une réputation hors chaîne et à conclure des accords hors chaîne avec eux. De même, les validateurs n'ont pas à faire confiance aux constructeurs pour qu'ils ne retiennent pas les corps de blocs ou ne publient pas de blocs invalides, car le paiement est inconditionnel. Les frais du validateur sont toujours traités même si le bloc proposé est indisponible ou déclaré invalide par d'autres validateurs. Dans ce dernier cas, le bloc est tout simplement rejeté, ce qui oblige le créateur du bloc à perdre tous les frais de transaction et les revenus de la MEV. diff --git a/public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md index 9c114bce9cb..1fc984456b6 100644 --- a/public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md +++ b/public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md @@ -82,7 +82,7 @@ Avoir plusieurs implémentations de clients indépendants renforce la résilienc Si un client rencontre des problèmes ou des vulnérabilités, d'autres clients peuvent continuer à fonctionner normalement, évitant ainsi un unique point de défaillance. De plus, différentes implémentations de clients encouragent l'innovation et la concurrence, stimulant les améliorations et réduisant le risque de monoculture au sein de l'écosystème. -## Complément d'information {#futher-reading} +## Complément d'information {#further-reading} - [Le Portal Network (Piper Merriam à Devcon Bogota)](https://www.youtube.com/watch?v=0stc9jnQLXA). - [Le discord du Portal Network](https://discord.gg/CFFnmE7Hbs) diff --git a/public/content/translations/fr/developers/docs/nodes-and-clients/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/index.md index 64ffdaa065a..18fe3099291 100644 --- a/public/content/translations/fr/developers/docs/nodes-and-clients/index.md +++ b/public/content/translations/fr/developers/docs/nodes-and-clients/index.md @@ -191,14 +191,14 @@ Pour en savoir plus, lisez sa [documentation](https://github.com/ethereumjs/ethe De nombreux clients de consensus (précédemment connus sous le nom de clients 'Eth2') prennent en charge les [mises à niveau du consensus](/roadmap/beacon-chain/). Ils sont responsables de toute la logique liée au consensus, y compris l'algorithme de choix de fourche, le traitement des attestations et la gestion des récompenses et des pénalités de la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos). -| Client | Langage | Systèmes d'exploitation | Réseaux | -| ------------------------------------------------------------- | ---------- | ----------------------- | ----------------------------------------------------------------------- | -| [Lighthouse](https://lighthouse.sigmaprime.io/) | Rust | Linux, Windows, macOS | Chaîne Phare, Goerli, Pyrmont, Sepolia, Ropsten, et plus encore | -| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Chaîne Phare, Goerli, Sepolia, Ropsten, et plus encore | -| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Chaîne Phare, Goerli, Sepolia, Ropsten, et plus encore | -| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Chaîne Phare, Gnosis, Goerli, Pyrmont, Sepolia, Ropsten, et plus encore | -| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | Java | Linux, Windows, macOS | Chaîne Phare, Gnosis, Goerli, Sepolia, Ropsten, et plus encore | -| [Grandine](https://docs.grandine.io/) (beta) | Rust | Linux, Windows, macOS | Chaîne Phare, Goerli, Sepolia, et plus encore | +| Client | Langage | Systèmes d'exploitation | Réseaux | +| ------------------------------------------------------------- | ---------- | ----------------------- | --------------------------------------------------------------- | +| [Lighthouse](https://lighthouse.sigmaprime.io/) | Rust | Linux, Windows, macOS | Beacon Chain, Holesky, Pyrmont, Sepolia, et plus encore | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Beacon Chain, Holesky, Sepolia, et plus encore | +| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Beacon Chain, Holesky, Sepolia, et plus encore | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Beacon Chain, Gnosis, Holesky, Pyrmont, Sepolia, et plus encore | +| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | Java | Linux, Windows, macOS | Beacon Chain, Gnosis, Holesky, Sepolia, et plus encore | +| [Grandine](https://docs.grandine.io/) | Rust | Linux, Windows, macOS | Beacon Chain, Holesky, Sepolia, et plus encore | ### Lighthouse {#lighthouse} diff --git a/public/content/translations/fr/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/node-architecture/index.md index 05ca479eecf..a6adc5973b0 100644 --- a/public/content/translations/fr/developers/docs/nodes-and-clients/node-architecture/index.md +++ b/public/content/translations/fr/developers/docs/nodes-and-clients/node-architecture/index.md @@ -4,7 +4,7 @@ description: Introduction à l'organisation des nœuds Ethereum. lang: fr --- -Un nœud Ethereum est composé de deux clients : un [client d'exécution](/developers/docs/nodes-and-clients/#execution-clients) et un [client de consensus](/developers/docs/nodes-and-clients/#consensus-clients). +Un nœud Ethereum est composé de deux clients : un [client d'exécution](/developers/docs/nodes-and-clients/#execution-clients) et un [client de consensus](/developers/docs/nodes-and-clients/#consensus-clients). Pour qu’un nœud propose un nouveau bloc, il doit également exécuter un [client validateur](#validators). Lorsque Ethereum utilisait la [preuve de travail](/developers/docs/consensus-mechanisms/pow/), un client d'exécution était suffisant pour exécuter un nœud Ethereum complet. Cependant, depuis la mise en œuvre de la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pow/), le client d'exécution doit être utilisé en parallèle avec un autre logiciel appelé [« client de consensus »](/developers/docs/nodes-and-clients/#consensus-clients). @@ -12,11 +12,13 @@ Le diagramme ci-dessous montre la relation entre les deux clients Ethereum. Les ![](node-architecture-text-background.png) -Pour que cette structure à deux clients fonctionne, les clients de consensus doivent être en mesure de transmettre des paquets de transactions au client d'exécution. L'exécution locale des transactions permet au client de valider le fait que les transactions ne violent aucune règle d'Ethereum et que la mise à jour proposée de l'état d'Ethereum soit correcte. De même, lorsque le nœud est sélectionné pour être un producteur de blocs, le client de consensus doit être en mesure de demander à Geth des lots de transactions à inclure dans le nouveau bloc et de les exécuter pour mettre à jour l'état global. Cette communication inter-clients est gérée par une connexion RPC locale utilisant le [moteur API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). +_Il existe plusieurs options pour le client d’exécution, notamment Erigon, Nethermind et Besu_. + +Pour que cette structure à deux clients fonctionne, les clients de consensus doivent être en mesure de transmettre des paquets de transactions au client d'exécution. Le client d’exécution exécute les transactions localement afin de vérifier qu’elles ne violent aucune règle d’Ethereum et que la mise à jour proposée de l’état d’Ethereum est correcte. Lorsqu’un nœud est sélectionné pour devenir producteur de blocs, son instance de client de consensus demande au client d’exécution des lots de transactions à inclure dans le nouveau bloc, puis les exécute afin de mettre à jour l’état global. Le client de consensus pilote le client d’exécution via une connexion RPC locale en utilisant l’[API Engine](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). ## Que fait le client d'exécution ? {#execution-client} -Le client d'exécution est responsable de la gestion des transactions, de la propagation des transactions, de la gestion de l'état et du fonctionnement de la Machine Virtuelle Ethereum ([EVM](/developers/docs/evm/)). Cependant, il n'est **pas** responsable de la construction de blocs, de leur propagation ou de la gestion de la logique de consensus. Ces responsabilités relèvent du client de consensus. +Le client d’exécution est responsable de la validation, du traitement et de la propagation des transactions, ainsi que de la gestion de l’état et du support de la Machine Virtuelle Ethereum ([EVM](/developers/docs/evm/)). Il n'est **pas** responsable de la construction de blocs, de leur propagation ou de la gestion de la logique de consensus. Ces responsabilités relèvent du client de consensus. Le client d'exécution crée des charges utiles d'exécution - la liste des transactions, la trie d'état mise à jour, et d'autres données liées à l'exécution. Les clients de consensus incluent la charge utile d'exécution dans chaque bloc. Le client d'exécution est également responsable de réexécuter les transactions dans les nouveaux blocs pour s'assurer qu'elles sont valides. L'exécution des transactions est effectuée sur l'ordinateur intégré du client d'exécution, connu sous le nom de [Machine Virtuelle Ethereum (EVM)](/developers/docs/evm). @@ -35,7 +37,7 @@ Le client de consensus ne participe pas à l'attestation ou à la proposition de ## Validateurs {#validators} -Les opérateurs de nœuds peuvent ajouter un validateur à leurs clients de consensus en déposant 32 ETH dans le contrat de dépôt. Le client de validation inclut le client de consensus et peut être ajouté à un nœud à tout moment. Le validateur gère les attestations et les propositions de blocs. Ils permettent à un nœud d'accumuler des récompenses ou de perdre de l'ETH par des pénalités ou des sanctions. Exécuter le logiciel de validation rend également un nœud éligible pour être sélectionné afin de proposer un nouveau bloc. +La mise en jeu et l’exécution du logiciel de validation font qu'un nœud peut être sélectionné pour proposer un nouveau bloc. Les opérateurs de nœuds peuvent ajouter un validateur à leurs clients de consensus en déposant 32 ETH dans le contrat de dépôt. Le client de validation inclut le client de consensus et peut être ajouté à un nœud à tout moment. Le validateur gère les attestations et les propositions de blocs. Cela permet également à un nœud d’accumuler des récompenses ou de perdre de l’ETH via des pénalités ou des sanctions. [En savoir plus sur les mises](/staking/). @@ -43,7 +45,7 @@ Les opérateurs de nœuds peuvent ajouter un validateur à leurs clients de cons | Client d'exécution | Client de consensus | Validateur | | -------------------------------------------------- | -------------------------------------------------------------------------- | ---------------------------------- | -| Diffuse les transactions via son réseau p2p | Diffuse les blocs et les attestations via son réseau p2p | Propose des blocs | +| Diffuse les transactions via son réseau P2P | Diffuse les blocs et les attestations via son réseau P2P | Propose des blocs | | Exécute/ré-exécute les transactions | Exécute l'algorithme de choix de fourche | Accumule des récompenses/pénalités | | Vérifie les changements d'état entrants | Assure le suivi de la tête de chaîne | Émet des attestations | | Gère les essais d'état et les essais de reçus | Gère l'état Beacon (contient les informations de consensus et d'exécution) | Nécessite 32 ETH mis en jeu | diff --git a/public/content/translations/fr/developers/docs/oracles/index.md b/public/content/translations/fr/developers/docs/oracles/index.md index 5f8dea32109..f1ba5ac66bc 100644 --- a/public/content/translations/fr/developers/docs/oracles/index.md +++ b/public/content/translations/fr/developers/docs/oracles/index.md @@ -6,7 +6,7 @@ lang: fr Les oracles sont des applications qui produisent des flux de données qui rendent les sources de données hors chaîne accessibles à la blockchain pour les contrats intelligents. Cela est nécessaire car les contrats intelligents sur Ethereum, par défaut ne peuvent pas accéder aux informations stockées en dehors du réseau de la blockchain. -En donnant aux contrats intelligents la possibilité de s'exécuter en utilisant des données hors chaîne, on étend la valeur et l'utilité des applications décentralisées. Par exemple, les marchés de prédiction sur la blockchain s'appuient sur des oracles pour fournir des informations sur les résultats avec lesquels ils peuvent valider les prédictions des utilisateurs. Supposons qu'Alice parie 20 ETH sur qui deviendra le prochain président des États-Unis . Dans ce cas, la dApp du marché prédictif a besoin d'un oracle pour confirmer les résultats des élections et déterminer si Alice a droit à un paiement. +Le fait de donner aux contrats intelligents la possibilité de s'exécuter en utilisant des données hors chaîne permet d'étendre l'utilité et la valeur des applications décentralisées. Par exemple, les marchés de prédiction en chaîne s'appuient sur des oracles pour fournir des informations sur les résultats qu'ils utilisent pour valider les prédictions des utilisateurs. Supposons qu'Alice parie 20 ETH sur qui deviendra le prochain président des États-Unis . Dans ce cas, la dApp du marché prédictif a besoin d'un oracle pour confirmer les résultats des élections et déterminer si Alice a droit à un paiement. ## Prérequis {#prerequisites} @@ -14,11 +14,11 @@ Cette page suppose que le lecteur est familier avec les principes fondamentaux d ## Qu'est-ce qu'un oracle blockchain ? {#what-is-a-blockchain-oracle} -Les oracles sont des applications qui génèrent, vérifient et transmettent des informations externes (c'est-à-dire des informations stockées hors chaîne) aux contrats intelligents fonctionnant sur la blockchain. En plus « d'intégrer » des données hors chaîne et de les diffuser sur Ethereum, les oracles peuvent également faire « remonter » des informations de la blockchain vers des systèmes externes, comme par exemple déverrouiller un verrou intelligent une fois que l'utilisateur envoie des frais via une transaction Ethereum. +Les oracles sont des applications qui trouvent, vérifient et transmettent des informations externes (c'est-à-dire des informations stockées hors chaîne) aux contrats intelligents fonctionnant sur la blockchain. En plus « d'intégrer » des données hors chaîne et de les diffuser sur Ethereum, les oracles peuvent également faire « remonter » des informations de la blockchain vers des systèmes externes, comme par exemple déverrouiller un verrou intelligent une fois les frais envoyés par l'utilisateur par le biais d'une transaction Ethereum. -Sans oracle, un contrat intelligent serait entièrement limité aux données de la blockchain. +Sans oracle, un contrat intelligent serait entièrement limité aux données en chaîne. -Les oracles diffèrent en fonction de la source des données (une ou plusieurs sources), des modèles de confiance (centralisés ou décentralisés) et de l'architecture du système (lecture immédiate, publication-abonnement et demande-réponse). Nous pouvons également distinguer les oracles selon qu'ils récupèrent des données externes à utiliser par les contrats on-chain (oracles d'entrée), qu'ils envoient des informations de la blockchain aux applications off-chain (oracles de sortie) ou qu'ils effectuent des tâches de calcul off-chain (oracles de calcul). +Les oracles diffèrent en fonction de la source des données (une ou plusieurs sources), des modèles de confiance (centralisés ou décentralisés) et de l'architecture du système (lecture immédiate, publication-abonnement et demande-réponse). Nous pouvons également distinguer les oracles selon qu'ils récupèrent des données externes pour les contrats en chaîne (oracles d'entrée), qu'ils envoient des informations de la blockchain aux applications hors chaîne (oracles de sortie) ou qu'ils effectuent des tâches de calcul hors chaîne (oracles de calcul). ## Pourquoi les contrats intelligents ont-ils besoin d'oracles ? {#why-do-smart-contracts-need-oracles} @@ -36,11 +36,11 @@ Si les blockchains recevaient des informations de sources externes (c'est-à-dir Pour une blockchain publique comme Ethereum, avec des milliers de nœuds dans le monde traitant des transactions, le déterminisme est essentiel. Sans autorité centrale servant de source de vérité, les nœuds ont besoin de mécanismes pour arriver au même état après avoir appliqué les mêmes transactions. Un cas où le nœud A exécute le code d'un contrat intelligent et obtient « 3 » comme résultat, alors que le nœud B obtient « 7 » après avoir exécuté la même transaction, provoquerait la rupture du consensus et éliminerait la valeur d'Ethereum en tant que plateforme informatique décentralisée. -Ce scénario met également en évidence le problème que pose la conception de blockchains pour tirer des informations de sources externes. Les oracles, cependant, résolvent ce problème en prenant des informations de sources hors chaîne et en les stockant sur la blockchain pour que les contrats intelligents puissent les consommer. Les informations stockées sur la chaîne étant inaltérables et accessibles au public, les nœuds d'Ethereum peuvent utiliser en toute sécurité les données hors chaîne importées de l'oracle pour calculer les changements d'état sans rompre le consensus. +Ce scénario met également en évidence le problème que pose la conception de blockchains pour tirer des informations de sources externes. Les oracles, cependant, résolvent ce problème en récupérant des informations à partir de sources hors chaîne et en les stockant sur la blockchain pour que les contrats intelligents puissent les exploiter. Les informations stockées sur la chaîne étant inaltérables et accessibles au public, les nœuds d'Ethereum peuvent utiliser en toute sécurité les données hors chaîne importées de l'oracle pour calculer les changements d'état sans rompre le consensus. -Pour ce faire, un oracle est généralement constitué d'un contrat intelligent fonctionnant sur la chaîne et de certains composants hors chaîne. Le contrat on-chain reçoit des demandes de données d'autres contrats intelligents, qu'il transmet au composant off-chain (appelé nœud oracle). Ce nœud oracle peut interroger des sources de données - en utilisant des interfaces de programmation d'applications (API), par exemple - et envoyer des transactions pour stocker les données demandées dans le stockage du contrat intelligent. +Pour ce faire, un oracle est généralement constitué d'un contrat intelligent fonctionnant sur la chaîne et de certains composants hors chaîne. Le contrat en chaîne reçoit des demandes de données d'autres contrats intelligents, qu'il transmet au composant hors chaîne (appelé nœud oracle). Ce nœud oracle peut interroger des sources de données - en utilisant des interfaces de programmation d'applications (API), par exemple - et envoyer des transactions pour stocker les données demandées dans le stockage du contrat intelligent. -Essentiellement, un oracle de blockchain comble le fossé informationnel entre la blockchain et l'environnement externe, créant ainsi des « contrats intelligents hybrides ». Un contrat intelligent hybride est un contrat qui fonctionne sur la base d'une combinaison de code de contrat on-chain et d'infrastructure off-chain. Les marchés de prédiction décentralisés sont un excellent exemple de contrats intelligents hybrides. Parmi les autres exemples, on peut citer les contrats intelligents d'assurance récolte qui versent des indemnités lorsqu'un ensemble d'oracles détermine que certains phénomènes météorologiques ont eu lieu. +Essentiellement, un oracle de blockchain comble le fossé informationnel entre la blockchain et l'environnement externe, créant ainsi des « contrats intelligents hybrides ». Un contrat intelligent hybride est un contrat qui fonctionne sur la base d'une combinaison de code de contrat en chaîne et d'infrastructure hors chaîne. Les marchés de prédiction décentralisés sont un excellent exemple de contrats intelligents hybrides. Parmi les autres exemples, on peut citer les contrats intelligents d'assurance récolte qui versent des indemnités lorsqu'un ensemble d'oracles détermine que certains phénomènes météorologiques ont eu lieu. ## Quel est le problème de l'oracle ? {#the-oracle-problem} @@ -78,11 +78,11 @@ Les utilisateurs sont des entités (c'est-à-dire des contrats intelligents) qui ### Contrat Oracle {#oracle-contract} -Le contrat d'oracle est le composant sur la blockchain du service de l'oracle. Il écoute les demandes de données provenant d'autres contrats, transmet les requêtes de données aux nœuds de l'oracle et diffuse les données renvoyées aux contrats clients. Ce contrat peut également effectuer des calculs sur les points de données renvoyés pour produire une valeur agrégée à envoyer au contrat demandeur. +Le contrat d'oracle est le composant en chaîne du service de l'oracle. Il écoute les demandes de données provenant d'autres contrats, transmet les requêtes de données aux nœuds de l'oracle et diffuse les données renvoyées aux contrats clients. Ce contrat peut également effectuer des calculs sur les points de données renvoyés pour produire une valeur agrégée à envoyer au contrat demandeur. -Le contrat de l'oracle expose certaines fonctions que les contrats clients appellent lorsqu'ils font une demande de données. À la réception d'une nouvelle requête, le contrat intelligent émettra un [événement de journal](/developers/docs/smart-contracts/anatomy/#events-and-logs) avec les détails de la demande de données. Cela notifie les nœuds hors chaîne abonnés au journal (généralement en utilisant quelque chose comme la commande JSON-RPC `eth_subscribe`), qui procèdent à la récupération des données définies dans l'événement du journal. +Le contrat de l'oracle expose certaines fonctions que les contrats clients appellent lorsqu'ils font une demande de données. À la réception d'une nouvelle requête, le contrat intelligent émettra un [événement de journal](/developers/docs/smart-contracts/anatomy/#events-and-logs) avec les détails de la demande de données. Cela permet de notifier les nœuds hors chaîne abonnés au journal (généralement en utilisant une commande de type JSON-RPC `eth_subscribe`), qui procèdent à la récupération des données définies dans l'événement du journal. -Vous trouverez ci-dessous un [exemple de contrat oracle](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) par Pedro Costa. Il s'agit d'un simple service oracle qui peut interroger des API hors chaîne à la demande d'autres contrats intelligents et stocker les informations demandées sur la blockchain : +Vous trouverez ci-dessous un [exemple de contrat oracle](https://medium.com/@pedrodc/implementing-a-blockchain-oracle-on-ethereum-cedc7e26b49e) par Pedro Costa. Il s'agit d'un simple service d'oracle capable d'interroger des API hors chaîne à la demande d'autres contrats intelligents et de stocker les informations demandées sur la blockchain : ```solidity pragma solidity >=0.4.21 <0.6.0; @@ -198,11 +198,11 @@ contract Oracle { ### Nœuds Oracle {#oracle-nodes} -Le noeud d'oracle est le composant hors chaîne du service de l'oracle. Il extrait des informations de sources externes, telles que des API hébergées sur des serveurs tiers, et les met sur la chaîne pour être utilisé par des contrats intelligents. Les nœuds Oracle écoutent les événements provenant du contrat d'oracle sur la chaîne et procèdent à l'exécution de la tâche décrite dans le journal. +Le noeud d'oracle est le composant hors chaîne du service de l'oracle. Il extrait des informations de sources externes, telles que des API hébergées sur des serveurs tiers, et les met sur la chaîne pour être utilisé par des contrats intelligents. Les nœuds de l'oracle écoutent les événements provenant du contrat d'oracle sur la chaîne et procèdent à l'exécution de la tâche décrite dans le journal. -Une tâche courante des nœuds Oracle consiste à envoyer une requête [HTTP GET](https://www.w3schools.com/tags/ref_httpmethods.asp) à un service d'API, à analyser la réponse pour en extraire les données pertinentes, à la formater en une sortie lisible par la blockchain et à l'envoyer sur la chaîne en l'incluant dans une transaction vers le contrat d'oracle. Le nœud oracle peut également être tenu d'attester de la validité et de l'intégrité des informations soumises à l'aide de « preuves d'authenticité », que nous étudierons plus loin. +Une tâche courante des nœuds d'oracle consiste à envoyer une requête [HTTP GET](https://www.w3schools.com/tags/ref_httpmethods.asp) à un service d'API, à analyser la réponse pour en extraire les données pertinentes, à la formater en une sortie lisible par la blockchain et à l'envoyer sur la chaîne en l'incluant dans une transaction vers le contrat d'oracle. Le nœud oracle peut également être tenu d'attester de la validité et de l'intégrité des informations soumises à l'aide de « preuves d'authenticité », que nous étudierons plus loin. -Les oracles informatiques s'appuient également sur des nœuds hors chaîne pour effectuer des calculs, qui ne seraient pas pratiques à exécuter sur la chaîne, compte tenu des coûts du gaz et des limites de taille des blocs. Par exemple, le nœud Oracle peut être chargé de générer un chiffre aléatoire vérifiable (par exemple, pour les jeux basés sur la blockchain). +Les oracles informatiques s'appuient également sur des nœuds hors chaîne pour effectuer des calculs qu'il ne serait pas pratique d'exécuter sur la chaîne, compte tenu des coûts du gaz et des limites de taille des blocs. Par exemple, le nœud Oracle peut être chargé de générer un chiffre aléatoire vérifiable (par exemple, pour les jeux basés sur la blockchain). ## Modèles de conception Oracle {#oracle-design-patterns} @@ -216,7 +216,7 @@ Ce type d'oracle expose un « flux de données » que d'autres contrats peuvent Une configuration requête-réponse permet au contrat client de demander des données arbitraires autres que celles fournies par un oracle de type publier-s'abonner. Les oracles de type requête-réponse sont idéaux lorsque l'ensemble de données est trop volumineux pour être stocké dans un contrat intelligent, et/ou que les utilisateurs n'auront besoin que d'une petite partie des données à un moment donné. -Bien que plus complexes que les modèles publier-s'abonner, les oracles de requête-réponse sont fondamentalement ce que nous avons décrit dans la section précédente. L'oracle aura un composant on-chain qui reçoit une demande de données et la transmet à un nœud off-chain pour traitement. +Bien que plus complexes que les modèles publier-s'abonner, les oracles de requête-réponse sont fondamentalement ce que nous avons décrit dans la section précédente. L'oracle aura un composant en chaîne qui recevra une demande de données et la transmettra à un nœud hors chaîne pour traitement. Les utilisateurs qui interrogent les données doivent couvrir le coût de la récupération des informations à partir de la source hors chaîne. Le contrat du client doit également fournir des fonds pour couvrir les frais de gaz encourus par le contrat de l'oracle pour renvoyer la réponse via la fonction de rappel spécifiée dans la demande. @@ -224,7 +224,7 @@ Les utilisateurs qui interrogent les données doivent couvrir le coût de la ré ### Oracles centralisés {#centralized-oracles} -Comme son nom l'indique, un oracle centralisé est contrôlé par une seule entité chargée d'agréger les informations hors chaîne et de mettre à jour les données du contrat de l'oracle selon les demandes. Les oracles centralisés sont efficaces car ils reposent sur une seule source de vérité. Ils pourraient même mieux fonctionner pour les jeux de données propriétaires qui sont publiés directement par le propriétaire avec une signature largement acceptée. Cependant, ils présentent également des inconvénients : +Un oracle centralisé est contrôlé par une seule entité chargée d'agréger les informations hors chaîne et de mettre à jour les données du contrat de l'oracle selon les demandes. Les oracles centralisés sont efficaces car ils reposent sur une seule source de vérité. Ils pourraient même mieux fonctionner pour les jeux de données propriétaires qui sont publiés directement par le propriétaire avec une signature largement acceptée. Cependant, ils présentent également des inconvénients : #### Faibles garanties de correction {#low-correctness-guarantees} @@ -232,7 +232,7 @@ Avec les oracles centralisés, il n'y a aucun moyen de confirmer si l'informatio #### Faible disponibilité {#poor-availability} -Les oracles centralisés ne sont pas garantis de toujours mettre les données hors chaîne à la disposition des autres contrats intelligents. Si le fournisseur décide de désactiver le service ou si un pirate informatique détourne le composant hors chaîne de l'oracle, votre contrat intelligent risque de subir une attaque par déni de service (DoS). +Il n'est pas garanti que les oracles centralisés mettent systématiquement les données hors chaîne à la disposition des autres contrats intelligents. Si le fournisseur décide de désactiver le service ou si un pirate informatique détourne le composant hors chaîne de l'oracle, votre contrat intelligent risque de subir une attaque par déni de service (DoS). #### Mauvaise compatibilité des incitations {#poor-incentive-compatibility} @@ -264,9 +264,9 @@ Certaines classes d'oracles décentralisés exigent que les opérateurs de nœud #### Validation consensuelle des informations {#consensus-based-validation-of-information} -Les oracles centralisés reposent sur une source unique de vérité lorsqu'ils fournissent des données aux contrats intelligents, ce qui introduit la possibilité de publier des informations inexactes. Les oracles décentralisés résolvent ce problème en s'appuyant sur plusieurs nœuds d'oracle pour interroger les informations hors chaîne. En comparant les données provenant de plusieurs sources, les oracles décentralisés réduisent le risque de transmettre des informations invalides aux contrats on-chain. +Les oracles centralisés reposent sur une source unique de vérité lorsqu'ils fournissent des données aux contrats intelligents, ce qui introduit la possibilité de publier des informations inexactes. Les oracles décentralisés résolvent ce problème en s'appuyant sur plusieurs nœuds d'oracle pour interroger les informations hors chaîne. En comparant les données provenant de plusieurs sources, les oracles décentralisés réduisent le risque de transmettre des informations invalides aux contrats sur la chaîne. -Les oracles décentralisés, cependant, doivent gérer les divergences dans les informations récupérées de plusieurs sources hors chaîne. Pour minimiser les différences d'information et garantir que les données transmises au contrat de l'oracle reflètent l'opinion collective des nœuds de l'oracle, les oracles décentralisés utilisent les mécanismes suivants : +Les oracles décentralisés doivent néanmoins gérer les divergences dans les informations récupérées de plusieurs sources hors chaîne. Pour minimiser les différences d'information et garantir que les données transmises au contrat de l'oracle reflètent l'opinion collective des nœuds de l'oracle, les oracles décentralisés utilisent les mécanismes suivants : ##### Vote/suivi de l'exactitude des données @@ -284,17 +284,17 @@ Une première idée était le [SchellingCoin](https://blog.ethereum.org/2014/03/ Bien que SchellingCoin n'existe pas aujourd'hui, un certain nombre d'oracles décentralisés - notamment [les oracles du protocole Maker](https://docs.makerdao.com/smart-contract-modules/oracle-module) - utilisent le mécanisme du point de Schelling pour améliorer la précision des données de l'oracle. Chaque Maker Oracle est constitué d'un réseau P2P hors chaîne de nœuds (« relayeurs » et « alimenteurs ») qui soumettent des prix de marché pour les actifs donnés en garantie et d'un contrat « Medianizer » en chaîne qui calcule la médiane de toutes les valeurs fournies. Une fois le délai spécifié écoulé, cette valeur médiane devient le nouveau prix de référence de l'actif associé. -Parmi les autres exemples d'oracles qui utilisent les mécanismes du point de Schelling, citons [Chainlink Off-Chain Reporting](https://docs.chain.link/docs/off-chain-reporting/) et [Witnet](https://witnet.io/). Dans les deux systèmes, les réponses des nœuds oracle du réseau pair-à-pair sont agrégées en une seule valeur agrégée, telle qu'une moyenne ou une médiane. Les nœuds sont récompensés ou punis en fonction de la mesure dans laquelle leurs réponses s'alignent ou s'écartent de la valeur globale. +Parmi les autres exemples d'oracles qui utilisent les mécanismes du point de Schelling, citons [Chainlink OffChain Reporting](https://docs.chain.link/docs/offchain-reporting/) et [Witnet](https://witnet.io/). Dans les deux systèmes, les réponses des nœuds oracle du réseau pair-à-pair sont agrégées en une seule valeur agrégée, telle qu'une moyenne ou une médiane. Les nœuds sont récompensés ou punis en fonction de la mesure dans laquelle leurs réponses s'alignent ou s'écartent de la valeur globale. Les mécanismes du point de Schelling sont intéressants car ils minimisent l'empreinte sur la chaîne (une seule transaction doit être envoyée) tout en garantissant la décentralisation. Ce dernier cas est possible parce que les nœuds doivent approuver la liste des réponses soumises avant qu'elle ne soit introduite dans l'algorithme qui produit la valeur moyenne/médiane. ### Disponibilité {#availability} -Les services décentralisés d'oracle assurent une haute disponibilité des données hors chaîne pour les contrats intelligents. Pour ce faire, il faut décentraliser à la fois la source d'information hors chaîne et les nœuds responsables du transfert de l'information dans la chaîne. +Les services décentralisés d'oracle assurent une haute disponibilité des données hors chaîne pour les contrats intelligents. Cela est possible en décentralisant à la fois la source d'information hors chaîne et les nœuds responsables du transfert de l'information dans la chaîne. Cela garantit la tolérance aux pannes puisque le contrat de l'oracle peut s'appuyer sur plusieurs nœuds (qui s'appuient également sur plusieurs sources de données) pour exécuter des requêtes provenant d'autres contrats. La décentralisation au niveau de la source _et_ de l'opérateur de nœud est cruciale - un réseau de nœuds d'oracle servant des informations extraites de la même source se heurtera au même problème qu'un oracle centralisé. -Il est également possible pour les oracles basés sur les enjeux de sabrer les opérateurs de nœuds qui ne répondent pas rapidement aux demandes de données. Cela incite fortement les nœuds d'oracle à investir dans une infrastructure tolérante aux pannes et à fournir des données en temps voulu. +Il est également possible pour les oracles basés sur la mise en jeu de sanctionner les opérateurs de nœuds qui ne répondent pas rapidement aux demandes de données. Cela incite fortement les nœuds d'oracle à investir dans une infrastructure tolérante aux pannes et à fournir des données en temps voulu. ### Bonne compatibilité des incitations {#good-incentive-compatibility} @@ -360,7 +360,7 @@ Certaines applications blockchain, telles que les jeux ou les systèmes de loter L'approche initiale consistait à utiliser des fonctions cryptographiques pseudo-aléatoires, telles que le `blockhash`, mais elles pouvaient être [manipulées par des mineurs](https://ethereum.stackexchange.com/questions/3140/risk-of-using-blockhash-other-miners-preventing-attack#:~:text=So%20while%20the%20miners%20can,to%20one%20of%20the%20players.) résolvant l'algorithme de preuve de travail. De plus, le [passage d'Ethereum à la preuve d'enjeu](/roadmap/merge/) signifie que les développeurs ne peuvent plus compter sur le `blockhash` pour obtenir des valeurs aléatoires sur la chaîne. Le [ mécanisme RANDAO](https://eth2book.info/altair/part2/building_blocks/randomness) de la chaîne phare fournit une autre source d'aléatoire. -Il est possible de générer la valeur aléatoire hors chaîne et de l'envoyer en chaîne, mais cela impose des exigences de confiance élevées aux utilisateurs. Ils doivent croire que la valeur a réellement été générée par des mécanismes imprévisibles et qu'elle n'a pas été altérée en cours de route. +Il est possible de générer la valeur aléatoire hors chaîne et de l'envoyer sur la chaîne, mais cela impose des exigences de confiance élevées pour les utilisateurs. Ils doivent croire que la valeur a réellement été générée par des mécanismes imprévisibles et qu'elle n'a pas été altérée en cours de route. Les oracles conçus pour le calcul hors chaîne résolvent ce problème en générant de manière sécurisée des résultats aléatoires hors chaîne qu'ils diffusent sur la chaîne avec des preuves cryptographiques attestant de l'imprévisibilité du processus. Un exemple est le [VRF (Verifiable Random Function) de Chainlink](https://docs.chain.link/docs/chainlink-vrf/), qui est un générateur de nombres aléatoires (RNG) à l'épreuve de la falsification et d'une équité prouvée, utile pour construire des contrats intelligents fiables pour des applications qui reposent sur des résultats imprévisibles. Un autre exemple de programmation quantique est le programme [API3 QRNG](https://docs.api3.org/explore/qrng/) : une méthode de développement quantique en libre accès, dans le Web3, sur des propositions d'algorithmes Quantiques (QRNG) générant des nombres entiers aléatoires, mise à disposition, à titre de courtoisie, par l'Université nationale australienne (ANU). @@ -388,6 +388,8 @@ Il existe de multiples applications oracle que vous pouvez intégrer dans votre **[Chainlink](https://chain.link/)** - _Les réseaux d'oracles décentralisés Chainlink fournissent des entrées, des sorties et des calculs inviolables pour prendre en charge des contrats intelligents avancés sur n'importe quelle blockchain._ +**[RedStone Oracles](https://redstone.finance/)** – _RedStone est un oracle modulaire décentralisé qui fournit des flux de données optimisés pour le gaz. Il est spécialisé dans la fourniture de flux de prix pour des actifs émergents, tels que les jetons de mise en jeu liquide (LST), les jetons de restaking liquide (LRT) et les dérivés de mise en jeu de Bitcoin._ + **[Chronicle](https://chroniclelabs.org/)** - _Chronicle surmonte les limitations actuelles du transfert de données sur la chaîne en développant des oracles véritablement évolutifs, rentables, décentralisés et vérifiables._ **[Witnet](https://witnet.io/)** - _Witnet est un oracle sans permission, décentralisé et résistant à la censure, qui aide les contrats intelligents à réagir aux événements du monde réel avec de solides garanties crypto-économiques._ @@ -400,11 +402,11 @@ Il existe de multiples applications oracle que vous pouvez intégrer dans votre **[Paralink](https://paralink.network/)** - _Paralink fournit une plateforme oracle open source et décentralisée pour les contrats intelligents fonctionnant sur Ethereum et d'autres blockchains populaires._ -**[Réseau Pyth](https://pyth.network/)** - _Pyth network est un réseau d'oracles novateur délivrant des données financières, mis au point pour relier en temps réel les données du monde réel à la blockchain dans un écosystème de blockchains autonomes, décentralisées, et résistantes aux attaques. _ +**[Pyth Network](https://pyth.network/)** - _Pyth network est un réseau d'oracles financiers de premier ordre conçu pour publier des données réelles continues sur la chaîne dans un environnement inviolable, décentralisé et autonome._ **[API3 DAO](https://www.api3.org/)** - _L'API3 DAO permet d'apporter des solutions de service d'oracle de premier plan, et d'optimiser la transparence, la fiabilité, la sécurité et la scalabilité des données, dans une solution décentralisée dédiée aux contrats intelligents._ -**[Supra](https://supra.com/)** - Un ensemble d'outils vertical intégré de solutions inter-chaînes qui relient toutes les blockchains, publiques (couche de niveau 1 et 2) ou privées (entreprises), fournissant des flux de prix oracles décentralisés pouvant être mis à profit dans des cas d'utilisation sur et hors chaîne. +**[Supra](https://supra.com/)** - Un ensemble d'outils vertical intégré de solutions inter-chaînes qui relient toutes les blockchains, publiques (couches de niveau 1 et 2) ou privées (entreprises), fournissant des flux de prix d'oracle décentralisés pouvant être employés dans des cas d'utilisation sur la chaîne et hors chaîne. ## Lecture complémentaire {#further-reading} diff --git a/public/content/translations/fr/developers/docs/scaling/index.md b/public/content/translations/fr/developers/docs/scaling/index.md index 059f2b06688..6b5a4d2cb5b 100644 --- a/public/content/translations/fr/developers/docs/scaling/index.md +++ b/public/content/translations/fr/developers/docs/scaling/index.md @@ -13,21 +13,21 @@ L'objectif principal de l'évolutivité est d'augmenter la vitesse des transacti Bien que la vitesse et le débit soient importants, il est essentiel que les solutions de mise à l'échelle permettent d'atteindre ces objectifs en restant décentralisées et sécurisées. Le maintien d'une faible barrière d'entrée pour les opérateurs de nœuds est essentiel pour empêcher une progression vers une puissance informatique centralisée et peu sûre. -Conceptuellement, nous catégorisons d'abord la mise à l'échelle de la chaîne puis celle hors de la chaîne. +D'un point de vue conceptuel, nous définissons la mise à l'échelle comme une mise à l'échelle sur la chaîne ou comme une mise à l'échelle hors chaîne. ## Prérequis {#prerequisites} Vous devez avoir une bonne compréhension de tous les sujets fondamentaux. La mise en œuvre de solutions de mise à l'échelle est délicate car la technologie est moins éprouvée et continue d'être étudiée et développée. -## Mise à l’échelle de la chaîne {#on-chain-scaling} +## Mise à l'échelle sur la chaîne {#onchain-scaling} -La mise à l’échelle en chaîne nécessite des modifications du protocole Ethereum (couche 1 [Réseau principal](/glossary/#mainnet)). Pendant longtemps, on s'attendait à ce que la fragmentation de la blockchain soit mise à l'échelle d'Ethereum. Cela impliquait de scinder la blockchain en morceaux discrets (fragments) pour être vérifiés par des sous-ensembles de validateurs. Cependant, la mise à l'échelle par rollups de couche 2 a pris le relais comme technique principale de mise à l'échelle. Ceci est supporté par l'ajout d'une nouvelle forme de données moins chère reliée à des blocs Ethereum qui est spécialement conçue pour rendre les rollups bon marché pour les utilisateurs. +La mise à l'échelle sur la chaîne nécessite des modifications du protocole Ethereum ([Réseau principal](/glossary/#mainnet) de couche 1). Pendant longtemps, on s'attendait à ce que la fragmentation de la blockchain soit mise à l'échelle d'Ethereum. Cela impliquait de scinder la blockchain en morceaux discrets (fragments) pour être vérifiés par des sous-ensembles de validateurs. Cependant, la mise à l'échelle par rollups de couche 2 a pris le relais comme technique principale de mise à l'échelle. Ceci est supporté par l'ajout d'une nouvelle forme de données moins chère reliée à des blocs Ethereum qui est spécialement conçue pour rendre les rollups bon marché pour les utilisateurs. ### Fragmentation {#sharding} La fragmentation est le processus de division d'une base de données. Les sous-ensembles de validateurs seraient responsables des fragments individuels plutôt que de garder la trace de tout le système Ethereum. La fragmentation était sur la feuille de route [Ethereum](/roadmap/) depuis longtemps, et était autrefois destinée à être expédiée avant la fusion pour la preuve d'enjeu. Cependant, le développement rapide des [rollups de couche 2](#layer-2-scaling) et l'invention de [Danksharding](/roadmap/danksharding) (ajout de blobs de données rollup à des blocs Ethereum qui peuvent être vérifiés très efficacement par les validateurs) a conduit la communauté Ethereum à privilégier une mise à l'échelle centrée sur le rollup au lieu de la mise à l'échelle par fragmentation. Cela permettra également de simplifier la logique de consensus d'Ethereum. -## Mise à l'echelle hors de la chaîne {#off-chain-scaling} +## Mise à l'échelle hors chaîne {#offchain-scaling} Les solutions hors chaîne sont implémentées séparément du réseau principal de couche 1 - elles ne nécessitent aucune modification du protocole Ethereum existant. Certaines solutions, connues sous le nom de solutions de « couche 2 », tirent leur sécurité directement du consensus Ethereum de la couche 1, telles que [des rollups optimistes](/developers/docs/scaling/optimistic-rollups/), [des rollups zk](/developers/docs/scaling/zk-rollups/) ou [des canaux d'état](/developers/docs/scaling/state-channels/). D’autres solutions impliquent la création de nouvelles chaînes sous diverses formes qui tirent leur sécurité séparément du réseau principal, telles que des [chaînes latérales](#sidechains), [validiums](#validium), ou [ chaînes Plasma](#plasma). Ces solutions communiquent avec le réseau principal, mais tirent leur sécurité différemment pour atteindre une variété d’objectifs. @@ -37,7 +37,7 @@ Cette catégorie de solutions hors chaîne tire sa sécurité du réseau princip La couche 2 est un terme collectif désignant les solutions conçues pour aider à faire évoluer votre application en gérant les transactions en dehors du réseau principal Ethereum (couche 1) tout en tirant parti du modèle robuste de sécurité décentralisé du réseau principal. La vitesse des transactions est réduite lorsque le réseau est occupé, ce qui rend l’expérience utilisateur médiocre pour certains types de dApps. Et plus le réseau est fréquenté, plus le prix du gaz augmente, car les expéditeurs de transactions cherchent à surenchérir. Cela peut rendre l'utilisation d'Ethereum très onéreuse. -La plupart des solutions de la couche 2 sont centrées autour d'un serveur ou d'un groupe de serveurs, chacun pouvant être appelé nœud, validateur, opérateur, séquenceur, producteur de blocs ou un terme similaire. Selon l’implémentation, ces nœuds de couche 2 peuvent être gérés par les individus, les entreprises ou les entités qui les utilisent, ou par un opérateur tiers, ou par un large groupe de personnes (similaire au réseau principal). D’une manière générale, les transactions sont soumises à ces nœuds de couche 2 au lieu d’être soumises directement à la couche 1 (réseau principal). Pour certaines solutions, l’instance de couche 2 les regroupe ensuite en groupes avant de les ancrer à la couche 1, après quoi elles sont sécurisées par la couche 1 et ne peuvent pas être modifiées. La façon détaillée dont cela se réalise varie considérablement entre les différentes technologies et implémentations de la couche 2. +La plupart des solutions de la couche 2 sont centrées autour d'un serveur ou d'un groupe de serveurs, chacun pouvant être appelé nœud, validateur, opérateur, séquenceur, producteur de blocs ou un terme similaire. Selon l’implémentation, ces nœuds de couche 2 peuvent être gérés par les individus, les entreprises ou les entités qui les utilisent, ou par un opérateur tiers, ou par un large groupe de personnes (similaire au réseau principal). D’une manière générale, les transactions sont soumises à ces nœuds de couche 2 au lieu d’être soumises directement à la couche 1 (réseau principal). Certaines solutions sont ensuite regroupées par l'instance de la couche 2 avant d'être ancrées à la couche 1, après quoi elles sont sécurisées par la couche 1 et ne peuvent plus être modifiées. La façon détaillée dont cela se réalise varie considérablement entre les différentes technologies et implémentations de la couche 2. Une instance spécifique de couche 2 peut être soit ouverte et partagée par de nombreuses applications, soit déployée par un seul projet et uniquement dédiée à la prise en charge de leur application. @@ -57,11 +57,11 @@ Les rollups exécutent des transactions en dehors de la couche 1, puis les donn Il existe deux types de rollups avec différents modèles de sécurité : - **Rollups optimistes** : suppose que les transactions sont valides par défaut et n’exécute que le calcul, via une [**preuve de fraude**](/glossary/#fraud-proof), en cas de contestation. [Plus d'infos sur les rollups optimistes](/developers/docs/scaling/optimistic-rollups/). -- **Rollups ZK** : exécute le calcul hors chaîne et soumet une [**preuve de validité**](/glossary/#validity-proof) à la chaîne. [Plus d'infos sur les rollups ZK](/developers/docs/scaling/zk-rollups/). +- **Rollups Zero-Knowledge (ZK)** : exécute le calcul hors chaîne et soumet une [**preuve de validité**](/glossary/#validity-proof) sur la chaîne. [Plus d'infos sur les rollups ZK](/developers/docs/scaling/zk-rollups/). #### Canaux d'état {#channels} -Les canaux d'état utilisent des contrats multisig pour permettre aux participants d’effectuer des transactions rapidement et librement hors chaîne, puis de régler la finalisation sur le réseau principal. Cela minimise la congestion du réseau, les frais et les retards. Il existe actuellement deux types de canaux : les canaux d'état et les canaux de paiement. +Les canaux d'état utilisent des contrats multisig pour permettre aux participants d’effectuer des transactions rapidement et librement hors chaîne, puis de régler la finalité sur le réseau principal. Cela minimise la congestion du réseau, les frais et les retards. Il existe actuellement deux types de canaux : les canaux d'état et les canaux de paiement. En savoir plus sur les [canaux d'état](/developers/docs/scaling/state-channels/). @@ -94,7 +94,7 @@ En savoir plus sur [Validium](/developers/docs/scaling/validium/). -_Notez que l’explication dans la vidéo utilise le terme « Couche 2 » pour désigner toutes les solutions de mise à l'échelle hors chaîne, tandis que nous différencions la « couche 2 » en tant que solution hors chaîne qui tire sa sécurité du consensus du réseau principal de couche 1._ +_Notez que l’explication dans la vidéo utilise le terme « Couche 2 » pour désigner toutes les solutions de mise à l'échelle hors chaîne, tandis que nous différencions la « couche 2 » comme une solution hors chaîne qui tire sa sécurité du consensus du réseau principal de couche 1._ @@ -109,6 +109,7 @@ _Notez que l’explication dans la vidéo utilise le terme « Couche 2 » pour - [Évolutivité de la blockchain ZK](https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf) - [Pourquoi les rollups + les data shards sont les seules solutions durables pour une grande évolutivité](https://polynya.medium.com/why-rollups-data-shards-are-the-only-sustainable-solution-for-high-scalability-c9aabd6fbb48) - [Quels types de couches 3 ont un sens ?](https://vitalik.eth.limo/general/2022/09/17/layer_3.html) -- [Disponibilité des données ou : Comment les Rollups ont appris à ne plus s'inquiéter et à aimer Ethereum](https://ethereum2077.substack.com/p/data-availability-in-ethereum-rollups) +- [Disponibilité des données ou : Comment les Rollups ont appris à ne plus s'inquiéter et à aimer Ethereum](https://research.2077.xyz/data-availability-or-how-rollups-learned-to-stop-worrying-and-love-ethereum) +- [Guide Pratique des Rollups Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) _Une ressource communautaire vous a aidé ? Modifiez cette page et ajoutez-la !_ diff --git a/public/content/translations/fr/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/fr/developers/docs/scaling/optimistic-rollups/index.md index 83c617fe414..29f6a3ffbf5 100644 --- a/public/content/translations/fr/developers/docs/scaling/optimistic-rollups/index.md +++ b/public/content/translations/fr/developers/docs/scaling/optimistic-rollups/index.md @@ -4,7 +4,7 @@ description: Une introduction aux rollups optimistes, une solution de mise à l' lang: fr --- -Les rollups optimistes sont des protocoles de couche 2 (L2) conçus pour augmenter le débit de la couche de base d'Ethereum. Ils réduisent le calcul de la chaîne principale d'Ethereum en traitant les transactions hors chaîne, offrant des améliorations significatives dans les vitesses de traitement. Contrairement aux autres solutions de mise à l'échelle, telles que les [chaînes latérales](/developers/docs/scaling/sidechains/), les rollups optimistes tirent leur sécurité du réseau principal en publiant les résultats de transaction en chaîne, ou les [chaînes Plasma](/developers/docs/scaling/plasma/), qui vérifient également les transactions sur Ethereum avec des preuves de fraude, mais stockent les données de transaction ailleurs. +Les rollups optimistes sont des protocoles de couche 2 (L2) conçus pour augmenter le débit de la couche de base d'Ethereum. Ils réduisent le calcul de la chaîne principale d'Ethereum en traitant les transactions hors chaîne, offrant ainsi des améliorations significatives dans les vitesses de traitement. Contrairement aux autres solutions de mise à l'échelle, telles que les [chaînes latérales](/developers/docs/scaling/sidechains/), les rollups optimistes tirent leur sécurité du réseau principal en publiant les résultats de transaction en chaîne, ou les [chaînes Plasma](/developers/docs/scaling/plasma/), qui vérifient également les transactions sur Ethereum à l'aide de preuves de fraude, mais stockent les données de transaction ailleurs. Le calcul étant la partie lente et coûteuse de l'utilisation d'Ethereum, les rollups optimistes offrent 10 à 100 fois plus d'améliorations en terme d'évolutivité. Les rollups optimistes écrivent également les transactions sur Ethereum en tant que `calldata` ou dans des [blobs](/roadmap/danksharding/), ce qui réduit les coûts de gaz pour les utilisateurs. @@ -16,9 +16,9 @@ Vous devez avoir lu et compris nos pages sur la [mise à l'échelle d'Ethereum]( Un rollup optimiste est une approche de mise à l'échelle d'Ethereum qui implique de déplacer le calcul et le stockage d'état hors chaîne. Les rollups optimistes exécutent des transactions en dehors d'Ethereum, mais publient les données de transaction sur le réseau principal en tant que `calldata` ou dans les [blobs](/roadmap/danksharding/). -Les opérateurs de rollup optimiste regroupent plusieurs transactions hors chaîne ensemble en gros lots avant de les soumettre à Ethereum. Cette approche permet de répartir les coûts fixes sur plusieurs transactions dans chaque lot, réduisant ainsi les frais pour les utilisateurs finaux. Les rollups optimistes utilisent également des techniques de compression pour réduire la quantité de données publiées sur Ethereum. +Les opérateurs de rollup optimiste regroupent plusieurs transactions hors chaîne en lots importants avant de les soumettre à Ethereum. Cette approche permet de répartir les coûts fixes sur plusieurs transactions dans chaque lot, réduisant ainsi les frais pour les utilisateurs finaux. Les rollups optimistes utilisent également des techniques de compression pour réduire la quantité de données publiées sur Ethereum. -Les rollups optimistes sont considérés comme « optimistes » car ils supposent que les transactions hors chaîne sont valides et ne publient pas de preuves de validité pour les lots de transactions postés sur la chaîne. Cela sépare les rollups optimistes des [rollups zero-knowledge](/developers/docs/scaling/zk-rollups) qui publient des [preuves de validité](/glossary/#validity-proof) cryptographiques pour les transactions hors chaîne. +Les rollups optimistes sont considérés comme « optimistes » car ils supposent que les transactions hors chaîne sont valides et ne publient pas de preuves de validité pour les lots de transactions postés sur la chaîne. Cela distingue les rollups optimistes des [rollups zero-knowledge](/developers/docs/scaling/zk-rollups) qui publient des [preuves de validité](/glossary/#validity-proof) cryptographiques pour les transactions hors chaîne. Les rollups optimistes se basent plutôt sur un système de preuve de fraude pour détecter les cas où les transactions ne sont pas calculées correctement. Après qu'un lot de rollup soit envoyé sur Ethereum, il y a une fenêtre de temps (appelée période de contestation) au cours de laquelle n'importe qui peut contester les résultats d'une transaction de rollup en calculant une [preuve de fraude](/glossary/#fraud-proof). @@ -28,17 +28,17 @@ Si le lot de rollup reste non contesté (c’est-à-dire que toutes les transact ## Comment les rollups optimistes interagissent-ils avec Ethereum ? {#optimistic-rollups-and-Ethereum} -Les rollups optimistes sont des [solutions d'évolutivité hors chaîne](/developers/docs/scaling/#off-chain-scaling) conçues pour fonctionner sur Ethereum. Chaque rollup optimiste est géré par un ensemble de contrats intelligents déployés sur le réseau Ethereum. Les rollups optimistes traitent les transactions en dehors de la chaîne principale d'Ethereum, mais publient les transactions hors chaîne (en lots) dans un contrat de rollup sur la chaîne. Comme la blockchain Ethereum, cet enregistrement de transaction est immuable et forme la « chaîne de rollup optimiste. » +Les rollups optimistes sont des [solutions d'évolutivité hors chaîne](/developers/docs/scaling/#offchain-scaling) conçues pour fonctionner sur Ethereum. Chaque rollup optimiste est géré par un ensemble de contrats intelligents déployés sur le réseau Ethereum. Les rollups optimistes traitent les transactions en dehors de la chaîne principale d'Ethereum, mais publient les transactions hors chaîne (en lots) dans un contrat de rollup sur la chaîne. Comme la blockchain Ethereum, cet enregistrement de transaction est immuable et forme la « chaîne de rollup optimiste. » L'architecture d'un rollup optimiste comprend les éléments suivants : **Les contrats en chaîne** : Le fonctionnement des rollups optimistes est contrôlé par des contrats intelligents s'exécutant sur Ethereum. Cela inclut les contrats qui stockent les blocs du rollup, surveillent les mises à jour d'état sur le rollup, et suivent les dépôts des utilisateurs. Dans ce sens, Ethereum sert de couche de base ou de « couche 1 » pour les rollups optimistes. -**Machine virtuelle hors chaîne (VM)** : Bien que les contrats gérant le protocole de rollup optimiste s'exécutent sur Ethereum, le protocole rollup effectue le calcul et le stockage d'état sur une autre machine virtuelle séparée de la [Machine Virtuelle Ethereum](/developers/docs/evm/). La VM hors chaîne est l'endroit où les applications résident et où les changements d'état sont exécutés ; elle sert de couche supérieure ou de « couche 2 » pour un rollup optimiste. +**Machine virtuelle hors chaîne (VM)** : Bien que les contrats gérant le protocole de rollup optimiste s'exécutent sur Ethereum, le protocole rollup effectue le calcul et le stockage d'état sur une autre machine virtuelle distincte de la [Machine Virtuelle Ethereum](/developers/docs/evm/). La VM hors chaîne est l'endroit où les applications résident et où les changements d'état sont exécutés ; elle sert de couche supérieure ou de « couche 2 » pour un rollup optimiste. -Comme les rollups optimistes sont conçus pour exécuter des programmes écrits ou compilés pour l'EVM, la VM hors chaîne intègre de nombreuses spécifications de conception de l'EVM. De plus, des preuves de fraude calculées en chaîne permettent au réseau Ethereum de faire respecter la validité des changements d'état calculés dans la machine virtuelle hors chaîne. +Dans la mesure où les rollups optimistes sont conçus pour exécuter des programmes écrits ou compilés pour l'EVM, la VM hors chaîne intègre de nombreuses spécifications de conception de l'EVM. De plus, les preuves de fraude calculées sur la chaîne permettent au réseau Ethereum de faire respecter la validité des changements d'état calculés dans la machine virtuelle hors chaîne. -Les rollups optimistes sont décrits comme des « solutions hybrides de mise à l'échelle », car, bien qu'ils existent en tant que protocoles séparés, leurs propriétés de sécurité sont dérivées d'Ethereum. Entre autres choses, Ethereum garantit l'exactitude du calcul hors chaîne d'un rollup et la disponibilité des données derrière le calcul. Cela rend les rollups optimistes plus sécurisés que les protocoles de mise à l'échelle purement hors chaîne (par exemple, [les chaines latérales](/developers/docs/scaling/sidechains/)) qui ne reposent pas sur Ethereum pour la sécurité. +Les rollups optimistes sont décrits comme des « solutions hybrides de mise à l'échelle », car, bien qu'ils existent en tant que protocoles séparés, leurs propriétés de sécurité sont dérivées d'Ethereum. Entre autres choses, Ethereum garantit l'exactitude du calcul hors chaîne d'un rollup et la disponibilité des données à l'origine du calcul. Cela rend les rollups optimistes plus sécurisés que les protocoles de mise à l'échelle purement hors chaîne (par exemple, les [chaînes latérales](/developers/docs/scaling/sidechains/)) qui ne reposent pas sur Ethereum en matière de sécurité. Les rollups optimistes s'appuient sur le protocole Ethereum principal pour les raisons suivantes : @@ -56,7 +56,7 @@ Les rollups optimistes s'appuient également sur Ethereum pour la résistance à - Les opérateurs de rollup peuvent empêcher les utilisateurs de retirer des fonds déposés dans le contrat du rollup en retenant les données d'état nécessaires aux preuves de propriété de Merkle. La retenue des données d'état peut également dissimuler l'état du rollup aux utilisateurs et les empêcher d'interagir avec le rollup. -Les rollups optimistes résolvent ce problème en forçant les opérateurs à publier des données associées aux mises à jour d'état sur Ethereum. La publication de données rollup en chaîne a les avantages suivants : +Les rollups optimistes résolvent ce problème en forçant les opérateurs à publier des données associées aux mises à jour d'état sur Ethereum. La publication de données rollup sur la chaîne offre les avantages suivants : - Si un opérateur de rollup optimiste se déconnecte ou arrête de produire des lots de transactions, un autre nœud peut utiliser les données disponibles pour reproduire le dernier état du rollup et continuer la production de blocs. @@ -82,17 +82,17 @@ Les autres validateurs de la chaîne de rollup optimiste sont censés exécuter Certains rollups optimistes peuvent renoncer à un système de validateurs sans permission et utiliser un seul « séquenceur » pour exécuter la chaîne. Comme un validateur, le séquenceur traite les transactions, produit des blocs de rollup et soumet les transactions de rollup à la chaîne L1 (Ethereum). -Le séquenceur est différent d'un opérateur de rollup ordinaire car il a un plus grand contrôle sur l'ordre des transactions. De plus, le séquenceur a un accès prioritaire à la chaîne de rollup et est la seule entité autorisée à soumettre des transactions au contrat sur la chaîne. Les transactions provenant de nœuds non séquenceurs ou d'utilisateurs réguliers sont simplement mises en file d'attente dans une boîte de réception distincte jusqu'à ce que le séquenceur les englobe dans un nouveau lot. +Le séquenceur est différent d'un opérateur de rollup ordinaire car il a un plus grand contrôle sur l'ordre des transactions. De plus, le séquenceur a un accès prioritaire à la chaîne de rollup et est la seule entité autorisée à soumettre des transactions au contrat en chaîne. Les transactions provenant de nœuds non séquenceurs ou d'utilisateurs réguliers sont simplement mises en file d'attente dans une boîte de réception distincte jusqu'à ce que le séquenceur les englobe dans un nouveau lot. #### Soumettre des blocs de rollup à Ethereum {#submitting-blocks-to-ethereum} -Comme mentionné, l'opérateur d'un rollup optimiste regroupe les transactions hors chaîne dans un lot et l'envoie à Ethereum pour la notarisation. Ce processus implique de compresser les données liées aux transactions et de les publier sur Ethereum en tant que `calldata` ou dans des blobs. +Comme mentionné, l'opérateur d'un rollup optimiste regroupe les transactions hors chaîne dans un lot et envoie celui-ci à Ethereum pour la notarisation. Ce processus implique de compresser les données liées aux transactions et de les publier sur Ethereum en tant que `calldata` ou dans des blobs. -`calldata` est une zone non modifiable et non persistante dans un contrat intelligent qui se comporte principalement comme une [mémoire](/developers/docs/smart-contracts/anatomy/#memory). Alors que `calldata` persiste sur la chaîne en tant que partie des [history logs](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs) de la blockchain, elle n'est pas stockée en tant que partie de l'état d'Ethereum. Parce que `calldata` ne touche aucune partie de l'état d'Ethereum, il est moins coûteux que l'état pour stocker des données sur la chaîne. +`calldata` est une zone non modifiable et non persistante dans un contrat intelligent qui se comporte principalement comme une [mémoire](/developers/docs/smart-contracts/anatomy/#memory). Alors que les `calldata` persistent sur la chaîne en tant que partie des [journaux d'historique](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs) de la blockchain, elles ne sont pas stockées en tant que partie de l'état d'Ethereum. Dans la mesure où les `calldata` ne touchent aucune partie de l'état d'Ethereum, elles sont moins coûteuses que l'état pour stocker des données sur la chaîne. Le mot-clé `calldata` est également utilisé dans Solidity pour transmettre des arguments à une fonction de contrat intelligent au moment de l'exécution. `calldata` identifie la fonction appelée pendant une transaction et détient les entrées de la fonction sous la forme d'une séquence arbitraire d'octets. -Dans le contexte des rollups optimistes, `calldata` est utilisé pour envoyer des données de transaction compressées au contrat en chaîne. L'opérateur de rollup ajoute un nouveau lot en appelant la fonction requise dans le contrat de rollup et en transmettant les données compressées comme arguments de fonction. L'utilisation de `calldata` réduit les frais d'utilisation puisque la plupart des coûts que les rollups encourent proviennent du stockage des données sur la chaîne. +Dans le contexte des rollups optimistes, les `calldata` sont utilisées pour envoyer des données de transaction compressées au contrat en chaîne. L'opérateur de rollup ajoute un nouveau lot en appelant la fonction requise dans le contrat de rollup et en transmettant les données compressées comme arguments de fonction. L'utilisation de `calldata` permet de réduire les frais d'utilisation, car la plupart des coûts supportés par les rollups proviennent du stockage des données sur la chaîne. Voici [un exemple](https://etherscan.io/tx/0x9102bfce17c58b5fc1c974c24b6bb7a924fb5fbd7c4cd2f675911c27422a5591) de soumission d'un batch de rollup pour montrer comment ce concept fonctionne. Le séquenceur a invoqué la méthode `appendSequencerBatch()` et a transmis les données de transaction compressées comme entrées en utilisant `calldata`. @@ -104,7 +104,7 @@ Les blobs ne sont ni modifiables ni persistants (tout comme `calldata`), mais il À tout moment, l'état du rollup optimiste (comptes, soldes, code de contrat, etc.) est organisé sous la forme d'un [arbre de Merkle](/whitepaper/#merkle-trees) appelé « arbre d'état ». La racine de cet arbre de Merkle (racine d'état), qui fait référence au dernier état du rollup, est hachée et stockée dans le contrat du rollup. Chaque transition d'état sur la chaîne produit un nouvel état de rollup, auquel un opérateur s'engage en calculant une nouvelle racine d'état. -L'opérateur est tenu de soumettre les racines de l'ancien et du nouvel État lorsqu'il enregistre des lots. Si l'ancienne racine d'état correspond à la racine d'état existante dans le contrat on-chain, cette dernière est écartée et remplacée par la nouvelle racine d'état. +L'opérateur est tenu de soumettre les racines de l'ancien et du nouvel État lorsqu'il enregistre des lots. Si l'ancienne racine d'état correspond à la racine d'état existante dans le contrat en chaîne, cette dernière est écartée et remplacée par la nouvelle racine d'état. L'opérateur de rollup est également tenu de livrer une racine Merkle pour le lot de transactions lui-même. Cela permet à quiconque de prouver l'inclusion d'une transaction dans le lot (sur L1) en présentant une [preuve de Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/). @@ -118,7 +118,7 @@ Si quelqu'un conteste une assertion, le protocole de rollup lance le calcul de l Les schémas de preuve interactifs à un tour rejouent les transactions contestées sur L1 pour détecter les assertions invalides. Le protocole rollup émule la réexécution de la transaction contestée sur L1 (Ethereum) à l'aide d'un contrat de vérificateur, la racine de l'état calculé déterminant qui remporte le défi. Si l'affirmation du challenger concernant l'état correct du rollup est correcte, l'opérateur est pénalisé par la réduction de sa caution. -Cependant, la réexécution des transactions sur L1 pour détecter les fraudes nécessite la publication des engagements d'état pour les transactions individuelles et augmente les données que les rollups doivent publier sur la chaîne. La relecture des transactions entraîne également d'importants coûts en gaz. Pour ces raisons, les rollups optimistes passent à la preuve interactive à tours multiples, qui atteint le même objectif (c'est-à-dire la détection des opérations de rollup invalides) avec plus d'efficacité. +Cependant, la réexécution des transactions sur la couche 1 en vue de détecter les fraudes nécessite la publication des engagements d'état pour les transactions individuelles et augmente le nombre de données que les rollups doivent publier sur la chaîne. La relecture des transactions entraîne également d'importants coûts en gaz. Pour ces raisons, les rollups optimistes passent à la preuve interactive à tours multiples, qui atteint le même objectif (c'est-à-dire la détection des opérations de rollup invalides) avec plus d'efficacité. #### Épreuve interactive à plusieurs tours {#multi-round-interactive-proving} @@ -132,7 +132,7 @@ Quelques remarques sur ce type de preuve de fraude : 1. La preuve de fraude interactive à tours multiples est considérée comme efficace car elle minimise le travail que la chaîne L1 doit effectuer lors de l'arbitrage des litiges. Au lieu de rejouer l'intégralité de la transaction, la chaîne L1 n'a besoin de réexécuter qu'une seule étape de l'exécution du rollup. -2. Les protocoles de bissection réduisent la quantité de données publiées sur la chaîne (il n'est pas nécessaire de publier des commits d'état pour chaque transaction). En outre, les transactions de rollup optimistes ne sont pas limitées par la limite de gaz d'Ethereum. Inversement, les rollups optimistes qui réexécutent les transactions doivent s'assurer qu'une transaction L2 a une limite de gaz inférieure pour émuler son exécution dans une seule transaction Ethereum. +2. Les protocoles de bissection réduisent la quantité de données publiées sur la chaîne (il n'est pas nécessaire de publier des engagements d'état pour chaque transaction). En outre, les transactions de rollup optimistes ne sont pas limitées par la limite de gaz d'Ethereum. Inversement, les rollups optimistes qui réexécutent les transactions doivent s'assurer qu'une transaction L2 a une limite de gaz inférieure pour émuler son exécution dans une seule transaction Ethereum. 3. Une partie de la caution du vérificateur malveillant est attribuée au challenger, tandis que l'autre partie est brûlée. La combustion empêche la collusion entre les validateurs ; si deux validateurs s'entendent pour lancer de faux défis, ils perdront quand même une part considérable de la mise totale. @@ -156,7 +156,7 @@ Les rollups optimistes sont conçus pour l'interopérabilité avec le réseau pr Pour utiliser un rollup optimiste, les utilisateurs déposent des ETH, des jetons ERC-20 et d'autres actifs acceptés dans le contrat [pont](/developers/docs/bridges/) du rollup sur L1. Le contrat pont relaiera la transaction vers L2, où un montant équivalent d'actifs sera frappé et envoyé à l'adresse choisie par l'utilisateur lors du rollup optimiste. -Les transactions générées par l'utilisateur (comme un dépôt L1 > L2) sont généralement mises en file d'attente jusqu'à ce que le séquenceur les soumette à nouveau au contrat de rollup. Cependant, pour préserver la résistance à la censure, les rollups optimistes permettent aux utilisateurs de soumettre une transaction directement au contrat de rollup on-chain si elle a été retardée au-delà du temps maximum autorisé. +Les transactions générées par l'utilisateur (comme un dépôt L1 > L2) sont généralement mises en file d'attente jusqu'à ce que le séquenceur les soumette à nouveau au contrat de rollup. Cependant, pour préserver la résistance à la censure, les rollups optimistes permettent aux utilisateurs de soumettre une transaction directement au contrat de rollup en chaîne si celle-ci a été retardée au-delà du temps maximum autorisé. Certains rollups optimistes adoptent une approche plus directe pour empêcher les séquenceurs de censurer les utilisateurs. Ici, un bloc est défini par toutes les transactions soumises au contrat L1 depuis le bloc précédent (par exemple, les dépôts) en plus des transactions traitées sur la chaîne de rollup. Si un séquenceur ignore une transaction sur L1, il publiera la racine d'état (prouvée) erronée ; par conséquent, les séquenceurs ne peuvent pas retarder les messages générés par les utilisateurs une fois qu'ils sont publiés sur L1. @@ -198,7 +198,7 @@ Enfin, il convient de noter que les appels de messages L2 > L1 entre les contrat Les rollups optimistes utilisent un système de frais de gaz, un peu comme Ethereum, pour indiquer combien les utilisateurs paient par transaction. Les frais facturés sur les rollups optimistes dépendent des éléments suivants : -1. **State write**: Les rollups optimistes publient les données de transaction et les en-têtes de bloc (composés du hachage de l'en-tête de bloc précédent, de la racine de l'état, de la racine du lot) sur Ethereum sous forme de `blob`, ou "objet binaire large". [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) a introduit une solution économique pour inclure des données sur la chaîne. Un `blob` est un nouveau champ de transaction qui permet aux rollups de publier des données de transition d'état compressées sur la couche 1 d'Ethereum. Contrairement au `calldata`, qui reste en permanence sur la chaîne, les blobs sont de courte durée et peuvent être supprimés des clients après [4096 époques](https://github.com/ethereum/consensus-specs/blob/81f3ea8322aff6b9fb15132d050f8f98b16bdba4/configs/mainnet.yaml#L147) (environ 18 jours). En utilisant des blobs pour publier des lots de transactions compressées, les rollups optimistes peuvent réduire de manière significative le coût d'écriture des transactions sur la couche 1. +1. **State write**: Les rollups optimistes publient les données de transaction et les en-têtes de bloc (composés du hachage de l'en-tête de bloc précédent, de la racine de l'état, de la racine du lot) sur Ethereum sous forme de `blob`, ou "objet binaire large". [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) a introduit une solution économique pour inclure des données sur la chaîne. Un `blob` est un nouveau champ de transaction qui permet aux rollups de publier des données de transition d'état compressées sur la couche 1 d'Ethereum. Contrairement au `calldata`, qui reste en permanence sur la chaîne, les blobs sont de courte durée et peuvent être retirés aux clients après [4 096 époques](https://github.com/ethereum/consensus-specs/blob/81f3ea8322aff6b9fb15132d050f8f98b16bdba4/configs/mainnet.yaml#L147) (environ 18 jours). En utilisant des blobs pour publier des lots de transactions compressées, les rollups optimistes peuvent réduire de manière significative le coût d'écriture des transactions sur la couche 1. 2. **Gaz utilisé pour les blobs** : Les transactions contenant des blobs utilisent un mécanisme de frais dynamique similaire à celui introduit par [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559). Les frais de gaz pour les transactions de type 3 tiennent compte des frais de base pour les blobs, qui sont déterminés par le réseau en fonction de la demande d'espace pour les blobs et de l'utilisation de l'espace blob par la transaction envoyée. @@ -208,7 +208,7 @@ Les rollups optimistes appliquent plusieurs mécanismes pour réduire les frais ## Comment les rollups optimistes font-ils évoluer Ethereum ? {#scaling-ethereum-with-optimistic-rollups} -Comme expliqué, les rollups optimistes publient des données de transaction compressées sur Ethereum pour garantir la disponibilité des données. La possibilité de compresser les données publiées sur la chaîne est cruciale pour mettre à l'échelle le débit sur Ethereum avec des rollups optimistes. +Comme expliqué, les rollups optimistes publient des données de transaction compressées sur Ethereum pour garantir la disponibilité des données. Il est essentiel de pouvoir compresser les données publiées sur la chaîne pour mettre à l'échelle le débit sur Ethereum avec des rollups optimistes. La chaîne principale d'Ethereum impose des limites à la quantité de données que les blocs peuvent contenir, libellées en unités de gaz (la [taille moyenne des blocs](/developers/docs/blocks/#block-size) est de 15 millions de gaz). Bien que cela limite la quantité de gaz que chaque transaction peut utiliser, cela signifie également que nous pouvons augmenter les transactions traitées par bloc en réduisant les données liées aux transactions, ce qui améliore directement l'évolutivité. @@ -244,7 +244,7 @@ L'introduction de [la fragmentation des données](/roadmap/danksharding/) sur Et | La preuve de la fraude garantit une finalité sans faille et permet aux minorités honnêtes de sécuriser la chaîne. | S'il n'y a pas de nœuds honnêtes, un opérateur malveillant peut voler des fonds en postant des blocs et des engagements d'état invalides. | | Le calcul des preuves de fraude est ouvert au nœud L2 ordinaire, contrairement aux preuves de validité (utilisées dans les rollups ZK) qui nécessitent un matériel spécial. | Le modèle de sécurité repose sur au moins un nœud honnête exécutant des transactions de rollup et soumettant des preuves de fraude pour contester les transitions d'état invalides. | | Les rollups bénéficient d'une « vivacité sans confiance » (n'importe qui peut forcer la chaîne à avancer en exécutant des transactions et en postant des assertions) | Les utilisateurs doivent attendre l'expiration de la période de défi d'une semaine avant de retirer des fonds vers l'Ethereum. | -| Les rollups optimistes s'appuient sur des incitations cryptoéconomiques bien conçues pour accroître la sécurité sur la chaîne. | Les rollups doivent enregistrer toutes les données de transaction sur la chaîne, ce qui peut augmenter les coûts. | +| Les rollups optimistes s'appuient sur des incitations cryptoéconomiques bien conçues pour accroître la sécurité sur la chaîne. | Les rollups doivent publier toutes les données de transaction sur la chaîne, ce qui peut augmenter les coûts. | | La compatibilité avec EVM et Solidity permet aux développeurs de porter les contrats intelligents natifs d'Ethereum vers les rollups ou d'utiliser les outils existants pour créer de nouvelles dApps. | | ### Une explication visuelle des rollups optimistes {#optimistic-video} @@ -258,6 +258,8 @@ Davantage qu'un apprenant visuel ? Regardez Finematics expliquer les rollups opt - [Comment fonctionnent les rollups optimistes (Le guide complet)](https://www.alchemy.com/overviews/optimistic-rollups) - [Qu'est-ce qu'un rollup de blockchain ? Une introduction technique](https://www.ethereum-ecosystem.com/blog/what-is-a-blockchain-rollup-a-technical-introduction) - [Le guide essentiel pour Arbitrum](https://newsletter.banklesshq.com/p/the-essential-guide-to-arbitrum) +- [Guide pratique des rollups Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) +- [L’état des preuves de fraude dans les secondes couches d’Ethereum](https://research.2077.xyz/the-state-of-fraud-proofs-in-ethereum-l2s) - [Comment fonctionne réellement le rollup d'Optimism ?](https://www.paradigm.xyz/2021/01/how-does-optimisms-rollup-really-work) - [OVM Deep Dive](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52) - [Qu’est-ce que la machine virtuelle optimiste ?](https://www.alchemy.com/overviews/optimistic-virtual-machine) diff --git a/public/content/translations/fr/developers/docs/scaling/plasma/index.md b/public/content/translations/fr/developers/docs/scaling/plasma/index.md index 470b48d132a..e3e1a9212bb 100644 --- a/public/content/translations/fr/developers/docs/scaling/plasma/index.md +++ b/public/content/translations/fr/developers/docs/scaling/plasma/index.md @@ -24,7 +24,7 @@ Le contrat Plasma fonctionne, entre autres, comme un [pont](/developers/docs/bri Les composants de base de Plasma sont : -### Calcul hors chaîne {#off-chain-computation} +### Calcul hors chaîne {#offchain-computation} La vitesse de traitement actuelle d'Ethereum est limitée à environ 15 à 20 transactions par seconde, ce qui ne permet pas de gérer un fort accroissement du nombre d'utilisateurs sans engorger le réseau. Ce problème existe principalement parce que le [mécanisme de consensus](/developers/docs/consensus-mechanisms/) d'Ethereum nécessite de nombreux nœuds peer-to-peer pour vérifier chaque mise à jour de l'état de la blockchain. @@ -32,7 +32,7 @@ Bien que ce mécanisme de consensus soit nécessaire pour la sécurité du rése Plasma suppose que le réseau principal Ethereum n'a pas besoin de vérifier toutes les transactions. Au lieu de ça, nous pouvons traiter les transactions en dehors du réseau principal, ce qui libère les noeuds d'une certaine charge de travail puisqu'ils n'auront plus à valider toutes les transactions. -Ces calculs réalisés hors chaîne sont nécessaires car les chaînes Plasma peuvent permettre d'optimiser la vitesse et le coût des transactions. Par exemple, une chaîne Plasma peut, et va le plus souvent, utiliser un seul « opérateur » pour gérer l'ordre et l'exécution des transactions. Avec une seule entité vérifiant les transactions, les temps de traitement sur une chaîne Plasma sont plus rapides que sur le réseau principal Ethereum. +Les calculs hors chaîne sont nécessaires car les chaînes Plasma peuvent optimiser la vitesse et le coût. Par exemple, une chaîne Plasma peut, et va le plus souvent, utiliser un seul « opérateur » pour gérer l'ordre et l'exécution des transactions. Avec une seule entité vérifiant les transactions, les temps de traitement sur une chaîne Plasma sont plus rapides que sur le réseau principal Ethereum. ### Engagements d'état {#state-commitments} @@ -42,7 +42,7 @@ Un [schéma d'engagement](https://en.wikipedia.org/wiki/Commitment_scheme) est u Les racines de Merkle sont des primitives cryptographiques qui permettent de compresser de grandes quantités d'informations. Une racine Merkle (également appelée « racine de bloc » dans ce cas) pourrait représenter toutes les transactions d'un bloc. Les racines de Merkle permettent également de vérifier plus facilement qu'un petit élément de données fait partie d'un ensemble de données plus vaste. Par exemple, un utilisateur peut produire une [preuve Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/#main-content) pour prouver l'inclusion d'une transaction dans un bloc spécifique. -Les racines Merkle sont importantes pour fournir à Ethereum des informations sur l'état de la chaîne externe. Vous pouvez considérer les racines de Merkle comme des « points de sauvegarde » : l'opérateur dit : « Voici l'état de la chaîne Plasma à un moment x, et voici la racine de Merkle comme preuve. » L'opérateur s'engage sur l'_état actuel_ de la chaîne plasma avec une racine de Merkle, c'est pourquoi on parle d'un « engagement d'état ». +Les racines Merkle sont importantes pour fournir à Ethereum des informations sur l'état hors chaîne. Vous pouvez considérer les racines de Merkle comme des « points de sauvegarde » : l'opérateur dit : « Voici l'état de la chaîne Plasma à un moment x, et voici la racine de Merkle comme preuve. » L'opérateur s'engage sur l'_état actuel_ de la chaîne plasma avec une racine de Merkle, c'est pourquoi on parle d'un « engagement d'état ». ### Entrées et sorties {#entries-and-exits} diff --git a/public/content/translations/fr/developers/docs/scaling/state-channels/index.md b/public/content/translations/fr/developers/docs/scaling/state-channels/index.md index e2f4e5a5a9d..3451d95d3ff 100644 --- a/public/content/translations/fr/developers/docs/scaling/state-channels/index.md +++ b/public/content/translations/fr/developers/docs/scaling/state-channels/index.md @@ -27,7 +27,7 @@ Les canaux pair-à-pair sont particulièrement utiles dans les situations où ce ## Les canaux de paiement {#payment-channels} -La meilleure façon de décrire un canal de paiement est de dire qu'il s'agit d'un « registre à double sens » tenu collectivement par deux utilisateurs. Le solde initial du registre est la somme des dépôts bloqués dans le contrat sur la chaîne pendant la phase d'ouverture du canal. Les transferts de canaux de paiement peuvent être effectués instantanément et sans l'intervention de la blockchain elle-même, à l'exception d'une création initiale unique sur la chaîne et d'une fermeture éventuelle du canal. +La meilleure façon de décrire un canal de paiement est de dire qu'il s'agit d'un « registre à double sens » tenu collectivement par deux utilisateurs. Le solde initial du registre est la somme des dépôts bloqués dans le contrat en chaîne pendant la phase d'ouverture du canal. Les transferts de canaux de paiement peuvent être effectués instantanément et sans l'intervention de la blockchain elle-même, à l'exception d'une création initiale unique sur la chaîne et d'une fermeture éventuelle du canal. Les mises à jour du solde du registre (c'est-à-dire l'état du canal de paiement) nécessitent l'approbation de toutes les parties du canal. Une mise à jour du canal, signée par tous les participants au canal, est considérée comme finalisée, un peu comme une transaction sur Ethereum. @@ -87,7 +87,7 @@ Le scénario décrit ci-dessus représente ce qui se passe dans un cas de figure - Les participants refusent de cosigner des mises à jour d'état valides -- Les participants essaient de finaliser le canal en proposant une mise à jour de l'ancien état au contrat sur la chaîne +- Les participants essaient de finaliser le canal en proposant une mise à jour de l'ancien état au contrat en chaîne - Les participants proposent des transitions d'état invalides pour que les autres les signent @@ -101,7 +101,7 @@ Cependant, une partie peut soumettre une demande sur la chaîne pour mettre fin Pour traiter la sortie du canal, l'utilisateur doit soumettre la dernière mise à jour d'état valide de l'application au contrat en chaîne. S'il est validé (c'est-à-dire qu'il porte la signature de toutes les parties), les fonds sont redistribués en sa faveur. -Il y a cependant un retard dans l'exécution des demandes de sortie des utilisateurs uniques. Si la demande de fermeture du canal a été approuvée à l'unanimité, alors la transaction de sortie sur la chaîne est exécutée immédiatement. +Il y a cependant un retard dans l'exécution des demandes de sortie des utilisateurs uniques. Si la demande de fermeture du canal a été approuvée à l'unanimité, alors la transaction de sortie de la chaîne est exécutée immédiatement. Le délai a une certaine importance dans les sorties mono-utilisateur en raison de la possibilité d'actions frauduleuses. Par exemple, un participant au canal peut essayer de finaliser le canal sur Ethereum en soumettant une ancienne mise à jour d'état sur la chaîne. @@ -145,7 +145,7 @@ Ce système repose sur l'existence de ce que l'on appelle des « canaux de regis Les utilisateurs de chaque canal virtuel interagissent via une nouvelle instance de contrat, le canal du registre pouvant prendre en charge plusieurs instances de contrat. L'état du canal du registre contient également plus d'un état de stockage de contrat, ce qui permet l'exécution parallèle d'applications hors chaîne entre différents utilisateurs. -Tout comme les canaux ordinaires, les utilisateurs échangent des mises à jour d'état pour faire progresser la machine d'état. Hormis en cas de litige, il suffit de contacter l'intermédiaire pour ouvrir ou fermer le canal. +Tout comme les canaux ordinaires, les utilisateurs échangent des mises à jour d'état pour faire progresser la machine d'état. Sauf en cas de litige, il suffit de contacter l'intermédiaire pour ouvrir ou fermer le canal. ### Canaux de paiement virtuel {#virtual-payment-channels} @@ -155,13 +155,13 @@ Les canaux de paiement virtuels fonctionnent sur le même principe que les canau ### Paiements {#payments} -Les premiers canaux de la blockchain étaient de simples protocoles qui permettaient à deux participants d'effectuer des transferts rapides et peu coûteux hors chaîne sans avoir à payer des frais de transaction élevés sur le réseau principal. Aujourd'hui, les canaux de paiement sont encore utiles pour les applications conçues pour l'échange et les dépôts d'éther et de jetons. +Les premiers canaux de la blockchain étaient de simples protocoles qui permettaient à deux participants d'effectuer des transferts rapides et peu coûteux hors chaîne sans avoir à payer de frais de transaction élevés sur le réseau principal. Aujourd'hui, les canaux de paiement sont encore utiles pour les applications conçues pour l'échange et les dépôts d'éther et de jetons. Les paiements basés sur les canaux présentent les avantages suivants : 1. **Débit** : la quantité de transactions hors chaîne par canal n'a aucun lien avec le débit d'Ethereum, qui résulte de divers facteurs, notamment la taille et la durée des blocs. En exécutant des transactions hors chaîne, les canaux de la blockchain peuvent atteindre un débit plus élevé. -2. **Confidentialité** : dans la mesure où les canaux existent hors chaîne, les détails des interactions entre les participants ne sont pas enregistrés sur la blockchain publique d'Ethereum. Les utilisateurs de canaux ne doivent interagir sur la chaîne que pour financer et fermer des canaux ou régler des litiges. Les canaux sont donc utiles pour les personnes qui recherchent des transactions plus privées. +2. **Confidentialité** : dans la mesure où les canaux existent hors chaîne, les informations relatives aux interactions entre les participants ne sont pas enregistrées sur la blockchain publique d'Ethereum. Les utilisateurs de canaux ne doivent interagir sur la chaîne que pour financer et fermer des canaux ou régler des litiges. Les canaux sont donc utiles pour les personnes qui recherchent des transactions plus privées. 3. **Latence** : les transactions hors chaîne effectuées entre les participants au canal peuvent être réglées instantanément, si les deux parties coopèrent, ce qui réduit les délais. En revanche, pour envoyer une transaction sur le réseau principal, il faut attendre que les nœuds traitent la transaction, produisent un nouveau bloc avec la transaction et parviennent à un consensus. Il se peut également que les utilisateurs doivent attendre d'autres confirmations de blocs avant de considérer une transaction comme finalisée. @@ -181,7 +181,7 @@ Au-delà du coût d'ouverture et de fermeture du canal, les participants n'encou Comme les canaux de paiement, les canaux d'état peuvent effectuer des paiements conditionnels en fonction des états finaux de la machine d'état. Les canaux d'état peuvent également prendre en charge une logique de transition d'état arbitraire, ce qui les rend utiles pour exécuter des applications génériques hors chaîne. -Les canaux d'état sont souvent limités à de simples applications à tour de rôle, car cela facilite la gestion des fonds engagés dans le contrat sur la chaîne. En outre, avec un nombre limité de parties mettant à jour l'état de l'application hors chaîne à intervalles réguliers, il est relativement simple de sanctionner un comportement malhonnête. +Les canaux d'état sont souvent limités à de simples applications basées sur le tour de rôle, car cela facilite la gestion des fonds engagés dans le contrat en chaîne. En outre, avec un nombre limité de parties mettant à jour l'état de l'application hors chaîne à intervalles réguliers, il est relativement simple de sanctionner un comportement malhonnête. L'efficacité d'une application de canal d'état dépend également de sa conception. Par exemple, un développeur peut déployer une fois le contrat de canal de l'application sur la chaîne et permettre aux autres joueurs de réutiliser l'application sans avoir à passer par la chaîne. Dans ce cas, le canal initial de l'application sert de canal de registre supportant plusieurs canaux virtuels, chacun exécutant une nouvelle instance du contrat intelligent de l'application hors chaîne. @@ -215,9 +215,9 @@ Les utilisateurs d'Ethereum n'ont pas à faire face à ce problème puisque le r ### Problèmes de liquidité {#liquidity-issues} -Pour établir un canal sur la blockchain, les participants doivent bloquer des fonds dans un contrat intelligent sur la chaîne pour le cycle de vie du canal. Cela réduit la liquidité des utilisateurs du canal et limite également les canaux à ceux qui peuvent se permettre de garder les fonds bloqués sur le réseau principal. +Pour établir un canal sur la blockchain, les participants doivent bloquer des fonds dans un contrat intelligent sur la chaîne tout au long du cycle de vie du canal. Cela réduit la liquidité des utilisateurs du canal et limite également les canaux à ceux qui peuvent se permettre de garder les fonds bloqués sur le réseau principal. -Toutefois, les canaux des registres - exploités par un fournisseur de services hors chaîne (OSP) - peuvent réduire les problèmes de liquidité pour les utilisateurs. Deux pairs connectés à un canal du registre peuvent créer un canal virtuel, qu'ils peuvent ouvrir et finaliser complètement hors chaîne, quand ils le souhaitent. +Toutefois, les canaux de registre - exploités par un fournisseur de services hors chaîne (OSP) - peuvent réduire les problèmes de liquidité pour les utilisateurs. Deux pairs connectés à un canal de registre peuvent créer un canal virtuel, qu'ils peuvent ouvrir et finaliser complètement hors chaîne, quand ils le souhaitent. Les fournisseurs de services hors chaîne pourraient également ouvrir des canaux avec plusieurs pairs, ce qui les rend utiles pour l'acheminement des paiements. Bien entendu, les utilisateurs doivent payer des frais aux OSP pour leurs services, ce que certains pourraient juger indésirable. @@ -225,17 +225,17 @@ Les fournisseurs de services hors chaîne pourraient également ouvrir des canau Les attaques de griefing sont une caractéristique commune des systèmes basés sur la preuve de fraude. Une attaque de griefing ne profite pas directement à l'attaquant mais cause du grief (c'est-à-dire du tort) à la victime, d'où son nom. -La preuve de fraude est susceptible de faire l'objet d'attaques de type griefing, car la partie honnête doit répondre à chaque litige, même invalide, sous peine de perdre ses fonds. Un participant malveillant peut décider de poster de manière répétée des transitions d'état périmées sur la chaîne, obligeant la partie honnête à répondre avec l'état valide. Le coût de ces transactions sur la chaîne peut rapidement s'accumuler, et les parties honnêtes y perdent au change. +La preuve de fraude est susceptible de faire l'objet d'attaques de type griefing, car la partie honnête doit répondre à chaque litige, même invalide, sous peine de perdre ses fonds. Un participant malveillant peut décider de poster de manière répétée des transitions d'état périmées sur la chaîne, obligeant la partie honnête à répondre avec l'état valide. Le coût de ces transactions sur la chaîne peut rapidement augmenter, et les parties honnêtes y perdent au change. ### Ensembles de participants prédéfinis {#predefined-participant-sets} -Par conception, le nombre de participants qui composent un canal d'état reste fixe pendant toute sa durée de vie. En effet, la mise à jour de l'ensemble des participants compliquerait le fonctionnement du canal, notamment pour le financement du canal ou le règlement des litiges. L'ajout ou le retrait de participants nécessiterait également une activité supplémentaire sur la chaîne, ce qui augmente les frais généraux pour les utilisateurs. +Par conception, le nombre de participants qui composent un canal d'état reste fixe pendant toute sa durée de vie. En effet, la mise à jour de l'ensemble des participants compliquerait le fonctionnement du canal, notamment pour le financement du canal ou le règlement des litiges. L'ajout ou le retrait de participants nécessiterait également une activité supplémentaire sur la chaîne, augmentant ainsi les frais généraux pour les utilisateurs. Bien que cela rende les canaux d'état plus faciles à appréhender, cette approche limite l'utilité des conceptions de canaux pour les développeurs d'applications. Cela explique en partie pourquoi les canaux d'état ont été abandonnés au profit d'autres solutions de mise à l'échelle, comme les rollups. ### Traitement parallèle des transactions {#parallel-transaction-processing} -Les participants au canal d'état envoient des mises à jour d'état à tour de rôle, c'est pourquoi ils fonctionnent mieux pour les « applications basées sur le tour de rôle » (par exemple, un jeu d'échecs à deux joueurs). Cela élimine la nécessité de gérer les mises à jour simultanées de l'état et réduit le travail que le contrat en chaîne doit faire pour punir les publications de mise à jour périmées. Cependant, cette conception a pour effet secondaire de rendre les transactions dépendantes les unes des autres, ce qui augmente la latence et diminue l'expérience globale de l'utilisateur. +Les participants au canal d'état envoient des mises à jour d'état à tour de rôle, c'est pourquoi ils fonctionnent mieux pour les « applications basées sur le tour de rôle » (par exemple, un jeu d'échecs à deux joueurs). Cela permet de ne pas avoir à gérer les mises à jour simultanées de l'état et de réduire le travail que le contrat en chaîne doit effectuer pour sanctionner les publications de mise à jour périmées. Cependant, cette conception a pour effet secondaire de rendre les transactions dépendantes les unes des autres, ce qui augmente la latence et diminue l'expérience globale de l'utilisateur. Certains canaux d'état résolvent ce problème en utilisant une conception « full-duplex » qui divise l'état hors chaîne en deux états unidirectionnels « simplex », permettant des mises à jour d'état simultanées. Ces conceptions améliorent le débit hors chaîne et réduisent les délais de transaction. diff --git a/public/content/translations/fr/developers/docs/scaling/validium/index.md b/public/content/translations/fr/developers/docs/scaling/validium/index.md index fa20049b478..26ee7c690e1 100644 --- a/public/content/translations/fr/developers/docs/scaling/validium/index.md +++ b/public/content/translations/fr/developers/docs/scaling/validium/index.md @@ -5,7 +5,7 @@ lang: fr sidebarDepth: 3 --- -Validium est une [solution de mise à l'échelle](/developers/docs/scaling/) qui renforce l'intégrité des transactions à l'aide de preuves de validité telles que des[ ZK-rollups](/developers/docs/scaling/zk-rollups/), mais ne stocke pas les données de transaction sur le réseau principal Ethereum. Alors que la disponibilité des données hors chaîne introduit des compromis, elle peut conduire à des améliorations massives de l'évolutivité (les validiums peuvent traiter [~9 000 transactions ou plus par seconde](https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263)). +Validium est une [solution de mise à l'échelle](/developers/docs/scaling/) qui renforce l'intégrité des transactions à l'aide de preuves de validité telles que des[ ZK-rollups](/developers/docs/scaling/zk-rollups/), mais ne stocke pas les données de transaction sur le réseau principal Ethereum. Alors que la disponibilité des données hors chaîne introduit des compromis, elle peut conduire à des améliorations massives en termes de mise à l'échelle (les validiums peuvent traiter [~9 000 transactions ou plus par seconde](https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263)). ## Prérequis {#prerequisites} @@ -13,13 +13,13 @@ Vous devez avoir lu et compris notre page sur [la mise à l'échelle d'Ethereum] ## Qu'est-ce qu'un validium ? {#what-is-validium} -Les validiums sont des solutions de mise à l'échelle qui utilisent la disponibilité et le calcul des données hors chaîne conçus pour améliorer le débit en traitant les transactions à partir du réseau principal Ethereum. Comme les rollups à connaissance nulle (ZK-rollups), les validiums publient [des preuves à connaissance nulle](/glossary/#zk-proof) pour vérifier les transactions hors chaîne sur Ethereum. Cela permet d'éviter les transitions d'état invalides et de renforcer les garanties de sécurité d'une chaîne de validium. +Les validiums sont des solutions de mise à l'échelle qui utilisent la disponibilité et le calcul des données hors chaîne visant à améliorer le débit en traitant les transactions hors du réseau principal Ethereum. Comme les rollups à connaissance nulle (ZK-rollups), les validiums publient [des preuves à connaissance nulle](/glossary/#zk-proof) pour vérifier les transactions hors chaîne sur Ethereum. Cela permet d'éviter les transitions d'état invalides et de renforcer les garanties de sécurité d'une chaîne de validium. Ces « preuves de validité » peuvent prendre la forme de ZK-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) ou de ZK-STARKs (Zero-Knowledge Scalable Transparent ARgument of Knowledge). Plus d'informations sur [les preuves de zero-knowledge](https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/). Les fonds appartenant aux utilisateurs de Validium sont contrôlés par un contrat intelligent sur Ethereum. Les validiums offrent des retraits quasi-instantanés, un peu comme les ZK-rollups ; une fois que la preuve de validité d'une demande de retrait a été vérifiée sur le réseau principal, les utilisateurs peuvent retirer des fonds en fournissant [des preuves de Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/). La preuve de Merkle valide l'inclusion de la transaction de retrait de l'utilisateur dans un lot de transactions vérifiées, ce qui permet au contrat en chaîne de traiter le retrait. -Cependant, les utilisateurs de validium peuvent voir leurs fonds gelés et leurs retraits restreints. Cela peut se produire si les gestionnaires de la disponibilité des données sur la chaîne de validium retiennent les données d'état hors chaîne pour les utilisateurs. Sans accès aux données de transaction, les utilisateurs ne peuvent pas calculer la preuve de Merkle nécessaire pour prouver la propriété des fonds et exécuter les retraits. +Cependant, les utilisateurs de validium peuvent voir leurs fonds gelés et leurs retraits restreints. Cela peut se produire si les gestionnaires de la disponibilité des données sur la chaîne de validium retiennent les données d'état hors chaîne auprès des utilisateurs. Sans accès aux données de transaction, les utilisateurs ne peuvent pas calculer la preuve de Merkle nécessaire pour prouver la propriété des fonds et exécuter les retraits. C'est la principale différence entre les validiums et les ZK-rollups : leur position sur le spectre de la disponibilité des données. Les deux solutions abordent le stockage des données de manière différente, ce qui a des répercussions sur la sécurité et la fiabilité. @@ -27,9 +27,9 @@ C'est la principale différence entre les validiums et les ZK-rollups : leur pos Les validiums sont des protocoles de mise à l'échelle construits au-dessus de la chaîne Ethereum existante. Bien qu'elle exécute des transactions hors chaîne, une chaîne validium est administrée par un ensemble de contrats intelligents déployés sur le réseau principal, notamment : -1. **Contrat du vérificateur** : Le contrat du vérificateur vérifie la validité des preuves soumises par l'opérateur du validium lors des mises à jour de l'état. Il s'agit de preuves de validité attestant de l'exactitude des transactions hors chaîne et de preuves de disponibilité des données vérifiant l'existence des données des transactions hors chaîne. +1. **Contrat du vérificateur** : Le contrat du vérificateur vérifie la validité des preuves soumises par l'opérateur du validium lors des mises à jour de l'état. Il s'agit notamment de preuves de validité attestant de l'exactitude des transactions hors chaîne et de preuves de disponibilité des données vérifiant l'existence des données de transactions hors chaîne. -2. **Contrat principal** : Le contrat principal stocke les engagements d'état (racines de Merkle) soumis par les producteurs de blocs et met à jour l'état du validium une fois qu'une preuve de validité est vérifiée sur la chaîne. Ce contrat traite également les dépôts et les retraits de la chaîne validium. +2. **Contrat principal** : Le contrat principal stocke les engagements d'état (racines de Merkle) soumis par les producteurs de blocs et met à jour l'état du validium lorsqu'une preuve de validité est vérifiée sur la chaîne. Ce contrat traite également les dépôts et les retraits de la chaîne validium. Les validiums s'appuient également sur la chaîne principale d'Ethereum pour les éléments suivants : @@ -69,17 +69,17 @@ Comme mécanisme anti-censure, le protocole validium permet aux utilisateurs de Après avoir exécuté un lot de transactions, l'opérateur soumet la preuve de validité associée au contrat du vérificateur et propose une nouvelle racine d'état au contrat principal. Si la preuve est valide, le contrat principal met à jour l'état du validium et finalise les résultats des transactions du lot. -Contrairement à un rollup ZK les producteurs de blocs sur un validium ne sont pas tenus de publier les données de transaction pour les lots de transactions (seulement les en-têtes de blocs). Cela fait de Validium un protocole de mise à l'échelle purement hors chaîne, par opposition aux protocoles de mise à l'échelle « hybrides » (c'est-à-dire de [layer 2](/layer-2/)) qui publient des données d'état sur la chaîne principale d'Ethereum en tant que `calldata`. +Contrairement à un rollup ZK les producteurs de blocs sur un validium ne sont pas tenus de publier les données de transaction pour les lots de transactions (seulement les en-têtes de blocs). Cela fait de Validium un protocole de mise à l'échelle purement hors chaîne, par opposition aux protocoles de mise à l'échelle « hybrides » (c'est-à-dire de [couche 2](/layer-2/)) qui publient des données d'état sur la chaîne principale d'Ethereum en tant que `calldata`. ### Disponibilité des données {#data-availability} -Comme nous l'avons mentionné, les validiums utilisent un modèle de disponibilité des données hors chaîne, dans lequel les opérateurs stockent toutes les données de transaction hors du réseau principal Ethereum. La faible empreinte des données sur la chaîne de Validium améliore l'évolutivité (le débit n'est pas limité par la capacité de traitement des données d'Ethereum) et réduit les frais d'utilisation (le coût de publication des `calldata` est plus faible). +Comme nous l'avons mentionné, les validiums utilisent un modèle de disponibilité des données hors chaîne, dans lequel les opérateurs stockent toutes les données de transaction hors du réseau principal Ethereum. La faible empreinte des données sur la chaîne de validium améliore la mise à l'échelle (le débit n'est pas limité par la capacité de traitement des données d'Ethereum) et réduit les frais d'utilisation (le coût de publication des `calldata` est plus faible). -La disponibilité des données hors chaîne pose toutefois un problème : les données nécessaires à la création ou à la vérification des preuves de Merkle peuvent être indisponibles. Cela signifie que les utilisateurs peuvent être incapables de retirer des fonds du contrat sur la chaîne si les opérateurs agissent de manière malveillante. +La disponibilité des données hors chaîne pose toutefois un problème : les données nécessaires à la création ou à la vérification des preuves de Merkle peuvent être indisponibles. Cela signifie que les utilisateurs peuvent être dans l'incapacité de retirer des fonds du contrat en chaîne si les opérateurs agissent de manière malveillante. Diverses solutions de validium tentent de résoudre ce problème en décentralisant le stockage des données d'état. Il s'agit d'obliger les producteurs de blocs à envoyer les données sous-jacentes à des « gestionnaires de disponibilité des données » chargés de stocker les données hors chaîne et de les mettre à la disposition des utilisateurs sur demande. -Les gestionnaires de la disponibilité des données de Validium attestent de la disponibilité des données pour les transactions hors chaîne en signant chaque lot de Validium. Ces signatures constituent une forme de « preuve de disponibilité » que le contrat du vérificateur de la chaîne vérifie avant d'approuver les mises à jour d'état. +Les gestionnaires de disponibilité des données de validium attestent de la disponibilité des données pour les transactions hors chaîne en signant chaque lot de validium. Ces signatures constituent une forme de « preuve de disponibilité » que le contrat du vérificateur de la chaîne vérifie avant d'approuver les mises à jour d'état. Les validiums diffèrent dans leur approche de la gestion de la disponibilité des données. Certains s'appuient sur des parties de confiance pour stocker les données d'état, tandis que d'autres utilisent des validateurs désignés de manière aléatoire pour cette tâche. @@ -87,7 +87,7 @@ Les validiums diffèrent dans leur approche de la gestion de la disponibilité d Pour garantir la disponibilité des données hors chaîne, certaines solutions de validium désignent un groupe d'entités de confiance, appelé collectivement comité de disponibilité des données (DAC), pour stocker des copies de l'état et fournir une preuve de la disponibilité des données. Les DAC sont plus faciles à mettre en œuvre et nécessitent moins de coordination car le nombre de membres est faible. -Cependant, les utilisateurs doivent faire confiance au DAC pour rendre les données disponibles en cas de besoin (par exemple, pour générer des preuves de Merkle). Il y a la possibilité que les membres des comités de disponibilité des données [soient compromis par un acteur malveillant](https://notes.ethereum.org/DD7GyItYQ02d0ax_X-UbWg?view) qui peut alors retenir les données hors chaîne. +Cependant, les utilisateurs doivent faire confiance au DAC pour rendre les données disponibles en cas de besoin (par exemple, pour générer des preuves de Merkle). Il est possible que les membres des comités de disponibilité des données [soient compromis par un acteur malveillant](https://notes.ethereum.org/DD7GyItYQ02d0ax_X-UbWg?view) qui peut alors retenir les données hors chaîne. [Plus d'informations sur les comités de disponibilité des données dans les validiums](https://medium.com/starkware/data-availability-e5564c416424). @@ -103,7 +103,7 @@ Dans un système de mise à disposition des données sous caution, n'importe qui Les validiums offrent de nombreux avantages mais s'accompagnent de contreparties (notamment la disponibilité des données). Mais, comme pour de nombreuses solutions de mise à l'échelle, les validiums sont adaptés à des cas d'utilisation spécifiques - c'est pourquoi les volitions ont été créées. -Les volitions combinent un rollup ZK et une chaîne validium et permettent aux utilisateurs de basculer entre les deux solutions d'échelonnement. Avec volitions, les utilisateurs peuvent profiter de la disponibilité des données hors chaîne de Validium pour certaines transactions, tout en gardant la liberté de passer à une solution de disponibilité des données en chaîne (rollup ZK) si nécessaire. Cela donne essentiellement aux utilisateurs la liberté de choisir des compromis en fonction de leur situation particulière. +Les volitions combinent un rollup ZK et une chaîne validium et permettent aux utilisateurs de basculer entre les deux solutions d'échelonnement. Avec les volitions, les utilisateurs peuvent profiter de la disponibilité des données hors chaîne de validium pour certaines transactions, tout en gardant la liberté de passer à une solution de disponibilité des données en chaîne (rollup ZK) si nécessaire. Cela donne essentiellement aux utilisateurs la liberté de choisir des compromis en fonction de leur situation particulière. Une bourse décentralisée (DEX) peut préférer utiliser l'infrastructure évolutive et privée d'un validium pour les transactions de grande valeur. Elle peut également utiliser un rollup ZK pour les utilisateurs qui souhaitent bénéficier des garanties de sécurité plus élevées et de la fiabilité d'un rollup ZK. @@ -119,17 +119,17 @@ Certaines équipes tentent toutefois d'optimiser les codes d'opérations EVM exi ## Comment les validiums font-ils évoluer Ethereum ? {#scaling-ethereum-with-validiums} -### 1. Stockage de données hors chaîne {#off-chain-data-storage} +### 1. Stockage de données hors chaîne {#offchain-data-storage} -Les projets de mise à l'échelle de la couche 2, tels que les rollups optimistes et les rollups ZK, échangent l'extensibilité infinie des protocoles de mise à l'échelle hors chaîne purs (par exemple, [Plasma](/developers/docs/scaling/plasma/)) contre la sécurité en publiant certaines données de transaction sur L1. Mais cela signifie que les propriétés d'évolutivité des rollups sont limitées par la bande passante des données sur le réseau principal d'Ethereum ([la fragementation des données](/roadmap/danksharding/) propose d'améliorer la capacité de stockage des données d'Ethereum pour cette raison). +Les projets de mise à l'échelle de la couche 2, tels que les rollups optimistes et les rollups ZK, échangent l'évolutivité infinie des protocoles de mise à l'échelle purement hors chaîne (par exemple, [Plasma](/developers/docs/scaling/plasma/)) contre la sécurité en publiant certaines données de transaction sur la couche 1. Mais cela signifie que les propriétés d'évolutivité des rollups sont limitées par la bande passante des données sur le réseau principal d'Ethereum ([la fragementation des données](/roadmap/danksharding/) propose d'améliorer la capacité de stockage des données d'Ethereum pour cette raison). -Les validiums atteignent l'évolutivité en conservant toutes les données de transaction hors chaîne et en ne publiant que les engagements d'état (et les preuves de validité) lorsqu'ils relaient les mises à jour d'état à la chaîne Ethereum principale. L'existence de preuves de validité donne toutefois aux validiums des garanties de sécurité plus élevées que d'autres solutions de mise à l'échelle hors chaîne pures, notamment Plasma et [les chaînes latérales](/developers/docs/scaling/sidechains/). En réduisant la quantité de données qu'Ethereum doit traiter avant de valider les transactions hors chaîne, les conceptions de validium augmentent considérablement le débit sur le réseau principal. +Les validiums atteignent l'évolutivité en conservant toutes les données de transaction hors chaîne et en ne publiant que les engagements d'état (et les preuves de validité) lorsqu'ils relaient les mises à jour d'état à la chaîne Ethereum principale. L'existence de preuves de validité donne toutefois aux validiums des garanties de sécurité plus élevées que d'autres solutions de mise à l'échelle purement hors chaîne, notamment Plasma et [les chaînes latérales](/developers/docs/scaling/sidechains/). En réduisant la quantité de données qu'Ethereum doit traiter avant de valider les transactions hors chaîne, les conceptions de validium augmentent considérablement le débit sur le réseau principal. ### 2. Preuves récursives {#recursive-proofs} Une preuve récursive est une preuve de validité qui vérifie la validité d'autres preuves. Ces « preuves de preuves » sont générées par l'agrégation récursive de plusieurs preuves jusqu'à ce qu'une preuve finale vérifiant toutes les preuves précédentes soit créée. Les preuves récursives augmentent la vitesse de traitement de la blockchain en augmentant le nombre de transactions qui peuvent être vérifiées par preuve de validité. -En général, chaque preuve de validité que l'opérateur de validium soumet à Ethereum pour vérification valide l'intégrité d'un seul bloc. Alors qu'une seule preuve récursive peut être utilisée pour confirmer la validité de plusieurs blocs de validium en même temps - ceci est possible puisque le circuit de preuve peut agréger récursivement plusieurs preuves de blocs en une preuve finale. Si le contrat du vérificateur sur la chaîne accepte la preuve récursive, tous les blocs sous-jacents sont finalisés immédiatement. +En général, chaque preuve de validité que l'opérateur de validium soumet à Ethereum pour vérification valide l'intégrité d'un seul bloc. Alors qu'une seule preuve récursive peut être utilisée pour confirmer la validité de plusieurs blocs de validium en même temps - ceci est possible puisque le circuit de preuve peut agréger récursivement plusieurs preuves de blocs en une preuve finale. Si le contrat du vérificateur en chaîne accepte la preuve récursive, tous les blocs sous-jacents sont finalisés immédiatement. ## Les avantages et inconvénients du validium {#pros-and-cons-of-validium} @@ -139,7 +139,7 @@ En général, chaque preuve de validité que l'opérateur de validium soumet à | Augmente l'efficacité du capital pour les utilisateurs (pas de retard dans le retrait des fonds vers Ethereum) | Prise en charge limitée du calcul général et des contrats intelligents ; langages spécialisés requis pour le développement. | | Aucune vulnérabilité à certaines attaques économiques auxquelles sont confrontés les systèmes basés sur les preuves de fraude dans des applications à valeur élevée. | Une puissance de calcul élevée est nécessaire pour générer les preuves ZK ; non rentable pour les applications à faible débit. | | Réduit les frais de gaz pour les utilisateurs en ne publiant pas les données d'appel sur le réseau principal d'Ethereum. | Finalité subjective plus lente (10-30 min pour générer une preuve ZK) mais plus rapide jusqu'à la finalité complète car il n'y a pas de délai de contestation. | -| Adapté à des cas d'utilisation spécifiques, comme le commerce ou les jeux de blockchain, qui privilégient la confidentialité des transactions et l'évolutivité. | Les utilisateurs peuvent être empêchés de retirer des fonds, car la génération de preuves de propriété Merkle nécessite que les données hors chaîne soient disponibles à tout moment. | +| Adapté à des cas d'utilisation spécifiques, comme le commerce ou les jeux de blockchain, qui privilégient la confidentialité des transactions et l'évolutivité. | Il est possible que les utilisateurs ne puissent pas retirer des fonds, car la génération de preuves de propriété Merkle nécessite que les données hors chaîne soient disponibles à tout moment. | | La disponibilité des données hors chaîne offre des niveaux de débit plus élevés et augmente l'évolutivité. | Le modèle de sécurité repose sur des hypothèses de confiance et des incitations crypto-économiques, contrairement aux rollups ZK, qui reposent uniquement sur des mécanismes de sécurité cryptographiques. | ### Utiliser Validium/Volitions {#use-validium-and-volitions} @@ -163,3 +163,4 @@ De multiples projets fournissent des implémentations de Validium et de volition - [Rollups ZK vs Validium](https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263) - [Volition et le spectre émergent de la disponibilité des données](https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb) - [Rollups, Validiums, et Volitions : Découvrez les solutions de mise à l'échelle d'Ethereum les plus récentes](https://www.defipulse.com/blog/rollups-validiums-and-volitions-learn-about-the-hottest-ethereum-scaling-solutions) +- [Guide Pratique des Rollups Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) diff --git a/public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md index 63dd72b43e6..ee0a31a8426 100644 --- a/public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md +++ b/public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md @@ -14,21 +14,21 @@ Vous devez avoir lu et compris notre page sur [la mise à l'échelle d'Ethereum] **Les rollups à connaissance nulle (ZK-rollups)** regroupent (« roll up ») les transactions dans des lots qui sont exécutés hors chaîne. Le calcul hors chaîne réduit la quantité de données qui doivent être publiées dans la blockchain. Les opérateurs ZK-rollup soumettent un résumé des modifications requises pour représenter toutes les transactions dans un lot plutôt que d'envoyer chaque transaction individuellement. Ils produisent également [des preuves de validité](/glossary/#validity-proof) pour prouver la justesse de leurs modifications. -L'état du ZK-rollup est maintenu par un contrat intelligent déployé sur le réseau Ethereum. Pour mettre à jour cet état, les nœuds ZK-rollup doivent soumettre une preuve de validité pour vérification. Comme mentionné ci-dessus, la preuve de validité est l'assurance cryptographique que le changement d'état proposé par le rollup correspond au résultat de l'exécution du lot de transactions donné. Cela signifie que les ZK-rollups n'ont besoin que de fournir des preuves de validité pour finaliser les transactions sur Ethereum au lieu de poster toutes les données de transaction sur la chaîne comme les [rollups optimistes](/developers/docs/scaling/optimistic-rollups/). +L'état du ZK-rollup est maintenu par un contrat intelligent déployé sur le réseau Ethereum. Pour mettre à jour cet état, les nœuds ZK-rollup doivent soumettre une preuve de validité pour vérification. Comme mentionné ci-dessus, la preuve de validité est l'assurance cryptographique que le changement d'état proposé par le rollup correspond au résultat de l'exécution du lot de transactions donné. Cela signifie que les rollups ZK doivent uniquement fournir des preuves de validité pour finaliser les transactions sur Ethereum au lieu de poster toutes les données de transaction sur la chaîne comme les [rollups optimistes](/developers/docs/scaling/optimistic-rollups/). Le retrait de fonds d'un rollup ZK vers Ethereum se fait sans délai car les transactions de retraits sont exécutées une fois que le contrat de rollup ZK a vérifié la preuve de validité. À l'inverse, retirer des fonds depuis les rollups optimistes est sujet à un délai afin de permettre à quiconque de contester la transaction de sortie en produisant une [preuve de fraude](/glossary/#fraud-proof). -Les rollups ZK écrivent les transactions sur Ethereum comme `calldata`. `calldata` est l'endroit où sont stockées les données qui sont incluses dans les appels externes aux fonctions des contrats intelligents. Les informations contenues dans `calldata` sont publiées sur la blockchain, permettant à quiconque de reconstituer l'état du rollup de manière indépendante. Les rollups ZK utilisent des techniques de compression pour réduire les données de transaction. Par exemple, les comptes sont représentés par un index plutôt que par une adresse, ce qui permet d'économiser 28 octets de données. La publication des données sur la chaîne représente un coût important pour les rollups, la compression des données peut donc réduire les frais pour les utilisateurs. +Les rollups ZK écrivent les transactions sur Ethereum comme `calldata`. `calldata` est l'endroit où sont stockées les données qui sont incluses dans les appels externes aux fonctions des contrats intelligents. Les informations contenues dans `calldata` sont publiées sur la blockchain, permettant à quiconque de reconstituer l'état du rollup de manière indépendante. Les rollups ZK utilisent des techniques de compression pour réduire les données de transaction. Par exemple, les comptes sont représentés par un index plutôt que par une adresse, ce qui permet d'économiser 28 octets de données. La publication des données sur la chaîne représente un coût important pour les rollups, de sorte que la compression des données peut réduire les frais pour les utilisateurs. ## Comment les rollups ZK interagissent avec Ethereum ? {#zk-rollups-and-ethereum} -Un rollup ZK est un protocole hors chaîne qui fonctionne au dessus de la blockchain Ethereum et qui est géré par des contrats intelligents Ethereum en chaîne. Les rollups ZK exécutent des transactions en dehors du réseau principal, mais soumettent périodiquement des lots de transactions effectuées hors chaîne à un contrat « rollup » exécuté sur la chaîne. Cet enregistrement de transactions est immuable, tout comme la blockchain Ethereum, et forme la chaîne ZK-rollup. +Un rollup ZK est un protocole hors chaîne qui fonctionne au dessus de la blockchain Ethereum et qui est géré par des contrats intelligents Ethereum sur la chaîne. Les rollups ZK exécutent des transactions en dehors du réseau principal, mais soumettent périodiquement des lots de transactions effectuées hors chaîne à un contrat rollup exécuté sur la chaîne. Cet enregistrement de transactions est immuable, tout comme la blockchain Ethereum, et forme la chaîne ZK-rollup. L'architecture centrale du rollup ZK est composée des éléments suivants : -1. **Les contrats en chaîne** : Le fonctionnement des rollups ZK est contrôlé par des contrats intelligents s'exécutant sur Ethereum. Cela inclut le contrat principal qui stocke les blocs du rollup, suit les dépôts et surveille les mises à jour d'état. Un autre contrat publié sur la chaîne (le contrat vérifieur) vérifie les preuves de connaissance zéro soumises par les producteurs de blocs. Ainsi, Ethereum sert de couche de base ou de « couche 1 » aux rollups ZK. +1. **Les contrats en chaîne** : Le fonctionnement des rollups ZK est contrôlé par des contrats intelligents s'exécutant sur Ethereum. Cela inclut le contrat principal qui stocke les blocs du rollup, suit les dépôts et surveille les mises à jour d'état. Un autre contrat publié sur la chaîne (le contrat vérificateur) vérifie les preuves à divulgation nulle soumises par les producteurs de blocs. Ainsi, Ethereum sert de couche de base ou de « couche 1 » aux rollups ZK. -2. **Machine virtuelle (VM) hors chaîne** : Alors que le protocole ZK-rollup vit sur Ethereum, l'exécution des transactions et le stockage des états se font sur une machine virtuelle distincte, indépendante de l'[EVM](/developers/docs/evm/). Cette VM hors chaîne est l'environnement d'exécution des transactions sur le rollup ZK et sert de couche secondaire ou de « couche 2 » pour le protocole ZK-rollup. Les preuves de validité vérifiées sur le réseau principal d'Ethereum garantissent l'exactitude des transitions d'état dans la VM hors chaîne. +2. **Machine virtuelle (VM) hors chaîne** : Alors que le protocole de rollup ZK se trouve sur Ethereum, l'exécution des transactions et le stockage des états se font sur une machine virtuelle distincte, indépendante de l'[EVM](/developers/docs/evm/). Cette VM hors chaîne est l'environnement d'exécution des transactions sur le rollup ZK et sert de couche secondaire ou de « couche 2 » pour le protocole de rollup ZK. Les preuves de validité vérifiées sur le réseau principal d'Ethereum garantissent l'exactitude des transitions d'état dans la VM hors chaîne. Les rollups ZK sont des « solutions hybrides de mise à l'échelle », des protocoles hors chaîne qui fonctionnement indépendamment d'Ethereum tout en profitant de sa sécurité. Plus précisément, le réseau Ethereum assure la validité des mises à jour d'état sur le rollup ZK et garantit la disponibilité de données derrière chaque mise à jour de l'état du rollup. Par conséquent, les rollups ZK sont considérablement plus sûrs que les solutions de mise à l'échelle hors chaîne pures, telles que les [chaînes latérales](/developers/docs/scaling/sidechains/), qui sont responsables de leurs propriétés de sécurité, ou les [validiums](/developers/docs/scaling/validium/), qui vérifient également les transactions sur Ethereum avec des preuves de validité, mais stockent les données de transaction ailleurs. @@ -36,9 +36,9 @@ Les rollups ZK s'appuient sur le protocole Ethereum principal pour les raisons s ### Disponibilité des données {#data-availability} -Les rollups ZK publient sur Ethereum les données d'état de chaque transaction traitée hors chaîne. Avec ces données, il est possible pour les particuliers ou les entreprises de reproduire l'état du rollup et de valider eux-mêmes la chaîne. Ethereum met ces données à la disposition de tous les participants du réseau en tant que `calldata`. +Les rollups ZK publient les données d'état de chaque transaction traitée hors chaîne sur Ethereum. Avec ces données, il est possible pour les particuliers ou les entreprises de reproduire l'état du rollup et de valider eux-mêmes la chaîne. Ethereum met ces données à la disposition de tous les participants du réseau en tant que `calldata`. -Les rollups ZK n'ont pas besoin de publier beaucoup de données de transaction sur la chaîne car les preuves de validité vérifient déjà l'authenticité des transitions d'état. Néanmoins, le stockage des données sur la chaîne reste important car il permet une vérification indépendante et sans autorisation de l'état de la chaîne L2, ce qui permet à quiconque de soumettre des lots de transactions, empêchant ainsi les opérateurs malveillants de censurer ou de geler la chaîne. +Les rollups ZK n'ont pas besoin de publier beaucoup de données de transaction sur la chaîne car les preuves de validité vérifient déjà l'authenticité des transitions d'état. Néanmoins, le stockage des données sur la chaîne reste important car il permet une vérification indépendante et sans autorisation de l'état de la chaîne de couche 2, ce qui, à son tour, permet à quiconque de soumettre des lots de transactions, empêchant ainsi les opérateurs malveillants de censurer ou de geler la chaîne. La présence d'une chaîne est nécessaire pour que les utilisateurs puissent interagir avec le rollup. Sans accès aux données de l'état, les utilisateurs ne peuvent pas consulter le solde de leur compte ou effectuer des transactions (par exemple, des retraits) qui dépendent des informations de l'état. @@ -62,13 +62,13 @@ D'autres rollups ZK peuvent faire tourner le rôle d'opérateur en utilisant un #### Comment les rollups ZK publient les données de transaction sur Ethereum {#how-zk-rollups-publish-transaction-data-on-ethereum} -Comme expliqué précédemment, les données de transaction sont publiées sur Ethereum en tant que `calldata`. `calldata` est une zone de données dans un contrat intelligent utilisée pour passer des arguments à une fonction et se comporte de manière similaire à [la mémoire](/developers/docs/smart-contracts/anatomy/#memory). Bien que les `calldata` ne soient pas stockées dans l'état d'Ethereum, elles persistent sur la chaîne dans le cadre des [journaux d'historique](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs) de la chaîne Ethereum. `calldata` n'affecte pas l'état d'Ethereum, ce qui en fait un moyen bon marché de stocker des données sur la chaîne. +Comme expliqué précédemment, les données de transaction sont publiées sur Ethereum en tant que `calldata`. `calldata` est une zone de données dans un contrat intelligent utilisée pour passer des arguments à une fonction et se comporte de manière similaire à [la mémoire](/developers/docs/smart-contracts/anatomy/#memory). Bien que les `calldata` ne soient pas stockées dans l'état d'Ethereum, elles demeurent sur la chaîne dans le cadre des [journaux d'historique](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs) de la chaîne Ethereum. Les `calldata` n'affectent pas l'état d'Ethereum, ce qui en fait un moyen bon marché de stocker des données sur la chaîne. Le mot-clé `calldata` identifie souvent la méthode du contrat intelligent appelée par une transaction et contient les entrées de la méthode sous la forme d'une séquence arbitraire d'octets. Les rollups ZK utilisent `calldata` pour publier des données de transaction compressées sur la chaîne ; l'opérateur du rollup ajoute simplement un nouveau lot en appelant la fonction requise dans le contrat du rollup et passe les données compressées comme arguments de fonction. Cela permet de réduire les coûts pour les utilisateurs, car une grande partie des frais de rollup est consacrée au stockage des données de transaction sur la chaîne. ### Engagements d'état {#state-commitments} -L'état du rollup ZK, qui comprend les comptes et les soldes de L2, est représenté sous la forme d'un [arbre de Merkle](/whitepaper/#merkle-trees). Un hachage cryptographique de la racine de l'arbre de Merkle (Merkle root) est stocké dans le contrat on-chain, ce qui permet au protocole de rollup de suivre les changements d'état du rollup ZK. +L'état du rollup ZK, qui comprend les comptes et les soldes de L2, est représenté sous la forme d'un [arbre de Merkle](/whitepaper/#merkle-trees). Un hachage cryptographique de la racine de l'arbre de Merkle (Merkle root) est stocké dans le contrat en chaîne, ce qui permet au protocole de rollup de suivre les changements d'état du rollup ZK. Le rollup passe à un nouvel état après l'exécution d'un nouvel ensemble de transactions. L'opérateur qui a initié la transition d'état est tenu de calculer une nouvelle racine d'état et de la soumettre au contrat en chaîne. Si la preuve de validité associée au lot est authentifiée par le contrat du vérificateur, la nouvelle racine de Merkle devient la racine d'état canonique du rollup ZK. @@ -96,7 +96,7 @@ En dehors des hypothèses de confiance, les ZK-SNARK sont populaires pour leur p **ZK-STARK** -Comme les ZK-SNARK, les ZK-STARK prouvent la validité du calcul hors chaîne sans révéler les entrées. Cependant, les ZK-STARK sont considérés comme une amélioration des ZK-SNARK en raison de leur évolutivité et de leur transparence. +Comme les SNARK ZK, les STARK ZK prouvent la validité du calcul hors chaîne sans révéler les entrées. Cependant, les ZK-STARK sont considérés comme une amélioration des ZK-SNARK en raison de leur évolutivité et de leur transparence. Les ZK-STARK sont « transparents », car ils peuvent fonctionner sans la mise en place fiable d'une chaîne de référence commune (CRS). Au lieu de cela, les ZK-STARK s'appuient sur un caractère aléatoire vérifiable publiquement pour définir les paramètres de génération et de vérification des preuves. @@ -152,7 +152,7 @@ Les utilisateurs entrent dans le rollup ZK en déposant des jetons dans le contr Une fois que la file d'attente des dépôts commence à se remplir, l'opérateur ZK-rollup prendra les transactions de dépôt et les soumettra au contrat de rollup. Une fois que les fonds de l'utilisateur sont dans le rollup, ils peuvent commencer à effectuer des transactions en les envoyant à l'opérateur pour traitement. Les utilisateurs peuvent vérifier les soldes sur le rollup en hachant les données de leur compte puis en envoyant le hachage au contrat rollup et en lui fournissant une preuve Merkle pour vérifier qu'elle correspond à l'état actuel de la racine de Merkle. -Retirer depuis un rollup ZK vers la L1 est simple. L'utilisateur initie la transaction de sortie en envoyant ses actifs sur le rollup vers un compte spécifié pour le brûlage. Si l'opérateur inclut la transaction dans le lot suivant, l'utilisateur peut soumettre une demande de retrait au contrat on-chain. Cette demande de retrait comprendra les éléments suivants : +Retirer depuis un rollup ZK vers la L1 est simple. L'utilisateur initie la transaction de sortie en envoyant ses actifs sur le rollup vers un compte spécifié pour le brûlage. Si l'opérateur inclut la transaction dans le lot suivant, l'utilisateur peut soumettre une demande de retrait au contrat en chaîne. Cette demande de retrait comprendra les éléments suivants : - Preuve de Merkle prouvant l'inclusion de la transaction de l'utilisateur sur le compte brûlé dans un lot de transactions @@ -180,7 +180,7 @@ Le montant que les utilisateurs paient pour les transactions sur les rollups ZK 1. **Écriture d'état** : Il y a un coût fixe pour écrire dans l'état d'Ethereum (c'est-à-dire, soumettre une transaction sur la blockchain d'Ethereum). Les rollups ZK réduisent ce coût en regroupant les transactions et en répartissant les coûts fixes entre plusieurs utilisateurs. -2. **Data publication** : Les rollups ZK publient les données d'état de chaque transaction vers Ethereum en tant que `calldata`. Les coûts des `calldata` sont actuellement régis par le [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), qui prévoit un coût de 16 gaz pour les octets non nuls et de 4 gaz pour les octets nuls de `calldata`, respectivement. Le coût payé pour chaque transaction est influencé par la quantité de `calldata` qui doit être publiée sur la chaîne à cet effet. +2. **Data publication** : Les rollups ZK publient les données d'état de chaque transaction vers Ethereum en tant que `calldata`. Les coûts des `calldata` sont actuellement régis par le [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), qui prévoit un coût de 16 gaz pour les octets non nuls et de 4 gaz pour les octets nuls de `calldata`, respectivement. Le coût payé pour chaque transaction dépend de la quantité de `calldata` qui doit être publiée sur la chaîne à cet effet. 3. **Frais d'opérateur L2**: Il s'agit du montant payé à l'opérateur du rollup en compensation des coûts de calcul engagés lors du traitement des transactions, un peu comme les [ frais de transaction prioritaire (pourboires)"](/developers/docs/gas/#how-are-gas-fees-calculated) sur le réseau principal d'Ethereum. @@ -192,7 +192,7 @@ En plus des transactions par lots, les rollups ZK réduisent les frais des utili ### Compression des données de transaction {#transaction-data-compression} -Les rollups ZK augmentent le débit de la couche de base d'Ethereum en transférant les calculs hors de la chaîne, mais le véritable coup de pouce pour la mise à l'échelle provient de la compression des données de transaction. La [taille des blocs](/developers/docs/blocks/#block-size) d'Ethereum limite les données que chaque bloc peut contenir et, par extension, le nombre de transactions traitées par bloc. En compressant les données liées aux transactions, les rollups ZK augmentent considérablement le nombre de transactions traitées par bloc. +Les rollups ZK augmentent le débit de la couche de base d'Ethereum en transférant les calculs hors chaîne, mais le véritable coup de pouce pour la mise à l'échelle provient de la compression des données de transaction. La [taille des blocs](/developers/docs/blocks/#block-size) d'Ethereum limite les données que chaque bloc peut contenir et, par extension, le nombre de transactions traitées par bloc. En compressant les données liées aux transactions, les rollups ZK augmentent considérablement le nombre de transactions traitées par bloc. Les rollups ZK peuvent mieux comprimer les données de transaction que les rollups optimistes puisqu'ils n'ont pas besoin d'enregistrer toutes les données nécessaires pour valider chaque transaction. Ils ne doivent comptabiliser que les données minimales requises pour reconstruire le dernier état des comptes et des soldes sur le rollup. @@ -211,7 +211,7 @@ Les preuves récursives, cependant, permettent de finaliser plusieurs blocs avec | Les preuves de validité garantissent l'exactitude des transactions hors chaîne et empêchent les opérateurs d'exécuter des transitions d'état invalides. | Le coût associé au calcul et à la vérification des preuves de validité est substantiel et peut augmenter les frais pour les utilisateurs de rollup. | | Offre une finalité de transaction plus rapide car les mises à jour d'état sont approuvées une fois que les preuves de validité sont vérifiées sur L1. | La construction de rollups ZK compatibles avec l'EVM est difficile en raison de la complexité de la technologie de la connaissance zéro. | | S'appuie sur des mécanismes cryptographiques sans confiance pour la sécurité, et non sur l'honnêteté d'acteurs incités comme avec [les rollups optimistes](/developers/docs/scaling/optimistic-rollups/#optimistic-pros-and-cons). | La production de preuves de validité nécessite un matériel spécialisé, ce qui pourrait générer une centralisation de la chaîne aux mains de quelques acteurs. | -| Stocke les données nécessaires pour récupérer l'état hors chaîne sur L1, ce qui garantit la sécurité, la résistance à la censure et la décentralisation. | Les opérateurs centralisés (séquenceurs) peuvent influencer l'ordre des transactions. | +| Stocke les données nécessaires pour récupérer l'état hors chaîne sur la couche 1, ce qui garantit la sécurité, la résistance à la censure et la décentralisation. | Les opérateurs centralisés (séquenceurs) peuvent influencer l'ordre des transactions. | | Les utilisateurs bénéficient d'une plus grande efficacité du capital et peuvent retirer des fonds de L2 sans délai. | Les exigences matérielles peuvent réduire le nombre de participants qui peuvent forcer la chaîne à progresser, ce qui augmente le risque que des opérateurs malveillants gèlent l'état du rollup et censurent les utilisateurs. | | Ne dépend pas des hypothèses de vivacité et les utilisateurs n'ont pas à valider la chaîne pour protéger leurs fonds. | Certains systèmes de preuve (par exemple, ZK-SNARK) nécessitent une installation de confiance qui, si elle est mal gérée, pourrait potentiellement compromettre le modèle de sécurité d'un rollup ZK. | | Une meilleure compression des données peut contribuer à réduire les coûts de publication des `calldata` sur Ethereum et à minimiser les frais de rollup pour les utilisateurs. | | @@ -245,10 +245,12 @@ Les projets fonctionnant sur les zkEVM comprennent : - [Qu'est-ce que les Rollups Zero Knowledge ?](https://coinmarketcap.com/alexandria/glossary/zero-knowledge-rollups) - [Qu'est-ce que les rollups zero-knowledge ?](https://alchemy.com/blog/zero-knowledge-rollups) +- [Guide pratique des rollups Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) - [STARKs vs SNARKs](https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/) - [Qu'est-ce qu'un zkEVM ?](https://www.alchemy.com/overviews/zkevm) - [Types de ZK-EVM : Équivalent Ethereum, équivalent EVM, Type 1, Type 4, et autres termes tendance en crypto](https://taiko.mirror.xyz/j6KgY8zbGTlTnHRFGW6ZLVPuT0IV0_KmgowgStpA0K4) - [Introduction au zkEVM](https://hackmd.io/@yezhang/S1_KMMbGt) +- [Que sont les secondes couches ZK-EVM ?](https://linea.mirror.xyz/qD18IaQ4BROn_Y40EBMTUTdJHYghUtdECscSWyMvm8M) - [Ressources géniales pour zkEVM](https://github.com/LuozhuZhang/awesome-zkevm) - [Les dessous de ZK-SNARKS](https://vitalik.eth.limo/general/2017/02/01/zk_snarks.html) - [Comment les SNARK sont-ils possibles ?](https://vitalik.eth.limo/general/2021/01/26/snarks.html) diff --git a/public/content/translations/fr/developers/docs/smart-contracts/index.md b/public/content/translations/fr/developers/docs/smart-contracts/index.md index 6735d27da68..025a206d5f9 100644 --- a/public/content/translations/fr/developers/docs/smart-contracts/index.md +++ b/public/content/translations/fr/developers/docs/smart-contracts/index.md @@ -88,7 +88,7 @@ En savoir plus sur la [composabilité des contrats intelligents](/developers/doc Les contrats intelligents seuls ne peuvent pas obtenir d'informations sur les événements du "monde réel", dans la mesure où ils ne peuvent pas récupérer de données depuis des sources hors chaîne. Cela signifie qu'ils ne peuvent pas réagir aux événements du monde réel. C'est un choix délibéré. Le fait de s'appuyer sur des informations externes pourrait compromettre le consensus, qui est essentiel en matière de sécurité et de décentralisation. -Il est toutefois important que les applications de la blockchain puissent utiliser des données hors chaîne. Pour ce faire, il est possible d'utiliser [oracles](/developers/docs/oracles/), des outils capables d'ingérer des données hors chaîne et de mettre à la disposition des contrats intelligents. +Il est toutefois important que les applications de la blockchain puissent utiliser des données hors chaîne. Pour ce faire, il est possible d'utiliser des [oracles](/developers/docs/oracles/), des outils capables d'ingérer des données hors chaîne et de les mettre à la disposition des contrats intelligents. Une autre limitation des contrats intelligents est la taille maximale des contrats. Un contrat intelligent ne peut pas dépasser 24 Ko, sans quoi il sera à court de gaz. Ceci peut être contourné en utilisant [Le modèle du diamant](https://eips.ethereum.org/EIPS/eip-2535). diff --git a/public/content/translations/fr/developers/docs/smart-contracts/security/index.md b/public/content/translations/fr/developers/docs/smart-contracts/security/index.md index 0d9be9f2935..4e8be1a0b91 100644 --- a/public/content/translations/fr/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/fr/developers/docs/smart-contracts/security/index.md @@ -99,7 +99,7 @@ Cela dit, évitez de considérer les audits comme un remède miracle. Les audits La mise en place d'un programme de prime de bogues est une autre approche pour implémenter des examens de code externes. Une prime de bogue est une récompense financière donnée aux individus (généralement des hackers whitehat) qui découvrent des vulnérabilités dans une application. -Lorsqu'elle est utilisée correctement, la primes de bogues incitent les membres de la communauté hacker à inspecter votre code pour trouver des défauts critiques. Un exemple réel est le « bogue d'argent infini » qui aurait permis à un attaquant de créer un nombre illimité d'Ether sur [Optimisme](https://www.optimism.io/), un protocole [Couche 2](/layer-2/) fonctionnant sur Ethereum. Heureusement, un hacker whitehat [a découvert le défaut](https://www.saurik.com/optimism.html) et l'a notifié à l'équipe, [gagnant une grosse prime ce faisant](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). +Lorsqu'elle est utilisée correctement, la primes de bogues incitent les membres de la communauté hacker à inspecter votre code pour trouver des défauts critiques. Un exemple réel est le « bogue d'argent infini » qui aurait permis à un attaquant de créer un nombre illimité d'Ether sur [Optimisme](https://www.optimism.io/), un protocole de [Couche 2](/layer-2/) fonctionnant sur Ethereum. Heureusement, un hacker whitehat [a découvert le défaut](https://www.saurik.com/optimism.html) et l'a notifié à l'équipe, [gagnant une grosse prime ce faisant](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). Une stratégie utile est de définir le paiement d'un programme de prime de bogues proportionnellement au montant des fonds mis en jeu. Décrit comme la «[mise à l'échelle de la prime de bogue](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7)», cette approche fournit des incitations financières pour les individus à divulguer de manière responsable des vulnérabilités au lieu de les exploiter. @@ -199,23 +199,23 @@ Cet exemple montre les caractéristiques de base des arrêts d'urgence : `onlyWhenStopped` est utilisé pour des fonctions qui doivent être appelables pendant une urgence (par exemple, `emergencyWithdraw()`). De telles fonctions peuvent aider à résoudre la situation, d’où leur exclusion de la liste des « fonctions restreintes ». -L'utilisation d'une fonctionnalité d'arrêt d'urgence constitue un palliatif efficace pour faire face aux vulnérabilités graves de votre contrat intelligent. Cependant, les utilisateurs doivent faire confiance aux développeurs pour qu'ils ne l'activent pas pour des raisons intéressées. À cette fin, décentraliser le contrôle de l'arrêt d'urgence soit en le soumettant à un mécanisme de vote en chaîne, un timelock, ou à l'approbation d'un portefeuille multisig sont des solutions possibles. +L'utilisation d'une fonctionnalité d'arrêt d'urgence constitue un palliatif efficace pour faire face aux vulnérabilités graves de votre contrat intelligent. Cependant, les utilisateurs doivent faire confiance aux développeurs pour qu'ils ne l'activent pas pour des raisons intéressées. À cette fin, il est possible de décentraliser le contrôle de l'arrêt d'urgence en le soumettant à un mécanisme de vote sur la chaîne, à un timelock, ou à l'approbation d'un portefeuille multisig. #### Suivi des événements {#event-monitoring} [Les événements](https://docs.soliditylang.org/en/v0.8.15/contracts.html#events) vous permettent de suivre les appels vers les fonctions des contrats intelligents et de surveiller les changements apportés aux variables d'état. Il est idéal de programmer votre contrat intelligent pour qu'il émette un événement chaque fois qu'une partie prend une mesure critique en matière de sécurité (par exemple, retirer des fonds). -Le log des événements et leur surveillance hors chaîne fournissent un aperçu des opérations contractuelles et aide à la découverte plus rapide des actions malveillantes. Cela signifie que votre équipe peut réagir plus rapidement aux hacks et prendre des mesures pour atténuer l'impact sur les utilisateurs, tels que suspendre les fonctions ou effectuer une mise à niveau. +L'enregistrement des événements et leur surveillance hors chaîne permettent de mieux comprendre les opérations contractuelles et de découvrir plus rapidement les actions malveillantes. Cela signifie que votre équipe peut réagir plus rapidement aux hacks et prendre des mesures pour atténuer l'impact sur les utilisateurs, tels que suspendre les fonctions ou effectuer une mise à niveau. Vous pouvez également opter pour un outil de surveillance en vente libre qui transmet automatiquement les alertes lorsque quelqu'un interagit avec vos contrats. Ces outils vous permettent de créer des alertes personnalisées basées sur différents déclencheurs, comme le volume de la transaction, la fréquence des appels de fonctions, ou les fonctions spécifiques impliquées. Par exemple, vous pouvez programmer une alerte qui arrive lorsque le montant retiré en une seule opération dépasse un seuil particulier. ### 7. Concevoir des systèmes de gouvernance sécurisés {#design-secure-governance-systems} -Vous voudrez peut-être décentraliser votre application en transférant le contrôle des contrats intelligents de base aux membres de la communauté. Dans ce cas, le système de contrats intelligents comprendra un module de gouvernance, un mécanisme qui permet aux membres de la communauté d'approuver des actions administratives via un système de gouvernance en chaîne. Par exemple, une proposition de mise à niveau d'un contrat de procuration vers une nouvelle implémentation peut être votée par les détenteurs de jetons. +Vous voudrez peut-être décentraliser votre application en transférant le contrôle des contrats intelligents de base aux membres de la communauté. Dans ce cas, le système de contrats intelligents comprendra un module de gouvernance, à savoir un mécanisme qui permet aux membres de la communauté d'approuver des actions administratives via un système de gouvernance en chaîne. Par exemple, une proposition de mise à niveau d'un contrat de procuration vers une nouvelle implémentation peut être votée par les détenteurs de jetons. Une gouvernance décentralisée peut être bénéfique, en particulier parce qu'elle aligne les intérêts des développeurs et des utilisateurs finaux. Néanmoins, les mécanismes de gouvernance des contrats intelligents peuvent introduire de nouveaux risques s'ils sont mal mis en œuvre. Un scénario plausible est si un attaquant acquiert un énorme pouvoir de vote (mesuré en nombre de jetons conservés) en prenant un [crédit flash](/defi/#flash-loans) et en poussant une proposition malveillante. -Une façon de prévenir les problèmes liés à la gouvernance sur la chaîne est d'utiliser [un timelock](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/). Un timelock empêche un contrat intelligent d'exécuter certaines actions jusqu'à ce qu'un certain temps passe. D'autres stratégies incluent l'assignation d'une « pondération de vote » à chaque jeton en fonction de la durée d'enfermement de chaque jeton, ou mesurant le pouvoir de vote d'une adresse à une période historique (par exemple, 2-3 blocs dans le passé) au lieu du bloc actuel. Les deux méthodes réduisent la possibilité d’amasser rapidement le pouvoir de vote pour basculer sur les votes en chaîne. +Le fait d'utiliser [un timelock](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/) est une façon de prévenir les problèmes liés à la gouvernance sur la chaîne. Un timelock empêche un contrat intelligent d'exécuter certaines actions jusqu'à ce qu'un certain temps passe. D'autres stratégies incluent l'assignation d'une « pondération de vote » à chaque jeton en fonction de la durée d'enfermement de chaque jeton, ou mesurant le pouvoir de vote d'une adresse à une période historique (par exemple, 2-3 blocs dans le passé) au lieu du bloc actuel. Les deux méthodes réduisent la possibilité de récupérer rapidement le pouvoir de vote pour faire basculer des votes sur la chaîne. Vous trouverez plus d'informations sur [la conception de systèmes de gouvernance sécurisés](https://blog.openzeppelin.com/smart-contract-security-guidelines-4-strategies-for-safer-governance-systems/), [les différents mécanismes de vote dans les DAO](https://hackernoon.com/governance-is-the-holy-grail-for-daos), et [les vecteurs d'attaque courants des DAO utilisant la DeFi](https://dacian.me/dao-governance-defi-attacks) dans les liens partagés. @@ -346,7 +346,7 @@ contract MutexPattern { require(balances[msg.sender] >= _amount, "No balance to withdraw."); balances[msg.sender] -= _amount; - bool (success, ) = msg.sender.call{value: _amount}(""); + (bool success, ) = msg.sender.call{value: _amount}(""); require(success); return true; @@ -439,11 +439,11 @@ Depuis la version 0.8.0, le compilateur Solidity rejette le code qui entraîne d #### Manipulation Oracle {#oracle-manipulation} -[Les Oracles](/developers/docs/oracles/) sourcent des informations hors chaîne et les envoient en chaîne pour les contrats intelligents à utiliser. Avec des oracles, vous pouvez concevoir des contrats intelligents qui interagissent avec des systèmes hors chaîne, tels que les marchés de capitaux, en élargissant considérablement leur application. +Les [oracles](/developers/docs/oracles/) utilisent des informations hors chaîne et les envoient sur la chaîne pour que les contrats intelligents puissent les utiliser. Avec des oracles, vous pouvez concevoir des contrats intelligents qui interagissent avec des systèmes hors chaîne, tels que les marchés de capitaux, élargissant ainsi considérablement leur application. -Mais si l'oracle est corrompu et envoie des informations incorrectes en chaîne, les contrats intelligents s'exécuteront sur la base d'entrées erronées, ce qui peut causer des problèmes. C'est la base du « problème de l'oracle », qui concerne la tâche de s'assurer que les informations provenant d'un oracle de la blockchain sont exactes, à jour et en temps opportun. +Mais si l'oracle est corrompu et envoie des informations incorrectes sur la chaîne, les contrats intelligents s'exécuteront sur la base d'entrées erronées, ce qui peut causer des problèmes. C'est la base du « problème de l'oracle », qui concerne la tâche de s'assurer que les informations provenant d'un oracle de la blockchain sont exactes, à jour et en temps opportun. -Une préoccupation liée à la sécurité consiste à utiliser un oracle en chaîne, tel qu'un échange décentralisé, pour obtenir le prix au comptant d'un actif. Les plateformes de prêt dans l'industrie [de la finance décentralisée (DeFi)](/defi/) le font souvent pour déterminer la valeur de la garantie d'un utilisateur pour déterminer le montant qu'il peut emprunter. +L'utilisation d'un oracle sur la chaîne, tel qu'un échange décentralisé, pour obtenir le prix comptant d'un actif, pose un problème de sécurité connexe. Les plateformes de prêt dans l'industrie [de la finance décentralisée (DeFi)](/defi/) le font souvent pour déterminer la valeur de la garantie d'un utilisateur pour déterminer le montant qu'il peut emprunter. Les prix des DEX sont souvent exacts, en grande partie en raison du rétablissement de la parité sur les marchés. Cependant, ils sont ouverts à la manipulation, en particulier si l'oracle sur la chaîne calcule les prix des actifs en fonction des modèles de négociation historiques (comme c'est généralement le cas). @@ -453,7 +453,7 @@ Par exemple, un attaquant pourrait artificiellement pomper le prix au comptant d Le minimum requis pour [éviter la manipulation d'oracle](https://www.cyfrin.io/blog/price-oracle-manipultion-attacks-with-examples) est d'utiliser un réseau oracle décentralisé qui interroge des informations provenant de sources multiples pour éviter les points de défaillance uniques. Dans la plupart des cas, les oracles décentralisés ont des incitations cryptoéconomiques intégrées pour encourager les noeuds d'oracle à signaler des informations correctes, les rendant plus sûres que les oracles centralisés. -Si vous comptez interroger un oracle sur le prix des actifs, envisagez d'utiliser un mécanisme qui implémente un prix moyen pondéré (« Time Weighted Average Price », dit TWAP). Un [oracle TWAP](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) interroge le prix d'un actif à deux points différents dans le temps (que vous pouvez modifier) et calcule le prix au comptant en fonction de la moyenne obtenue. Le choix de périodes plus longues protège votre protocole contre la manipulation des prix car les larges ordres exécutés récemment ne peuvent pas affecter les prix des actifs. +Si vous comptez interroger un oracle sur la chaîne sur le prix des actifs, pensez à utiliser un mécanisme qui implémente un prix moyen pondéré (« Time Weighted Average Price », ou TWAP). Un [oracle TWAP](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) interroge le prix d'un actif à deux points différents dans le temps (que vous pouvez modifier) et calcule le prix au comptant en fonction de la moyenne obtenue. Le choix de périodes plus longues protège votre protocole contre la manipulation des prix car les larges ordres exécutés récemment ne peuvent pas affecter les prix des actifs. ## Ressources de sécurité de contrats intelligents pour les développeurs {#smart-contract-security-resources-for-developers} @@ -563,7 +563,7 @@ Si vous comptez interroger un oracle sur le prix des actifs, envisagez d'utilise - **[Norme de vérification de la sécurité des contrats intelligents](https://github.com/securing/SCSVS)** - _Liste de contrôle de quatorze parties créée pour standardiser la sécurité des contrats intelligents pour les développeurs, architectes, réviseurs de sécurité et fournisseurs._ -- **[Apprendre la sécurité et l'audit des contrats intelligents](https://updraft.cyfrin.io/courses/security) - _Le cours ultime sur la sécurité et l'audit des contrats intelligents, conçu pour les développeurs de contrats intelligents souhaitant améliorer leurs pratiques en matière de sécurité et devenir des chercheurs en sécurité._ +- **[Apprendre la sécurité et l'audit des contrats intelligents](https://updraft.cyfrin.io/courses/security)**- _Le cours ultime sur la sécurité et l'audit des contrats intelligents, conçu pour les développeurs de contrats intelligents souhaitant améliorer leurs pratiques en matière de sécurité et devenir des chercheurs en sécurité._ ### Tutoriels sur la sécurité des contrats intelligents {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/fr/developers/docs/smart-contracts/testing/index.md b/public/content/translations/fr/developers/docs/smart-contracts/testing/index.md index 2238e913f64..d680bc03559 100644 --- a/public/content/translations/fr/developers/docs/smart-contracts/testing/index.md +++ b/public/content/translations/fr/developers/docs/smart-contracts/testing/index.md @@ -207,7 +207,7 @@ Alors que les tests automatisés effectués dans un environnement de développem Tester votre contrat sur une blockchain locale (également connue sous le nom de [réseau de développement](/developers/docs/development-networks/)) est une alternative recommandée aux tests sur le réseau principal. Une blockchain locale est une copie de la blockchain Ethereum fonctionnant localement sur votre ordinateur qui simule le comportement de la couche d'exécution d'Ethereum. À ce titre, vous pouvez programmer des transactions pour interagir avec un contrat sans encourir de frais généraux importants. -Exécuter des contrats sur une blockchain locale pourrait être utile comme une forme de test d’intégration manuelle. [Les contrats intelligents sont hautement composables](/developers/docs/smart-contracts/composability/), vous permettant de vous intégrer aux protocoles existants, mais vous devrez quand même vous assurer que ces interactions complexes sur la chaîne produisent les bons résultats. +Exécuter des contrats sur une blockchain locale pourrait être utile comme une forme de test d’intégration manuelle. [Les contrats intelligents sont hautement composables](/developers/docs/smart-contracts/composability/), vous permettant de vous intégrer aux protocoles existants. Vous devrez quand même vous assurer que ces interactions complexes sur la chaîne produisent les bons résultats. [En savoir plus sur les réseaux de développement.](/developers/docs/development-networks/) @@ -259,7 +259,7 @@ La principale différence est que les programmes de primes aux bogues sont ouver - **Cadre de test unitaire Brownie** - _Brownie utilise Pytest, un cadre de test riche en fonctionnalités qui vous permet d'écrire de petits tests avec un code minimal, qui s'adapte bien aux grands projets et qui est hautement extensible._ -- **[Tests Foundy](https://github.com/foundry-rs/foundry/tree/master/forge)** - _Foundry propose Forge, un cadre de test Ethereum rapide et flexible capable d'exécuter des tests unitaires simples, des contrôles d'optimisation du gaz et du fuzzing de contrats._ +- **[Tests Foundy](https://github.com/foundry-rs/foundry/tree/master/crates/forge)** - _Foundry propose Forge, un cadre de test Ethereum rapide et flexible capable d'exécuter des tests unitaires simples, des contrôles d'optimisation du gaz et du fuzzing de contrats._ - **[Hardhat Tests](https://hardhat.org/hardhat-runner/docs/guides/test-contracts)** - _Framework pour tester des contrats intelligents basés sur ethers.js, Mocha et Chai._ diff --git a/public/content/translations/fr/developers/docs/smart-contracts/upgrading/index.md b/public/content/translations/fr/developers/docs/smart-contracts/upgrading/index.md index 140c8d6f107..dccd56c0485 100644 --- a/public/content/translations/fr/developers/docs/smart-contracts/upgrading/index.md +++ b/public/content/translations/fr/developers/docs/smart-contracts/upgrading/index.md @@ -74,7 +74,7 @@ Utiliser les méthodes de proxy nécessite une compréhension de la fonction **d Selon la [documentation Solidity](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html#delegatecall-callcode-and-libraries) : -> _Il existe une variante spéciale de l'appel de message, nommée **delegatecall** qui est identique à un appel de message à part le fait que le code à l'adresse cible est exécuté dans le contexte (c'est-à-dire à l'adresse) du contrat appelant et `msg.sender` et `msg.value` ne changent pas leurs valeurs. \_\_Cela signifie qu'un contrat peut charger dynamiquement du code depuis une adresse différente à l'exécution. Le stockage, l'adresse actuelle et le solde font toujours référence au contrat appelant, seul le code est pris à partir de l'adresse appelée._ +> _Il existe une variante spéciale de l'appel de message, nommée **delegatecall** qui est identique à un appel de message à part le fait que le code à l'adresse cible est exécuté dans le contexte (c'est-à-dire à l'adresse) du contrat appelant et `msg.sender` et `msg.value` ne changent pas leurs valeurs. __Cela signifie qu'un contrat peut charger dynamiquement du code depuis une adresse différente à l'exécution. Le stockage, l'adresse actuelle et le solde font toujours référence au contrat appelant, seul le code est pris à partir de l'adresse appelée._ Le contrat proxy sait invoquer `delegatecall` chaque fois qu'un utilisateur appelle une fonction car il dispose d'une fonction `fallback` intégrée. En programmation Solidity, la [fonction fallback](https://docs.soliditylang.org/en/latest/contracts.html#fallback-function) est exécutée lorsqu'un appel de fonction ne correspond pas aux fonctions spécifiées dans un contrat. @@ -160,6 +160,6 @@ Les timelocks donnent aux utilisateurs un certain temps pour quitter le système - [L'état des mises à jour des contrats intelligents](https://blog.openzeppelin.com/the-state-of-smart-contract-upgrades/) par Santiago Palladino - [Plusieurs façons de mettre à jour un contrat intelligent Solidity](https://cryptomarketpool.com/multiple-ways-to-upgrade-a-solidity-smart-contract/) - Blog Crypto Market Pool -- [ Apprendre à mettre à jour un contrat intelligent](https://docs.openzeppelin.com/learn/upgrading-smart-contracts) - OpenZeppelin Docs +- [Apprendre à mettre à jour un contrat intelligent](https://docs.openzeppelin.com/learn/upgrading-smart-contracts) - OpenZeppelin Docs - [La méthode proxy pour mettre à jour les contrats en Solidity : Proxy Transparent vs UUPS](https://mirror.xyz/0xB38709B8198d147cc9Ff9C133838a044d78B064B/M7oTptQkBGXxox-tk9VJjL66E1V8BUF0GF79MMK4YG0) par Naveen Samu - [Comment les mises à jour en diamant fonctionnent ?](https://dev.to/mudgen/how-diamond-upgrades-work-417j) par Nick Mudge diff --git a/public/content/translations/fr/developers/docs/smart-contracts/verifying/index.md b/public/content/translations/fr/developers/docs/smart-contracts/verifying/index.md index f34eb730ef5..40bc7130989 100644 --- a/public/content/translations/fr/developers/docs/smart-contracts/verifying/index.md +++ b/public/content/translations/fr/developers/docs/smart-contracts/verifying/index.md @@ -72,11 +72,11 @@ Le processus traditionnel de vérification des contrats peut être complexe. C'e Bien que principalement connu comme un [explorateur de la blockchain Ethereum](/developers/docs/data-and-analytics/block-explorers/), Etherscan propose également un [service de vérification de source code](https://etherscan.io/verifyContract) pour les développeurs et les utilisateurs de contrats intelligents. -Etherscan vous permet de recompiler le bytecode du contrat à partir de la charge utile des données originales (code source, adresse de la bibliothèque, paramètres du compilateur, adresse du contrat, etc.) Si le bytecode recompilé est identifié comme étant identique au bytecode (et les paramètres du constructeur) du contrat en chaîne, alors [le contrat est vérifié](https://info.etherscan.com/types-of-contract-verification/). +Etherscan vous permet de recompiler le bytecode du contrat à partir de la charge utile des données originales (code source, adresse de la bibliothèque, paramètres du compilateur, adresse du contrat, etc.) Si le bytecode recompilé est identifié comme étant identique au bytecode (et aux paramètres du constructeur) du contrat en chaîne, alors [le contrat est vérifié](https://info.etherscan.com/types-of-contract-verification/). Une fois vérifié, le code source de votre contrat reçoit un label « vérifié » et est publié sur Etherscan pour que d'autres puissent l'auditer. Il est également ajouté à la section [Contrats vérifiés](https://etherscan.io/contractsVerified/) - un répertoire de contrats intelligents dont les codes sources ont été vérifiés. -Etherscan est l'outil le plus utilisé pour vérifier les contrats. Cependant, la vérification de contrat d'Etherscan présente un inconvénient : elle ne parvient pas à comparer le **hachage de métadonnées** du bytecode on-chain et du bytecode recompilé. Par conséquent, les correspondances Etherscan sont des correspondances partielles. +Etherscan est l'outil le plus utilisé pour vérifier les contrats. Cependant, la vérification de contrat d'Etherscan présente un inconvénient : elle ne parvient pas à comparer le **hachage de métadonnées** du bytecode en chaîne et du bytecode recompilé. Par conséquent, les correspondances Etherscan sont des correspondances partielles. [Plus d'informations sur la vérification des contrats sur Etherscan](https://medium.com/etherscan-blog/verifying-contracts-on-etherscan-f995ab772327). diff --git a/public/content/translations/fr/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/fr/developers/docs/standards/tokens/erc-1155/index.md index ff033f95f15..a44bb34e82d 100644 --- a/public/content/translations/fr/developers/docs/standards/tokens/erc-1155/index.md +++ b/public/content/translations/fr/developers/docs/standards/tokens/erc-1155/index.md @@ -23,7 +23,7 @@ Pour mieux comprendre cette page, nous vous recommandons de commencer par lire c - [Transfert par lot](#batch_transfers) : Transférer plusieurs actifs en un seul appel. - [Solde par lot](#batch_balance) : Obtenez les soldes de plusieurs actifs en un seul appel. - [Approbation par lot](#batch_approval) : Approuver tous les jetons à une adresse. -- [Crochets](#receive_hook) : Recevoir des crochets de jetons. +- [Crochets](#recieve_hook) : Recevoir des crochets de jetons. - [Support NFT](#nft_support) : Si l'échange est unique, le traiter comme NFT. - [Règles de transfert sécurisées](#safe_transfer_rule) : Ensemble de règles pour sécuriser un transfert. @@ -141,6 +141,6 @@ _Note_ : Toutes les fonctions par lot, y compris le crochet, existent également ## Complément d'information {#further-reading} - [Norme de multijeton ERC-1155](https://eips.ethereum.org/EIPS/eip-1155) -- [ERC-1155 : Documentation Openzeppelin](https://docs.openzeppelin.com/contracts/3.x/erc1155) +- [ERC-1155 : Documentation Openzeppelin](https://docs.openzeppelin.com/contracts/5.x/erc1155) - [ERC-1155 : Répertoire GitHub](https://github.com/enjin/erc-1155) - [API NFT d'Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/public/content/translations/fr/developers/docs/standards/tokens/erc-223/index.md b/public/content/translations/fr/developers/docs/standards/tokens/erc-223/index.md index 31e8580f15c..460ea011df7 100644 --- a/public/content/translations/fr/developers/docs/standards/tokens/erc-223/index.md +++ b/public/content/translations/fr/developers/docs/standards/tokens/erc-223/index.md @@ -129,7 +129,7 @@ contract RecipientContract is IERC223Recipient { { // It is important to understand that within this function // msg.sender is the address of a token that is being received, - // msg.value is always 0 as the token contract does not own or send Ether in most cases, + // msg.value is always 0 as the token contract does not own or send ether in most cases, // _from is the sender of the token transfer, // _value is the amount of tokens that was deposited. require(msg.sender == tokenA); @@ -155,7 +155,7 @@ Si un jeton ERC-20 est envoyé au `RecipientContract`, les jetons seront transf ### Que faire si nous voulons exécuter une fonction après que le dépôt de jetons soit complété ? {#function-execution} -Il existe plusieurs façons de procéder. Dans cet exemple, nous suivrons la méthode qui rend les transferts ERC-223 identiques aux transferts d'Ether : +Il existe plusieurs façons de procéder. Dans cet exemple, nous suivrons la méthode qui rend les transferts ERC-223 identiques aux transferts d'ether : ```solidity contract RecipientContract is IERC223Recipient { @@ -178,7 +178,7 @@ contract RecipientContract is IERC223Recipient { } ``` -Lorsque le `RecipientContract` recevra un jeton ERC-223, le contrat exécutera une fonction encodée comme paramètre `_data` de la transaction de jeton, de manière identique à la façon dont les transactions Ether codent les appels de fonction en tant que `data` de transaction. Consultez [le champ de données](https://ethereum.org/en/developers/docs/transactions/#the-data-field) pour plus d'informations. +Lorsque le 'RecipientContract' recevra un token ERC-223, le contrat exécutera une fonction encodée sous forme de paramètre '_data' de la transaction du jeton, de la même manière que les transactions d'ether encodent les appels de fonction en tant que 'data' de transaction. Consultez [le champ de données](https://ethereum.org/en/developers/docs/transactions/#the-data-field) pour plus d'informations. Dans l'exemple ci-dessus, un jeton ERC-223 doit être transféré à l'adresse du `RecipientContract` avec la fonction `transfer(address,uint256,bytes calldata _data)`. Si le paramètre de données est `0xc2985578` (la signature de la fonction `faut()`), alors la fonction `foo()` sera invoquée après la réception du dépôt de jetons, et l'événement `Foo()` sera déclenché. diff --git a/public/content/translations/fr/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/fr/developers/docs/standards/tokens/erc-4626/index.md index 28901375b1d..80598bc0c89 100644 --- a/public/content/translations/fr/developers/docs/standards/tokens/erc-4626/index.md +++ b/public/content/translations/fr/developers/docs/standards/tokens/erc-4626/index.md @@ -16,6 +16,22 @@ Les coffres de rendement ERC-4626 réduiront l'effort d'intégration et ouvriron Le jeton ERC-4626 est décrit dans les détails dans [EIP-4626](https://eips.ethereum.org/EIPS/eip-4626). +**Extension de coffre-fort asynchrone (ERC-7540)** + +L'ERC-4626 est optimisé pour les dépôts et les rachats atomiques jusqu'à une certaine limite. Si la limite est atteinte, aucun nouveau dépôt ni rachat ne peut être soumis. Cette limitation ne fonctionne pas correctement pour les systèmes de contrats intelligents dont les actions asynchrones ou les retards sont une condition préalable à l'interface avec le coffre-fort (par exemple, les protocoles d'actifs du monde réel, les protocoles de prêts sous-collatéralisés, les protocoles de prêts entre chaînes, les jetons de mise en jeu liquides, ou les modules de sécurité d'assurance). + +L'ERC-7540 étend l'utilité des coffre-forts ERC-4626 pour les cas d'utilisation asynchrones. L'interface de coffre-fort existante (`deposit`/`withdraw`/`mint`/`redeem`) est pleinement utilisée pour réclamer les demandes asynchrones. + +L'extension ERC-7540 est décrite en détail dans [ERC-7540](https://eips.ethereum.org/EIPS/eip-7540). + +**Extension du coffre-fort multi-actifs (ERC-75757)** + +Parmi les cas d'utilisation qui ne sont pas pris en charge par l'ERC-4626, on trouve les coffres-forts qui possèdent plusieurs actifs ou points d'entrée, tels que les jetons de fournisseurs de liquidités (LP). Ces derniers sont généralement difficiles à manipuler ou non conformes en raison de l'exigence de l'ERC-4626 d'être lui-même un ERC-20. + +L'ERC-7575 ajoute la prise en charge des coffre-forts comportant plusieurs actifs en externalisant l'implémentation du jeton ERC-20 à partir de l'implémentation de l'ERC-4626. + +L'extension ERC-7575 est décrite en détail dans [ERC-7575](https://eips.ethereum.org/EIPS/eip-7575). + ## Pré-requis {#prerequisites} Pour mieux comprendre cette page, nous vous recommandons de commencer par lire celles concernant [les normes des jetons](/developers/docs/standards/tokens/) et [ERC-20](/developers/docs/standards/tokens/erc-20/). @@ -176,7 +192,7 @@ Renvoie le nombre total d'actions détenues par l'`owner`. #### Événement de dépôt -**DOIT** être déclenché lorsque des jetons sont déposés dans le coffre via les méthodes [`mint`](#mint) et [`deposit`](#deposit) +**DOIT** être émis lorsque des jetons sont déposés dans le coffre-fort via les méthodes [`mint`](#mint) et [`deposit`](#deposit). ```solidity event Deposit( diff --git a/public/content/translations/fr/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/fr/developers/docs/standards/tokens/erc-777/index.md new file mode 100644 index 00000000000..3b97a56dc19 --- /dev/null +++ b/public/content/translations/fr/developers/docs/standards/tokens/erc-777/index.md @@ -0,0 +1,45 @@ +--- +title: Norme de jeton ERC-777 +description: null +lang: fr +--- + +## Avertissement {#warning} + +**ERC-777 est difficile à mettre en œuvre correctement en raison de sa [vulnérabilité à différentes formes d'attaques](https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2620). Il est recommandé d'utiliser [ERC-20](/developers/docs/standards/tokens/erc-20/) à la place.** Cette page reste en tant qu'archive historique. + +## Introduction ? {#introduction} + +ERC-777 est une norme de jeton fongible qui améliore la norme [ERC-20](/developers/docs/standards/tokens/erc-20/) existante. + +## Prérequis {#prerequisites} + +Pour mieux comprendre cette page, nous vous recommandons de commencer par lire celle concernant [ERC-20](/developers/docs/standards/tokens/erc-20/). + +## Quelles améliorations l'ERC-777 amène-t-elle par rapport à l'ERC-20 ? {#-erc-777-vs-erc-20} + +L’ERC-777 apporte les améliorations suivantes par rapport à l’ERC-20. + +### Crochets {#hooks} + +Le crochet est une fonction décrite dans le code d'un contrat intelligent. Les crochets sont appelés lorsque des jetons sont envoyés ou reçus par le biais du contrat. Cela permet à un contrat intelligent de réagir aux jetons entrants ou sortants. + +Les crochets sont enregistrés et découvert à l'aide la norme [ERC-1820](https://eips.ethereum.org/EIPS/eip-1820). + +#### Pourquoi les crochets sont-ils exceptionnels ? {#why-are-hooks-great} + +1. Les crochets permettent d'envoyer des jetons à un contrat et de notifier le contrat en une seule transaction, contrairement à [ERC-20](https://eips.ethereum.org/EIPS/eip-20), qui nécessite un double appel (approve/transferFrom) pour y parvenir. +2. Les contrats qui n'ont pas implémenté les crochets sont incompatibles avec l'ERC-777. Le contrat d'envoi interrompt la transaction si le contrat de réception n'a pas enregistré de crochet. Cela empêche les transferts accidentels vers des contrats intelligents non ERC-777. +3. Les crochets peuvent rejeter les transactions. + +### Décimales {#decimals} + +La norme résout également la confusion relative aux décimales générées par ERC-20. Cette clarification permet d'améliorer l'expérience développeur. + +### Rétrocompatibilité avec ERC-20 {#backwards-compatibility-with-erc-20} + +Les contrats ERC-777 peuvent interagir comme s'il s'agissait de contrats ERC-20. + +## En savoir plus {#further-reading} + +[EIP-777 : Jeton standard] (https://eips.ethereum.org/EIPS/eip-777) diff --git a/public/content/translations/fr/governance/index.md b/public/content/translations/fr/governance/index.md index 02ea7c7dd8a..a8f6f9b3858 100644 --- a/public/content/translations/fr/governance/index.md +++ b/public/content/translations/fr/governance/index.md @@ -20,17 +20,17 @@ Aucune personne ne possède ou ne contrôle le protocole d'Ethereum, mais des d ## Gouvernance d'Ethereum {#ethereum-governance} -La gouvernance d'Ethereum est le processus par lequel des changements de protocole sont apportés. Il est important de souligner que ce processus n'est pas lié à la façon dont les gens et les applications utilisent le protocole - Ethereum est sans permission. N'importe qui depuis n'importe où dans le monde peut participer aux activités sur la blockchain. Il n'y a aucune règle définie pour qui peut ou ne peut pas construire une application ou envoyer une transaction. Cependant, il existe un processus permettant de proposer des modifications au protocole principal, que les applications décentralisées utilisent. Dans la mesure où un très grand nombre de personnes dépendent de la stabilité d'Ethereum, tout changement fondamental apporté à Ethereum, qu'il soit technique ou social, doit être validé par le plus grand nombre afin de s'assurer qu'il soit sûr et largement soutenu par la communauté. +La gouvernance d'Ethereum est le processus par lequel des changements de protocole sont apportés. Il est important de souligner que ce processus n'est pas lié à la façon dont les gens et les applications utilisent le protocole - Ethereum est sans permission. Toute personne, où qu'elle se trouve dans le monde, peut participer aux activités sur la chaîne. Il n'y a aucune règle définie pour qui peut ou ne peut pas construire une application ou envoyer une transaction. Cependant, il existe un processus permettant de proposer des modifications au protocole principal, que les applications décentralisées utilisent. Dans la mesure où un très grand nombre de personnes dépendent de la stabilité d'Ethereum, tout changement fondamental apporté à Ethereum, qu'il soit technique ou social, doit être validé par le plus grand nombre afin de s'assurer qu'il soit sûr et largement soutenu par la communauté. -### Gouvernance sur la blockchain vs hors chaîne {#on-chain-vs-off-chain} +### Gouvernance sur la chaîne vs hors chaîne {#onchain-vs-offchain} -La technologie de la blockchain permet de nouvelles capacités de gouvernance, connues sous le nom de gouvernance sur la blockchain. La gouvernance est dite sur sur la blockchain lorsque les modifications proposées au protocole sont décidées par vote des parties prenantes, généralement par les détenteurs d'un jeton de gouvernance, et le vote se produit sur la blockchain. Avec certaines formes de gouvernance on-chain, les modifications de protocole proposées sont déjà écrites dans le code et implémentées automatiquement si les parties prenantes approuvent les changements en signant une transaction. +La technologie de la blockchain permet de nouvelles capacités de gouvernance, connues sous le nom de gouvernance sur la chaîne. On parle de gouvernance sur la chaîne de blocs lorsque les changements de protocole proposés sont décidés par un vote des parties prenantes, généralement par les détenteurs d'un jeton de gouvernance, et que le vote a lieu sur la blockchain. Avec certaines formes de gouvernance on-chain, les modifications de protocole proposées sont déjà écrites dans le code et implémentées automatiquement si les parties prenantes approuvent les changements en signant une transaction. L'approche opposée, la gouvernance hors chaîne, est celle où toute décision de changement de protocole se fait par le biais d'un processus informel de discussion sociale, qui, s'il est approuvé, sera mis en œuvre dans le code. -**La gouvernance d'Ethereum a lieu hors chaîne** avec une grande variété d'acteurs impliqués dans le processus. +**La gouvernance d'Ethereum a lieu hors chaîne** et implique une grande variété de parties prenantes dans le processus. -_Bien qu'au niveau du protocole, la gouvernance d'Ethereum est hors chaîne, de nombreux cas d'utilisation basés sur Ethereum, tels que les DAO, utilisent la gouvernance sur la blockchain._ +_Bien qu'au niveau du protocole, la gouvernance d'Ethereum se situe hors chaîne, de nombreux cas d'utilisation basés sur Ethereum, tels que les DAO, utilisent la gouvernance sur la chaîne._ En savoir plus sur les DAO @@ -180,3 +180,5 @@ La gouvernance d'Ethereum n'est pas rigoureusement définie. Divers participants - [Qu'est-ce qu'un développeur de base Ethereum ?](https://hudsonjameson.com/2020-06-22-what-is-an-ethereum-core-developer/) - _Hudson Jameson_ - [Gouvernance, partie 2 : La ploutocratie est toujours mauvaise](https://vitalik.eth.limo/general/2018/03/28/plutocracy.html) - _Vitalik Buterin_ - [Aller au-delà de la gouvernance du vote par jeton](https://vitalik.eth.limo/general/2021/08/16/voting3.html) - _Vitalik Buterin_ +- [Comprendre la gouvernance de la blockchain](https://research.2077.xyz/understanding-blockchain-governance) - _2077 Research_ +- [Le gouvernement d'Ethereum](https://www.galaxy.com/insights/research/ethereum-governance/) - _Christine Kim_ diff --git a/public/content/translations/fr/payments/index.md b/public/content/translations/fr/payments/index.md new file mode 100644 index 00000000000..1190f2c230a --- /dev/null +++ b/public/content/translations/fr/payments/index.md @@ -0,0 +1,155 @@ +--- +title: Paiements Ethereum +metaTitle: Paiements sur Ethereum +description: Un aperçu des paiements sur Ethereum +lang: fr +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /images/impact_transparent.png +alt: Logo d’Ethereum accompagné de mains tendues. +summaryPoint1: Un monde où l’argent circule aussi librement que l’information +summaryPoint2: Ouvert et global, permettant des transactions sans frontières pour tous +summaryPoint3: Paiements reçus en moins d’une minute +--- + +Chaque jour, des millions de personnes font face au même défi : transférer de l’argent à travers le monde est lent, coûteux et souvent frustrant. Un freelance à Bali attend plusieurs jours que le paiement de son client à New York soit validé. Cela touche particulièrement les personnes vivant dans des régions où l’infrastructure bancaire est limitée, rendant leur participation à l’économie mondiale difficile. + +Ce n’est pas un rêve lointain – cela se passe aujourd’hui sur Ethereum. Bien que les institutions financières traditionnelles aient mis des décennies à construire des systèmes de paiement solides, elles restent souvent limitées par les frontières, les horaires d’ouverture et des infrastructures héritées du passé. Ethereum propose un nouveau paradigme : une plateforme financière mondiale, accessible 24h/24 et 7j/7, qui permet des transactions quasi instantanées et programmables pour toute personne disposant d’un accès à Internet. + +
+ +![Logo Ethereum sur un écran d’ordinateur](./computer.png) + +
+ +## Transferts de fonds : des envois internationaux moins coûteux {#remittances} + +Pour des millions de personnes travaillant à l’étranger, envoyer de l’argent au pays est une nécessité régulière. Les services de transfert de fonds traditionnels s’accompagnent souvent de frais élevés et de délais de traitement longs. Ethereum propose une alternative intéressante. + + + + + + + +## Accès aux monnaies mondiales {#access-to-global-currencies} + +Dans de nombreux pays, l’inflation est un problème urgent, souvent accompagné d’un accès limité aux devises étrangères. Les personnes se trouvant dans ces situations luttent pour préserver leur patrimoine, car elles sont contraintes de conserver des économies qui se déprécient rapidement. + +La communauté Ethereum a créé **un système financier alternatif solide** indépendant des politiques monétaires ou du contrôle d'un État. + +Les utilisateurs d’Ethereum peuvent utiliser **des stablecoins — des jetons généralement indexés sur des devises fortes comme le dollar américain**. En gagnant et en épargnant en cryptomonnaie, les individus peuvent se protéger contre une forte inflation dans leur pays, ce qui les aide à préserver, voire à augmenter, leur pouvoir d’achat. Cela permet également de faciliter les paiements pour des biens et services, tant au niveau local que mondial. + + + En savoir plus sur les stablecoins + + +## Achat de biens et paiement de services {#buying-goods-and-payment-for-services} + +De nombreuses entreprises commencent à accepter l’ether (ETH) et d’autres cryptomonnaies comme moyen de paiement. Par exemple : + +- **Newegg :** Le célèbre détaillant d’électronique accepte l’Ethereum pour les achats dans certains pays. +- **Travala.com :** Cette plateforme de réservation de voyages permet aux utilisateurs de payer leurs hôtels et vols en Ethereum. +- **Shopify :** Cette plateforme de commerce électronique populaire, qui héberge de nombreuses boutiques en ligne, accepte également les paiements en Ethereum pour les biens et services. +- **Sotheby’s :** Cette maison de vente aux enchères spécialisée dans l’art, les bijoux et les objets de collection accepte les paiements en Ethereum et autres cryptomonnaies. + +Des pays comme le Salvador et la République centrafricaine ont même adopté les cryptomonnaies comme monnaie légale, ouvrant la voie à une adoption plus large des paiements en Ethereum dans les transactions quotidiennes. + +Dans les pays où les moyens de paiement ont été déconnectés du reste du monde, les solutions de paiement intégrant les cryptomonnaies ont constitué un grand soulagement. Le paiement d’abonnements à des plateformes comme Netflix, Spotify ou encore à des cours en ligne est désormais facilité grâce aux plateformes de paiement en cryptomonnaie telles que Gnosis Pay et PayPal. + + +
Créez votre compte Ethereum dès aujourd’hui avec une application de portefeuille.
+ + Commencer + +
+ +## Paiement des salaires {#salary-payments} + +De nombreuses entreprises avant-gardistes offrent désormais à leurs employés la possibilité de recevoir leur salaire, ou une partie de celui-ci, en cryptomonnaies comme l’ether (ETH) : + +- **Gipsybee :** est une organisation spécialisée dans l’électronique, la robotique, la création de jeux et d’autres services. Ils offrent à leurs employés la possibilité d’être payés en Ethereum. +- **SC5 :** Cette entreprise finlandaise a été l’une des premières à proposer des salaires en Bitcoin, ouvrant la voie à des dispositifs similaires avec l’Ethereum. +- **Startups blockchain :** De nombreuses entreprises du secteur blockchain proposent naturellement à leurs employés des possibilités de rémunération en cryptomonnaie. +- **DAO :** En raison de la particularité et de la diversité des contributeurs au sein des DAO, la majorité des contributions et des rémunérations sont récompensées en cryptomonnaie. + +Cette tendance séduit particulièrement les travailleurs à distance et les nomades numériques, qui peuvent profiter de paiements sans frontières et, potentiellement, de taux de change avantageux. + + + +## Actions humanitaires mondiales {#global-relief-efforts} + +En février 2023, lorsque de violents séismes ont frappé la Turquie et la Syrie, la communauté crypto mondiale s’est immédiatement mobilisée. Diverses campagnes ont été lancées pour collecter des fonds en soutien aux opérations de secours, mettant en lumière la puissance d’Ethereum en temps de crise. Bien que les cryptomonnaies [ne soient pas reconnues comme moyen de paiement](https://www.reuters.com/technology/no-more-kebabs-bitcoins-turkeys-crypto-payment-ban-looms-2021-04-28/) en Turquie, les autorités ont accordé [des exceptions](https://x.com/haluklevent/status/1622913175409623041) à certaines organisations pour leur permettre de collecter des dons. Voici quelques exemples : + +- [Refik Anadol](https://x.com/refikanadol/status/1622623521104089090) : artiste numérique de renom qui a lancé une campagne de collecte de fonds. +- DAO Power : [Anka Relief DAO](https://ankarelief.org/) et [Bankless DAO](https://x.com/banklessDAO) ont uni leurs forces avec [Giveth](https://x.com/Giveth/status/1623493672149843969) pour collecter des fonds. +- [Pak](https://cause.quest/), un artiste NFT de renom, a également contribué à cette cause. +- Même le cofondateur d’Ethereum, [Vitalik Buterin](https://cointelegraph.com/news/vitalik-buterin-donates-227k-to-help-earthquake-victims-in-turkey-syria), a effectué des dons personnels en faveur de plusieurs campagnes. + Le résultat de tout cela ? Plus de 6 millions de dollars ont été récoltés en quelques jours, comme le montre un tableau de bord d'analyses [Dune](https://dune.com/davy42/turkiye-earthquake-donations). + +Des temps de réponse similaires ont également été observés lors des tragédies survenues en Inde et en Ukraine. Cette réponse rapide met en évidence un avantage crucial des paiements via Ethereum : la capacité à mobiliser rapidement un soutien mondial, sans les obstacles liés à la conversion de devises, à la lenteur des virements bancaires ou aux frais exorbitants. + +
+ +![Image d’un robot Ethereum](./eth_robot.png) + +
+ +## Ethereum vs fiat {#ethereum-vs-fiat} + +Pour bien comprendre l’impact des paiements en Ethereum, il vaut la peine de les comparer aux monnaies fiduciaires traditionnelles : + +| | **Ethereum** | **Banques traditionnelles** | +| --------------------------- | ------------------------------------------ | ----------------------------------------------------------------------------- | +| **Rapidité** | De quelques secondes à quelques minutes | De quelques heures à plusieurs jours | +| **Portée mondiale** | Sans frontières, 24h/24 et 7j/7 | Soumise aux restrictions bancaires internationales et aux horaires de travail | +| **Transparence** | Entièrement transparent | Variable selon l’institution | +| **Programmabilité** | Permet les contrats intelligents | Limitée aux transactions de base | +| **Contrôle de l’inflation** | Émission prévisible | Soumise aux politiques des banques centrales | +| **Accessibilité** | Accessible à toute personne ayant Internet | Soumise aux restrictions nationales et internationales | + +Fondamentalement, Ethereum est une plateforme décentralisée qui permet des transactions sécurisées, rapides et transparentes. Cependant, de nombreux éléments la distinguent des méthodes de paiement traditionnelles. Découvrons les avantages qui font des paiements en Ethereum un véritable bouleversement : + +### Programmabilité {#programmability} + +L’une des caractéristiques uniques d’Ethereum est sa capacité à prendre en charge les contrats intelligents. Les contrats intelligents sont des accords auto-exécutables dont les conditions sont directement inscrites dans le code. Cela ouvre un monde de possibilités pour des paiements automatisés et conditionnels, qui peuvent grandement améliorer des transactions telles que : + +- Services de dépôt fiduciaire +- Paiements récurrents +- Rémunération basée sur la performance + +### Vitesse {#speed} + +Vous souvenez-vous de la dernière fois où vous avez attendu plusieurs jours qu’un virement bancaire international soit validé ? La longue file d’attente ? Et tous les formulaires que vous avez dû remplir ? Avec Ethereum, ces jours-là sont bel et bien révolus. Les transactions sur le réseau Ethereum sont finalisées en quelques minutes, quel que soit l’emplacement de l’expéditeur et du destinataire. Ethereum fonctionnant sans autorisation, aucune bureaucratie réglementaire ne s'applique à l'envoi d'argent. Cette rapidité est particulièrement cruciale dans les situations urgentes, comme les opérations de secours en cas de catastrophe. + +### Frais réduits {#lower-fees} + +Les frais des transferts d’argent internationaux traditionnels grignotent parfois une part importante du montant envoyé, surtout pour des transactions de quelques centaines de dollars. Les transactions sur Ethereum, bien qu’elles ne soient pas gratuites, s’accompagnent souvent de frais moins élevés. Cela signifie qu’une plus grande partie de votre argent va là où vous le souhaitez, plutôt que de remplir les poches des intermédiaires. + +### Transparence {#transparency} + +Chaque transaction sur la blockchain Ethereum est enregistrée dans un registre public. Cela signifie que chacun peut vérifier les mouvements de fonds, ce qui en fait un excellent outil pour : + +- Les organisations caritatives, pour démontrer comment les dons sont utilisés +- Les entreprises, pour justifier les paiements effectués aux fournisseurs ou aux employés +- Les particuliers, pour suivre leurs activités financières + +Avec Ethereum, tout le monde peut voir comment l’argent circule et de quelle manière les coûts sont appliqués, contrairement aux organisations traditionnelles où la plupart de ces informations restent inconnues. + +
+ +![image de marche](./walking.png) + +
+ +Bien que les monnaies fiduciaires aient l'avantage d'une large acceptation et stabilité, Ethereum offre des avantages uniques qui en font une option attrayante pour certains types de transactions. + +Qu'il s'agisse de faciliter les secours rapides en cas de catastrophe ou d'autonomiser les travailleurs du monde entier, les paiements en Ethereum écrivent un nouveau chapitre dans la longue histoire de l'argent. Bien que des défis subsistent, les avantages uniques offerts par cette technologie en font une option intéressante pour une large gamme de cas d’utilisation. + + +
Le moment est venu de créer votre propre compte Ethereum.
+ + Commencer + +
\ No newline at end of file diff --git a/public/content/translations/fr/roadmap/index.md b/public/content/translations/fr/roadmap/index.md index 3355f892001..aaff52d21b2 100644 --- a/public/content/translations/fr/roadmap/index.md +++ b/public/content/translations/fr/roadmap/index.md @@ -109,6 +109,7 @@ La fragmentation est la division de la blockchain Ethereum afin que des sous-ens ## Vous recherchez des mises à niveau techniques spécifiques ? {#looking-for-specific-technical-upgrades} +- [Pectra](/roadmap/pectra) – La fourche majeure Prague/Electra qui introduit une nouvelle approche de l’abstraction de compte, améliore l'évolutivité et bien plus encore. - [Danksharding](/roadmap/danksharding) - Le Danksharding rend les rollups de couche 2 bien plus abordables pour les utilisateurs en ajoutant des « blob » de données aux blocs d'Ethereum. - [Retraits de Staking](/staking/withdrawals) - La mise à niveau Shanghai/Capella a activé les retraits de staking sur Ethereum, permettant aux gens de déverrouiller leurs ETH mis en jeu. - [Finalité à un seul créneau](/roadmap/single-slot-finality) - Au lieu d'attendre pendant 15 minutes, les blocks pourraient être proposés et finalisés dans le même créneau. Ceci est plus pratique pour les applications et bien plus difficilement attaquable. diff --git a/public/content/translations/fr/smart-contracts/index.md b/public/content/translations/fr/smart-contracts/index.md index 85fb2bf8edc..f758b87469e 100644 --- a/public/content/translations/fr/smart-contracts/index.md +++ b/public/content/translations/fr/smart-contracts/index.md @@ -7,6 +7,10 @@ lang: fr # Introduction aux contrats intelligents {#introduction-to-smart-contracts} +
+ +
+ Les contrats intelligents sont les éléments fondamentaux de la couche applicative d'Ethereum. Il s'agit de programmes informatiques stockés sur la [blockchain](/glossary/#blockchain) qui suivent la logique « si ceci alors cela » et sont garantis de s'exécuter selon les règles définies par leur code, qui ne peut être modifié une fois créé. L'expression « contrat intelligent » a été utilisée en premier par Nick Szabo. En 1994, il a écrit [une introduction au concept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), et en 1996 il a écrit [une exploration de ce que les contrats intelligents pourraient faire](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). diff --git a/public/content/translations/fr/web3/index.md b/public/content/translations/fr/web3/index.md index 9fba54ea1ae..d03d5c35336 100644 --- a/public/content/translations/fr/web3/index.md +++ b/public/content/translations/fr/web3/index.md @@ -6,6 +6,10 @@ lang: fr # Introduction au Web3 {#introduction} +
+ +
+ La centralisation a permis à des milliards de personnes d'accéder au World Wide Web et de créer l'infrastructure stable et robuste sur laquelle il repose. Dans le même temps, une poignée d'entités centralisées ont pris le contrôle de larges pans du World Wide Web, décidant de manière unilatérale de ce qui est autorisé ou non. Le Web3 est la réponse à ce dilemme. Contrairement à un Web dominé par les grandes entreprises technologiques, le Web3 est décentralisé et est construit, exploité et détenu par ses utilisateurs. Le Web3 donne le pouvoir aux individus plutôt qu'aux entreprises. Avant de parler du Web3, il faut comprendre comment nous en sommes arrivés là. diff --git a/public/content/translations/fr/whitepaper/index.md b/public/content/translations/fr/whitepaper/index.md index ad613a58f0c..4f5502aefc2 100644 --- a/public/content/translations/fr/whitepaper/index.md +++ b/public/content/translations/fr/whitepaper/index.md @@ -91,7 +91,7 @@ L'algorithme utilisé pour vérifier qu'un bloc est valide, exprimé dans ce par Fondamentalement, chaque transaction du bloc doit fournir une transition d'état valide vers un nouvel état, à partir de ce qui était l'état conforme avant que la transaction ne soit exécutée vers le nouvel état. Notez que l'état n'est aucunement encodé dans le bloc. Ce n'est qu'une abstraction dont le nœud validateur doit se souvenir et il ne peut être calculé de façon sécurisée pour n'importe quel bloc qu'en partant de l'état d'origine et en y appliquant séquentiellement toutes les transactions de chaque bloc. Notez par ailleurs que l'ordre dans lequel le mineur inclut les transactions dans le bloc a de l'importance. S'il existe deux transactions A et B dans un bloc de telle façon que B dépense un UTXO créé par A, alors le bloc sera valable si A précède B, et non l'inverse. -La seule condition de validité présente dans la liste ci-dessus qu'on ne trouve pas dans d'autres systèmes est l'exigence de "preuve de travail" (PoW). La condition précise est que le double hash SHA256 de chaque bloc, traité comme un nombre de 256 bits, doit être inférieur à une cible ajustée dynamiquement qui, à la rédaction de ce document, est d'environ 2187. L'objectif est de rendre "difficile" la création de blocs en terme de calculs, ce qui empêche les pirates effectuant une attaque Sybil de recréer toute la blockchain en leur faveur. SHA256 étant conçu comme une fonction pseudo-aléatoire complètement imprévisible, la seule façon de créer un bloc valide est de faire des essais et des corrections en incrémentant le nonce de façon répétée pour voir si chaque nouveau hash correspond. +La seule condition de validité présente dans la liste ci-dessus qu'on ne trouve pas dans d'autres systèmes est l'exigence de "preuve de travail" (PoW). La condition précise est que le double hash SHA256 de chaque bloc, traité comme un nombre de 256 bits, doit être inférieur à une cible ajustée dynamiquement qui, à la rédaction de ce document, est d'environ 2187. L'objectif est de rendre "difficile" la création de blocs en terme de calculs, ce qui empêche les pirates effectuant une attaque Sybil de recréer toute la blockchain en leur faveur. SHA256 étant conçu comme une fonction pseudo-aléatoire complètement imprévisible, la seule façon de créer un bloc valide est de faire des essais et des corrections, en incrémentant le nonce de façon répétée pour voir si chaque nouveau hachage correspond. D'après l'objectif actuel de \~2187, le réseau doit faire une moyenne de \~269 essais avant de trouver un bloc valide. En général, la cible est recalibrée par le réseau tous les 2 016 blocs de sorte qu'en moyenne, un nouveau bloc est produit par un nœud du réseau toutes les dix minutes. Afin de compenser le travail de calcul des mineurs, chacun d'entre eux est en droit d'inclure pour chaque bloc miné une transaction qui lui octroie 25 BTC sortant de nulle part. En outre, si une transaction a une valeur totale d'entrées supérieure à celle des sorties, la différence revient également au mineur sous forme de "frais de transaction". Par ailleurs, il s'agit également du seul mécanisme par lequel les BTC sont émis, car l'état d'origine ne contenait aucune unité de compte. @@ -120,7 +120,7 @@ On peut dire que le protocole de l'arbre de Merkle est essentiel à la viabilit L'application de l'idée sous-jacente de la blockchain à d'autres concepts a également une longue histoire. En 2005, Nick Szabo invente le concept de « [secure property titles with ownerauthority](https://nakamotoinstitute.org/secure-property-titles/) » (titres de propriété sécurisés avec preuve de possession), un document décrivant comment de « nouvelles avancées dans la technologie des bases de données répliquées » permettent à un système fondé sur la blockchain de stocker une sorte de cadastre des propriétaires de terrains, créant ainsi un cadre élaboré qui inclut des concepts comme l'occupation d'un terrain, la prescription acquisitive et la taxe foncière en Géorgie. Il n'existait toutefois malheureusement aucun système de base de données répliquées efficace à cette époque. Le protocole n'a donc jamais été implémenté en pratique. Après 2009, une fois développé le consensus décentralisé de Bitcoin, un certain nombre d'autres applications ont néanmoins rapidement commencé à émerger. -- **Namecoin** : créée en 2010, [Namecoin](https://namecoin.org/) peut être décrite comme une base de données décentralisée d'enregistrement de noms. Dans les protocoles décentralisés comme Tor, Bitcoin et BitMessage, il doit exister un moyen d'identifier les comptes afin que d'autres personnes puissent interagir avec eux, mais dans toutes les solutions existantes, le seul type d'identificateur disponible est un hash pseudo-aléatoire comme `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Idéalement, on souhaiterait avoir un compte avec un nom comme « george ». Cependant, le problème est que si une personne peut créer un compte nommé « george », quelqu'un d'autre peut utiliser le même processus afin d'enregistrer « george » pour lui-même et se faire passer pour lui. La seule solution est d'appliquer le paradigme du premier déposant, où le premier enregistrement réussit tandis que le second échoue, parfaitement adapté pour le protocole de consensus Bitcoin. Namecoin est l'implémentation la plus ancienne et la plus réussie d'un système d'enregistrement de noms reposant sur cette idée. +- **Namecoin** : créée en 2010, [Namecoin](https://namecoin.org/) peut être décrite comme une base de données décentralisée d'enregistrement de noms. Dans les protocoles décentralisés comme Tor, Bitcoin et BitMessage, il doit exister un moyen d'identifier les comptes afin que d'autres personnes puissent interagir avec eux, mais dans toutes les solutions existantes, le seul type d'identificateur disponible est un hachage pseudo-aléatoire comme `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Idéalement, on souhaiterait avoir un compte avec un nom comme « george ». Cependant, le problème est que si une personne peut créer un compte nommé « george », quelqu'un d'autre peut utiliser le même processus afin d'enregistrer « george » pour lui-même et se faire passer pour lui. La seule solution est d'appliquer le paradigme du premier déposant, où le premier enregistrement réussit tandis que le second échoue, parfaitement adapté pour le protocole de consensus Bitcoin. Namecoin est l'implémentation la plus ancienne et la plus réussie d'un système d'enregistrement de noms reposant sur cette idée. - **Pièces colorées** : le but des [pièces colorées (colored coins)](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) est de servir de protocole pour permettre aux utilisateurs de créer leur propre monnaie numérique, ou dans le cas courant, mais néanmoins important, d'une monnaie à une seule unité, de créer des jetons (tokens) numériques sur la blockchain de Bitcoin. Dans le protocole des pièces colorées, on « émet » une nouvelle monnaie en attribuant publiquement une couleur à un UTXO Bitcoin spécifique, et le protocole définit récursivement la couleur des autres UTXO pour qu'elle soit identique à celle des entrées dépensées par la transaction qui les crée (certaines règles spéciales s'appliquent dans le cas d'entrées de couleurs mélangées). Cela permet aux utilisateurs de conserver des portefeuilles ne contenant que des UTXO d'une couleur donnée et de les envoyer comme des Bitcoins normaux, en remontant l'historique de la blockchain pour déterminer la couleur de n'importe quel UTXO reçu. - **Metacoins** : l'idée derrière un metacoin consiste à superposer un protocole à Bitcoin, en utilisant les transactions Bitcoin pour stocker les transactions Metacoin, mais en ayant une fonction de transition d'état différente, `APPLY'`. Comme le protocole Metacoin ne peut pas empêcher l'apparition de transactions non valides dans la blockchain Bitcoin, une règle a été ajoutée selon laquelle si `APPLY'(S,TX)` renvoie une erreur, le protocole donne par défaut `APPLY'(S,TX) = S`. Cela facilite le mécanisme de création d'un protocole de cryptomonnaie arbitraire, qui comprend potentiellement des fonctionnalités avancées ne pouvant être implémentées à l'intérieur même de Bitcoin, mais avec un coût de développement très bas puisque les complexités du minage et du réseau sont déjà gérées par le protocole Bitcoin. Les metacoins ont été utilisés pour implémenter certains types de contrats financiers, d'enregistrements de nom et de bourses d'échange décentralisées. @@ -268,7 +268,7 @@ def send(to, value): self.storage[to] = self.storage[to] + value ``` -Il s'agit fondamentalement d'une implémentation littérale de la fonction de transition d'état de « système bancaire » décrite précédemment dans ce document. Quelques lignes de code supplémentaires sont nécessaires pour spécifier l'étape initiale de distribution des unités monétaires et quelques autres cas particuliers, et idéalement une fonction sera ajoutée pour permettre à d'autres contrats d'obtenir le solde d'une adresse. C'est tout ce qu'il y a à faire ! En théorie, les systèmes de jetons basés sur Ethereum fonctionnant comme des sous-monnaies peuvent potentiellement présenter une autre caractéristique importante qui manque aux méta-monnaies implémentées sur la blockchain Bitcoin : la capacité de payer les frais de transaction directement dans cette monnaie. Pour mettre cela en œuvre, le contrat gère un solde en ETH grâce auquel il rembourse l'expéditeur du montant en ETH utilisé pour payer les frais, et rééquilibre son solde en collectant les unités monétaires internes qu'il prend en frais pour les revendre dans une vente aux enchères permanente. Les utilisateurs ont donc besoin « d'activer » leurs comptes avec de l'ether (ETH), mais une fois cela fait, ils peuvent réutiliser cette somme puisqu'elle est à chaque fois remboursée par le contrat. +Il s'agit fondamentalement d'une implémentation littérale de la fonction de transition d'état de « système bancaire » décrite précédemment dans ce document. Quelques lignes de code supplémentaires sont nécessaires pour spécifier l'étape initiale de distribution des unités monétaires et quelques autres cas particuliers, et idéalement une fonction sera ajoutée pour permettre à d'autres contrats d'obtenir le solde d'une adresse. C'est tout ce qu'il y a à faire ! En théorie, les systèmes de jetons basés sur Ethereum fonctionnant comme des sous-monnaies peuvent potentiellement présenter une autre caractéristique importante qui fait défaut aux méta-monnaies implémentées sur le Bitcoin en chaîne : la capacité de payer les frais de transaction directement dans cette monnaie. Pour mettre cela en œuvre, le contrat gère un solde en ETH grâce auquel il rembourse l'expéditeur du montant en ETH utilisé pour payer les frais, et rééquilibre son solde en collectant les unités monétaires internes qu'il prend en frais pour les revendre dans une vente aux enchères permanente. Les utilisateurs ont donc besoin « d'activer » leurs comptes avec de l'ether (ETH), mais une fois cela fait, ils peuvent réutiliser cette somme puisqu'elle est à chaque fois remboursée par le contrat. ### Produits financiers dérivés et monnaies à valeur stable {#financial-derivatives-and-stable-value-currencies} @@ -341,7 +341,7 @@ En principe, 1 % par jour suffit à Alice, mais si elle souhaite retirer davant **7. Marchés prédictifs**. Avec un oracle ou SchellingCoin, les marchés prédictifs sont aussi faciles à implémenter. Avec SchellingCoin, ceux-ci pourraient devenir la première application grand public d'une "[futarchie](http://hanson.gmu.edu/futarchy.html)" comme protocole de gouvernance des organisations décentralisées. -**8. Places de marché décentralisées sur la blockchain**, utilisant un système d'identité et de réputation comme base. +**8. Places de marché décentralisées sur la chaîne**, utilisant un système d'identité et de réputation comme base. ## Généralités et préoccupations {#miscellanea-and-concerns} diff --git a/public/content/translations/ga/community/code-of-conduct/index.md b/public/content/translations/ga/community/code-of-conduct/index.md new file mode 100644 index 00000000000..bd82548fdcb --- /dev/null +++ b/public/content/translations/ga/community/code-of-conduct/index.md @@ -0,0 +1,77 @@ +--- +title: Cód iompair +description: Na caighdeáin bhunúsacha a theastaíonn ar fud spásanna ethereum.org. +lang: ga +--- + +# Cód iompair {#code-of-conduct} + +## Misean {#mission} + +An mol eolais is cuimsithí agus is inrochtana do Ethereum a fhorbairt agus a chothabháil. + +## Luachanna {#values} + +Teastaíonn ó phobal ethereum.org a bheith: + +- oideachasúil, d'fhonn cabhrú le gach duine Ethereum a thuiscint +- cuimsitheach +- inrochtana +- pobal-tiomáinte +- dírithe ar theicneolaíocht bhunúsach agus ar chásanna úsáide Ethereum +- dírithe ar choincheapa Ethereum agus prionsabail dearaidh + +## Cad nach bhfuil muid {#what-we-are-not} + +- Láithreán gréasáin Ethereum Foundation +- Ardán chun infheistíochtaí nó chun brabúsaíocht de chineál ar bith a chur chun cinn +- Ardán chun tionscadail nó eagraíochtaí aonair a ardú nó a fhormhuiniú +- DEX, CEX nó aon chineál ardán airgeadais eile +- Ardán a thugann comhairle airgeadais nó dlí de chineál ar bith + +## Cód iompair {#code-of-conduct} + +### Gealltanas {#pledge} + +Tá rannpháirtíocht oscailte lárnach d’éiteas ethereum.org. Is suíomh Gréasáin agus pobal muid atá á chothabháil ag na mílte rannpháirtí, agus ní féidir é seo a dhéanamh ach amháin trí thimpeallacht fháilteach, rannpháirtíochta a chothabháil. Chuige sin, geallann rannpháirtithe an tsuímh seo timpeallacht atá saor ó chiapadh a chothabháil do gach rannpháirtí ar fud gach ardán agus spás pobail ethereum.org. Cuireann an pobal ethereum.org fáilte roimh aon duine atá ag iarraidh a bheith rannpháirteach ar bhealach cuiditheach cairdiúil, beag beann ar aois, míchumas, eitneachas, tréithe gnéis, féiniúlacht inscne, leibhéal taithí, réimse saineolais, oideachas, stádas socheacnamaíoch, náisiúntacht., cuma phearsanta, cine, reiligiún nó aon ghné eile den éagsúlacht agus is mór againn iad. + +### Scóip {#scope} + +Baineann an Cód Iompraíochta seo le gach spás ethereum.org (cosúil le GitHub, Discord, Figma, Crowdin, Twitter agus ardáin eile ar líne), agus tá feidhm aige freisin nuair a dhéantar ionadaíocht ar son an phobail i spásanna poiblí fíor-dhomhanda ar nós cruinnithe, comhdhálacha, agus imeachtaí. + +### Ár gcaighdeáin {#our-standards} + +I measc na samplaí iompair a chuidíonn le timpeallacht dhearfach a chruthú tá: + +- Ag baint úsáide as teanga fháilteach agus chuimsitheach +- Meas a bheith agat ar dhearcthaí agus ar eispéiris éagsúla +- Glacadh go grástúil le critic chuiditheach agus/nó a sholáthar go tuisceanach +- Gníomhú go stuama agus go gairmiúil agus coinbhleachtaí nó easaontais á réiteach +- Comhbhá agus caoinfhulaingt a léiriú i leith bhaill eile den phobal +- Guthanna nua sa phobal a spreagadh agus a mhéadú + +I measc samplaí d’iompar do-ghlactha ag rannpháirtithe tá: + +- Foréigean fisiciúil, bagairt foréigean fisiciúil nó spreagadh foréigean fisiciúil de chineál ar bith +- Teanga nó íomháineachas gnéasach a úsáid nó aird ghnéasach gan fáilte a bhrú +- Duine aonair eile a phearsanú nó cleamhnacht a éileamh go mímhacánta le duine nó eagraíocht éigin +- Tráchtanna trollála, maslacha/dímheasúla, agus ionsaithe pearsanta nó polaitiúla +- Baill eile den phobal a chiapadh ar bhealaí poiblí nó príobháideacha +- Faisnéis phríobháideach daoine eile a fhoilsiú, amhail seoladh fisiceach nó leictreonach, gan cead sainráite +- Innealtóireacht shóisialta, scéiméireacht nó ionramháil eile a dhéanamh ar bhaill eile den phobal +- Infheistíochtaí, comharthaí, tionscadail nó aon rud eile a chur chun cinn ar mhaithe le gnóthachan pearsanta airgeadaíochta nó neamhairgeadaíochta +- Turscair le hinneachar nach mbaineann le hábhar ar fhreastalaithe +- Neamhaird a thabhairt ar iarratais nó rabhaidh ó mhodhnóirí pobail +- Iompar eile a chleachtadh a fhéadfaí a mheas le réasún a bheith míchuí i suíomh gairmiúil + +### Tuairisciú {#reporting} + +De ghnáth beidh sáruithe ar an gcód iompair le feiceáil ag an bpobal agus muid ag iarraidh gach rud a dhéanamh ar bhealaí oscailte poiblí, ag ligean do bhaill an phobail iad féin a phóilíniú. + +Mar sin féin, má tharlaíonn rud éigin ar gá aird a thabhairt air, dar leat, féadfaidh tú é a ardú le duine a bhfuil ról measarthachta aige (m.sh. treorai easaontais) ionas gur féidir leo cabhrú leis an bhfreagra cuí a fhiosrú agus a rith. + +Agus tú ag tuairisciú, cuir a oiread sonraí agus is féidir san áireamh, lena n-áirítear samplaí sonracha agus stampaí ama. Cabhróidh sé seo le toradh cothrom a chinntiú. + +### Forfheidhmiú {#enforcement} + +Ag brath ar a dhéine, is féidir le daoine a sháraíonn an cód iompair rabhaidh, toirmisc shealadacha nó toirmisc bhuana a fháil ó phobail ethereum.org. diff --git a/public/content/translations/ga/community/events/index.md b/public/content/translations/ga/community/events/index.md new file mode 100644 index 00000000000..5e9b312fb67 --- /dev/null +++ b/public/content/translations/ga/community/events/index.md @@ -0,0 +1,26 @@ +--- +title: Imeachtaí Ethereum +description: Conas a bheith páirteach sa phobal Ethereum. +lang: ga +hideEditButton: true +--- + +# Imeachtaí atá le teacht {#events} + +** Gach mí, bíonn mórimeachtaí Ethereum ar fud an domhain.** Smaoinigh ar fhreastal ar cheann in aice leat chun bualadh le níos mó daoine sa phobal, foghlaim faoi dheiseanna fostaíochta, agus scileanna nua a fhorbairt. + + + +Is liosta neamh-iomlán é seo arna chothabháil ag ár bpobal. Ar an eolas faoi imeacht Ethereum atá le teacht chun cur leis an liosta seo? [Cuir leis an liosta seo é le do thoil](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + + +## Cruinnithe Ethereum {#meetups} + +Nach bhfeiceann tú imeacht a oibríonn duit? Bain triail as páirt a ghlacadh i gcruinniú. Is imeachtaí níos lú iad Cruinnithe a reáchtálann grúpaí díograiseoirí Ethereum - deis do dhaoine a bhfuil suim acu in Ethereum teacht le chéile, labhairt faoi Ethereum, agus foghlaim faoi fhorbairtí le déanaí. + + + +An bhfuil suim agat do chruinniú féin a bhunú? Féach ar an [ Líonra BUIDL ](https://consensys.net/developers/buidlnetwork/), tionscnamh de chuid ConsenSys chun cabhrú le tacú le pobail chruinnithe Ethereum. + +Is liosta neamh-iomlán é seo a chuir ár bpobal le chéile. Is féidir leat [tuilleadh cruinnithe Ethereum a fháil anseo](https://www.meetup.com/topics/ethereum/). An bhfuil eolas agat ar ghrúpa cruinnithe gníomhach le cur leis an liosta seo? [Cuir leis an liosta seo é le do thoil](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/ga/community/get-involved/index.md b/public/content/translations/ga/community/get-involved/index.md new file mode 100644 index 00000000000..8bcac275316 --- /dev/null +++ b/public/content/translations/ga/community/get-involved/index.md @@ -0,0 +1,135 @@ +--- +title: Conas is féidir liom a bheith páirteach? +description: Conas a bheith páirteach sa phobal Ethereum. +lang: ga +--- + +# Conas is féidir liom a bheith páirteach? {#get-involved} + +Áiríonn pobal Ethereum daoine ó go leor cúlraí agus scileanna éagsúla. Mar fhorbróir, ealaíontóir nó cuntasóir, tá bealaí ann le bheith páirteach. Seo liosta moltaí a d’fhéadfadh cabhrú leat tosú. + +Tosaigh trí léamh faoi mhisean agus luachanna ethereum.org inár [cód iompair](/community/code-of-conduct). + +## Forbróirí ‍ {#developers} + +- Foghlaim faoi agus bain triail as Ethereum ag [ethereum.org/developers/](/developers/) +- Freastal ar hackathon [ETHGlobal](http://ethglobal.co/) in aice leat! +- Breathnaigh ar [tionscadail a bhaineann le do réimse saineolais nó le do rogha teanga ríomhchlárúcháin](/developers/docs/programming-languages/) +- Féach ar na glaonna [Glaonna Comhdhearcaidh agus Sraith Reatha](https://www.youtube.com/@EthereumProtocol/streams) nó glac páirt iontu +- [Liosta mianta Chlár Tacaíochta an Éiceachórais](https://esp.ethereum.foundation/wishlist/) - uirlisí, doiciméadú, agus réimsí bonneagair ina bhfuil Clár Tacaíochta Éiceachórais Ethereum ag lorg iarratais ar dheontais go gníomhach +- [Web3Bridge](https://www.web3bridge.com/) - bí páirteach i bpobal aidhmeannach Web3 ina dtionscnamh chun na céadta forbróirí agus ball pobail ar fud na hAfraice a aithint, a oiliúint agus tacú leo +- Glac páirt sa [Eth R&D Discord](https://discord.com/invite/VmG7Uxc) +- Glac páirt sa [Ethereum Cat Herders Discord](https://discord.com/invite/Nz6rtfJ8Cu) + +## Taighdeoirí & Acadóirí ‍ {#researchers-and-academics} + +An bhfuil cúlra agat sa mhatamaitic, cripteagrafaíocht nó eacnamaíocht? B’fhéidir go mbeadh suim agat i gcuid den obair cheannródaíoch atá á déanamh laistigh d’éiceachóras Ethereum: + +- Glac páirt sa [Eth R&D Discord](https://discord.com/invite/VmG7Uxc) +- Scríobh nó athbhreithnigh Togra Feabhsúcháin Ethereum + - Scríobh EIP + 1. Cuir isteach do smaoineamh ar [Ethereum Magicians](https://ethereum-magicians.org) + 2. Léigh [EIP-1](https://eips.ethereum.org/EIPS/eip-1) - ** Sea, sin é an _doiciméad iomlán_.** + 3. Lean na treoracha in EIP-1. Déan tagairt dó agus tú ag scríobh do dhréacht. + - Foghlaim conas a bheith i do [Eagarthóir EIP](https://eips.ethereum.org/EIPS/eip-5069) + - Is féidir leat piarmheasúnú EIP a dhéanamh anois! Féach [PRanna oscailte leis an `e-review` clib](https://github.com/ethereum/EIPs/pulls?q=is%3Apr+is%3Aopen+label%3Ae-review). Tabhair aiseolas teicniúil ar an nasc `discussion-to`. + - Glac páirt i [Rialachas EIP](https://github.com/ethereum-cat-herders/EIPIP) + - Glac páirt sa [Ethereum Cat Herders Discord](https://discord.com/invite/Nz6rtfJ8Cu) + - [Tuilleadh faoi EIPeanna](/eips/) +- [Challenges.ethereum.org](https://challenges.ethereum.org/) - sraith deolchairí taighde ardluacha, áit ar féidir leat >$100,000 USD a thuilleamh +- [Ethresear.ch](https://ethresear.ch) - príomhfhóram Ethereum le haghaidh taighde, agus an fóram cripteacnamaíochta is mó tionchair ar domhan +- [EF Research AMA](https://old.reddit.com/r/ethereum/comments/vrx9xe/ama_we_are_ef_research_pt_8_07_july_2022) - Sraith ceisteanna agus freagraí leanúnacha le taighdeoirí. De réir mar a osclaíonn gach cuid, is féidir le duine ar bith ceisteanna a chur. +- [Liosta mianta Chlár Tacaíochta an Éiceachórais](https://esp.ethereum.foundation/wishlist/) - réimsí taighde ina bhfuil Clár Tacaíochta Éiceachórais Ethereum ag lorg iarratais ar dheontais go gníomhach +- [AllWalletDevs](https://allwallet.dev) - fóram ina bhféadfaidh forbróirí Ethereum, dearthóirí agus úsáideoirí leasmhara teacht le chéile go rialta agus sparáin a phlé + +[Fiosraigh réimsí taighde níos gníomhaí](/community/research/). + +## Tacair scileanna neamhtheicniúla‍ {#non-technical} + +Murar forbróir tú, is deacair fios a bheith agat cá háit le tosú in Ethereum. Seo roinnt moltaí, mar aon le hacmhainní do chúlraí gairmiúla ar leith. + +### Eagraigh cruinniú i do chathair {#meetups} + +- Níl mé cinnte conas a thosú? Is féidir leis an [líonra BUIDL](https://consensys.net/developers/buidlnetwork/) cabhrú. + +### Scríobh inneachar mar gheall ar Ethereum {#write-content} + +- Teastaíonn scríbhneoirí maithe ó Ethereum atá in ann a luach a mhíniú i dteanga shimplí +- Nach bhfuil tú réidh do chuid alt féin a fhoilsiú? Smaoinigh ar chur leis an inneachar reatha ar acmhainní pobail, nó [inneachar nua a mholadh le haghaidh ethereum.org](/contributing/)! + +### Tairiscint chun nótaí a ghlacadh le haghaidh glaonna pobail {#take-notes} + +- Tá go leor glaonna foinse oscailte pobail ann, agus is mór an chabhair é glacadóirí nótaí a bheith agat. Más spéis leat é, glac páirt in [discord Ethereum Cat Herders](https://discord.com/invite/Nz6rtfJ8Cu), agus cuir tú féin in aithne! + +### Aistrigh inneachar Ethereum go dtí do theanga dhúchais {#translate-ethereum} + +- coinníonn ethereum.org Clár Aistriúcháin a aistríonn an suíomh gréasáin, agus acmhainní eile, go teangacha éagsúla +- Faigh amach conas a bheith páirteach [anseo](/contributing/translation-program) + +### Rith nód {#run-a-node} + +Bí ar na mílte oibreoirí nód chun cabhrú le Ethereum a dhílárú tuilleadh. + +- [Tuilleadh faoi conas nód a rith](/developers/docs/nodes-and-clients/run-a-node/) + +### Cuir do gheall in ETH {#staking} + +Trí do ETH a chur i ngeall is féidir leat luaíochtaí a thuilleamh agus tú ag cabhrú le líonra Ethereum a dhaingniú. + +- [Tuilleadh faoin ngeallchur](/staking/) + +### Tionscadail tacaíochta {#support-projects} + +Tá éiceachóras Ethereum ar mhisean earraí poiblí agus tionscadail a bhfuil tionchar acu a mhaoiniú. Le síntiúis an-bheaga is féidir leat do thacaíocht a thaispeáint agus is féidir obair thábhachtach a bhaint amach. + +- [Gitcoin](https://gitcoin.co/fund) +- [clr.fund](https://clr.fund/#/about) + +## Gairmithe airgeadais & Cuntasóirí ‍ {#financial-professionals} + +- Tá éiceachóras “Airgeadas Díláraithe” ag Ethereum - líonra prótacail agus feidhmchláir a thairgeann córas airgeadais malartach. Más gairmí airgeadais thú, seiceáil roinnt aipeanna DeFi ag [DeFi Llama](https://defillama.com/) nó [ DeFiPrime](https://defiprime.com) +- Cuntasóir? Tugann sócmhainní ar Ethereum - ETH, comharthaí, DeFi, srl - go leor saincheisteanna cuntasaíochta núíosacha isteach. D'fhéadfá tosú trí roinnt tionscadal a sheiceáil a bhfuil sé mar aidhm acu cabhrú le húsáideoirí criptea-airgeadra a gcuid dúshláin leabharchoimeád & cuntasaíochta, amhail [Rotki](https://rotki.com/)a réiteach + +## Bainisteoirí Táirge ‍ {#product-managers} + +- Tá do chuid buanna ag teastáil ó éiceachóras Ethereum! Tá go leor cuideachtaí ag fostú le haghaidh róil bainisteoirí táirgí. Más mian leat tosú trí rannpháirtíocht i dtionscadal foinse oscailte, déan teagmháil le [Ethereum Cat Herders](https://discord.com/invite/Nz6rtfJ8Cu) nó [RaidGuild](https://www.raidguild.org/) + +## Margaíocht ‍ {#marketing} + +- Tá go leor post margaíochta agus cumarsáide in éiceachóras Ethereum! + +## Poist Ethereum {#ethereum-jobs} + +**Ag iarraidh post a fháil ag obair i Ethereum?** + +- [poist ethereum.org](/about/#open-jobs) +- [Bord poist Fondúireacht Ethereum (Lever)](https://jobs.lever.co/ethereumfoundation) +- [Bord poist Fondúireacht Ethereum (BambooHR)](https://ethereum.bamboohr.com/jobs/) +- [JobStash](https://jobstash.xyz) +- [Poist Criptea-airgeadra](https://cryptocurrencyjobs.co/ethereum/) +- [Gairmeacha ag ConsenSys](https://consensys.net/careers/) +- [Liosta Fostaíochta Crypto](https://cryptojobslist.com/ethereum-jobs) +- [Bord post gan bhainc](https://pallet.xyz/list/bankless/jobs) +- [Poist Web3](https://web3.career) +- [Arm Web3](https://web3army.xyz/) +- [Jabanna Crypto Valley](https://cryptovalley.jobs/) +- [Poist Ethereum](https://startup.jobs/ethereum-jobs) +- [CryptoJobster](https://cryptojobster.com/tag/ethereum/) + +## Glac páirt in DAO {#decentralized-autonomous-organizations-daos} + +Is eagraíochtaí uathrialaitheacha díláraithe iad eagraíochtaí "DAO". Úsáideann na grúpaí seo teicneolaíocht Ethereum chun eagrú agus comhoibriú a éascú. Mar shampla, chun ballraíocht a rialú, vótáil ar thograí, nó sócmhainní comhthiomsaithe a bhainistiú. Cé go bhfuil DAOanna fós turgnamhach, cuireann siad deiseanna ar fáil duit grúpaí a bhfuil bá agat leo a aimsiú, comhoibrithe a aimsiú, agus do thionchar ar phobal Ethereum a mhéadú. [Tuilleadh faoi DAO](/dao/) + +- [DAOSquare](https://daosquare.io/) [@DAOSquare](https://twitter.com/DAOSquare) - * Coincheap an DAO a chur chun cinn i réimse neamhtheicneolaíochta agus cabhrú le daoine luach a chruthú trí DAO* +- [Forbróir DAO](https://www.developerdao.com/) [@developer_dao](https://twitter.com/developer_dao) - _Pobal tógálaithe a chreideann i gcomhúinéireacht an idirlín_ +- [dOrg](https://dOrg.tech) [@dOrg_tech](https://twitter.com/dOrg_tech) - _Comharghnó forbartha saoroibrithe Web3 ag obair mar DAO_ +- [HausDAO](https://daohaus.club) [@nowdaoit](https://twitter.com/nowdaoit) - _rialachas pobail DAOhaus_ +- [LexDAO](https://lexdao.org) [@lex_DAO](https://twitter.com/lex_DAO) - _Innealtóireacht dhlíthiúil_ +- [Machi X](https://machix.com) [@MachiXOfficial](https://twitter.com/MachiXOfficial) - _Pobal ealaíne_ +- [MetaCartel Ventures](https://metacartel.xyz) [@VENTURE_DAO](https://twitter.com/VENTURE_DAO) - _Fiontraíocht do thionscadail criptithe réamh-síolta_ +- [MetaGame](https://metagame.wtf) [@MetaFam](https://twitter.com/MetaFam) - _Meicnic Chluichí MMORPG don Saol Fíor_ +- [MetaFactory](https://metafactory.ai) [@TheMetaFactory](https://twitter.com/TheMetaFactory) - _Brandaí Éadaí Digiteacha-fisiceacha_ +- [MolochDAO](https://molochdao.com) [@MolochDAO](https://twitter.com/MolochDAO) - _Pobail dírithe ar fhorbairt Ethereum a mhaoiniú_ +- [Raid Guild](https://raidguild.org) [@RaidGuild](https://twitter.com/RaidGuild) - *Comharghnó tógálaithe Web3* + +Ná déan dearmad cloí leis an [gcód iompair](/community/code-of-conduct) nuair a bhíonn tú rannpháirteach ar aon dóigh le ethereum.org! diff --git a/public/content/translations/ga/community/grants/index.md b/public/content/translations/ga/community/grants/index.md new file mode 100644 index 00000000000..fdf6aee5632 --- /dev/null +++ b/public/content/translations/ga/community/grants/index.md @@ -0,0 +1,47 @@ +--- +title: Fondúireacht Ethereum & cláir deontas pobail +description: Liosta de na cláir dheontais ar fud an éiceachóras Ethereum. +lang: ga +--- + +# Deontais Ethereum {#ethereum-grants} + +Tairgeann na cláir a liostaítear thíos éagsúlacht deontas maoinithe do thionscadail a oibríonn chun rath agus fás éiceachóras Ethereum a chur chun cinn. Bain úsáid as seo mar threoir chun cistí a aimsiú agus iarratas a dhéanamh orthu chun cabhrú le do chéad tionscadal Ethereum eile a bheith rathúil. + +Tá an liosta seo coimeádta ag ár bpobal. Má tá rud éigin in easnamh nó mícheart, cuir an leathanach seo in eagar! + +## Éiceachóras leathan Ethereum {#broad-ethereum-ecosystem} + +Tacaíonn na cláir seo le héiceachóras leathan Ethereum trí dheontais a thairiscint do raon leathan tionscadal. Ina measc seo tá réitigh don inscálaitheacht, tógáil pobail, slándáil, príobháideacht, agus níos mó. Ní bhaineann na deontais seo go sonrach le haon ardán Ethereum amháin agus is áit mhaith iad le tosú mura bhfuil tú cinnte. + +- [Clár Tacaíochta Éiceachórais EF](https://esp.ethereum.foundation) - _Ag maoiniú tionscadail foinse oscailte a théann chun sochair Ethereum, le fócas ar leith ar uirlisí uilíocha, bonneagar, taighde agus earraí poiblí_ +- [ Moloch DAO](https://www.molochdao.com/) - _Príobháideachas, scálú ciseal 2, slándáil cliant, agus tuilleadh_ +- [Deontais DAO](https://docs.google.com/spreadsheets/d/1XHc-p_MHNRdjacc8uOEjtPoWL86olP4GyxAJOFO0zxY/edit#gid=0) - _ scarbhileog Google d'eagraíochtaí a thairgeann deontais_ +- [Deontais Acadúla](https://esp.ethereum.foundation/academic-grants) - _Deontais chun tacú le hobair acadúil a bhaineann le Ethereum_ +- [Blockworks Grantfarm](https://blockworks.co/grants/programs) - _Tá eolaire cuimsitheach curtha le chéile ag Blockworks de gach deontas, RFP, agus deolchairí fabhtanna._ + +## Tionscadal sonrach {#project-specific} + +Chruthaigh na tionscadail seo a gcuid deontas féin do thionscadail atá dírithe ar a dteicneolaíocht féin a fhorbairt agus a thástáil. + +- [Clár Deontas Aave](https://aavegrants.org/) – _[Aave](https://aave.com/) deontais DAO_ +- [Cothromóir](https://grants.balancer.community/) – _[Balancer](https://balancer.fi/) ciste éiceachórais_ +- [Clár Deontas Chainlink](https://chain.link/community/grants) - _[Chainlink](https://chain.link/) deontais pobail_ +- [Clár Deontas Decentraland](https://governance.decentraland.org/grants/) – _[Decentraland](https://decentraland.org/) DAO Metaverse_ +- [Eagraíocht Deontais Lido Ecosystem (LEGO)](https://lido.fi/lego) – _[Lido](https://lido.fi/) éiceachóras airgeadais_ +- [Clár MetaMask](https://metamaskgrants.org/) - _[MetaMask](https://metamask.io/) deontais faoi stiúir fostaithe DAO_ +- [Clár Deontais Líonra SKALE](https://skale.space/developers#grants) - _[SKALE Network](https://skale.space/) éiceachóras_ +- [Swarm Foundation Grants Program](https://my.ethswarm.org/grants) - _[Swarm Foundation](https://www.ethswarm.org/) éiceachóras_ +- [The Graph](https://thegraph.com/ecosystem/grants/) – _[The Graph](https://thegraph.com/) éiceachóras_ +- [Clár Deontais Uniswap](https://www.uniswapfoundation.org/approach) – _[Uniswap](https://uniswap.org/) pobail_ + +## Maoiniú cuadratach {#quadratic-funding} + +Mar thoradh ar fhréamhacha foinse oscailte Ethereum tá fás ar mhúnla tiomsaithe airgid nua suimiúil: maoiniú cuadratach. D’fhéadfadh sé seo feabhas a chur ar an mbealach a mhaoinímid gach cineál earraí poiblí sa todhchaí. Cinntíonn maoiniú cuadratach gurb iad na tionscadail a fhaigheann an maoiniú is mó na cinn leis an éileamh is uathúla. I bhfocail eile, tionscadail a sheasann chun feabhas a chur ar shaol na ndaoine is mó. [Tuilleadh faoi mhaoiniú cuadratach.](/defi/#quadratic-funding) + +- [Gitcoin](https://gitcoin.co/grants) +- [clr.fund](https://clr.fund/) + +## Obair i Ethereum {#work-in-ethereum} + +Nach bhfuil tú réidh le do thionscadal féin a thosú? Tá na céadta cuideachtaí go gníomhach ag lorg daoine aonair paiseanta chun oibriú in éiceachóras Ethereum agus cur leis. Ag lorg tuilleadh eolais? [Amharc ar phoist a bhaineann le Ethereum](/community/get-involved/#ethereum-jobs) diff --git a/public/content/translations/ga/community/language-resources/index.md b/public/content/translations/ga/community/language-resources/index.md new file mode 100644 index 00000000000..3125e5ad4ce --- /dev/null +++ b/public/content/translations/ga/community/language-resources/index.md @@ -0,0 +1,153 @@ +--- +title: Acmhainní teanga +description: Acmhainní neamh-Bhéarla chun foghlaim faoi Ethereum +lang: ga +--- + +# Acmhainní teanga {#language-resources} + +Tá pobal Ethereum domhanda agus comhdhéanta de na milliúin daoine nach bhfuil Béarla acu. + +Tá sé mar aidhm againn ábhar oideachais a chur ar fáil i ngach teanga agus cabhrú le dul i ngleic leis na bacainní teanga a chuireann dúshlán ar dhaoine dul ar bord Ethereum ó gach cearn den domhan. + +Más fearr leat léamh i do theanga dhúchais nó má tá aithne agat ar dhuine nach bhfuil Béarla aige, tá liosta d’acmhainní úsáideacha neamh-Bhéarla thíos. Bailíonn na céadta mílte díograiseoirí Ethereum sna fóraim ar líne seo chun nuacht a roinnt, labhairt faoi fhorbairtí le déanaí, díospóireacht a dhéanamh ar shaincheisteanna teicniúla, agus an todhchaí a shamhlú. + +Eolas agat ar acmhainn oideachais i do theanga? [Oscail ceist](https://github.com/ethereum/ethereum-org-website/issues/new/choose) chun é a chur leis an liosta! + +## Acmhainní Ethereum.org {#ethereum-org} + +Tá aistriúchán dúchais déanta ar Ethereum.org go breis is 40 teanga agus is féidir leat é a fháil ar ár roghchlár roghnóir teangacha, atá suite ag barr gach leathanaigh. + +![Roghchlár roghnóir teanga](./language-selector-menu.png) + +Má tá tú dátheangach agus más mian leat cabhrú linn teacht ar níos mó daoine, is féidir leat páirt a ghlacadh freisin i [gClár Aistriúcháin ethereum.org](/contributing/translation-program/#translation-program) agus cabhrú linn an suíomh gréasáin a aistriú. + +## Acmhainní pobail {#community} + +### Portaingéilis na Brasaíle {#br-pt} + +**Nuacht** + +- [BeInCrypto](http://www.beincrypto.com.br) - nuacht agus ailt chriptea-airgeadra, lena n-áirítear liosta de na malartáin, ar fáil sa Bhrasaíl +- [Cointelegraph](http://cointelegraph.com.br/category/analysis) - leagan Brasaíleach de Cointelegraph, asraon nuachta mór criptea-airgeadra +- [Livecoins](http://www.livecoins.com.br/ethereum) - nuacht agus uirlisí criptea-airgeadra +- [Seudinheiro](http://www.seudinheiro.com/criptomoedas/) - nuacht agus tuarascálacha criptea-airgeadra +- [Modular Crypto](https://modularcrypto.xyz/) - nuacht criptea-airgeadra agus ailt oideachais + +**Oideachas** + +- [web3dev](https://www.web3dev.com.br/) - Mol inneachair agus pobal Discord d'fhorbróirí web 3. +- [Web3Brasil](https://github.com/web3brasil/web3brasil) - acmhainní chun Web3 agus DeFi a fhoghlaim +- [CriptoFacil](http://www.criptofacil.com/ultimas-noticias/) - nuacht agus oideachas criptea-airgeadra, lena n-áirítear ‘Ethereum do thosaitheoirí’ agus ‘DeFi’ do thosaitheoirí +- [CriptoAtivas](http://www.criptoativos.wiki.br/) - léargais ón spás criptea-airgeadra, oideachas agus blag +- [Cointimes](http://www.cointimes.com.br/) - nuacht agus oideachas criptea-airgeadra +- [Pacáiste tosaithe Web3](https://docs.google.com/document/d/1X8PSTFH7FTw9J-gbKWM6Y430SWCBT8d4t4pJgFQHJ8E/) - treoir a fhreagraíonn do na ceisteanna criptithe is minice agus is bunúsaí + +### Sínis {#zh} + +**Acmhainní ginearálta** + +- [Ethereum.cn](https://www.ethereum.cn/) - ábhar arna chothabháil ag an bpobal, a chlúdaíonn an t-uasghrádú ciseal comhdhearcaidh, gach croí-nótaí cruinnithe forbartha, ciseal 2, srl. +- [EthFans](https://github.com/editor-Ajian/EthFans.org-annual-collected-works/) - foghlaim gach rud ó na bunghnéithe go dtí ard-ábhair Ethereum +- [Unitimes](https://mp.weixin.qq.com/s/tvloZSDBSOQN9zDQj_91kA) - ábhar arna chothabháil ag an bpobal, a chlúdaíonn Ethereum, DeFi, NFT, eolas a bhaineann le Web3 +- [123ETH](https://123eth.org/) - Tairseach chuig éiceachóras Ethereum +- [Zhen Xiao](http://zhenxiao.com/blockchain/) - cúrsaí ar líne saor in aisce faoi criptea-airgeadra agus a fheidhmchláir +- [Páipéar Bán Ethereum](https://github.com/ethereum/wiki/wiki/[%E4%B8%AD%E6%96%87]-%E4%BB%A5%E5%A4%AA%E5%9D%8A%E7%99%BD%E7%9A%AE%E4%B9%A6) - Leagan Síneach de Pháipéar Bán Ethereum + +**Éiceachóras Ethereum** + +- [ETHPlanet](https://www.ethplanet.org/) - hakathon ar líne agus go pearsanta, ag tairiscint oiliúna do mhic léinn ollscoile +- [PrimitivesLane](https://www.primitiveslane.org/) - grúpa taighde neamhbhrabúis, dírithe ar theicneolaíocht blocshlabhra +- [Pobail Aistriúcháín Ethereum CN](https://www.notion.so/Ethereum-Translation-Community-CN-05375fe0a94c4214acaf90f42ba40171) - pobal atá dírithe ar ábhar oideachais Ethereum a aistriú + +**D'fhorbróirí** + +- [DappLearning](https://github.com/Dapp-Learning-DAO/Dapp-Learning) - grúpa foghlama chun staidéar a dhéanamh ar thionscadail príomhshrutha dapp agus chun smaointe agus tuairimí a roinnt gach seachtain +- [LearnBlockchain](https://learnblockchain.cn/) - pobal le haghaidh forbróirí, ag roinnt faisnéise faoi theicneolaíocht blocshlabhra + +**Do thaighdeoirí cripteagrafaíochta** + +- [SecbitLabs](https://mp.weixin.qq.com/s/69_tqBJpr_sbaKtR1sBRMw) -cuntas WeChat, a mhíníonn cripteagrafaíocht, slándáil, etc. +- [Sparkbyte](https://mp.weixin.qq.com/s/9KgKTc_jtJ7bWKdbNPoqvQ) - cuntas WeChat, ag míniú teicneolaíocht zk + +### Seicis {#cs} + +- [Gwei.cz](https://gwei.cz) - pobal áitiúil timpeall Web3, cruthaíonn sé ábhar oideachasúil, eagraíonn sé imeachtaí ar líne agus go pearsanta +- [Gwei.cz Příručka](https://prirucka.gwei.cz/) - Leabhar Ethereum do thosaitheoirí +- [DAO Příručka](https://dao.gwei.cz/) - treoir do thosaitheoirí ar na DAO +- [Mastering Ethereum](https://ipfs.io/ipfs/bafybeidvuxhnsgfx3tncpfxheqglkjwmdxclknlgd7s7qggd2a6bzgb27m) - Máistreacht a fháil ar Ethereum sa tSeicis + +### Fraincis {#fr} + +- [Ethereum France](https://www.ethereum-france.com/) - Eagraíonn Ethereum France imeachtaí, cruthaíonn sé ábhar agus spreagann plé ar Ethereum +- [Ethereum.fr](https://ethereum.fr/) - Nuacht agus oideachas Ethereum +- [BanklessFR](https://banklessfr.substack.com/) - Nuacht agus oideachas Ethereum +- [CryptoFR](https://cryptofr.com/category/44/ethereum-general) - fóram criptea-airgeadra le fo-leathanach Ethereum + +### Gearmáinis {#de} + +- [Microsoft Learn (Solidity)](https://docs.microsoft.com/de-de/learn/modules/blockchain-learning-solidity/) - ag baint úsáide as Solidity +- [Microsoft Learn (conarthaí cliste)](https://docs.microsoft.com/de-de/learn/modules/blockchain-solidity-ethereum-smart-contracts/) - ag scríobh conarthaí cliste Ethereum le Solidity +- [Microsoft Learn (líonraí Ethereum)](https://docs.microsoft.com/de-de/learn/modules/blockchain-ethereum-networks/) - ceangail le líonraí Ethereum agus imscaradh +- [Microsoft Learn (blockchains)](https://docs.microsoft.com/de-de/learn/paths/ethereum-blockchain-development/) - iontráil i bhforbairt bhlocshlabhra + +### Eabhrais {#he} + +- [Udi Wertheimer - Cad is féidir le lucht Bitcoin a fhoghlaim ó Ethereum](https://www.cryptojungle.co.il/udi-wertheimer-what-bitcoiners-can-learn-from-ethereum/) +- [Omer Greismen (OpenZeppelin) - Mar a Chuireamar Cosc ar Chonarthaí Cliste 15 Billiún Dollar](https://www.cryptojungle.co.il/omer-greisman-openzeppelin/) +- [Cúthail Datika (INX) - Comharthú agus todhchaí na n-urrús, lena n-áirítear urrús Ethereum](https://www.cryptojungle.co.il/shy-datika-tokenization/) +- [Roy Confino (Lemonade) - Árachas @ Ethereum](https://www.cryptojungle.co.il/roy-confino-insurance/) +- [Idan Ofrat (Fireblocks) - Glacadh Institiúideach](https://www.cryptojungle.co.il/idan-ofrat-fireblocks/) +- [Gal Weizman (MetaMask) - Cad é MetaMask](https://www.cryptojungle.co.il/gal-weizman-metamask/) +- [Dror Aviely (Consensys) - Lárionad Ethereum](https://www.cryptojungle.co.il/dror-aviely-ethereum-center/) +- [Nir Rozin - A bheith ina cryptopunk](https://www.cryptojungle.co.il/nir-rozin-cryptopunk/) +- [Adan Kedem - Cearrbhachas & Metaverse](https://www.cryptojungle.co.il/adan-kedem-web3-gaming/) +- [Uri Kolodny (Starkware) - Ethereum agus sraitheanna blocshlabhra](https://www.cryptojungle.co.il/uri-kolodny-starkware/) +- [Udi Wertheimer - Ethereum 2.0 vs iomaíocht](https://www.cryptojungle.co.il/udi-on-eth2/) +- [Ben Samocha (mise) - Ethereum 2.0 - deis?](https://www.cryptojungle.co.il/etherurm2-week-summary/) +- [Alon Muroch (Bloxstaking) - Cad é Ethereum 2.0?](https://www.cryptojungle.co.il/alon-moroch-eth2/) +- [Eilon Aviv (Collider Ventures) - Cad a fhéadfadh dul mícheart le Ethereum 2.0](https://www.cryptojungle.co.il/eilon-aviv-eth2-0/) +- [Eilon Aviv (Comhfhiontair Collider) - Cén fáth a dteastaíonn Ethereum 2.0 uainn](https://www.cryptojungle.co.il/eilon-aviv-ethereum-2-0/) + +### Iodáilis {#it} + +- [Ethereum Italia](https://www.ethereum-italia.it/) - Oideachas, imeachtaí agus nuacht Ethereum, ag díriú ar chonarthaí cliste agus ar theicneolaíocht bhlocshlabhra +- [Podchraoladh Ethereum Italia](https://www.ethereum-italia.it/podcast/) - Podchraoladh Ethereum in Iodáilis +- [Microsoft Learn (Solidity)](https://docs.microsoft.com/it-it/learn/modules/blockchain-learning-solidity/) - foghlaim conas Solidity a úsáid +- [Microsoft Learn (Conarthaí cliste)](https://docs.microsoft.com/it-it/learn/modules/blockchain-solidity-ethereum-smart-contracts/) - foghlaim faoi scríobh conarthaí cliste ar Solidity +- [Microsoft Learn (dapps)](https://docs.microsoft.com/it-it/learn/modules/blockchain-create-ui-decentralized-apps/) - cruthaigh comhéadan úsáideora le iarratais díláraithe + +### Seapánais {#ja} + +- [Cumann Malartú Sócmhainní Fíorúla agus Crypto na Seapáine](https://jvcea.or.jp/) +- [Cumann Gnó Cryptoasset na Seapáine](https://cryptocurrency-association.org/) +- [Cuir tús le forbairt bhlocshlabhra - Foghlaim | Microsoft Docs](https://docs.microsoft.com/ja-jp/learn/paths/ethereum-blockchain-development/) - Cuireann an cosán foghlama blocshlabhra i láthair duit chomh maith le forbairt ar ardán Ethereum +- [Máistreacht Ethereum](https://www.oreilly.co.jp/books/9784873118963/) - Máistreacht a fháil ar Ethereum sa tSeapáinis +- [Forbairt Conartha Chliste Láimhe le Solidity agus Ethereum](https://www.oreilly.co.jp/books/9784873119342/) - Forbairt Chonartha Chliste le Solidity agus Ethereum sa tSeapáinis + +### Rúisis {#ru} + +- [Cyber ​​Academy](https://cyberacademy.dev) - spás oideachais do thógálaithe Web3 +- [Forklog](https://forklog.com) - ailt nuachta agus oideachais faoi crypto go ginearálta, teicneolaíochtaí atá ann cheana féin agus uasghráduithe amach anseo ar bhlocshlabhraí éagsúla +- [BeInCrypto](https://ru.beincrypto.com) - nuacht, anailís praghais crypto agus earraí neamhtheicniúla le mínithe simplí faoi gach rud i crypto + +### Spáinnis {#es} + +- [Ethereum Madrid](https://ethereummadrid.com/) - blocshlabhra, DeFi, agus cúrsaí rialachais, imeachtaí agus blag +- [Cointelegraph](https://es.cointelegraph.com/ethereum-for-beginners) - Treoir Ethereum do thosaitheoirí i Spáinnis +- [Tutoriales online](https://tutoriales.online/curso/solidity) - foghlaim Solidity agus ríomhchlárú ar Ethereum +- [Curso Introducción a Ethereum Development](https://youtube.com/playlist?list=PLTqiwJDd_R8y9pfUBjhkVa1IDMwyQz-fU) - Solidity daingne, tástáil agus imscaradh do chéad chonradh cliste +- [Curso Introducción a Seguridad y Hacking en Ethereum](https://youtube.com/playlist?list=PLTqiwJDd_R8yHOvteko_DmUxUTMHnlfci) - leochaileachtaí coitianta agus saincheisteanna slándála i gconarthaí cliste fíor a thuiscint +- [Curso Introducción a DeFi Development](https://youtube.com/playlist?list=PLTqiwJDd_R8zZiP9_jNdaPqA3HqoW2lrS) - foghlaim conas a oibríonn conarthaí cliste DeFi i Solidity agus cruthaigh do Dhéantóir Margaidh Uathoibrithe féin +- [Cryptoversidad](https://www.youtube.com/c/Cryptoversidad) - Oideachas blocshlabhra neamhtheicniúil ó thosaitheoirí go hardleibhéal. Foghlaim gach rud faoi crypto agus Ethereum. + +### Tuircis {#tr} + +- [BTK Akademi](https://www.btkakademi.gov.tr/portal/course/blokzincir-ve-kripto-paralar-10569#!/about) -blocshlabhra agus cúrsa atá dírithe ar criptea-airgeadra +- [The great renaming: what happened to Eth2?](https://miningturkiye.org/konu/ethereum-madenciligi-bitiyor-mu-onemli-gelisme.655/) - Aistriúchán Tuircise ar an mblogphost iontach ar athainmniú, ag míniú an t-aistriú ar shiúl ó théarmaíocht 'Eth2' + +### Vítneaimis {#vi} + +- [Tino Group](https://wiki.tino.org/ethereum-la-gi/) - forbhreathnú ar Ethereum, dapps, sparán agus CCanna +- [Tap Chi Bitcoin](https://tapchibitcoin.io/tap-chi/tin-tuc-ethereum-eth) - ardán gréasáin le fo-leathanaigh do nuacht agus oideachas Ethereum +- [Coin68](https://coin68.com/ethereum-tieu-diem/) - tairseach criptea-airgeadra le nuacht Ethereum agus ábhar oideachais diff --git a/public/content/translations/ga/community/online/index.md b/public/content/translations/ga/community/online/index.md new file mode 100644 index 00000000000..69d8b03d3aa --- /dev/null +++ b/public/content/translations/ga/community/online/index.md @@ -0,0 +1,76 @@ +--- +title: Pobail ar líne +description: Liosta de na cláir dheontais ar fud an éiceachóras Ethereum. +lang: ga +--- + +# Pobail ar líne {#online-communities} + +Bailíonn na céadta mílte díograiseoirí Ethereum sna fóraim ar líne seo chun nuacht a roinnt, labhairt faoi fhorbairtí le déanaí, díospóireacht a dhéanamh ar shaincheisteanna teicniúla, agus an todhchaí a shamhlú. + +## Polasaí Liostála {#listing-policy} + +Chun sláine agus luach na bpobal liostaithe a chothabháil, leanann ethereum.org beartas dian chun incháilitheacht a chinneadh: + +### Critéir Cháilitheachta {#eligibility-criteria} + +- **Ábhar**: Ní mór go mbeadh baint dhíreach ag an bpobal le Ethereum agus lena éiceachóras. +- **Leibhéal Gníomhaíochta**: Ba cheart don phobal a bheith gníomhach, le hidirghníomhaíochtaí, postálacha nó díospóireachtaí rialta. Féadfar pobail dhíomhaoine nó neamhghníomhacha a bhaint. +- **Cuimsitheacht**: Ba cheart don phobal timpeallacht fháilteach a chothú ina bhfuil meas ar an éagsúlacht agus a spreagann rannpháirtíocht ó dhaoine as gach cúlra. +- **Fócas Neamhthráchtála**: Tá na liostaí beartaithe le haghaidh spásanna atá faoi thiomáint ag an bpobal seachas ardáin thráchtála nó poiblíochta. + +### Treoirlínte Inneachair {#content-guidelines} + +- **Ábhar Cuí**: Ní mór do phobail a dtreoirlínte modhnóireachta féin a bheith acu, chun turscar, fuathchaint, ciapadh nó aon ábhar a chuireann gníomhaíochtaí mídhleathacha chun cinn a sheachaint. +- **Teanga**: Cé gurb é an Béarla an phríomhtheanga, spreagtar pobail i dteangacha eile chun rannpháirtíochta a fhad is a bhíonn atmaisféar cuimsitheach measúil acu. +- **Trédhearcacht**: Ba cheart go mbeadh faisnéis shoiléir faoi chuspóir, rialacha agus modhnóirí an phobail ar fáil do bhaill. + +### Moltaí Eile {#other-recommendations} + +- **Inrochtaineacht**: Ba cheart go mbeadh rochtain ag gach duine ar fhóraim phobail gan síniú nó clárú a bheith riachtanach. +- **Cuirí ó Fhreastalaí Discord**: Moltar gan ach cuirí iontaofa ó fhreastalaí Discord a chur le ethereum.org. Go hidéalach, ba cheart go nascfaí na cuirí seo le leathanach pobail ar an suíomh Gréasáin (m.sh., [ethglobal.com/discord](https://ethglobal.com/discord)) nó ba cheart go mbeidís ó URL oifigiúil (m.sh., [discord.gg/ethstaker](https://discord.gg/ethstaker) nó [discord.com/invite/ethstaker](https://discord.com/invite/ethstaker)). + +Má chreideann tú gur cheart pobal a chur leis nó a bhaint bunaithe ar na treoirlínte seo, le do thoil [oscail fadhb ar ár stór GitHub](https://github.com/ethereum/ethereum-org-website/issues). + + +## Fóraim {#forums} + +r/ethereum - gach rud Ethereum +r/ethfinance - taobh airgeadais Ethereum, lena n-áirítear DeFi +r/ethdev - dírithe ar fhorbairt Ethereum +r/ethtrader - treochtaí & anailís mhargaidh +r/ethstaker - fáilte roimh chách a bhfuil suim acu i ngeallchur ar Ethereum +Comhaltacht na nDraíodóirí Ethereum - pobal atá dírithe ar chaighdeáin theicniúla in Ethereum +Ethereum Stackexchange - plé agus cúnamh d'fhorbróirí Ethereum +Taighde Ethereum - an clár teachtaireachta is mó tionchair le haghaidh taighde cripteacnamaíoch + +## Seomraí comhrá {#chat-rooms} + +Ethereum Cat Herders - pobal dírithe ar thacaíocht bainistíochta tionscadail a thairiscint d'fhorbairt Ethereum +Haiceálaithe Ethereum - Comhrá Discord á reáchtáil ag ETHGlobal: pobal ar líne do haiceálaithe Ethereum ar fud an domhain +CryptoDevs - Pobal Discord dírithe ar fhorbairt Ethereum +EthStaker Discord - treoir, oideachas, tacaíocht agus acmhainní arna rith ag an bpobal do gheallsealbhóirí reatha agus ionchasacha +Foireann láithreán gréasáin Ethereum.org - buail isteach agus labhair faoi fhorbairt agus dearadh gréasáin ethereum.org leis an bhfoireann agus le daoine ón bpobal +Matos Discord - pobal cruthaitheoirí web3 ina mbíonn tógálaithe, ceannairí tionsclaíochta agus díograiseoirí Ethereum ag crochadh thart. Táimid paiseanta faoi fhorbairt, dearadh agus cultúr web3. Tar agus tóg linn. +Solidity Gitter - comhrá ar son forbairt Solidity (Gitter) +Maitrís Dlúthpháirtíochta - comhrá ar son forbairt Solidity (Maitrís) +Malartú Cruach Ethereum *- fóram ceisteanna agus freagraí* +Fóram Pobail Piara *- fóram ceisteanna agus freagraí díláraithe* + +## YouTube agus X (Twitter roimhe seo) {#youtube-and-twitter} + +Fondúireacht Ethereum - Coinnigh suas chun dáta leis an eolas is déanaí ó Fhondúireacht Ethereum +@ethereum - Príomhchuntas Ethereum don phobal +@ethereumfndn - Cuntas oifigiúil Fhondúireacht Ethereum +@ethdotorg - Tairseach Ethereum, tógtha dár bpobal domhanda atá ag fás +Liosta de na cuntais twitter Ethereum is mó tionchar + + + + +
+ + Foghlaim tuilleadh faoi DAOanna + +
+
diff --git a/public/content/translations/ga/community/research/index.md b/public/content/translations/ga/community/research/index.md new file mode 100644 index 00000000000..96344691151 --- /dev/null +++ b/public/content/translations/ga/community/research/index.md @@ -0,0 +1,399 @@ +--- +title: Réimsí gníomhacha taighde Ethereum +description: Déan iniúchadh ar réimsí éagsúla taighde oscailte agus foghlaim conas a bheith páirteach. +lang: ga +--- + +# Réimsí gníomhacha taighde Ethereum {#active-areas-of-ethereum-research} + +Ceann de phríomhláidreachtaí Ethereum ná go bhfuil pobal gníomhach taighde agus innealtóireachta á fheabhsú i gcónaí. Ba mhaith le go leor daoine díograiseacha, oilte ar fud an domhain luí isteach ar shaincheisteanna neamhréitithe in Ethereum, ach ní bhíonn sé éasca i gcónaí a fháil amach cad iad na saincheisteanna sin. Imlíníonn an leathanach seo príomhréimsí taighde gníomhacha mar threoir gharbh ar cheannródaíocht Ethereum. + +## Conas a oibríonn taighde Ethereum {#how-ethereum-research-works} + +Tá taighde Ethereum oscailte agus trédhearcach, ag cuimsiú prionsabail [Eolaíocht Dhíláraithe (DeSci)](https://hackernoon.com/desci-decentralized-science-as-our-chance-to-recover-the-real-science). Is é an cultúr uirlisí agus aschuir taighde a dhéanamh chomh oscailte agus idirghníomhach agus is féidir, mar shampla, trí leabhair nótaí inrite. Bogann taighde Ethereum go tapa, agus déantar torthaí nua a phostáil agus a phlé go hoscailte ar fhóraim mar [ethresear.ch](https://ethresear.ch/) seachas teacht ar an bpobal trí fhoilseacháin thraidisiúnta tar éis babhtaí athbhreithnithe piaraí. + +## Acmhainní taighde ginearálta {#general-research-resources} + +Beag beann ar an ábhar sonrach, tá saibhreas faisnéise ar thaighde Ethereum le fáil ag [ethresear.ch](https://ethresear.ch) agus an [Cainéal Eth R&D Discord](https://discord.gg/ qGpsxSA). Is iad seo na príomh-áiteanna ina bpléann taighdeoirí Ethereum na smaointe agus na deiseanna forbartha is déanaí. + +Tugann an tuarascáil seo a foilsíodh i mBealtaine 2022 ag [DelphiDigital](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) forbhreathnú maith ar an treochlár Ethereum. + +## Foinsí Maoinithe {#sources-of-funding} + +Is féidir leat a bheith páirteach i dtaighde Ethereum agus íocaíocht a fháil! Mar shampla, reáchtáil [Fondúireacht Ethereum](/foundation/) [babhta maoinithe na nDeontas Acadúla] le déanaí ( https://esp.ethereum.foundation/academic-grants). Is féidir leat faisnéis a fháil ar dheiseanna maoinithe gníomhacha agus atá le teacht ar [leathanach deontas Ethereum](/pobal/deontais/). + +## Taighde prótacail {#protocol-research} + +Baineann taighde prótacail le bunchiseal Ethereum - an tacar rialacha a shainíonn conas a nascann nóid sonraí Ethereum, a dhéanann siad cumarsáid eatarthu, iad a mhalartú agus a stóráil agus mar a thagann siad ar chomhdhearcadh faoi staid an blocshlabhra. Roinntear taighde prótacail i dhá chatagóir barrleibhéil: comhdhearcadh agus cur i gcrích. + +### Comhdhearcadh {#consensus} + +Baineann taighde comhdhearcaidh le [meicníocht cruthúnais gill Ethereum](/developers/docs/consensus-mechanisms/pos/). Seo a leanas roinnt topaicí taighde comhdhearcaidh: + +- leochaileachtaí a aithint agus a shlánú; +- slándáil chripteacnamaíoch a chainníochtú; +- slándáil nó feidhmíocht fheidhmiú na gcliant a mhéadú; +- agus cliaint éadroma a fhorbairt. + +Chomh maith le taighde réamhbhreathnaitheach, tá taighde á dhéanamh ar roinnt athdhearadh bunúsacha ar an bprótacal, amhail críochnaitheacht sliotán aonair, chun feabhsuithe suntasacha ar Ethereum a cheadú. Ina theannta sin, is ábhair thábhachtacha taighde iad éifeachtúlacht, sábháilteacht agus faireachán ar líonrú piara le piaraí idir cliaint chomhdhearcaidh. + +#### Léamh cúlra {#background-reading} + +- [Réamhrá ar chruthúnas gill](/developers/docs/consensus-mechanisms/pos/) +- [Páipéar Casper-FFG](https://arxiv.org/abs/1710.09437) +- [Mínitheoir Casper-FFG](https://arxiv.org/abs/1710.09437) +- [Páipéar Gasper](https://arxiv.org/abs/2003.03052) + +#### Taighde le déanaí {#recent-research} + +- [Ethresear.ch Comhdhearcadh](https://ethresear.ch/c/consensus/29) +- [Aincheist Infhaighteachta/Críochnaitheachta](https://arxiv.org/abs/2009.04987) +- [Críochnaitheacht sliotán amháin](https://ethresear.ch/t/a-model-for-cumulative-committee-based-finality/10259) +- [Deighilt idir an tairgeoir agus an tógálaí](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance) + +### Rith {#execution} + +Baineann an ciseal reatha le hidirbhearta a rith, [meaisín fíorúil Ethereum (EVM)](/developers/docs/evm/) a rith agus ualaí reatha a ghiniúint chun dul go dtí an ciseal comhdhearcaidh. Tá go leor réimsí gníomhacha taighde ann, lena n-áirítear: + +- tacaíocht cliant éadrom a thógáil amach; +- taighde a dhéanamh ar theorainneacha gáis; +- agus struchtúir sonraí nua a ionchorprú (m.sh. Verkle Tries). + +#### Léamh cúlra {#background-reading-1} + +- [Réamhrá don EVM](/developers/docs/evm) +- [ciseal reatha Ethresear.ch](https://ethresear.ch/c/execution-layer-research/37) + +#### Taighde le déanaí {#recent-research-1} + +- [Optamú bunachar sonraí](https://github.com/ledgerwatch/erigon/blob/devel/docs/programmers_guide/db_faq.md) +- [Éag staide](https://notes.ethereum.org/@vbuterin/state_expiry_eip) +- [Cosáin go dtí éag staide](https://hackmd.io/@vbuterin/state_expiry_paths) +- [Verkle agus togra éag staide](https://notes.ethereum.org/@vbuterin/verkle_and_state_expiry_proposal) +- [Bainistíocht staire](https://eips.ethereum.org/EIPS/eip-4444) +- [Crainn Verkle](https://vitalik.eth.limo/general/2021/06/18/verkle.html) +- [Sampláil infhaighteachta sonraí](https://github.com/ethereum/research/wiki/A-note-on-data-availability-and-erasure-coding) + +## Forbairt Chliant {#client-development} + +Is ionann cliaint Ethereum agus prótacal Ethereum a chur i bhfeidhm. Déanann forbairt cliant na torthaí ó thaighde prótacail a fhíorú trí iad a thógáil isteach sna cliaint seo. Áirítear le forbairt na gcliant sonraíochtaí an chliaint a nuashonrú chomh maith le feidhmeanna sonracha a thógáil. + +Teastaíonn nód Ethereum chun dhá phíosa bogearraí a rith: + +1. cliant comhdhearcaidh chun súil a choinneáil ar cheann an blocshlabhra, cúlchaint bloic agus láimhseáil loighic comhdhearcaidh +2. cliant reatha chun tacú le Meaisín Fíorúil Ethereum agus idirbhearta agus conarthaí cliste a rith + +Féach ar an [leathanach nóid agus cliaint] (/developers/docs/nodes-and-clients/) le haghaidh tuilleadh sonraí ar nóid agus cliaint agus le haghaidh liosta de na feidhmiúcháin cliant reatha go léir. Is féidir leat stair gach uasghrádú Ethereum a fháil freisin ar an [leathanach staire] (/history/). + +### Cliaint Reatha {#execution-clients} + +- [Sonraíocht an chliaint reatha](https://github.com/ethereum/execution-specs) +- [Sonraíocht Reatha API](https://github.com/ethereum/execution-apis) + +### Cliaint Comhdhearcaidh {#consensus-clients} + +- [Sonraíocht chliaint comhdhearcadh](https://github.com/ethereum/consensus-specs) +- [Sonraíocht Beacon API](https://ethereum.github.io/beacon-APIs/#/Beacon/getStateRoot) + +## Scálú agus feidhmíocht {#scaling-and-performance} + +Is réimse mór fócais é Scálú Ethereum do thaighdeoirí Ethereum. Áirítear le cur chuige reatha idirbhearta a dhíluchtú ar uas-scálú agus iad a dhéanamh chomh saor agus is féidir ag baint úsáide as blobaí sonraí. Tá faisnéis tosaigh ar scálú Ethereum ar fáil ar ár [leathanach scálaithe](/developers/docs/scaling). + +### Ciseal 2 {#layer-2} + +Tá roinnt prótacail Sraith 2 ann anois a scálaíonn Ethereum le teicnící éagsúla chun idirbhearta a bhaisceadh agus iad a dhaingniú ar Ethereum ciseal 1. Is ábhar é seo atá ag fás go han-tapa agus a bhfuil go leor acmhainneacht taighde agus forbartha aige. + +#### Léamh cúlra {#background-reading-2} + +- [Réamhrá ar chiseal 2](/layer-2/) +- [Polyya: Uas-scáluithe, DA agus slabhraí modúlacha](https://polynya.medium.com/rollups-data-availability-layers-modular-blockchains-introductory-meta-post-5a1e7a60119d) + +#### Taighde le déanaí {#recent-research-2} + +- [Ordú cothrom Arbitrum le haghaidh seicheamhóirí](https://eprint.iacr.org/2021/1465) +- [Ethresear.ch Ciseal 2](https://ethresear.ch/c/layer-2/32) +- [Treochlár uas-scálú-lárnach](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) +- [L2Beat](https://l2beat.com/) + +### Droichid {#bridges} + +Réimse áirithe amháin de chiseal 2 a éilíonn níos mó taighde agus forbartha is ea droichid atá sábháilte agus feidhmiúil. Áirítear leis seo droichid idir Cisil 2 éagsúla agus droichid idir Ciseal 1 agus Ciseal 2. Is réimse taighde thar a bheith tábhachtach é seo mar is minic a dhíríonn haiceálaithe ar dhroichid. + +#### Léamh cúlra {#background-reading-3} + +- [Réamhrá ar dhroichid bhlocshlabhra](/bridges/) +- [Vitalik ar dhroichid](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) +- [Alt faoi dhroichid Bhlocshlabhra](https://medium.com/1kxnetwork/blockchain-bridges-5db6afac44f8) +- [Luach glasáilte sna droichid](https://dune.com/eliasimos/Bridge-Away-\(from-Ethereum\)) + +#### Taighde le déanaí {#recent-research-3} + +- [Bailíochtú Droichead](https://stonecoldpat.github.io/images/validatingbridges.pdf) + +### Sceardadh {#sharding} + +Tá sceardadh ar bhlocshlabhra Ethereum mar chuid de phlean forbartha le fada an lá. Mar sin féin, tá réitigh nua scálaithe cosúil le "Danksharding" i lár an aonaigh faoi láthair. + +Chuaigh an réamhtheachtaí chuig Danksharding iomlán ar a dtugtar Proto-Danksharding beo le huasghrádú líonra Cancun-Deneb ("Dencun"). + +[Tuilleadh eolais faoi uasghrádú Dencun](/roadmap/dencun/) + +#### Léamh cúlra {#background-reading-4} + +- [Nótaí Proto-Danksharding](https://notes.ethereum.org/@vbuterin/proto_danksharding_faq) +- [físeán Danksharding gan Bhainc](https://www.youtube.com/watch?v=N5p0TB77flM) +- [Achoimre Taighde Sceardála Ethereum](https://notes.ethereum.org/@serenity/H1PGqDhpm?type=view) +- [Danksharding (Polynya)](https://polynya.medium.com/danksharding-36dc0c8067fe) + +#### Taighde le déanaí {#recent-research-4} + +- [EIP-4844: Proto-Danksharding](https://eips.ethereum.org/EIPS/eip-4844) +- [Vitalik ar sceardadh agus sampláil infhaighteachta sonraí](https://hackmd.io/@vbuterin/sharding_proposal) + +### Crua-earraí {#hardware} + +[Nóid reatha] (/developers/docs/nodes-and-clients/run-a-node/) ar chrua-earraí measartha bunúsach chun Ethereum a choinneáil díláraithe. Mar sin, is réimse tábhachtach taighde é taighde gníomhach ar íoslaghdú na gceanglas crua-earraí chun nóid a rith. + +#### Léamh cúlra {#background-reading-5} + +- [Ethereum ar ARM](https://ethereum-on-arm-documentation.readthedocs.io/ga/latest/) + +#### Taighde le déanaí {#recent-research-5} + +- [ecdsa ar FPGAanna](https://ethresear.ch/t/does-ecdsa-on-fpga-solve-the-scaling-problem/6738) + +## Slándáil {#security} + +Is ábhar leathan í an tslándáil a d’fhéadfadh cosc ​​a chur ar thurscar/camscéimeanna, slándáil sparán, slándáil crua-earraí, slándáil cripteacnamúil, cuardach fabhtanna agus tástáil feidhmchlár agus bogearraí cliant agus bainistíocht eochrach a áireamh. Cabhróidh cur le heolas sna réimsí seo chun uchtú príomhshrutha a spreagadh. + +### Cripteagrafaíocht & ZKP {#cryptography--zkp} + +Tá cruthúnais dífhianaise (ZKP) agus cripteagrafaíocht ríthábhachtach chun príobháideacht agus slándáil a thógáil isteach i Ethereum agus a chuid feidhmeanna. Is spás réasúnta óg é an t-eolas náid ach a ghluaiseann go tapa agus a bhfuil go leor deiseanna taighde agus forbartha oscailte ann. I measc na bhféidearthachtaí tá forfheidhmiú níos éifeachtaí ar [algartam haiseála Keccak](https://hackmd.io/sK7v0lr8Txi1bgION1rRpw?view#Overview), gealltanais iltéarmacha níos fearr a aimsiú ná mar atá ann faoi láthair nó laghdú a dhéanamh ar chostas giniúna eochair phoiblí ecdsa agus ciorcaid fíoraithe sínithe. + +#### Léamh cúlra {#background-reading-6} + +- [Blag 0xparc](https://0xparc.org/blog) +- [zkp.science](https://zkp.science/) +- [Podchraoladh Zero Knowledge](https://zeroknowledge.fm/) + +#### Taighde le déanaí {#recent-research-6} + +- [Dul chun cinn le déanaí i gcripteagrafaíocht cuar éilips](https://ethresear.ch/t/the-ec-fft-algorithm-without-elliptic-curve-and-isogenies/11346) +- [Ethresear.ch ZK](https://ethresear.ch/c/zk-s-nt-arks/13) + +### Sparáin {#wallets} + +Is féidir le sparán Ethereum a bheith ina mbreisithe brabhsálaí, aipeanna deisce agus soghluaiste nó conarthaí cliste ar Ethereum. Tá taighde gníomhach ar bun ar sparán téarnaimh shóisialta a laghdaíonn cuid den riosca a bhaineann le bainistíocht eochair-úsáideoirí aonair. Baineann taighde ar fhoirmeacha eile astarraingthe cuntas le forbairt sparán, réimse tábhachtach den taighde éiritheach. + +#### Léamh cúlra {#background-reading-7} + +- [Réamhrá ar sparáin](/wallets/) +- [Réamhrá ar shlándáil sparán](/security/) +- [Slándáil Ethresear.ch](https://ethresear.ch/tag/security) +- [EIP-2938 Asbhaint Chuntas](https://eips.ethereum.org/EIPS/eip-2938) +- [EIP-4337 Asbhaint Chuntas](https://eips.ethereum.org/EIPS/eip-4337) + +#### Taighde le déanaí {#recent-research-7} + +- [sparán conartha cliste atá dírithe ar bhailíochtú](https://ethereum-magicians.org/t/validation-focused-smart-contract-wallets/6603) +- [Todhchaí na gcuntas](https://ethereum-magicians.org/t/validation-focused-smart-contract-wallets/6603) +- [Opcodes EIP-3074 AUTH agus AUTHCALL](https://eips.ethereum.org/EIPS/eip-3074) +- [Cód a fhoilsiú ag seoladh EOA](https://eips.ethereum.org/EIPS/eip-5003) + +## Pobal, oideachas agus for-rochtain {#community-education-and-outreach} + +Teastaíonn acmhainní nua oideachais agus cur chuige for-rochtana chun úsáideoirí nua a chur ar bord Ethereum. D’fhéadfadh go n-áireofaí leis seo blogphostálacha agus ailt, leabhair, podchraoltaí, méimeanna, acmhainní teagaisc, imeachtaí agus aon rud eile a chothaíonn pobail, a chuireann fáilte roimh thosaitheoirí nua agus a chuireann oideachas ar dhaoine faoi Ethereum. + +### UX/UI {#uxui} + +Chun níos mó daoine a chur ar bord Ethereum, ní mór don éiceachóras an UX/UI a fheabhsú. Éileoidh sé seo ar dhearthóirí agus ar shaineolaithe táirgí athscrúdú a dhéanamh ar dhearadh sparán agus aipeanna. + +#### Léamh cúlra {#background-reading-8} + +- [Ethresear.ch UX/UI](https://ethresear.ch/c/ui-ux/24) + +#### Taighde le déanaí {#recent-research-8} + +- [Discord Dearaidh Web3](https://discord.gg/FsCFPMTSm9) +- [Prionsabail Dearaidh Web3](https://www.web3designprinciples.com/) +- [Plé Ethereum Magicians UX](https://ethereum-magicians.org/t/og-council-ux-follow-up/9032/3) + +### Eacnamaíocht {#economics} + +Leanann taighde eacnamaíoch in Ethereum dhá chur chuige den chuid is mó: slándáil na meicníochtaí a bhraitheann ar dhreasachtaí eacnamaíocha ("micreacnamaíocht") a bhailíochtú agus anailís a dhéanamh ar na sreafaí luacha idir prótacail, feidhmchláir agus úsáideoirí ("maicreacnamaíocht"). Tá fachtóirí casta cripteacnamaíocha ann a bhaineann le sócmhainn dhúchasach Ethereum (éitear) agus na comharthaí a tógadh ar a bharr (mar shampla NFTs agus comharthaí ERC20). + +#### Léamh cúlra {#background-reading-9} + +- [Grúpa Dreasachtaí Láidre](https://ethereum.github.io/rig/) +- [ceardlann ETHconomics ag Devconnect](https://www.youtube.com/playlist?list=PLTLjFJ0OQOj5PHRvA2snoOKt2udVsyXEm) + +#### Taighde le déanaí {#recent-research-9} + +- [Anailís eimpíreach ar EIP1559](https://arxiv.org/abs/2201.05574) +- [Cothromaíocht soláthair a scaipeadh](https://ethresear.ch/t/circulating-supply-equilibrium-for-ethereum-and-minimum-viable-issuance-during-the-proof-of-stake-era/10954) +- [MEV á chainníochtú: Cé chomh dorcha is atá an fhoraois?](https://arxiv.org/abs/2101.05511) + +### Margaí blocspáis agus táillí {#blockspace-fee-markets} + +Rialaíonn margaí blocspáis cuimsiú na n-idirbheart úsáideora deiridh, go díreach ar Ethereum (Ciseal 1) nó ar líonraí droichid, m.sh. uas-scálú (Ciseal 2). Ar Ethereum, cuirtear idirbhearta chuig an margadh táillí arna n-imscaradh in-prótacal mar EIP-1559, rud a chosnaíonn an slabhra ó thurscar agus ó phlódú praghsála. Ar an dá chiseal, féadfaidh idirbhearta seachtrachtaí a tháirgeadh, ar a dtugtar Uasluach Inbhainte (MEV), a spreagann struchtúir mhargaidh nua chun na seachtrachtaí sin a ghabháil nó a bhainistiú. + +#### Léamh cúlra {#background-reading-10} + +- [Dearadh Meicníocht Táille Idirbhirt do bhlocshlabhra Ethereum: Anailís Eacnamaíoch ar EIP-1559 (Tim Roughgarden, 2020)](https://timroughgarden.org/papers/eip1559.pdf) +- [Insamhaltaí EIP-1559 (Grúpa Dreasachtaí Láidre)](https://ethereum.github.io/abm1559) +- [Eacnamaíocht uas-scálaithe ó na chéad phrionsabail](https://barnabe.substack.com/p/understanding-rollup-economics-from?utm_source=url) +- [Flash Boys 2.0: Rith Tosaigh, Athordú Idirbheart, agus Éagobhsaíocht Chomhdhearcaidh i Malartáin Díláraithe](https://arxiv.org/abs/1904.05234) + +#### Taighde le déanaí {#recent-research-10} + +- [Léiriú físeáin iltoiseach EIP-1559](https://youtu.be/QbR4MTgnCko) +- [Tras-fhearann ​​MEV](http://arxiv.org/abs/2112.01472) +- [Ceantanna MEV](https://ethresear.ch/t/mev-auction-auctioning-transaction-ordering-rights-as-a-solution-to-miner-extractable-value/6788) + +### Dreasachtaí cruthúnais {#proof-of-stake-incentives} + +Úsáideann bailíochtóirí sócmhainn dhúchasach Ethereum (éitear) mar chomhthaobhacht in aghaidh iompar mímhacánta. Cinneann an chripteacnamaíocht seo slándáil an líonra. D’fhéadfadh go mbeadh bailíochtóirí sofaisticiúla in ann leas a bhaint as miondifríochtaí na gciseal dreasachta chun ionsaithe follasacha a sheoladh. + +#### Léamh cúlra {#background-reading-11} + +- [Máistir-rang ar eacnamaíocht Ethereum agus samhail eacnamaíoch](https://github.com/CADLabs/ethereum-economic-model) +- [Insamhaltaí dreasachtaí PoS (Grúpa Dreasachtaí Láidre)](https://ethereum.github.io/beaconrunner/) + +#### Taighde le déanaí {#recent-research-11} + +- [Méadú ar fhriotaíocht chinsireachta na n-idirbheart faoi scaradh tairgeora/tógálaí (PBS)](https://notes.ethereum.org/s3JToeApTx6CKLJt8AbhFQ) +- [Trí ionsaí ar PoS Ethereum](https://arxiv.org/abs/2110.10086) + +### Geallta leachta agus díorthaigh {#liquid-staking-and-derivatives} + +Ligeann cruachadh leachtach d'úsáideoirí a bhfuil níos lú ná 32 ETH acu táirgeacht ghill a fháil trí éitear a mhalartú le haghaidh comhartha a léiríonn éitear cruachta is féidir a úsáid in DeFi. Mar sin féin, tá na dreasachtaí agus dinimic an mhargaidh a bhaineann le cruachadh leachta fós á n-aimsiú, chomh maith lena éifeacht ar shlándáil Ethereum (m.sh. rioscaí láraithe). + +#### Léamh cúlra {#background-reading-12} + +- [Geallchur leachta Ethresear.ch](https://ethresear.ch/search?q=liquid%20staking) +- [Lido: An bóthar chun geallchur gan iontaoibh Ethereum](https://blog.lido.fi/the-road-to-trustless-ethereum-staking/) +- [Rocket Pool: Réamhrá prótacail Geallchur](https://medium.com/rocket-pool/rocket-pool-staking-protocol-part-1-8be4859e5fbd) + +#### Taighde le déanaí {#recent-research-12} + +- [Aistarraingtí ó Lido a láimhseáil](https://ethresear.ch/t/handling-withdrawals-in-lidos-eth-liquid-staking-protocol/8873) +- [Dintiúir aistarraingthe](https://ethresear.ch/t/withdrawal-credential-rotation-from-bls-to-eth1/8722) +- [Na rioscaí a bhaineann le Díorthaigh Geall Leachtacha](https://notes.ethereum.org/@djrtwo/risks-of-lsd) + +## Tástáil {#testing} + +### Fíorú foirmiúil {#formal-verification} + +Is ionann fíorú foirmiúil agus cód a scríobh le fíorú go bhfuil sonraíochtaí comhdhearcadh Ethereum ceart agus saor ó fhabht. Tá leagan inrite den tsonraíocht scríofa i Python a éilíonn cothabháil agus forbairt. Is féidir le tuilleadh taighde cabhrú le feabhas a chur ar fheidhmiú Python na sonraíochta agus uirlisí a chur leis ar féidir leo cruinneas níos daingne a fhíorú agus saincheisteanna a shainaithint. + +#### Léamh cúlra {#background-reading-13} + +- [Réamhrá maidir le fíorú foirmiúil](https://ptolemy.berkeley.edu/projects/embedded/research/vis/doc/VisUser/vis_user/node4.html) +- [Fíorú Foirmiúil (Intel)](https://www.cl.cam.ac.uk/~jrh13/papers/mark10.pdf) + +#### Taighde le déanaí {#recent-research-13} + +- [Fíorú foirmiúil ar an gconradh taisce](https://github.com/runtimeverification/deposit-contract-verification) +- [Fíorú foirmiúil ar shonraíocht Slabhra Beacon](https://github.com/runtimeverification/deposit-contract-verification) + +## Eolaíocht agus anailísíocht sonraí {#data-science-and-analytics} + +Tá gá le níos mó uirlisí anailíse sonraí agus deaise a thugann faisnéis mhionsonraithe faoi ghníomhaíocht ar Ethereum agus sláinte an líonra. + +### Léamh cúlra {#background-reading-14} + +- Anailisíocht [Dune](https://dune.com/browse/dashboards) +- [Deais éagsúlachta cliant](https://clientdiversity.org/) + +#### Taighde le déanaí {#recent-research-14} + +- [Anailís Sonraí Grúpa Dreasachtaí Láidre](https://ethereum.github.io/rig/) + +## Aipeanna agus uirlisí {#apps-and-tooling} + +Tacaíonn an ciseal iarratais le héiceachóras éagsúil de chláir a shocraíonn idirbhearta ar bhunchiseal Ethereum. Tá foirne forbartha i gcónaí ag teacht ar bhealaí nua chun Ethereum a ghiaráil chun leaganacha in-chomhdhéanta, gan chead agus friotaíoch ó chinsireacht d'aipeanna tábhachtacha Web2 a chruthú nó chun coincheapa nua Web3 dúchasacha a chruthú. Ag an am céanna, tá uirlisí nua á bhforbairt a fhágann nach bhfuil sé chomh casta dapps a thógáil ar Ethereum. + +### DeFi {#defi} + +Tá airgeadas díláraithe (DeFi) ar cheann de na príomh-aicmí feidhmchlár a tógadh ar bharr Ethereum. Tá sé mar aidhm ag DeFi "legos airgid" inchomparáide a chruthú a ligeann d'úsáideoirí criptea-shócmhainní a stóráil, a aistriú, a thabhairt ar iasacht agus a infheistiú le conarthaí cliste. Tá DeFi á nuashonrú i gcónaí mar spás mear-ghluaiseachta. Tá gá leanúnach le taighde ar phrótacail atá slán, éifeachtach agus inrochtana. + +#### Léamh cúlra {#background-reading-15} + +- [DeFi](/defi/) +- [Coinbase: Cad é DeFi?](https://www.coinbase.com/learn/crypto-basics/what-is-defi) + +#### Taighde le déanaí {#recent-research-15} + +- [Airgeadais díláraithe, úinéireacht láraithe?](https://arxiv.org/pdf/2012.09306.pdf) +- [Dóchas: An bóthar chuig idirbhearta fo-dollar](https://medium.com/ethereum-optimism/the-road-to-sub-dollar-transactions-part-2-compression-edition-6bb2890e3e92) + +### DAOanna {#daos} + +Cás úsáide tionchair do Ethereum is ea an cumas eagrú ar bhealach díláraithe trí úsáid a bhaint as DAOanna. Tá go leor taighde gníomhach ar siúl maidir le conas is féidir DAOanna ar Ethereum a fhorbairt agus a úsáid chun cineálacha feabhsaithe rialachais a fheidhmiú, mar uirlis chomhordaithe íoslaghdaithe iontaobhais, ag leathnú go mór roghanna daoine seachas corparáidí agus eagraíochtaí traidisiúnta. + +#### Léamh cúlra {#background-reading-16} + +- [Réamhrá ar DAOanna](/dao/) +- [Dao Collective](https://daocollective.xyz/) + +#### Taighde le déanaí {#recent-research-16} + +- [Éiceachóras DAO a mhapáil](https://www.researchgate.net/publication/358694594_Mapping_out_the_DAO_Ecosystem_and_Assessing_DAO_Autonomy) + +### Uirlisí forbróra {#developer-tools} + +Tá uirlisí d'fhorbróirí Ethereum ag feabhsú go tapa. Tá go leor taighde agus forbartha gníomhach le déanamh sa réimse ginearálta seo. + +#### Léamh cúlra {#background-reading-17} + +- [Uirlisiú de réir teanga ríomhchlárúcháin](/developers/docs/programming-languages/) +- [Creataí Forbróirí](/developers/docs/frameworks/) +- [Liosta uirlisí forbróra comhdhearcaidh](https://github.com/ConsenSys/ethereum-developer-tools-list) +- [Caighdeáin chomhartha](/developers/docs/standards/tokens/) +- [CryptoDevHub: Uirlisí EVM](https://cryptodevhub.io/wiki/ethereum-virtual-machine-tools) + +#### Taighde le déanaí {#recent-research-17} + +- [Cainéal Uirlisithe Comhdhearcadh Discord T&F](https://discordapp.com/channels/595666850260713488/746343380900118528) + +### Oracail {#oracles} + +Iompórtálann Oracail sonraí as slabhra ar an mblocshlabhra ar bhealach díláraithe gan chead. Trí na sonraí seo a fháil ar slabhra is féidir dapps a bheith imoibríoch d’fheiniméin an fhíorshaoil amhail luaineachtaí praghais i sócmhainní an domhain fíor, imeachtaí in apps as slabhra, nó fiú athruithe ar an aimsir. + +#### Léamh cúlra {#background-reading-18} + +- [Réamhrá ar Oracail](/developers/docs/oracles/) + +#### Taighde le déanaí {#recent-research-18} + +- [Suirbhé ar oracail bhlocshlabhra](https://arxiv.org/pdf/2004.07140.pdf) +- [Páipéar bán Chainlink](https://chain.link/whitepaper) + +### Aip Slándála {#app-security} + +Go ginearálta baineann haiceanna ar Ethereum leas as leochaileachtaí in iarratais aonair seachas sa phrótacal féin. Tá haiceálaithe agus forbróirí aip gafa in armrás chun ionsaithe agus cosaintí nua a fhorbairt. Ciallaíonn sé seo go bhfuil taighde agus forbairt thábhachtach ag teastáil i gcónaí chun aipeanna a choinneáil sábháilte ó haiceáil. + +#### Léamh cúlra {#background-reading-19} + +- [Tuairisc ar dhúshaothrú poll péiste](https://blog.chainalysis.com/reports/wormhole-hack-february-2022/) +- [Liosta iarbháis haiceanna chonartha Ethereum](https://forum.openzeppelin.com/t/list-of-ethereum-smart-contracts-post-mortems/1191) +- [Nuacht Rekt](https://twitter.com/RektHQ?s=20&t=3otjYQdM9Bqk8k3n1a1Adg) + +#### Taighde le déanaí {#recent-research-19} + +- [Feidhmchláir Ethresear.ch](https://ethresear.ch/c/applications/18) + +### Cruach teicneolaíochta {#technology-stack} + +Is réimse tábhachtach taighde é dílárú chruach teicneolaíochta Ethereum ar fad. Faoi láthair, tá roinnt pointí láraithe ag dapps ar Ethereum toisc go mbraitheann siad ar uirlisí nó bonneagar láraithe. + +#### Léamh cúlra {#background-reading-20} + +- [Cruach Ethereum](/developers/docs/ethereum-stack/) +- [Coinbase: Réamhrá ar Chruach Web3](https://blog.coinbase.com/a-simple-guide-to-the-web3-stack-785240e557f0) +- [Réamhrá ar chonarthaí cliste](/developers/docs/smart-contracts/) +- [Réamhrá ar an stóras díláraithe](/developers/docs/storage/) + +#### Taighde le déanaí {#recent-research-20} + +- [In-chumthacht conartha cliste](/developers/docs/smart-contracts/composability/) diff --git a/public/content/translations/ga/dao/index.md b/public/content/translations/ga/dao/index.md index f859a589a51..97b4281310a 100644 --- a/public/content/translations/ga/dao/index.md +++ b/public/content/translations/ga/dao/index.md @@ -19,7 +19,7 @@ Is eagraíocht faoi chomhúinéireacht é DAO a oibríonn i dtreo misean comhroi Ligeann DAO dúinn oibriú le daoine den mheon céanna ar fud na cruinne gan muinín a bheith againn as ceannaire carthanach chun na cistí nó na hoibríochtaí a bhainistiú. Níl aon CEO ann ar féidir leis airgead a chaitheamh gan mhachnamh nó níl aon CFO atá in ann na leabhair a chúbláil. Ina áit sin, trí na rialacha atá bunaithe ar bhlocshlabhra a chuirtear isteach sa chód sainítear conas a oibríonn an eagraíocht agus conas a chaitear cistí. -Tá stórais ionsuite acu nach bhfuil an t‑údarás ag éinne rochtain a fháil orthu gan cead a fháil ón ngrúpa. Decisions are governed by proposals and voting to ensure everyone in the organization has a voice, and everything happens transparently [onchain](/glossary/#onchain). +Tá stórais ionsuite acu nach bhfuil an t‑údarás ag éinne rochtain a fháil orthu gan cead a fháil ón ngrúpa. Tá cinntí á rialú ag moltaí agus vótáil lena chinntiú go mbíonn guth ag gach duine san eagraíocht, agus go dtarlaíonn gach rud go trédhearcach [ar slabhra](/glossary/#onchain). ## Cén fáth a bhfuil DAO ag teastáil uainn? {#why-dao} @@ -120,7 +120,7 @@ _Úsáidtear é go hiondúil le haghaidh eagraíochtaí atá níos dlúithe, at ### Ballraíocht bunaithe ar cháil {#reputation-based-membership} -Trí cháil an duine léirítear cruthúnas na rannpháirtíochta agus bronntar cead vótála sa DAO. Murab ionann agus ballraíocht atá bunaithe ar chomharthaí nó scaireanna, ní aistríonn DAOnna atá bunaithe ar cháil úinéireacht chuig rannpháirtithe. Ní féidir cáil a cheannach, a aistriú nó a tharmligean; ní mór do bhaill an DAO clú a thuilleamh tríd an rannpháirtíocht. Onchain voting is permissionless and prospective members can freely submit proposals to join the DAO and request to receive reputation and tokens as a reward in exchange for their contributions. +Trí cháil an duine léirítear cruthúnas na rannpháirtíochta agus bronntar cead vótála sa DAO. Murab ionann agus ballraíocht atá bunaithe ar chomharthaí nó scaireanna, ní aistríonn DAOnna atá bunaithe ar cháil úinéireacht chuig rannpháirtithe. Ní féidir cáil a cheannach, a aistriú nó a tharmligean; ní mór do bhaill an DAO clú a thuilleamh tríd an rannpháirtíocht. Ní cheadaítear vótáil ar shlabhra agus is féidir le baill ionchasacha tograí a chur isteach go héasca chun dul isteach san OAC agus iarraidh orthu clú agus comharthaí a fháil mar luach saothair mar mhalairt ar a gcuid ranníocaíochtaí. _Úsáidtear é go hiondúil le haghaidh forbairt díláraithe agus rialachas prótacail agus [daipeanna](/glossary/#dapp), ach a oireann go maith freisin do shraith éagsúil eagraíochtaí amhail carthanachtaí, grúpaí oibrithe, clubanna infheistíochta, srl._ diff --git a/public/content/translations/ga/defi/index.md b/public/content/translations/ga/defi/index.md index 19e7cefc6e7..920c954a3b5 100644 --- a/public/content/translations/ga/defi/index.md +++ b/public/content/translations/ga/defi/index.md @@ -260,7 +260,7 @@ Is ardán iontach é Ethereum le haghaidh an tslua-chistithe: Is bogearraí foinse oscailte é Ethereum agus go dtí seo tá go leor den obair maoinithe ag an bpobal. Mar thoradh air sin tá fás ar shamhail nua spéisiúil tiomsaithe airgid: maoiniú cuadratach. D’fhéadfadh sé seo feabhas a chur ar an mbealach a mhaoinímid gach cineál earraí poiblí sa todhchaí. -Cinntíonn maoiniú cearnógach gurb iad na tionscadail a fhaigheann an maoiniú is mó na cinn leis an éileamh is uathúla. I bhfocail eile, tionscadail a sheasann chun feabhas a chur ar shaol na ndaoine is mó. Seo mar a oibríonn sé: +Cinntíonn maoiniú cuadratach gurb iad na tionscadail a fhaigheann an maoiniú is mó na cinn leis an éileamh is uathúla. I bhfocail eile, tionscadail a sheasann chun feabhas a chur ar shaol na ndaoine is mó. Seo mar a oibríonn sé: 1. Tá comhthiomsú cistí deonaithe ann. 2. Cuirtear tús le babhta maoinithe poiblí. diff --git a/public/content/translations/ga/developers/docs/consensus-mechanisms/poa/index.md b/public/content/translations/ga/developers/docs/consensus-mechanisms/poa/index.md new file mode 100644 index 00000000000..a62cc3aa870 --- /dev/null +++ b/public/content/translations/ga/developers/docs/consensus-mechanisms/poa/index.md @@ -0,0 +1,79 @@ +--- +title: Cruthúnas-údaráis (PoA) +description: Míniú ar an bprótacal comhdhearcadh cruthúnas-údaráis agus a ról in éiceachóras bhlocshlabhra. +lang: ga +--- + +Is algartam comhdhearcadh bunaithe ar chlú é **Cruthúnas-údaráis (PoA)** ar leagan modhnaithe é de [cruthúnas-gill] (/developers/docs/consensus-mechanisms/pos/). Úsáidtear é ag slabhraí príobháideacha, líonta tástála agus líonraí forbartha áitiúla den chuid is mó. Is algartam comhdhearcaidh bunaithe ar chlú é PoA a éilíonn muinín a bheith ann as sraith sínitheoirí údaraithe chun bloic a tháirgeadh, in ionad meicníocht gheall-bhunaithe i PoS. + +## Réamhriachtanais {#prerequisites} + +Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar dtús ar [idirbhearta](/developers/docs/transactions/), [bloic](/developers/docs/blocks/), agus [meicníochtaí comhaontaithe](/developers/docs/consensus-mechanisms/). + +## Cad is cruthúnas-údaráis (PoA) ann? {#what-is-poa} + +Is leagan modhnaithe de **[cruthúnas-gill](/developers/docs/consensus-mechanisms/pos/) (PoS)** é Cruthúnas-údaráis\*\* ar algartam comhdhearcaidh atá bunaithe ar chlú seachas ar mheicníocht gheall-bhunaithe i PoS. Tugadh an téarma isteach den chéad uair i 2017 ag Gavin Wood, agus tá slabhraí príobháideacha, testnets agus líonraí forbartha áitiúla den chuid is mó ag baint úsáide as an algartam comhdhearcaidh seo, toisc go sáraíonn sé an gá atá le hacmhainní ardchaighdeáin mar a dhéanann PoW, agus sáraíonn sé saincheisteanna inscálaitheacht PoS trí fho-thacar beag de nóid a bheith ann chun an blocshlabhra a stóráil agus bloic a tháirgeadh. + +Éilíonn cruthúnas-údaráis muinín a bheith agat as tacar sínitheoirí údaraithe atá socraithe sa [ghineas bloic](/glossary/#genesis-block). I bhformhór na bhfeidhmithe atá ann faoi láthair, coimeádann gach sínitheoir údaraithe an chumhacht agus na pribhléidí comhionanna agus comhdhearcadh an tslabhra á chinneadh. Is é an smaoineamh atá taobh thiar de gheallchur clú ná go bhfuil aithne ag gach duine ar gach bailíochtóir údaraithe trí rudaí cosúil le aithne a chur ar do chustaiméir (KYC), nó trí eagraíocht aitheanta a bheith mar aon bhailíochtóir amháin - ar an mbealach seo má dhéanann bailíochtóir aon rud mícheart, bíonn a chéannacht ar eolas. + +Is iomaí feidhmiú de PoA atá ann, ach is é \*\* clique\*\* an feidhmiú caighdeánach Ethereum, a fheidhmíonn [EIP-225] (https://eips.ethereum.org/EIPS/eip-225). Tá Clique cairdiúil don fhorbróir agus tá caighdeán éasca le feidhmiú aige, ag tacú le gach cineál sioncronaithe cliant. I measc na bhfeidhmithe eile tá [IBFT 2.0](https://besu.hyperledger.org/stable/private-networks/concepts/poa) agus [Aura](https://openethereum.github.io/Chain-specification). + +## Conas a oibríonn sé {#how-it-works} + +In PoA, roghnaítear sraith sínitheoirí údaraithe chun bloic nua a chruthú. Roghnaítear na sínitheoirí bunaithe ar a gcáil, agus ní cheadaítear ach do na sínitheoirí amháin bloic nua a chruthú. Roghnaítear na sínitheoirí ar bhealach comh-agach, agus tá cead ag gach sínitheoir bloc a chruthú i bhfráma ama ar leith. Tá an t-am cruthaithe bloc socraithe, agus caithfidh na sínitheoirí bloc a chruthú laistigh den fhráma ama sin. + +Ní rud cainníochtaithe é an cháil sa chomhthéacs seo ach is é cáil na gcorparáidí aitheanta ar nós Microsoft agus Google é, mar sin níl an bealach chun na sínitheoirí iontaofa a roghnú algartamach ach gnáthghníomh daonna é _iontaobh_ nuair a chruthaíonn aonáin, mar shampla Microsoft, líonra PoA príobháideach idir na céadta nó na mílte gnólachtaí nuathionscanta agus an ról féin mar aon sínitheoir iontaofa leis an bhféidearthacht sínitheoirí aitheanta eile ar nós Google a chur leis amach anseo, bheadh ​​muinín ag gnólachtaí tosaithe, gan amhras, as Microsoft gníomhú ar bhealach macánta an t-am ar fad agus an líonra a úsáid. Réitíonn sé seo an gá atá le líonraí beaga/príobháideacha éagsúla a tógadh ar son críocha éagsúla chun iad a choinneáil díláraithe agus ag feidhmiú, chomh maith leis an ngá atá le mianadóirí, a ídíonn go leor cumhachta agus acmhainní. Úsáideann roinnt líonraí príobháideacha an caighdeán PoA mar VeChain, agus déanann cuid acu é a mhodhnú mar Binance a úsáideann [PoSA] ( https://academy.binance.com/en/glossary/proof-of-staked-authority-posa) atá ina leagan modhnaithe saincheaptha de PoA agus PoS. + +Is iad na sínitheoirí féin a dhéanann an próiseas vótála. Vótálann gach sínitheoir chun sínitheoir a chur leis nó a bhaint as a bhloc nuair a chruthaíonn siad bloc nua. Déanann na nóid na vótaí a áireamh, agus cuirtear nó baintear na sínitheoirí de réir mar a shroicheann na vótaí tairseach áirithe `SIGNER_LIMIT`. + +D’fhéadfadh go mbeadh cás ann ina dtarlaíonn foirc bheaga, braitheann deacracht bhloic ar cibé acu an raibh an bloc sínithe ar a seal nó as a seal. Tá deacracht 2 ag bloic “ar a seal”, agus tá deacracht ag bloic “as seal” 1. I gcás forc beaga, is é an slabhra ina bhfuil an chuid is mó de na sínitheoirí as séalú bloic “ar a seal” an deacracht agus an bua is mó. + +## Veicteoirí ionsaí {#attack-vectors} + +### Sínitheoirí mailíseacha {#malicious-signers} + +D’fhéadfaí úsáideoir mailíseach a chur le liosta na sínitheoirí, nó d’fhéadfadh go gcuirfí eochair/meaisín sínithe i mbaol. I gcás den sórt sin ní mór don phrótacal a bheith in ann é féin a chosaint ar atheagrú agus ar thurscar. Is é an réiteach atá beartaithe ná, nuair a thugtar liosta de N sínitheoirí údaraithe, nach mbeidh aon sínitheoir ach ábalta 1 bhloc as gach K a bhreacadh. Cinntíonn sé seo go mbeidh na bailíochtóirí atá fágtha in ann an t-úsáideoir mailíseach a vótáil amach. + +### Cinsireacht {#censorship-attack} + +Veicteoir ionsaithe suimiúil eile is ea má dhéanann sínitheoir (nó grúpa sínitheoirí) iarracht cinsireacht ar bhloic a vótálann iad a bhaint den liosta údaraithe. Chun oibriú thart air seo, tá an mhinicíocht buailte a cheadaítear do na sínitheoirí teoranta do 1 as N/2. Cinntíonn sé seo go gcaithfidh sínitheoirí mailíseacha 51% ar a laghad de na cuntais sínithe a rialú, agus ag an bpointe sin is foinse nua fírinne don slabhra iad. + +### Turscar {#spam-attack} + +Veicteoir ionsaithe beag eile is ea sínitheoirí mailíseacha ag instealladh tograí vótála nua taobh istigh de gach bloc a bhualann siad. Ós rud é go gcaithfidh nóid na vótaí go léir a áireamh chun an liosta iarbhír de shínitheoirí údaraithe a chruthú, ní mór dóibh na vótaí go léir a thaifeadadh le himeacht ama. Gan teorainn a chur leis an bhfuinneog vótála, d’fhéadfadh sé seo fás go mall, gan teorainn fós. Is é an réiteach ná fuinneog _gluaiste_ de bhloic W a shuiteáil agus meastar na vótaí a bheith sean dá éis. _D'fhéadfadh 1-2 ré a bheith i bhfuinneog réasúnta._ + +### Bloic chomhthráthacha {#concurrent-blocks} + +I líonra PoA, Nuair a bhíonn N sínitheoirí údaraithe ann, tá cead ag gach sínitheoir 1 bhloc a bhreacadh as K, rud a chiallaíonn go gceadaítear do bhailíochtóirí N-K+1 bualadh ag aon phointe ama ar leith. Chun na bailíochtóirí seo a chosc ó rásaíocht le haghaidh bloic, ba cheart do gach sínitheoir "fritháireamh" beag randamach a chur leis an am a scaoileann sé bloc nua. Cé go gcinntíonn an próiseas seo go bhfuil foirc bheaga annamh, is féidir le foirc ócáideacha tarlú fós, díreach cosúil le mainnet. Má aimsítear go bhfuil sínitheoir ag mí-úsáid a chumhacht agus ag cruthú anoird, is féidir leis na sínitheoirí eile iad a vótáil amach. + +Más rud é, mar shampla, go bhfuil 10 sínitheoir údaraithe ann agus go gceadaítear do gach sínitheoir 1 bhloc as 20 a chruthú, ansin is féidir le 11 bailíochtóir bloic a chruthú ag aon am ar leith. Chun iad a chosc ó rásaíocht chun bloic a chruthú, cuireann gach sínitheoir "fritháireamh" randamach beag leis an am a scaoileann siad bloc nua. Laghdaíonn sé seo tarlú na bhforc beaga ach fós ceadaíonn sé foirc ó am go chéile, mar atá le feiceáil ar an Mainnet Ethereum. Má bhaineann sínitheoir mí-úsáid as a údarás agus má chruthaíonn sé anord, is féidir é a vótáil amach as an líonra. + +## Buntáistí agus míbhuntáistí {#pros-and-cons} + +| Buntáistí | Míbhuntáistí | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Níos inscálaithe ná meicníochtaí coitianta eile ar nós PoS agus PoW, toisc go bhfuil sé bunaithe ar líon teoranta sínitheoirí bloc | Is iondúil gur líon measartha beag nóid bhailíochtaithe a bhíonn ag líonraí PoA. Fágann sé sin go bhfuil líonra PoA níos láraithe. | +| Tá blocshlabhraí PoA thar a bheith saor le rith agus le cothabháil | De ghnáth ní féidir le gnáthdhuine a bheith ina shínitheoir údaraithe, toisc go n-éilíonn an blocshlabhra aonáin a bhfuil a gcáil seanbhunaithe. | +| Deimhnítear na hidirbhearta go han-tapa mar go bhféadfadh sé níos lú ná 1 soicind a bhaint amach toisc nach dteastaíonn ach líon teoranta sínitheoirí chun bloic nua a bhailíochtú | D’fhéadfadh sínitheoirí mailíseacha idirbhearta sa líonra a atheagrú, iad a chaitheamh faoi dhó, cinsireacht a dhéanamh, tá na hionsaithe sin maolaithe ach fós indéanta | + +## Tuilleadh léitheoireachta {#further-reading} + +- [EIP-225](https://eips.ethereum.org/EIPS/eip-225) _Caighdeán Clique_ +- [Staidéar ar Chruthúnas-Údaráis(https://github.com/cryptoeconomics-study/website/blob/master/docs/sync/2.4-lecture.md) _Cryptoeconomics_ +- [Cad is Cruthúnas Údaráis ann](https://forum.openzeppelin.com/t/proof-of-authority/3577) _OpenZeppelin_ +- [Míniú ar Cruthúnas Údaráis (https://academy.binance.com/en/articles/proof-of-authority-explained) _binance_ +- [PoA i mblocshlabhra](https://medium.com/techskill-brew/proof-of-authority-or-poa-in-blockchain-part-11-blockchain-series-be15b3321cba) +- [Clique mínithe](https://medium.com/@Destiner/clique-cross-client-proof-of-authority-algorithm-for-ethereum-8b2a135201d) +- [PoA dímholta, sonraíocht Aura](https://openethereum.github.io/Chain-specification) +- [IBFT 2.0, feidhmiú eile PoA](https://besu.hyperledger.org/stable/private-networks/concepts/poa) + +### An foghlaimeoir amhairc den chuid is mó tú? {#visual-learner} + +Breathnaigh ar mhíniú amhairc ar cruthúnas-údaráis: + + + +## Ábhair ghaolmhara {#related-topics} + +- [Cruthúnas-oibre](/developers/docs/consensus-mechanisms/pow/) +- [Cruthúnas-gill](/developers/docs/consensus-mechanisms/pos/) diff --git a/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/index.md new file mode 100644 index 00000000000..d9b0900bdc9 --- /dev/null +++ b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/index.md @@ -0,0 +1,109 @@ +--- +title: Cruthúnas-oibre (PoW) +description: Míniú ar an bprótacal comhdhearcaidh cruthúnas-oibre agus a ról i Ethereum. +lang: ga +--- + +Thosaigh líonra Ethereum trí leas a bhaint as meicníocht chomhdhearcaidh a raibh **[Cruthúnas-oibre (PoW)](/developers/docs/consensus-mechanisms/pow)** i gceist leis. Cheadaigh sé seo do nóid líonra Ethereum aontú ar staid na faisnéise go léir a taifeadadh ar an mblocshlabhra Ethereum agus chuir sé cosc ​​ar chineálacha áirithe ionsaithe eacnamaíocha. Ach mhúch Ethereum cruthúnas-oibre in 2022 agus thosaigh sé ag úsáid [cruthúnas-gill](/developers/docs/consensus-mechanisms/pos) ina ionad sin. + + + Tá an cruthúnas-oibre imithe i léig anois. Ní úsáideann Ethereum cruthúnas-oibre a thuilleadh mar chuid dá mheicníocht chomhdhearcaidh. Ina áit sin, úsáideann sé cruthúnas-gill. Léigh tuilleadh ar cruthúnas-gill agus geallchur. + + +## Réamhriachtanais {#prerequisites} + +Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar [idirbhearta](/developers/docs/transactions/) ar dtús, [bloic](/developers/docs/blocks/) a>, agus [meicníochtaí comhdhearcaidh](/developers/docs/consensus-mechanisms/). + +## Cad é Cruthúnas-oibre (PoW)? {#what-is-pow} + +Is é comhdhearcadh Nakamoto, a úsáideann cruthúnas-oibre, an mheicníocht a cheadaigh uair amháin don líonra díláraithe Ethereum teacht ar chomhdhearcadh (i.e. gach nód ar aon dearcadh) ar rudaí mar iarmhéideanna cuntais agus ord na n-idirbheart. Chuir sé seo cosc ​​​​ar úsáideoirí "caitheamh dúbailte" a dhéanamh ar a gcuid bonn a agus chinntigh sé go raibh sé thar a bheith deacair slabhra Ethereum a ionsaí nó a ionramháil. Tagann na hairíonna slándála seo anois ó cruthúnas-gill ag baint úsáide as an meicníocht chomhthoil ar a dtugtar [Gasper](/developers/docs/consensus-mechanisms/pos/gasper/). + +## Cruthúnas-oibre agus mianadóireacht {#pow-and-mining} + +Is é cruthúnas-oibre an t-algartam bunúsach a leagann síos an deacracht agus na rialacha don obair a dhéanann mianadóirí ar bhlocshlabhra cruthúnas-oibre. Is í an mhianadóireacht féin an "obair". Is é an gníomh é bloic bhailí a chur leis an slabhra. Tá sé seo tábhachtach mar go gcabhraíonn fad an slabhra leis an líonra forc ceart an blocshlabhra a leanúint. Dá mhéad "oibre" a dhéantar, is amhlaidh is faide an slabhra, agus dá airde an uimhir bhloic, is amhlaidh is cinnte gur féidir leis an líonra a bheith maidir le staid reatha na rudaí. + +[Níos mó ar mhianadóireacht](/developers/docs/consensus-mechanisms/pow/mining/) + +## Conas a d'oibrigh cruthúnas-oibre Ethereum? {#how-it-works} + +Déantar idirbhearta Ethereum a phróiseáil i mbloic. I gcruthúnas-oibre Ethereum atá dímheasta anois, bhí na nithe seo a leanas i ngach mbloc: + +- deacracht bloic - mar shampla: 3,324,092,183,262,715 +- mixHash - mar shampla: ` 0x44bca881b07a6a09f83b130798072441705d9a665c5ac8bdf2f39a3cdf3bee29` +- nonce – mar shampla: `0xd3ee432b4fb3d26b` + +Bhain na sonraí bloc seo go díreach le cruthúnas-oibre. + +### An obair i cruthúnas-oibre {#the-work} + +D'éiligh an prótacal cruthúnas-oibre, Ethash, ar mhianadóirí dul trí rás dian trialach agus earráide chun an nonce a aimsiú le haghaidh bloic. Ní fhéadfaí ach bloic le nonce bailí a chur leis an slabhra. + +Ag deifriú chun bloc a chruthú, chuir mianadóir tacar sonraí arís agus arís eile, nach bhféadfaí a fháil ach tríd an slabhra iomlán a íoslódáil agus a rith (mar a dhéanann mianadóir), trí fheidhm mhatamaitice. Baineadh úsáid as an tacar sonraí chun mixHash a ghiniúint faoi bhun sprice atá de réir deacracht an bhloic. Is trí thriail agus earráid is fearr é seo a dhéanamh. + +Chinn an deacracht an sprioc don hais. Dá ísle an sprioc, is lú an tacar haiseanna bailí. Nuair a gineadh é, bhí sé seo thar a bheith éasca do mhianadóirí agus do chliaint eile é seo a fhíorú. Fiú dá n-athródh idirbheart amháin, bheadh ​​an hais go hiomlán difriúil, ag comharthaíocht calaoise. + +Is furasta calaois a aimsiú le haiseáil. Ach bhí cruthúnas-oibre mar phróiseas ina bhac mór freisin ar ionsaí a dhéanamh ar an slabhra. + +### Cruthúnas-oibre agus slándáil {#security} + +Tugadh spreagadh do mhianadóirí an obair seo a dhéanamh ar phríomhshlabhra Ethereum. Ba bheag dreasacht a bhí ann d’fhothacar mianadóirí a slabhra féin a thosú—baineann sé an bonn den chóras. Tá blocshlabhraí ag brath ar staid amháin a bheith acu mar fhoinse fírinne. + +Ba é cuspóir chruthúnas-oibre an slabhra a leathnú. Bhí an slabhra is faide inchreidte mar shlabhra bailí toisc go raibh an obair is mó ríomhaireachtúla déanta chun é a ghiniúint. Laistigh de chóras PoW Ethereum, bhí sé beagnach dodhéanta bloic nua a chruthú a scriosann idirbhearta, a chruthaíonn cinn fhalsa, nó a dhéanann cothabháil ar an dara slabhra. Sin toisc go mbeadh gá ag mianadóir mailíseach an bloc a réiteach i gcónaí níos tapúla ná gach duine eile. + +Chun bloic go seasta atá mailíseach ach fós bailí, bheadh ​​níos mó ná 51% de chumhacht mianadóireachta an líonra ag teastáil ó mhianadóir mailíseach chun gach duine eile a shárú. Éilíonn an méid sin "oibre" go leor cumhachta ríomhaireachta costasach agus d'fhéadfadh an fuinneamh a chaitear fiú a bheith níos airde ná na gnóthachain a rinneadh in ionsaí. + +### Eacnamaíocht chruthúnas-oibre {#economics} + +Bhí cruthúnas-oibre freagrach freisin as airgeadra nua a eisiúint isteach sa chóras agus as mianadóirí a spreagadh chun an obair a dhéanamh. + +Ón [uasghrádú Constantinople](/history/#constantinople), bronnadh dhá ETH úrnua agus cuid de na táillí idirbhirt ar na mianadóirí ar éirigh leo bloc a chruthú. Rinne bloic Ommer cúiteamh 1.75 ETH freisin. Ba bloic bhailí iad bloic Ommer a chruthaigh mianadóir beagnach ag an am céanna agus a chruthaigh mianadóir eile an bloc canónach, a cinneadh ar deireadh thiar ag cibé slabhra a tógadh sa mhullach ar an gcéad cheann. Tharla bloic Ommer de ghnáth mar gheall ar aga folaigh líonra. + +## Críochnúlacht {#finality} + +Tá "críochnaitheacht" ag idirbheart ar Ethereum nuair atá sé mar chuid de bhloc nach féidir a athrú. + +Toisc gur oibrigh mianadóirí ar bhealach díláraithe, d'fhéadfaí dhá bhloc bhailí a mhianadóireacht ag an am céanna. Cruthaíonn sé seo forc sealadach. Faoi dheireadh, rinneadh slabhra glactha de cheann de na slabhraí seo tar éis mianadóireacht a dhéanamh ar na bloic ina dhiaidh sin agus iad a chur leis, rud a fhágann go bhfuil sé níos faide. + +Chun rudaí a dhéanamh níos casta fós, d’fhéadfadh sé nach mbeadh idirbhearta a diúltaíodh ar an bhforc sealadach curtha san áireamh sa slabhra glactha. Ciallaíonn sé seo go bhféadfaí é a aisiompú. Mar sin tagraíonn críochnaitheacht don am ar cheart duit fanacht sula mbreithneoidh tú idirbheart do-aisiompaithe. Faoin chruthúnas-oibre Ethereum roimhe seo, dá mhéad bloc a baineadh de bhreis ar bhloc ar leith `N`, ba mhó an mhuinín a bhí ann gur éirigh le hidirbhearta `N` agus nach bhféadfaí iad a fhilleadh. Anois, le cruthúnas-gill, is airí follasach seachas dóchúlach é airí bhloic. + +## Úsáid fuinnimh chruthúnas-oibre {#energy} + +Cáineadh mór ar cruthúnas-oibre is ea an méid aschuir fuinnimh a theastaíonn chun an líonra a choinneáil sábháilte. Chun slándáil agus dílárú a chothabháil, chaith Ethereum ar chruthúnas-oibre an-chuid fuinnimh. Go gairid sular aistrigh siad go cruthúnais, bhí mianadóirí Ethereum ag caitheamh le chéile thart ar 70 TWh/bl (thart ar an oiread céanna le Poblacht na Seice - de réir [digiconomist](https://digiconomist.net/) ar an 18-Iúil-2022). + +## Buntáistí agus míbhuntáistí {#pros-and-cons} + +| Buntáistí | Míbhuntáistí | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Tá cruthúnas-oibre neodrach. Níl ETH ag teastáil uait le tosú agus ligeann luach saothair bloc duit dul ó 0ETH go iarmhéid dhearfach. Le [cruthúnas-gill](/developers/docs/consensus-mechanisms/pos/) teastaíonn ETH uait ar dtús. | Úsáideann cruthúnas-oibre an oiread sin fuinnimh go bhfuil sé olc don chomhshaol. | +| Meicníocht chomhdhearcaidh thriail sheanbhunaithe is ea cruthúnas-oibre a choinnigh Bitcoin agus Ethereum slán agus díláraithe le blianta fada anuas. | Más mian leat tabhairt faoin mhianadóireacht, beidh trealamh chomh speisialaithe sin uait gur gá infheistíocht mhór le tosú. | +| I gcomparáid le cruthúnas-gill tá sé sách éasca a chur i bhfeidhm. | Mar gheall ar an ríomh méadaithe atá ag teastáil, d’fhéadfadh go mbeadh tionchar ag na linnte mianadóireachta ar an gcluiche mianadóireachta, rud a fhágfadh rioscaí láraithe agus slándála. | + +## I gcomparáid le cruthúnas-gill {#compared-to-pos} + +Ag leibhéal ard, tá an sprioc dheireanach chéanna ag cruthúnas-gill agus atá ag cruthúnas-oibre: cuidiú leis an líonra díláraithe teacht ar chomhdhearcadh go slán. Ach tá roinnt difríochtaí ann i bpróiseas agus pearsanra: + +- Athraíonn cruthúnas-gill an tábhacht a bhaineann le cumhacht ríomhaireachtúil le haghaidh ETH geallta. +- Glacann bailíochtóirí ionad na mianadóirí mar chruthúnas-gill. Cuireann bailíochtóirí a ETH i ngeall chun an cumas bloic nua a chruthú a ghníomhachtú. +- Ní théann bailíochtóirí san iomaíocht chun bloic a chruthú, ina ionad sin is go randamach a roghnaíonn algartam iad. +- Tá críochnúlacht níos soiléire: ag seicphointí áirithe, má aontaíonn 2/3 bhailíochtóir ar staid an bhloic meastar é a bheith críochnaitheach. Ní mór do bhailíochtóirí a ngeall ar fad a ghealladh air seo, mar sin má dhéanann siad iarracht claonpháirteachas níos déanaí, caillfidh siad a ngeall ar fad. + +[Tuilleadh faoi chruthúnas-gheallta](/developers/docs/consensus-mechanisms/pos/) + +## An foghlaimeoir amhairc den chuid is mó tú? {#visual-learner} + + + +## Further Reading {#further-reading} + +- [Ionsaí tromlaigh](https://en.bitcoin.it/wiki/Majority_attack) +- [Ar chríochnúlacht socraíochta](https://blog.ethereum.org/2016/05/09/on-settlement-finality/) + +### Físeáin {#videos} + +- [Míniú teicniúil ar phrótacail cruthúnas-oibre](https://youtu.be/9V1bipPkCTU) + +## Ábhair Ghaolmhara {#related-topics} + +- [Mianadóireacht](/developers/docs/consensus-mechanisms/pow/mining/) +- [Cruthúnas-de-geall](/developers/docs/consensus-mechanisms/pos/) +- [Cruthúnas-údaráis](/developers/docs/consensus-mechanisms/poa/) diff --git a/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/index.md new file mode 100644 index 00000000000..cfd8cfb9fff --- /dev/null +++ b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/index.md @@ -0,0 +1,81 @@ +--- +title: Mianadóireacht +description: Míniú ar conas a d'oibrigh mianadóireachta ar Ethereum. +lang: ga +--- + + +Níl cruthúnas-oibre mar bhunús le meicníocht chomhdhearcaidh Ethereum a thuilleadh, rud a chiallaíonn go bhfuil an mhianadóireacht múchta. Ina áit sin, tá Ethereum urraithe ag bailíochtóirí a bhfuil ETH i ngeall acu. Is féidir leat tosú ag geallchur do chuid ETH inniu. Léigh tuilleadh ar An Cumasc, cruthúnas-gill, agus geallchur. Leathanach le spéis stairiúil é seo. + + +## Réamhriachtanais {#prerequisites} + +Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar [idirbhearta](/developers/docs/transactions/) ar dtús, [bloic](/developers/docs/blocks/) a> agus [cruthúnas-oibre](/developers/docs/consensus-mechanisms/pow/). + +## Cad é mianadóireacht Ethereum? {#what-is-ethereum-mining} + +Is éard atá i gceist le mianadóireacht ná an próiseas a bhaineann le bloc idirbheart a chruthú atá le cur leis an blocshlabhra Ethereum in ailtireacht cruthúnas-oibre Ethereum nach bhfuil réamhmheasta anois. + +Eascraíonn an focal mianadóireacht i gcomhthéacs an analaí óir do criptea-airgeadraí. Tá ór nó miotail lómhara gann, agus comharthaí digiteacha freisin, agus is é an t-aon bhealach é chun an méid iomlán i gcóras cruthúnas-oibre a mhéadú trí mhianadóireacht. I Ethereum cruthúnais-oibre, ba í an mhianadóireacht an t-aon mhodh eisiúna. Murab ionann agus ór nó miotail lómhara, áfach, ba é mianadóireacht Ethereum an bealach chun an líonra a dhaingniú trí bhlocanna a chruthú, a fhíorú, a fhoilsiú agus a iomadú sa blocshlabhra. + +Mianadóireacht Éitir = An Líonra a Dhaingniú + +Is é an mhianadóireacht croí aon blocshlabhra cruthúnas-oibre. D'úsáid mianadóirí Ethereum - ríomhairí a bhí ag rith bogearraí - a gcuid ama agus a gcumhacht ríomha chun idirbhearta a phróiseáil agus bloic a tháirgeadh roimh an aistriú chuig cruthúnas-oibre. + +## Cén fáth a bhfuil mianadóirí ann? {#why-do-miners-exist} + +I gcórais díláraithe cosúil le Ethereum, ní mór dúinn a chinntiú go n-aontaíonn gach duine ar ord na n-idirbheart. Chuidigh na mianadóirí leis seo trí thomhais a bhí deacair go ríomhaireachtúil a réiteach chun bloic a tháirgeadh, chun an líonra a dhaingniú ó ionsaithe. + +[Tuilleadh faoi chruthúnas-oibre](/developers/docs/consensus-mechanisms/pow/) + +Bhí duine ar bith roimhe seo in ann mianadóireacht a dhéanamh ar líonra Ethereum le ríomhaire. Mar sin féin, ní fhéadfadh gach duine éitear (ETH) a mhianadóireacht go brabúsach. I bhformhór na gcásanna, bhí ar na mianadóirí crua-earraí tiomnaithe ríomhaireachta a cheannach, agus rochtain a bheith acu ar fhoinsí fuinnimh neamhchostasach. Ní dócha go dtuillfeadh an gnáthríomhaire go leor luach saothair bloc chun na costais ghaolmhara a bhaineann le mianadóireacht a chlúdach. + +### Costas na mianadóireachta {#cost-of-mining} + +- Costais fhéideartha na gcrua-earraí is gá chun rige mianadóireachta a thógáil agus a chothabháil +- Costas leictreach an rige mianadóireachta a thiomáint +- Má bhí tú ag mianadóireacht i linn, is gnách go ngearrann na linnte seo táille chomhréidh % de gach bloc a ghineann an linn +- Costas féideartha trealaimh chun tacú le rige mianadóireachta (aeráil, monatóireacht fuinnimh, sreangú leictreach, etc.) + +Chun brabúsacht mhianadóireachta a iniúchadh tuilleadh, bain úsáid as áireamhán mianadóireachta, mar an ceann a sholáthraíonn [Etherscan](https://etherscan.io/ether-mining-calculator). + +## Conas a rinneadh mianadóireacht ar idirbhearta Ethereum {#how-ethereum-transactions-were-mined} + +Tugann an méid seo a leanas forbhreathnú ar an gcaoi a ndearnadh idirbhearta a bhaint amach i gcruthúnas-oibre Ethereum. Is féidir cur síos analógach ar an bpróiseas seo do cruthúnas-gill Ethereum a fháil [anseo](/developers/docs/consensus-mechanisms/pos/#transaction-execution-ethereum-pos). + +1. Scríobhann agus síníonn úsáideoir iarratas [idirbheart](/developers/docs/transactions/) le heochair phríobháideach [chuntais](/developers/docs/accounts/) éigin. +2. Craolann an t-úsáideoir an t-iarratas idirbheart chuig líonra iomlán Ethereum ó roinnt [nód](/developers/docs/nodes-and-clients/). +3. Nuair a chloiseann siad faoin iarratas ar idirbheart nua, cuireann gach nód i líonra Ethereum an t-iarratas chuig a mempool áitiúil, liosta de na hiarratais uile ar idirbhirt a chuala siad faoi nach bhfuil geallta fós don blocshlabhra i mbloc. +4. Ag pointe éigin, comhiomlánaíonn nód mianadóireachta roinnt dosaen nó céadta iarratas idirbhirt ina [mbloc](/developers/docs/blocks/) féideartha, ar bhealach a uasmhéadaíonn an [táillí idirbhirt](/developers/docs/gas/) a thuilleann siad fad a fhanann siad faoin teorainn bhlocgháis. Déanann an nód mianadóireachta ansin: + 1. Fíoraíonn sé bailíocht gach iarratas idirbhirt (i.e. níl aon duine ag iarraidh éitear a aistriú amach as cuntas nár tháirg siad síniú dó, níl an t-iarratas míchumtha, etc.), agus ansin déanann sé cód an iarratais a fhorghníomhú, ag athrú an staid a gcóip áitiúil den EVM. Bronnann an mianadóir táille idirbhirt gach iarratas idirbhirt dá leithéid ar a chuntas féin. + 2. Cuirtear tús leis an bpróiseas chun an “deimhniú dlisteanachta” cruthúnas-oibre a tháirgeadh don bhloc féideartha, a luaithe a bheidh gach iarratas idirbhirt sa bhloc fíoraithe agus curtha i gcrích ar an gcóip EVM áitiúil. +5. Faoi dheireadh, críochnóidh mianadóir deimhniú a tháirgeadh le haghaidh bloc a chuimsíonn ár n-iarratas idirbhirt sonrach. Ansin craolann an mianadóir an bloc críochnaithe, lena n-áirítear an deimhniú agus seic ar an stát EVM nua a éilítear. +6. Cluineann nóid eile faoin mbloc nua. Deimhníonn siad an deimhniú, déanann siad gach idirbheart ar an mbloc iad féin (lena n-áirítear an t-idirbheart a chraol ár n-úsáideoir ar dtús), agus deimhníonn siad go bhfuil suim sheiceála a staid EVM nua tar éis na hidirbhearta go léir a chur i gcrích ag teacht le suim sheiceála na staide arna éileamh ag bloc an mhianadóir. Is ansin amháin a dhéanann na nóid seo an bloc seo a cheangal le heireaball a mblocshlabhra, agus glacadh leis an staid EVM nua mar an staid chanónach. +7. Baineann gach nód gach idirbheart sa bhloc nua óna mempool áitiúil d’iarratais idirbheart nár comhlíonadh. +8. Íoslódálann nóid nua a iontrálann an líonra na bloic go léir in ord, lena n-áirítear an bloc ina bhfuil ár n-idirbheart leasa. Túsaíonn siad cóip EVM áitiúil (a thosaíonn mar EVM stát bán), agus ansin téann siad tríd an bpróiseas chun gach idirbheart a dhéanamh i ngach bloc ar bharr a gcóip EVM áitiúil, ag fíorú seiceálacha staide ag gach bloc feadh na slí. + +Déantar gach idirbheart a chinneadh (áirithe i mbloc nua agus iomadaithe den chéad uair) uair amháin, ach déantar é a rith agus a fhíorú ag gach rannpháirtí sa phróiseas chun an staid chanónach EVM a chur chun cinn. Aibhsíonn sé seo ceann de mhantraí lárnacha an bhlocshlabhra: **Ná cuir muinín, fíoraigh**. + +## Bloic ommer (uncail) {#ommer-blocks} + +Bhí mianadóireacht bloc ar cruthúnas-oibre dóchúlaíoch, rud a chiallaíonn uaireanta gur foilsíodh dhá bhloc bhailí go comhuaineach mar gheall ar aga folaigh líonra. Sa chás seo, bhí ar an bprótacal an slabhra is faide (agus dá bhrí sin is "bailí") a chinneadh agus cothroime i dtreo na mianadóirí a chinntiú trí luach saothair a thabhairt don bhloc bailí neamháirithe atá beartaithe. Spreag sé seo dílárú breise ar an líonra mar go bhféadfadh mianadóirí níos lú, a d’fhéadfadh a bheith níos foighní, tuairisceáin a ghiniúint trí luach saothair bloc[ommer](/glossary/#ommer). + +Is é an téarma "ommer" an téarma is fearr inscne-neodrach le haghaidh deartháir nó deirfiúr bloc tuismitheora, ach uaireanta tugtar "uncail" air seo freisin. **Ó aistriú Ethereum chuig cruthúnais-gill, ní bhaintear bloic ommer a thuilleadh** toisc nach dtoghtar ach moltóir amháin i ngach sliotán. Is féidir leat an t-athrú seo a fheiceáil ach féachaint ar [chairt stairiúil](https://ycharts.com/indicators/ethereum_uncle_rate) de na bloic ommer a ndearnadh mianadóireacht orthu. + +## Léiriú físe {#a-visual-demo} + +Lig d'Austin tú a threorú tríd an mhianadóireacht agus an blocshlabhra cruthúnas-oibre. + + + +## An t-algartam mianadóireachta {#mining-algorithm} + +Níor úsáid Ethereum Mainnet ach algartam mianadóireachta amháin riamh - ['Ethash'](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/). Tháinig Ethash i gcomharbacht ar bhunalgartam T&F ar a dtugtar ['Dagger-Hashimoto'](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/). + +[Tuilleadh faoi algartaim mhianadóireachta](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/). + +## Ábhair ghaolmhara {#related-topics} + +- [Gás](/developers/docs/gas/) +- [EVM](/developers/docs/evm/) +- [Cruthúnas-ar-obair](/developers/docs/consensus-mechanisms/pow/) diff --git a/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md new file mode 100644 index 00000000000..69185dddb85 --- /dev/null +++ b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md @@ -0,0 +1,334 @@ +--- +title: Dagger-Hashimoto +description: Súil mhionsonraithe ar algartam Dagger-Hashimoto. +lang: ga +--- + +Ba é Dagger-Hashimoto an cur i bhfeidhm taighde agus an tsonraíocht bhunaidh le haghaidh algartam mianadóireachta Ethereum. Ghlac [Ethash](#ethash) ionad Dagger-Hashimoto. Múchadh an mhianadóireacht go hiomlán ag [An Cumasc](/roadmap/merge/) ar 15ú Meán Fómhair 2022. Ó shin i leith, tá Ethereum daingnithe le meicníocht [cruthúnas-gill](/developers/docs/consensus-mechanisms/pos) ina ionad sin. Baineann an leathanach seo leis an stair - níl an fhaisnéis anseo ábhartha a thuilleadh le haghaidh Ethereum iar-Chumaisc. + +## Réamhriachtanais {#prerequisites} + +Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar dtús ar [cruthúnas-oibre comhdhearcaidh](/developers/docs/consensus-mechanisms/pow), [mianadóireacht](/developers/docs/consensus-mechanisms/pow/mining), agus [algartaim mhianadóireachta](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms). + +## Dagger-Hashimoto {#dagger-hashimoto} + +Tá sé mar aidhm ag Dagger-Hashimoto dhá sprioc a shásamh: + +1. **friotaíocht-ASIC**: ba cheart go mbeadh an tairbhe as crua-earraí speisialaithe a chruthú don algartam chomh beag agus is féidir +2. **Infhíoraitheacht chliant éadrom**: ba cheart go mbeadh bloc infhíoraithe go héifeachtach ag cliant éadrom. + +Le modhnú breise, sonraímid freisin conas an tríú sprioc a chomhlíonadh más mian linn, ach ar chostas castachta breise: + +**Stóráil slabhra iomláin**: ba cheart go n-éileodh mianadóireacht staid iomlán na mbloc slabhra a stóráil (mar gheall ar struchtúr neamhrialta de chuid trie stáit Ethereum, measaimid go mbeifear in ann roinnt prúnála a dhéanamh, go háirithe roinnt conarthaí a úsáidtear go minic, ach ba mhaith linn é sin a íoslaghdú). + +## Giniúint DAG {#dag-generation} + +Déanfar an cód don algartam a shainiú in Python thíos. Ar dtús, tugaimid `encode_int` chun ionracha neamhshínithe de chruinneas sonraithe a chomhordú chuig teaghráin. Tugtar a inbhéartach freisin: + +```python +NUM_BITS = 512 + +def encode_int(x): + "Encode an integer x as a string of 64 characters using a big-endian scheme" + o = '' + for _ in range(NUM_BITS / 8): + o = chr(x % 256) + o + x //= 256 + return o + +def decode_int(s): + "Unencode an integer x from a string using a big-endian scheme" + x = 0 + for c in s: + x *= 256 + x += ord(c) + return x +``` + +Glacaimid leis gur feidhm é `sha3` a ghlacann slánuimhir agus a aschuireann slánuimhir, agus gur feidhm dbl-sha3 é `dbl_sha3`; má dhéantar an cód tagartha seo a thiontú ina úsáid feidhmithe: + +```python +from pyethereum import utils +def sha3(x): + if isinstance(x, (int, long)): + x = encode_int(x) + return decode_int(utils.sha3(x)) + +def dbl_sha3(x): + if isinstance(x, (int, long)): + x = encode_int(x) + return decode_int(utils.sha3(utils.sha3(x))) +``` + +### Paraiméadair {#parameters} + +Is iad seo a leanas na paraiméadair a úsáidtear don algartam: + +```python +SAFE_PRIME_512 = 2**512 - 38117 # Largest Safe Prime less than 2**512 + +params = { + "n": 4000055296 * 8 // NUM_BITS, # Size of the dataset (4 Gigabytes); MUST BE MULTIPLE OF 65536 + "n_inc": 65536, # Increment in value of n per period; MUST BE MULTIPLE OF 65536 + # with epochtime=20000 gives 882 MB growth per year + "cache_size": 2500, # Size of the light client's cache (can be chosen by light + # client; not part of the algo spec) + "diff": 2**14, # Difficulty (adjusted during block evaluation) + "epochtime": 100000, # Length of an epoch in blocks (how often the dataset is updated) + "k": 1, # Number of parents of a node + "w": w, # Used for modular exponentiation hashing + "accesses": 200, # Number of dataset accesses during hashimoto + "P": SAFE_PRIME_512 # Safe Prime for hashing and random number generation +} +``` + +Roghnaítear `P` sa chás seo sa chás seo go bhfuil uimhir phríomha`log₂(P)` beagán níos lú ná 512, a fhreagraíonn do na 512 giotán a bhí in úsáid againn chun ár n-uimhreacha a léiriú. Tabhair faoi deara nach gá ach an dara leath den DAG a stóráil, mar sin tosaíonn an riachtanas RAM de-facto ag 1 GB agus fásann sé 441 MB in aghaidh na bliana. + +### Tógáil graf Dagger {#dagger-graph-building} + +Sainmhínítear an foirgneamh bunghraf Dagger mar a leanas: + +```python +def produce_dag(params, seed, length): + P = params["P"] + picker = init = pow(sha3(seed), params["w"], P) + o = [init] + for i in range(1, length): + x = picker = (picker * init) % P + for _ in range(params["k"]): + x ^= o[x % i] + o.append(pow(x, params["w"], P)) + return o +``` + +Go bunúsach, tosaíonn sé le graf mar nód singil, `sha3(seed)`, agus as sin tosaíonn sé ag cur nóid eile leis go seicheamhach bunaithe ar nóid randamacha roimhe sin. Nuair a chruthaítear nód nua, ríomhtar cumhacht mhodúlach an tsíl chun roinnt innéacsanna níos lú ná `i` a roghnú go randamach (ag úsáid `x % i` thuas), agus úsáidtear luachanna an tsíl ag na hinnéacsanna sin i ríomh chun luach nua a ghiniúint do `x`, a chuirtear isteach ansin i bhfeidhm bheag cruthúnais oibre (bunaithe ar XOR) chun luach an ghraif a ghiniúint ar deireadh thiar ag innéacs `i`. Is é an réasúnaíocht atá taobh thiar den dearadh áirithe seo ná rochtain sheicheamhach ar an DAG a bhrú; ní féidir an chéad luach eile den DAG a fhaightear rochtain air a chinneadh go dtí go mbeidh an luach reatha ar eolas. Ar deireadh, déanann easpónantúchán modúlach breis haiseála ar an toradh. + +Braitheann an t-algartam seo ar roinnt torthaí ó theoiric uimhreach. Pléitear é seo san aguisín thíos. + +## Meastóireacht chliant éadrom {#light-client-evaluation} + +Tá sé beartaithe ag tógáil an ghraif thuas ligean do gach nód sa ghraf a athchruthú trí fho-chrann de líon beag nód a ríomh agus gan ach méid beag de chuimhne chúnta a cheangal. Tabhair faoi deara le k=1, nach bhfuil san fho-chrann ach slabhra luachanna a théann suas go dtí an chéad eilimint sa DAG. + +Feidhmíonn feidhm ríomhaireachta éadrom an chliaint don DAG mar a leanas: + +```python +def quick_calc(params, seed, p): + w, P = params["w"], params["P"] + cache = {} + + def quick_calc_cached(p): + if p in cache: + pass + elif p == 0: + cache[p] = pow(sha3(seed), w, P) + else: + x = pow(sha3(seed), (p + 1) * w, P) + for _ in range(params["k"]): + x ^= quick_calc_cached(x % p) + cache[p] = pow(x, w, P) + return cache[p] + + return quick_calc_cached(p) +``` + +Go bunúsach, níl ann ach athscríobh ar an algartam thuas a bhainann an lúb de ríomh na luachanna don DAG ar fad agus a chuireann glao athchúrsach nó cuardach taisce in ionad an chuardach nód níos luaithe. Tabhair faoi deara nach gá taisce do `k=1`, cé go ndéanann optamú réamhríomh ar an gcéad chúpla míle luach den DAG agus coimeádann sé sin mar thaisce statach le haghaidh ríomhanna; féach an aguisín le haghaidh cur i bhfeidhm cód seo. + +## Maolán dúbailte DAG {#double-buffer} + +I gcliant iomlán, úsáidtear [_maolán dúbailte_](https://wikipedia.org/wiki/Multiple_buffering) de 2 DAG arna dtáirgeadh ag an bhfoirmle thuas. Is é an smaoineamh go dtáirgtear DAG gach `amré` líon bloc de réir na bparaiméadar thuas. In ionad an chliaint a úsáideann an DAG is déanaí a tháirgtear, úsáideann sé an ceann roimhe seo. Is é an buntáiste a bhaineann leis seo ná go gceadaíonn sé athsholáthar DAG le himeacht ama gan gá le céim a thabhairt isteach ina gcaithfidh mianadóirí na sonraí go léir a athríomh go tobann. Seachas sin, d’fhéadfadh moilliú tobann sealadach i bpróiseáil slabhra a bheith ann go tráthrialta a dhéanfadh méadú as cuimse ar lárú. Mar sin bíonn rioscaí ionsaí 51% ann a athríomh laistigh de chúpla nóiméad sula ndéantar athríomh ar na sonraí go léir. + +Seo a leanas an t-algartam a úsáidtear chun an tacar DAG a úsáidtear chun an obair a ríomh do bhloc: + +```python +def get_prevhash(n): + from pyethereum.blocks import GENESIS_PREVHASH + from pyethereum import chain_manager + if n <= 0: + return hash_to_int(GENESIS_PREVHASH) + else: + prevhash = chain_manager.index.get_block_by_number(n - 1) + return decode_int(prevhash) + +def get_seedset(params, block): + seedset = {} + seedset["back_number"] = block.number - (block.number % params["epochtime"]) + seedset["back_hash"] = get_prevhash(seedset["back_number"]) + seedset["front_number"] = max(seedset["back_number"] - params["epochtime"], 0) + seedset["front_hash"] = get_prevhash(seedset["front_number"]) + return seedset + +def get_dagsize(params, block): + return params["n"] + (block.number // params["epochtime"]) * params["n_inc"] + +def get_daggerset(params, block): + dagsz = get_dagsize(params, block) + seedset = get_seedset(params, block) + if seedset["front_hash"] <= 0: + # No back buffer is possible, just make front buffer + return {"front": {"dag": produce_dag(params, seedset["front_hash"], dagsz), + "block_number": 0}} + else: + return {"front": {"dag": produce_dag(params, seedset["front_hash"], dagsz), + "block_number": seedset["front_number"]}, + "back": {"dag": produce_dag(params, seedset["back_hash"], dagsz), + "block_number": seedset["back_number"]}} +``` + +## Hashimoto {#hashimoto} + +Is é an smaoineamh atá taobh thiar den Hashimoto bunaidh ná an blocshlabhra a úsáid mar thacar sonraí, ag déanamh ríomha a roghnaíonn innéacsanna N ón mblocshlabhra, a bhailíonn na hidirbhearta ag na hinnéacsanna sin, a fheidhmíonn XOR de na sonraí seo, agus a sheolann hais an toraidh ar ais. Seo a leanas bunalgartam Thaddeus Dryja, a aistríodh go Python ar mhaithe le comhsheasmhacht: + +```python +def orig_hashimoto(prev_hash, merkle_root, list_of_transactions, nonce): + hash_output_A = sha256(prev_hash + merkle_root + nonce) + txid_mix = 0 + for i in range(64): + shifted_A = hash_output_A >> i + transaction = shifted_A % len(list_of_transactions) + txid_mix ^= list_of_transactions[transaction] << i + return txid_mix ^ (nonce << 192) +``` + +Ar an drochuair, cé go meastar Hashimoto a bheith RAM-crua, braitheann sé ar uimhríocht 256-giotán, a bhfuil forchostais ríomhaireachtúla suntasacha aige. Mar sin féin, ní úsáideann Dagger-Hashimoto ach na 64 giotán is lú suntais nuair a bhíonn a thacar sonraí á innéacsú chun aghaidh a thabhairt ar an tsaincheist seo. + +```python +def hashimoto(dag, dagsize, params, header, nonce): + m = dagsize / 2 + mix = sha3(encode_int(nonce) + header) + for _ in range(params["accesses"]): + mix ^= dag[m + (mix % 2**64) % m] + return dbl_sha3(mix) +``` + +Trí úsáid a bhaint as SHA3 dúbailte ceadaítear cineál réamhfhíorú dífhianaise beagnach láithreach, a fhíoraíonn gur soláthraíodh luach idirmheánach ceart. Tá an ciseal seachtrach cruthúnas-oibre seo an-chairdiúil do ASIC agus measartha lag, ach tá sé ann chun DDoS a dhéanamh níos deacra fós ós rud é go gcaithfear méid beag oibre a dhéanamh chun bloc a tháirgeadh nach ndiúltófar láithreach. Seo é an leagan cliaint éadrom: + +```python +def quick_hashimoto(seed, dagsize, params, header, nonce): + m = dagsize // 2 + mix = sha3(nonce + header) + for _ in range(params["accesses"]): + mix ^= quick_calc(params, seed, m + (mix % 2**64) % m) + return dbl_sha3(mix) +``` + +## Mianadóireacht agus fíorú {#mining-and-verifying} + +Anois, cuirimis é go léir le chéile san algartam mianadóireachta: + +```python +def mine(daggerset, params, block): + from random import randint + nonce = randint(0, 2**64) + while 1: + result = hashimoto(daggerset, get_dagsize(params, block), + params, decode_int(block.prevhash), nonce) + if result * params["diff"] < 2**256: + break + nonce += 1 + if nonce >= 2**64: + nonce = 0 + return nonce +``` + +Seo é an t-algartam fíoraithe: + +```python +def verify(daggerset, params, block, nonce): + result = hashimoto(daggerset, get_dagsize(params, block), + params, decode_int(block.prevhash), nonce) + return result * params["diff"] < 2**256 +``` + +Fíorú cairdiúil don chliant éadrom: + +```python +def light_verify(params, header, nonce): + seedset = get_seedset(params, block) + result = quick_hashimoto(seedset["front_hash"], get_dagsize(params, block), + params, decode_int(block.prevhash), nonce) + return result * params["diff"] < 2**256 +``` + +Chomh maith leis sin, tabhair faoi deara go gcuireann Dagger-Hashimoto ceanglais bhreise ar an gceannteideal bloc: + +- Chun go n-oibreoidh fíorú dhá chiseal, ní mór go mbeadh an nonce agus an luach lár réamh-sha3 ag ceannteideal bloc +- Ní mór don bhloc-cheanntásc sha3 an tacar síolta reatha a stóráil in áit éigin + +## Tuilleadh léitheoireachta {#further-reading} + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +## Aguisín {#appendix} + +Mar a luadh thuas, braitheann an RNG a úsáidtear le haghaidh ghiniúint DAG ar thorthaí áirithe ó theoiric uimhreacha. Sa chéad áit, dearbhaímid go bhfuil tréimhse leathan ag an Lehmer RNG atá mar bhunús leis an athróg ` roghnóir`. Sa dara háit, léirímid nach ndéanfaidh `pow(x,3,P)` `x`mapáil go `1` nó `P-1` chuir ` x ∈ [2,P-2]` ar fáil chun tosú. Ar deireadh, léirímid go bhfuil ráta imbhuailte íseal ag `pow(x,3,P)` nuair a chaitear leis mar fheidhm haiseála. + +### Gineadóir uimhreacha randamacha Lehmer {#lehmer-random-number} + +Cé nach gá don fheidhm `product_dag` uimhreacha randamacha neamhchlaonta a tháirgeadh, ní thógfadh bagairt ionchasach `síol** i % P` ach dornán luachanna. D'fhéadfadh sé seo buntáiste a thabhairt do mhianadóirí agus an patrún á aithint acu ó na cinn nach ndéanann. + +Chun é seo a sheachaint, iarrtar toradh ó theoiric uimhreacha. Sainmhínítear [_Safe Prime_](https://en.wikipedia.org/wiki/Safe_prime) mar phríomh ` P` ionas go bhfuil `(P-1)/2` príomha freisin. _Ordú_ de bhall `x` den [grúpa iolraíoch](https://en.wikipedia.org/wiki/Multiplicative_group_of_integers_modulo_n) Sainmhínítear `ℤ/nℤ` mar an `m` íosta sa chaoi is go
xᵐ mod P ≡ 1
+I bhfianaise na sainmhínithe seo, tá: + +> Barúil 1. Bíodh `x` mar bhall den ghrúpa iolraíoch `ℤ/Pℤ` le haghaidh príomh `P` sábháilte. Má tá `x mod P ≠ 1 mod P` agus `x mod P ≠ P-1 mod P`, ansin is é an t-ord `x` ná ` P-1` nó `(P-1)/2`. + +_Cruthúnas_. Ós rud é go bhfuil `P` ina phríomhuimhir shábháilte, ansin faoi \[Teoirim Lagrange\]\[lagrange\] is é an t-ord ar `x` ná `1`, `2`, `(P-1)/2`, nó `P-1`. + +Ní féidir `1` a bheith san ord `x`, mar de réir Teoirim Bheag Fermat tá: + +
xP-1 mod P ≡ 1
+ +Mar sin caithfidh `x` a bheith ina aitheantas iolraíoch de `ℤ/nℤ`, atá uathúil. Ós rud é gur ghlacamar leis go bhfuil `x ≠ 1` trí thoimhde, ní féidir é seo a dhéanamh. + +Ní féidir `2` a bheith san ord `x` mura `x = P-1`, mar sháródh sé seo gurb é `P` an phríomhuimhir. + +Ón tairiscint thuas, is féidir linn a aithint go mbeidh fad timthriall de `(P-1)/2` ar a laghad ag `(picker * init) % P`. Tá sé seo amhlaidh toisc gur roghnaigh muid `P` le bheith ina phríomhuimhir shábháilte cothrom le cumhacht níos airde de dhá cheann, agus tá `init` san eatramh `[2,2** 256+1]`. I bhfianaise mhéid `P`, níor cheart dúinn a bheith ag súil le timthriall ó easpónantúchán modúlach. + +Agus an chéad chill á sannadh againn sa DAG (an athróg lipéadaithe `init`), ríomhaimid ` pow(sha3(sed) + 2, 3, P)`. Ar an gcéad amharc, ní ráthaíonn sé seo nach `1` ná `P-1` an toradh. Mar sin féin, ós rud é gur príomhuimhir shábháilte é `P-1`, tá an dearbhú breise seo a leanas againn, arb é atoradh bharúil 1 é: + +> Barúil 2. Bíodh `x` i do bhall den ghrúpa iolraíoch `ℤ/Pℤ` le haghaidh príomhuimhreacha sábháilte `P`, agus bíodh `w` ina uimhir nádúrtha. Má tá `x mod P ≠ 1 mod P` agus `x mod P ≠ P-1 mod P`, chomh maith le `w mod P ≠ P-1 mod P` cód> agus `w mod P ≠ 0 mod P`, ansin `xʷ mod P ≠ 1 mod P` agus `xʷ mod P ≠ P-1 mod P` + +### Léiriú modúlach mar fheidhm hais {#modular-exponentiation} + +I gcás luachanna áirithe `P` agus `w`, d’fhéadfadh go leor imbhuailtí a bheith ag an bhfeidhm `pow(x, w, P)`. Mar shampla, ní ghlacann `pow(x,9,19)` ach le luachanna `{1,18}`. + +Ós rud é go bhfuil `P` príomhúil, is féidir `w` oiriúnach d'fheidhm haiseála easpónantúcháin modúlach a roghnú leis an toradh seo a leanas: + +> Barúil 3. Bíodh `P` ina phríomhuimhir; Tá `w` agus `P-1` réasúnta príomha nuair amháin atá sé do gach `a` agus `b` i `ℤ /Pℤ`: +> +>
+> `aʷ mod P ≡ bʷ mod P` más rud é agus amháin má tá `a mod P ≡ b mod P` +>
+ +Mar sin, ós rud é go bhfuil `P` príomhúil agus go bhfuil `w` sách príomhúil do `P-1`, tá an ` sin againn |{pow(x, w, P): x ∈ ℤ}| = P`, rud a thugann le tuiscint go bhfuil an ráta imbhuailte íosta is féidir ag an bhfeidhm haiseála. + +Sa chás speisialta go bhfuil `P` ina phríomhuimhir shábháilte mar atá roghnaithe againn, ansin níl ag `P-1` ach fachtóirí 1, 2, `(P-1)/2 ` agus `P-1`. Ós rud é `P` > 7, tá a fhios againn go bhfuil 3 sách príomhúil do `P-1`, mar sin sásaíonn `w=3` an tairiscint thuas. + +## Algartam meastóireachta níos éifeachtaí bunaithe ar thaisce {#cache-based-evaluation} + +```python +def quick_calc(params, seed, p): + cache = produce_dag(params, seed, params["cache_size"]) + return quick_calc_cached(cache, params, p) + +def quick_calc_cached(cache, params, p): + P = params["P"] + if p < len(cache): + return cache[p] + else: + x = pow(cache[0], p + 1, P) + for _ in range(params["k"]): + x ^= quick_calc_cached(cache, params, x % p) + return pow(x, params["w"], P) + +def quick_hashimoto(seed, dagsize, params, header, nonce): + cache = produce_dag(params, seed, params["cache_size"]) + return quick_hashimoto_cached(cache, dagsize, params, header, nonce) + +def quick_hashimoto_cached(cache, dagsize, params, header, nonce): + m = dagsize // 2 + mask = 2**64 - 1 + mix = sha3(encode_int(nonce) + header) + for _ in range(params["accesses"]): + mix ^= quick_calc_cached(cache, params, m + (mix & mask) % m) + return dbl_sha3(mix) +``` diff --git a/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md new file mode 100644 index 00000000000..ff6e4e62b33 --- /dev/null +++ b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md @@ -0,0 +1,1014 @@ +--- +title: Ethash +description: Súil mhionsonraithe ar algartam Ethash. +lang: ga +--- + + + Ba é Ethash algartam mianadóireachta cruthúnas-oibre Ethereum. Tá cruthúnas-de-oibre **múchta go hiomlán** anois agus tá Ethereum daingnithe anois ag baint úsáide as cruthúnas-de-gealláil ina ionad sin. Léigh tuilleadh ar An Cumasc, cruthúnas-gill agus geallchur. Leathanach le spéis stairiúil é seo! + + +Is leagan modhnaithe é [Ethash](https://github.com/ethereum/wiki/wiki/Ethash) den algartam [Dagger-Hashimoto](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto). Tá [cruthú cuimhne](https://wikipedia.org/wiki/Memory-hard_function) ar cruthúnas-oibre Ethash, rud a measadh a fhágann go bhfuil an algartam frithsheasmhach in ASIC. Forbraíodh ASICanna Ethash sa deireadh ach bhí mianadóireacht GPU fós ina rogha inmharthana go dtí gur múchadh cruthúnas-oibre. Úsáidtear Ethash fós do mhianadóireacht bonn ar líonraí eile nach bhfuil ar chruthúnas-oibre Ethereum. + +## Conas a oibríonn Ethash? {#how-does-ethash-work} + +Baintear cruas cuimhne amach le algartam cruthúnas oibre a éilíonn fo-thacair d'acmhainn sheasta a roghnú ag brath ar an gceannteideal nonce agus bloc. Tugtar DAG ar an acmhainn seo (cúpla gigibheart i méid). Athraítear an DAG gach 30000 bloc, fuinneog ~125 uair ar a dtugtar ré (thart ar 5.2 lá) agus tógann sé tamall le giniúint. Ós rud é nach mbraitheann an DAG ach ar airde an bhloic, is féidir é a réamhghiniúint, ach más rud é nach bhfuil sé ní mór don chliant fanacht go dtí deireadh an phróisis seo chun bloc a tháirgeadh. Mura ndéanann cliaint DAGanna a réamhghiniúint agus a thaisceadh roimh am d'fhéadfadh moill ollmhór bloc a bheith ag an líonra ar gach trasdul aga. Tabhair faoi deara nach gá an DAG a ghiniúint chun an cruthúnas-oibre a fhíorú rud a cheadaíonn fíorú go bunúsach le LAP íseal agus cuimhne beag. + +Is é seo a leanas an bealach ginearálta a ghlacann an algartam: + +1. Tá **síol** ann ar féidir a ríomh do gach bloc ach scanadh a dhéanamh trí na ceanntásca bloc suas go dtí an pointe sin. +2. Ón síol, is féidir **taisce bréagrandamach 16 MB** a ríomh. Stórálann cliant éadrom an taisce. +3. Ón taisce, is féidir linn ** tacar sonraí 1 GB** a ghiniúint, leis an airí go mbraitheann gach mír sa tacar sonraí ar líon beag míreanna ón taisce. Stórálann cliaint iomlána agus mianadóirí an tacar sonraí. Fásann an tacar sonraí go líneach le himeacht ama. +4. Is éard atá i gceist le mianadóireacht ná slisní randamacha den tacar sonraí a ghabháil agus iad a chur le chéile. Is féidir fíorú a dhéanamh le cuimhne íseal tríd an taisce a úsáid chun na píosaí sonracha den tacar sonraí a theastaíonn uait a athghiniúint, mar sin ní gá duit ach an taisce a stóráil. + +Nuashonraítear an tacar sonraí mór uair amháin gach 30000 bloc, mar sin beidh formhór mór iarracht mianadóra ag léamh an tacar sonraí, gan athruithe a dhéanamh air. + +## Sainmhínithe {#definitions} + +Bainimid úsáid as na sainmhínithe seo a leanas: + +``` +WORD_BYTES = 4 # bytes in word +DATASET_BYTES_INIT = 2**30 # bytes in dataset at genesis +DATASET_BYTES_GROWTH = 2**23 # dataset growth per epoch +CACHE_BYTES_INIT = 2**24 # bytes in cache at genesis +CACHE_BYTES_GROWTH = 2**17 # cache growth per epoch +CACHE_MULTIPLIER=1024 # Size of the DAG relative to the cache +EPOCH_LENGTH = 30000 # blocks per epoch +MIX_BYTES = 128 # width of mix +HASH_BYTES = 64 # hash length in bytes +DATASET_PARENTS = 256 # number of parents of each dataset element +CACHE_ROUNDS = 3 # number of rounds in cache production +ACCESSES = 64 # number of accesses in hashimoto loop +``` + +### Úsáid 'SHA3' {#sha3} + +Tharla forbairt Ethereum ag an am céanna le forbairt an chaighdeáin SHA3, agus rinne an próiseas caighdeáin athrú déanach i stuáil an algartam haise críochnaithe, ionas nach haiseanna Ethereum caighdeánacha sha3 iad "sha3_256" agus "sha3_512", ach malairt ar a dtugtar "Keccak-256" agus "Keccak-512" go minic i gcomhthéacsanna eile. Féach plé, e.g. [anseo](https://eips.ethereum.org/EIPS/eip-1803), [anseo](http://ethereum.stackexchange.com/questions/550/which-cryptographic-hash-function-does-ethereum-use), nó [anseo](http://bitcoin.stackexchange.com/questions/42055/what-is-the-approach-to-calculate-an-ethereum-address-from-a-256-bit-private-key/42057#42057). + +Meabhraigh le do thoil go dtagraítear do haiseanna mar "sha3" san algartam thíos. + +## Paraiméadair {#parameters} + +Braitheann na paraiméadair taisce agus tacar sonraí Ethash ar uimhir an bhloic. Fásann méid an taisce agus méid an tacair sonraí go líneach; Mar sin féin, glacaimid an príomhphíobán is airde faoi bhun na tairsí fáis líneach i gcónaí chun an riosca a bhaineann le rialtachtaí trí thimpiste as a dtagann iompar timthriallach a laghdú. + +```python +def get_cache_size(block_number): + sz = CACHE_BYTES_INIT + CACHE_BYTES_GROWTH * (block_number // EPOCH_LENGTH) + sz -= HASH_BYTES + while not isprime(sz / HASH_BYTES): + sz -= 2 * HASH_BYTES + return sz + +def get_full_size(block_number): + sz = DATASET_BYTES_INIT + DATASET_BYTES_GROWTH * (block_number // EPOCH_LENGTH) + sz -= MIX_BYTES + while not isprime(sz / MIX_BYTES): + sz -= 2 * MIX_BYTES + return sz +``` + +Tá táblaí tacair sonraí agus luachanna méid an taisce curtha ar fáil san aguisín. + +## Giniúint taisce {#cache-generation} + +Anois, sonraímid an fheidhm chun taisce a tháirgeadh: + +```python +def mkcache(cache_size, seed): + n = cache_size // HASH_BYTES + + # Sequentially produce the initial dataset + o = [sha3_512(seed)] + for i in range(1, n): + o.append(sha3_512(o[-1])) + + # Use a low-round version of randmemohash + for _ in range(CACHE_ROUNDS): + for i in range(n): + v = o[i][0] % n + o[i] = sha3_512(map(xor, o[(i-1+n) % n], o[v])) + + return o +``` + +Is éard atá i gceist leis an bpróiseas táirgthe taisce ná 32 MB de chuimhne a líonadh go seicheamhach ar dtús, ansin dhá phas d'algartam _RandMemoHash_ Sergio Demian Lerner a dhéanamh ó [_Feidhmeanna Haiseála Crua Cuimhne_ (2014)](http://www. hashcash.org/papers/memohash.pdf). Is tacar de 524288 luachanna 64-beart é an t-aschur. + +## Feidhm chomhiomlánaithe sonraí {#date-aggregation-function} + +Úsáidimid algartam spreagtha ag an [hais FNV](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function) i gcásanna áirithe mar ionadach neamh-chomhthiomsaitheach do XOR. Tabhair faoi deara go n-iolraímid an príomhshuim leis an ionchur iomlán 32-giotán, i gcodarsnacht leis an sonraíocht FNV-1 a iolraíonn an príomhshuim le beart amháin (ochtréad) ar a seal. + +```python +FNV_PRIME = 0x01000193 + +def fnv(v1, v2): + return ((v1 * FNV_PRIME) ^ v2) % 2**32 +``` + +Tabhair faoi deara, fiú sa pháipéar buí sonraítear fnv mar v1\*(FNV_PRIME ^ v2), úsáideann gach feidhmiú reatha an sainmhíniú thuas go comhsheasmhach. + +## Ríomh tacar sonraí iomlán {#full-dataset-calculation} + +Ríomhtar gach mír 64-beart sa tacar sonraí iomlán 1 GB mar seo a leanas: + +```python +def calc_dataset_item(cache, i): + n = len(cache) + r = HASH_BYTES // WORD_BYTES + # initialize the mix + mix = copy.copy(cache[i % n]) + mix[0] ^= i + mix = sha3_512(mix) + # fnv it with a lot of random cache nodes based on i + for j in range(DATASET_PARENTS): + cache_index = fnv(i ^ j, mix[j % r]) + mix = map(fnv, mix, cache[cache_index % n]) + return sha3_512(mix) +``` + +Go bunúsach, cuirimid le chéile sonraí ó 256 nód taisce roghnaithe go bréagrandamach, agus haiseáltar é sin chun an nód tacair a ríomh. Gintear an tacar sonraí iomlán ansin ag: + +```python +def calc_dataset(full_size, cache): + return [calc_dataset_item(cache, i) for i in range(full_size // HASH_BYTES)] +``` + +## Príomhlúb {#main-loop} + +Anois, sonraímid an príomh-lúb cosúil le "hashimoto", áit a ndéanaimid sonraí a chomhiomlánú ón tacar sonraí iomlán chun ár luach deiridh a tháirgeadh le haghaidh ceannteidil agus nonce ar leith. Sa chód thíos, seasann `ceanntásc` don SHA3-256 _hais_ den léiriú RLP de _teasctha ceanntásc bloc _, is é sin, ceanntásc nach bhfuil na réimsí **mixHash** agus **nonce** san áireamh. Is é `nonce` na hocht mbeart de shlánuimhir 64 ghiotán gan síniú in ord mórchinn. Mar sin is é `nonce[::-1]` an léiriú ocht mbeart beag-chinn den luach sin: + +```python +def hashimoto(header, nonce, full_size, dataset_lookup): + n = full_size / HASH_BYTES + w = MIX_BYTES // WORD_BYTES + mixhashes = MIX_BYTES / HASH_BYTES + # combine header+nonce into a 64 byte seed + s = sha3_512(header + nonce[::-1]) + # start the mix with replicated s + mix = [] + for _ in range(MIX_BYTES / HASH_BYTES): + mix.extend(s) + # mix in random dataset nodes + for i in range(ACCESSES): + p = fnv(i ^ s[0], mix[i % w]) % (n // mixhashes) * mixhashes + newdata = [] + for j in range(MIX_BYTES / HASH_BYTES): + newdata.extend(dataset_lookup(p + j)) + mix = map(fnv, mix, newdata) + # compress mix + cmix = [] + for i in range(0, len(mix), 4): + cmix.append(fnv(fnv(fnv(mix[i], mix[i+1]), mix[i+2]), mix[i+3])) + return { + "mix digest": serialize_hash(cmix), + "result": serialize_hash(sha3_256(s+cmix)) + } + +def hashimoto_light(full_size, cache, header, nonce): + return hashimoto(header, nonce, full_size, lambda x: calc_dataset_item(cache, x)) + +def hashimoto_full(full_size, dataset, header, nonce): + return hashimoto(header, nonce, full_size, lambda x: dataset[x]) +``` + +Go bunúsach, cothabháilimid "meascán" 128 beart ar leithead, agus faighimid 128 beart ón tacar sonraí iomlán arís agus arís eile go seicheamhach agus úsáidimid an fheidhm `fnv` chun é a chomhcheangal leis an meascán. Baintear úsáid as 128 beart de rochtain sheicheamhach ionas go bhfaigheann gach babhta den algartam leathanach iomlán ó RAM i gcónaí, rud a laghdóidh aon chaillteanais maoláin amharc-aistriúcháin a d'fhéadfadh ASICs a sheachaint go teoiriciúil. + +Má tá aschur an algartam seo faoi bhun na sprice inmhianaithe, tá an nonce bailí. Tabhair faoi deara go gcinntíonn feidhmchlár breise `sha3_256` ag an deireadh go bhfuil nonce idirmheánach ann is féidir a sholáthar chun a chruthú go ndearnadh méid beag oibre ar a laghad; is féidir an fíorú POW seachtrach tapa seo a úsáid chun críocha frith-DDoS. Soláthraíonn sé dearbhú staitistiúil freisin gur uimhir neamhchlaonta 256-giotán an toradh. + +## Mianadóireacht {#mining} + +Sainmhínítear an algartam mianadóireachta mar seo a leanas: + +```python +def mine(full_size, dataset, header, difficulty): + # zero-pad target to compare with hash on the same digit + target = zpad(encode_int(2**256 // difficulty), 64)[::-1] + from random import randint + nonce = randint(0, 2**64) + while hashimoto_full(full_size, dataset, header, nonce) > target: + nonce = (nonce + 1) % 2**64 + return nonce +``` + +## An hais síl a shainiú {#seed-hash} + +D’fhonn an hais síl a d’úsáidfí chun mianadóireacht a dhéanamh ar bharr bloic áirithe a ríomh, bainimid úsáid as an algartam seo a leanas: + +```python + def get_seedhash(block): + s = '\x00' * 32 + for i in range(block.number // EPOCH_LENGTH): + s = serialize_hash(sha3_256(s)) + return s +``` + +Tabhair faoi deara, le haghaidh mianadóireacht réidh agus fíorú, molaimid síológa agus tacair sonraí sa todhchaí a réamh-ríomh i snáithe ar leith. + +## Tuilleadh léitheoireachta {#further-reading} + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ + +## Aguisín {#appendix} + +Ba cheart an cód seo a leanas a réamhshocrú má tá suim agat an sonra python thuas a rith mar chód. + +```python +import sha3, copy + +# Assumes little endian bit ordering (same as Intel architectures) +def decode_int(s): + return int(s[::-1].encode('hex'), 16) if s else 0 + +def encode_int(s): + a = "%x" % s + return '' if s == 0 else ('0' * (len(a) % 2) + a).decode('hex')[::-1] + +def zpad(s, length): + return s + '\x00' * max(0, length - len(s)) + +def serialize_hash(h): + return ''.join([zpad(encode_int(x), 4) for x in h]) + +def deserialize_hash(h): + return [decode_int(h[i:i+WORD_BYTES]) for i in range(0, len(h), WORD_BYTES)] + +def hash_words(h, sz, x): + if isinstance(x, list): + x = serialize_hash(x) + y = h(x) + return deserialize_hash(y) + +def serialize_cache(ds): + return ''.join([serialize_hash(h) for h in ds]) + +serialize_dataset = serialize_cache + +# sha3 hash function, outputs 64 bytes +def sha3_512(x): + return hash_words(lambda v: sha3.sha3_512(v).digest(), 64, x) + +def sha3_256(x): + return hash_words(lambda v: sha3.sha3_256(v).digest(), 32, x) + +def xor(a, b): + return a ^ b + +def isprime(x): + for i in range(2, int(x**0.5)): + if x % i == 0: + return False + return True +``` + +### Méideanna Sonraí {#data-sizes} + +Soláthraíonn na táblaí cuardaigh seo a leanas thart ar 2048 ré táblaithe de mhéideanna sonraí agus de mhéideanna taisce. + +```python +def get_datasize(block_number): + return data_sizes[block_number // EPOCH_LENGTH] + +def get_cachesize(block_number): + return cache_sizes[block_number // EPOCH_LENGTH] + +data_sizes = [ +1073739904, 1082130304, 1090514816, 1098906752, 1107293056, +1115684224, 1124070016, 1132461952, 1140849536, 1149232768, +1157627776, 1166013824, 1174404736, 1182786944, 1191180416, +1199568512, 1207958912, 1216345216, 1224732032, 1233124736, +1241513344, 1249902464, 1258290304, 1266673792, 1275067264, +1283453312, 1291844992, 1300234112, 1308619904, 1317010048, +1325397376, 1333787776, 1342176128, 1350561664, 1358954368, +1367339392, 1375731584, 1384118144, 1392507008, 1400897408, +1409284736, 1417673344, 1426062464, 1434451072, 1442839168, +1451229056, 1459615616, 1468006016, 1476394112, 1484782976, +1493171584, 1501559168, 1509948032, 1518337664, 1526726528, +1535114624, 1543503488, 1551892096, 1560278656, 1568669056, +1577056384, 1585446272, 1593831296, 1602219392, 1610610304, +1619000192, 1627386752, 1635773824, 1644164224, 1652555648, +1660943488, 1669332608, 1677721216, 1686109312, 1694497664, +1702886272, 1711274624, 1719661184, 1728047744, 1736434816, +1744829056, 1753218944, 1761606272, 1769995904, 1778382464, +1786772864, 1795157888, 1803550592, 1811937664, 1820327552, +1828711552, 1837102976, 1845488768, 1853879936, 1862269312, +1870656896, 1879048064, 1887431552, 1895825024, 1904212096, +1912601216, 1920988544, 1929379456, 1937765504, 1946156672, +1954543232, 1962932096, 1971321728, 1979707264, 1988093056, +1996487552, 2004874624, 2013262208, 2021653888, 2030039936, +2038430848, 2046819968, 2055208576, 2063596672, 2071981952, +2080373632, 2088762752, 2097149056, 2105539712, 2113928576, +2122315136, 2130700672, 2139092608, 2147483264, 2155872128, +2164257664, 2172642176, 2181035392, 2189426048, 2197814912, +2206203008, 2214587264, 2222979712, 2231367808, 2239758208, +2248145024, 2256527744, 2264922752, 2273312128, 2281701248, +2290086272, 2298476672, 2306867072, 2315251072, 2323639168, +2332032128, 2340420224, 2348808064, 2357196416, 2365580416, +2373966976, 2382363008, 2390748544, 2399139968, 2407530368, +2415918976, 2424307328, 2432695424, 2441084288, 2449472384, +2457861248, 2466247808, 2474637184, 2483026816, 2491414144, +2499803776, 2508191872, 2516582272, 2524970368, 2533359232, +2541743488, 2550134144, 2558525056, 2566913408, 2575301504, +2583686528, 2592073856, 2600467328, 2608856192, 2617240448, +2625631616, 2634022016, 2642407552, 2650796416, 2659188352, +2667574912, 2675965312, 2684352896, 2692738688, 2701130624, +2709518464, 2717907328, 2726293376, 2734685056, 2743073152, +2751462016, 2759851648, 2768232832, 2776625536, 2785017728, +2793401984, 2801794432, 2810182016, 2818571648, 2826959488, +2835349376, 2843734144, 2852121472, 2860514432, 2868900992, +2877286784, 2885676928, 2894069632, 2902451584, 2910843008, +2919234688, 2927622784, 2936011648, 2944400768, 2952789376, +2961177728, 2969565568, 2977951616, 2986338944, 2994731392, +3003120256, 3011508352, 3019895936, 3028287104, 3036675968, +3045063808, 3053452928, 3061837696, 3070228352, 3078615424, +3087003776, 3095394944, 3103782272, 3112173184, 3120562048, +3128944768, 3137339264, 3145725056, 3154109312, 3162505088, +3170893184, 3179280256, 3187669376, 3196056704, 3204445568, +3212836736, 3221224064, 3229612928, 3238002304, 3246391168, +3254778496, 3263165824, 3271556224, 3279944576, 3288332416, +3296719232, 3305110912, 3313500032, 3321887104, 3330273152, +3338658944, 3347053184, 3355440512, 3363827072, 3372220288, +3380608384, 3388997504, 3397384576, 3405774208, 3414163072, +3422551936, 3430937984, 3439328384, 3447714176, 3456104576, +3464493952, 3472883584, 3481268864, 3489655168, 3498048896, +3506434432, 3514826368, 3523213952, 3531603584, 3539987072, +3548380288, 3556763264, 3565157248, 3573545344, 3581934464, +3590324096, 3598712704, 3607098752, 3615488384, 3623877248, +3632265856, 3640646528, 3649043584, 3657430144, 3665821568, +3674207872, 3682597504, 3690984832, 3699367808, 3707764352, +3716152448, 3724541056, 3732925568, 3741318016, 3749706368, +3758091136, 3766481536, 3774872704, 3783260032, 3791650432, +3800036224, 3808427648, 3816815488, 3825204608, 3833592704, +3841981568, 3850370432, 3858755968, 3867147904, 3875536256, +3883920512, 3892313728, 3900702592, 3909087872, 3917478784, +3925868416, 3934256512, 3942645376, 3951032192, 3959422336, +3967809152, 3976200064, 3984588416, 3992974976, 4001363584, +4009751168, 4018141312, 4026530432, 4034911616, 4043308928, +4051695488, 4060084352, 4068472448, 4076862848, 4085249408, +4093640576, 4102028416, 4110413696, 4118805632, 4127194496, +4135583104, 4143971968, 4152360832, 4160746112, 4169135744, +4177525888, 4185912704, 4194303616, 4202691968, 4211076736, +4219463552, 4227855488, 4236246656, 4244633728, 4253022848, +4261412224, 4269799808, 4278184832, 4286578048, 4294962304, +4303349632, 4311743104, 4320130432, 4328521088, 4336909184, +4345295488, 4353687424, 4362073472, 4370458496, 4378852736, +4387238528, 4395630208, 4404019072, 4412407424, 4420790656, +4429182848, 4437571456, 4445962112, 4454344064, 4462738048, +4471119232, 4479516544, 4487904128, 4496289664, 4504682368, +4513068416, 4521459584, 4529846144, 4538232704, 4546619776, +4555010176, 4563402112, 4571790208, 4580174464, 4588567936, +4596957056, 4605344896, 4613734016, 4622119808, 4630511488, +4638898816, 4647287936, 4655675264, 4664065664, 4672451968, +4680842624, 4689231488, 4697620352, 4706007424, 4714397056, +4722786176, 4731173248, 4739562368, 4747951744, 4756340608, +4764727936, 4773114496, 4781504384, 4789894784, 4798283648, +4806667648, 4815059584, 4823449472, 4831835776, 4840226176, +4848612224, 4857003392, 4865391488, 4873780096, 4882169728, +4890557312, 4898946944, 4907333248, 4915722368, 4924110976, +4932499328, 4940889728, 4949276032, 4957666432, 4966054784, +4974438016, 4982831488, 4991221376, 4999607168, 5007998848, +5016386432, 5024763776, 5033164672, 5041544576, 5049941888, +5058329728, 5066717056, 5075107456, 5083494272, 5091883904, +5100273536, 5108662144, 5117048192, 5125436032, 5133827456, +5142215296, 5150605184, 5158993024, 5167382144, 5175769472, +5184157568, 5192543872, 5200936064, 5209324928, 5217711232, +5226102656, 5234490496, 5242877312, 5251263872, 5259654016, +5268040832, 5276434304, 5284819328, 5293209728, 5301598592, +5309986688, 5318374784, 5326764416, 5335151488, 5343542144, +5351929472, 5360319872, 5368706944, 5377096576, 5385484928, +5393871232, 5402263424, 5410650496, 5419040384, 5427426944, +5435816576, 5444205952, 5452594816, 5460981376, 5469367936, +5477760896, 5486148736, 5494536832, 5502925952, 5511315328, +5519703424, 5528089984, 5536481152, 5544869504, 5553256064, +5561645696, 5570032768, 5578423936, 5586811264, 5595193216, +5603585408, 5611972736, 5620366208, 5628750464, 5637143936, +5645528192, 5653921408, 5662310272, 5670694784, 5679082624, +5687474048, 5695864448, 5704251008, 5712641408, 5721030272, +5729416832, 5737806208, 5746194304, 5754583936, 5762969984, +5771358592, 5779748224, 5788137856, 5796527488, 5804911232, +5813300608, 5821692544, 5830082176, 5838468992, 5846855552, +5855247488, 5863636096, 5872024448, 5880411008, 5888799872, +5897186432, 5905576832, 5913966976, 5922352768, 5930744704, +5939132288, 5947522432, 5955911296, 5964299392, 5972688256, +5981074304, 5989465472, 5997851008, 6006241408, 6014627968, +6023015552, 6031408256, 6039796096, 6048185216, 6056574848, +6064963456, 6073351808, 6081736064, 6090128768, 6098517632, +6106906496, 6115289216, 6123680896, 6132070016, 6140459648, +6148849024, 6157237376, 6165624704, 6174009728, 6182403712, +6190792064, 6199176064, 6207569792, 6215952256, 6224345216, +6232732544, 6241124224, 6249510272, 6257899136, 6266287744, +6274676864, 6283065728, 6291454336, 6299843456, 6308232064, +6316620928, 6325006208, 6333395584, 6341784704, 6350174848, +6358562176, 6366951296, 6375337856, 6383729536, 6392119168, +6400504192, 6408895616, 6417283456, 6425673344, 6434059136, +6442444672, 6450837376, 6459223424, 6467613056, 6476004224, +6484393088, 6492781952, 6501170048, 6509555072, 6517947008, +6526336384, 6534725504, 6543112832, 6551500672, 6559888768, +6568278656, 6576662912, 6585055616, 6593443456, 6601834112, +6610219648, 6618610304, 6626999168, 6635385472, 6643777408, +6652164224, 6660552832, 6668941952, 6677330048, 6685719424, +6694107776, 6702493568, 6710882176, 6719274112, 6727662976, +6736052096, 6744437632, 6752825984, 6761213824, 6769604224, +6777993856, 6786383488, 6794770816, 6803158144, 6811549312, +6819937664, 6828326528, 6836706176, 6845101696, 6853491328, +6861880448, 6870269312, 6878655104, 6887046272, 6895433344, +6903822208, 6912212864, 6920596864, 6928988288, 6937377152, +6945764992, 6954149248, 6962544256, 6970928768, 6979317376, +6987709312, 6996093824, 7004487296, 7012875392, 7021258624, +7029652352, 7038038912, 7046427776, 7054818944, 7063207808, +7071595136, 7079980928, 7088372608, 7096759424, 7105149824, +7113536896, 7121928064, 7130315392, 7138699648, 7147092352, +7155479168, 7163865728, 7172249984, 7180648064, 7189036672, +7197424768, 7205810816, 7214196608, 7222589824, 7230975104, +7239367552, 7247755904, 7256145536, 7264533376, 7272921472, +7281308032, 7289694848, 7298088832, 7306471808, 7314864512, +7323253888, 7331643008, 7340029568, 7348419712, 7356808832, +7365196672, 7373585792, 7381973888, 7390362752, 7398750592, +7407138944, 7415528576, 7423915648, 7432302208, 7440690304, +7449080192, 7457472128, 7465860992, 7474249088, 7482635648, +7491023744, 7499412608, 7507803008, 7516192384, 7524579968, +7532967296, 7541358464, 7549745792, 7558134656, 7566524032, +7574912896, 7583300992, 7591690112, 7600075136, 7608466816, +7616854912, 7625244544, 7633629824, 7642020992, 7650410368, +7658794112, 7667187328, 7675574912, 7683961984, 7692349568, +7700739712, 7709130368, 7717519232, 7725905536, 7734295424, +7742683264, 7751069056, 7759457408, 7767849088, 7776238208, +7784626816, 7793014912, 7801405312, 7809792128, 7818179968, +7826571136, 7834957184, 7843347328, 7851732352, 7860124544, +7868512384, 7876902016, 7885287808, 7893679744, 7902067072, +7910455936, 7918844288, 7927230848, 7935622784, 7944009344, +7952400256, 7960786048, 7969176704, 7977565312, 7985953408, +7994339968, 8002730368, 8011119488, 8019508096, 8027896192, +8036285056, 8044674688, 8053062272, 8061448832, 8069838464, +8078227328, 8086616704, 8095006592, 8103393664, 8111783552, +8120171392, 8128560256, 8136949376, 8145336704, 8153726848, +8162114944, 8170503296, 8178891904, 8187280768, 8195669632, +8204058496, 8212444544, 8220834176, 8229222272, 8237612672, +8246000768, 8254389376, 8262775168, 8271167104, 8279553664, +8287944064, 8296333184, 8304715136, 8313108352, 8321497984, +8329885568, 8338274432, 8346663296, 8355052928, 8363441536, +8371828352, 8380217984, 8388606592, 8396996224, 8405384576, +8413772672, 8422161536, 8430549376, 8438939008, 8447326592, +8455715456, 8464104832, 8472492928, 8480882048, 8489270656, +8497659776, 8506045312, 8514434944, 8522823808, 8531208832, +8539602304, 8547990656, 8556378752, 8564768384, 8573154176, +8581542784, 8589933952, 8598322816, 8606705024, 8615099264, +8623487872, 8631876992, 8640264064, 8648653952, 8657040256, +8665430656, 8673820544, 8682209152, 8690592128, 8698977152, +8707374464, 8715763328, 8724151424, 8732540032, 8740928384, +8749315712, 8757704576, 8766089344, 8774480768, 8782871936, +8791260032, 8799645824, 8808034432, 8816426368, 8824812928, +8833199488, 8841591424, 8849976448, 8858366336, 8866757248, +8875147136, 8883532928, 8891923328, 8900306816, 8908700288, +8917088384, 8925478784, 8933867392, 8942250368, 8950644608, +8959032704, 8967420544, 8975809664, 8984197504, 8992584064, +9000976256, 9009362048, 9017752448, 9026141312, 9034530688, +9042917504, 9051307904, 9059694208, 9068084864, 9076471424, +9084861824, 9093250688, 9101638528, 9110027648, 9118416512, +9126803584, 9135188096, 9143581312, 9151969664, 9160356224, +9168747136, 9177134464, 9185525632, 9193910144, 9202302848, +9210690688, 9219079552, 9227465344, 9235854464, 9244244864, +9252633472, 9261021824, 9269411456, 9277799296, 9286188928, +9294574208, 9302965888, 9311351936, 9319740032, 9328131968, +9336516736, 9344907392, 9353296768, 9361685888, 9370074752, +9378463616, 9386849408, 9395239808, 9403629184, 9412016512, +9420405376, 9428795008, 9437181568, 9445570688, 9453960832, +9462346624, 9470738048, 9479121536, 9487515008, 9495903616, +9504289664, 9512678528, 9521067904, 9529456256, 9537843584, +9546233728, 9554621312, 9563011456, 9571398784, 9579788672, +9588178304, 9596567168, 9604954496, 9613343104, 9621732992, +9630121856, 9638508416, 9646898816, 9655283584, 9663675776, +9672061312, 9680449664, 9688840064, 9697230464, 9705617536, +9714003584, 9722393984, 9730772608, 9739172224, 9747561088, +9755945344, 9764338816, 9772726144, 9781116544, 9789503872, +9797892992, 9806282624, 9814670464, 9823056512, 9831439232, +9839833984, 9848224384, 9856613504, 9865000576, 9873391232, +9881772416, 9890162816, 9898556288, 9906940544, 9915333248, +9923721088, 9932108672, 9940496512, 9948888448, 9957276544, +9965666176, 9974048384, 9982441088, 9990830464, 9999219584, +10007602816, 10015996544, 10024385152, 10032774016, 10041163648, +10049548928, 10057940096, 10066329472, 10074717824, 10083105152, +10091495296, 10099878784, 10108272256, 10116660608, 10125049216, +10133437312, 10141825664, 10150213504, 10158601088, 10166991232, +10175378816, 10183766144, 10192157312, 10200545408, 10208935552, +10217322112, 10225712768, 10234099328, 10242489472, 10250876032, +10259264896, 10267656064, 10276042624, 10284429184, 10292820352, +10301209472, 10309598848, 10317987712, 10326375296, 10334763392, +10343153536, 10351541632, 10359930752, 10368318592, 10376707456, +10385096576, 10393484672, 10401867136, 10410262144, 10418647424, +10427039104, 10435425664, 10443810176, 10452203648, 10460589952, +10468982144, 10477369472, 10485759104, 10494147712, 10502533504, +10510923392, 10519313536, 10527702656, 10536091264, 10544478592, +10552867712, 10561255808, 10569642368, 10578032768, 10586423168, +10594805632, 10603200128, 10611588992, 10619976064, 10628361344, +10636754048, 10645143424, 10653531776, 10661920384, 10670307968, +10678696832, 10687086464, 10695475072, 10703863168, 10712246144, +10720639616, 10729026688, 10737414784, 10745806208, 10754190976, +10762581376, 10770971264, 10779356288, 10787747456, 10796135552, +10804525184, 10812915584, 10821301888, 10829692288, 10838078336, +10846469248, 10854858368, 10863247232, 10871631488, 10880023424, +10888412032, 10896799616, 10905188992, 10913574016, 10921964672, +10930352768, 10938742912, 10947132544, 10955518592, 10963909504, +10972298368, 10980687488, 10989074816, 10997462912, 11005851776, +11014241152, 11022627712, 11031017344, 11039403904, 11047793024, +11056184704, 11064570752, 11072960896, 11081343872, 11089737856, +11098128256, 11106514816, 11114904448, 11123293568, 11131680128, +11140065152, 11148458368, 11156845696, 11165236864, 11173624192, +11182013824, 11190402688, 11198790784, 11207179136, 11215568768, +11223957376, 11232345728, 11240734592, 11249122688, 11257511296, +11265899648, 11274285952, 11282675584, 11291065472, 11299452544, +11307842432, 11316231296, 11324616832, 11333009024, 11341395584, +11349782656, 11358172288, 11366560384, 11374950016, 11383339648, +11391721856, 11400117376, 11408504192, 11416893568, 11425283456, +11433671552, 11442061184, 11450444672, 11458837888, 11467226752, +11475611776, 11484003968, 11492392064, 11500780672, 11509169024, +11517550976, 11525944448, 11534335616, 11542724224, 11551111808, +11559500672, 11567890304, 11576277376, 11584667008, 11593056128, +11601443456, 11609830016, 11618221952, 11626607488, 11634995072, +11643387776, 11651775104, 11660161664, 11668552576, 11676940928, +11685330304, 11693718656, 11702106496, 11710496128, 11718882688, +11727273088, 11735660416, 11744050048, 11752437376, 11760824704, +11769216128, 11777604736, 11785991296, 11794381952, 11802770048, +11811157888, 11819548544, 11827932544, 11836324736, 11844713344, +11853100928, 11861486464, 11869879936, 11878268032, 11886656896, +11895044992, 11903433088, 11911822976, 11920210816, 11928600448, +11936987264, 11945375872, 11953761152, 11962151296, 11970543488, +11978928512, 11987320448, 11995708288, 12004095104, 12012486272, +12020875136, 12029255552, 12037652096, 12046039168, 12054429568, +12062813824, 12071206528, 12079594624, 12087983744, 12096371072, +12104759936, 12113147264, 12121534592, 12129924992, 12138314624, +12146703232, 12155091584, 12163481216, 12171864704, 12180255872, +12188643968, 12197034112, 12205424512, 12213811328, 12222199424, +12230590336, 12238977664, 12247365248, 12255755392, 12264143488, +12272531584, 12280920448, 12289309568, 12297694592, 12306086528, +12314475392, 12322865024, 12331253632, 12339640448, 12348029312, +12356418944, 12364805248, 12373196672, 12381580928, 12389969024, +12398357632, 12406750592, 12415138432, 12423527552, 12431916416, +12440304512, 12448692352, 12457081216, 12465467776, 12473859968, +12482245504, 12490636672, 12499025536, 12507411584, 12515801728, +12524190592, 12532577152, 12540966272, 12549354368, 12557743232, +12566129536, 12574523264, 12582911872, 12591299456, 12599688064, +12608074624, 12616463488, 12624845696, 12633239936, 12641631616, +12650019968, 12658407296, 12666795136, 12675183232, 12683574656, +12691960192, 12700350592, 12708740224, 12717128576, 12725515904, +12733906816, 12742295168, 12750680192, 12759071872, 12767460736, +12775848832, 12784236928, 12792626816, 12801014656, 12809404288, +12817789312, 12826181504, 12834568832, 12842954624, 12851345792, +12859732352, 12868122496, 12876512128, 12884901248, 12893289088, +12901672832, 12910067584, 12918455168, 12926842496, 12935232896, +12943620736, 12952009856, 12960396928, 12968786816, 12977176192, +12985563776, 12993951104, 13002341504, 13010730368, 13019115392, +13027506304, 13035895168, 13044272512, 13052673152, 13061062528, +13069446272, 13077838976, 13086227072, 13094613632, 13103000192, +13111393664, 13119782528, 13128157568, 13136559232, 13144945024, +13153329536, 13161724288, 13170111872, 13178502784, 13186884736, +13195279744, 13203667072, 13212057472, 13220445824, 13228832128, +13237221248, 13245610624, 13254000512, 13262388352, 13270777472, +13279166336, 13287553408, 13295943296, 13304331904, 13312719488, +13321108096, 13329494656, 13337885824, 13346274944, 13354663808, +13363051136, 13371439232, 13379825024, 13388210816, 13396605056, +13404995456, 13413380224, 13421771392, 13430159744, 13438546048, +13446937216, 13455326848, 13463708288, 13472103808, 13480492672, +13488875648, 13497269888, 13505657728, 13514045312, 13522435712, +13530824576, 13539210112, 13547599232, 13555989376, 13564379008, +13572766336, 13581154432, 13589544832, 13597932928, 13606320512, +13614710656, 13623097472, 13631477632, 13639874944, 13648264064, +13656652928, 13665041792, 13673430656, 13681818496, 13690207616, +13698595712, 13706982272, 13715373184, 13723762048, 13732150144, +13740536704, 13748926592, 13757316224, 13765700992, 13774090112, +13782477952, 13790869376, 13799259008, 13807647872, 13816036736, +13824425344, 13832814208, 13841202304, 13849591424, 13857978752, +13866368896, 13874754688, 13883145344, 13891533184, 13899919232, +13908311168, 13916692096, 13925085056, 13933473152, 13941866368, +13950253696, 13958643584, 13967032192, 13975417216, 13983807616, +13992197504, 14000582272, 14008973696, 14017363072, 14025752192, +14034137984, 14042528384, 14050918016, 14059301504, 14067691648, +14076083584, 14084470144, 14092852352, 14101249664, 14109635968, +14118024832, 14126407552, 14134804352, 14143188608, 14151577984, +14159968384, 14168357248, 14176741504, 14185127296, 14193521024, +14201911424, 14210301824, 14218685056, 14227067264, 14235467392, +14243855488, 14252243072, 14260630144, 14269021568, 14277409408, +14285799296, 14294187904, 14302571392, 14310961792, 14319353728, +14327738752, 14336130944, 14344518784, 14352906368, 14361296512, +14369685376, 14378071424, 14386462592, 14394848128, 14403230848, +14411627392, 14420013952, 14428402304, 14436793472, 14445181568, +14453569664, 14461959808, 14470347904, 14478737024, 14487122816, +14495511424, 14503901824, 14512291712, 14520677504, 14529064832, +14537456768, 14545845632, 14554234496, 14562618496, 14571011456, +14579398784, 14587789184, 14596172672, 14604564608, 14612953984, +14621341312, 14629724288, 14638120832, 14646503296, 14654897536, +14663284864, 14671675264, 14680061056, 14688447616, 14696835968, +14705228416, 14713616768, 14722003328, 14730392192, 14738784128, +14747172736, 14755561088, 14763947648, 14772336512, 14780725376, +14789110144, 14797499776, 14805892736, 14814276992, 14822670208, +14831056256, 14839444352, 14847836032, 14856222848, 14864612992, +14872997504, 14881388672, 14889775744, 14898165376, 14906553472, +14914944896, 14923329664, 14931721856, 14940109696, 14948497024, +14956887424, 14965276544, 14973663616, 14982053248, 14990439808, +14998830976, 15007216768, 15015605888, 15023995264, 15032385152, +15040768384, 15049154944, 15057549184, 15065939072, 15074328448, +15082715008, 15091104128, 15099493504, 15107879296, 15116269184, +15124659584, 15133042304, 15141431936, 15149824384, 15158214272, +15166602368, 15174991232, 15183378304, 15191760512, 15200154496, +15208542592, 15216931712, 15225323392, 15233708416, 15242098048, +15250489216, 15258875264, 15267265408, 15275654528, 15284043136, +15292431488, 15300819584, 15309208192, 15317596544, 15325986176, +15334374784, 15342763648, 15351151744, 15359540608, 15367929728, +15376318336, 15384706432, 15393092992, 15401481856, 15409869952, +15418258816, 15426649984, 15435037568, 15443425664, 15451815296, +15460203392, 15468589184, 15476979328, 15485369216, 15493755776, +15502146944, 15510534272, 15518924416, 15527311232, 15535699072, +15544089472, 15552478336, 15560866688, 15569254528, 15577642624, +15586031488, 15594419072, 15602809472, 15611199104, 15619586432, +15627975296, 15636364928, 15644753792, 15653141888, 15661529216, +15669918848, 15678305152, 15686696576, 15695083136, 15703474048, +15711861632, 15720251264, 15728636288, 15737027456, 15745417088, +15753804928, 15762194048, 15770582656, 15778971008, 15787358336, +15795747712, 15804132224, 15812523392, 15820909696, 15829300096, +15837691264, 15846071936, 15854466944, 15862855808, 15871244672, +15879634816, 15888020608, 15896409728, 15904799104, 15913185152, +15921577088, 15929966464, 15938354816, 15946743424, 15955129472, +15963519872, 15971907968, 15980296064, 15988684928, 15997073024, +16005460864, 16013851264, 16022241152, 16030629248, 16039012736, +16047406976, 16055794816, 16064181376, 16072571264, 16080957824, +16089346688, 16097737856, 16106125184, 16114514816, 16122904192, +16131292544, 16139678848, 16148066944, 16156453504, 16164839552, +16173236096, 16181623424, 16190012032, 16198401152, 16206790528, +16215177344, 16223567744, 16231956352, 16240344704, 16248731008, +16257117824, 16265504384, 16273898624, 16282281856, 16290668672, +16299064192, 16307449216, 16315842176, 16324230016, 16332613504, +16341006464, 16349394304, 16357783168, 16366172288, 16374561664, +16382951296, 16391337856, 16399726208, 16408116352, 16416505472, +16424892032, 16433282176, 16441668224, 16450058624, 16458448768, +16466836864, 16475224448, 16483613056, 16492001408, 16500391808, +16508779648, 16517166976, 16525555328, 16533944192, 16542330752, +16550719616, 16559110528, 16567497088, 16575888512, 16584274816, +16592665472, 16601051008, 16609442944, 16617832064, 16626218624, +16634607488, 16642996096, 16651385728, 16659773824, 16668163712, +16676552576, 16684938112, 16693328768, 16701718144, 16710095488, +16718492288, 16726883968, 16735272832, 16743661184, 16752049792, +16760436608, 16768827008, 16777214336, 16785599104, 16793992832, +16802381696, 16810768768, 16819151744, 16827542656, 16835934848, +16844323712, 16852711552, 16861101952, 16869489536, 16877876864, +16886265728, 16894653056, 16903044736, 16911431296, 16919821696, +16928207488, 16936592768, 16944987776, 16953375616, 16961763968, +16970152832, 16978540928, 16986929536, 16995319168, 17003704448, +17012096896, 17020481152, 17028870784, 17037262208, 17045649536, +17054039936, 17062426496, 17070814336, 17079205504, 17087592064, +17095978112, 17104369024, 17112759424, 17121147776, 17129536384, +17137926016, 17146314368, 17154700928, 17163089792, 17171480192, +17179864192, 17188256896, 17196644992, 17205033856, 17213423488, +17221811072, 17230198912, 17238588032, 17246976896, 17255360384, +17263754624, 17272143232, 17280530048, 17288918912, 17297309312, +17305696384, 17314085504, 17322475136, 17330863744, 17339252096, +17347640192, 17356026496, 17364413824, 17372796544, 17381190016, +17389583488, 17397972608, 17406360704, 17414748544, 17423135872, +17431527296, 17439915904, 17448303232, 17456691584, 17465081728, +17473468288, 17481857408, 17490247552, 17498635904, 17507022464, +17515409024, 17523801728, 17532189824, 17540577664, 17548966016, +17557353344, 17565741184, 17574131584, 17582519168, 17590907008, +17599296128, 17607687808, 17616076672, 17624455808, 17632852352, +17641238656, 17649630848, 17658018944, 17666403968, 17674794112, +17683178368, 17691573376, 17699962496, 17708350592, 17716739968, +17725126528, 17733517184, 17741898112, 17750293888, 17758673024, +17767070336, 17775458432, 17783848832, 17792236928, 17800625536, +17809012352, 17817402752, 17825785984, 17834178944, 17842563968, +17850955648, 17859344512, 17867732864, 17876119424, 17884511872, +17892900224, 17901287296, 17909677696, 17918058112, 17926451072, +17934843776, 17943230848, 17951609216, 17960008576, 17968397696, +17976784256, 17985175424, 17993564032, 18001952128, 18010339712, +18018728576, 18027116672, 18035503232, 18043894144, 18052283264, +18060672128, 18069056384, 18077449856, 18085837184, 18094225792, +18102613376, 18111004544, 18119388544, 18127781248, 18136170368, +18144558976, 18152947328, 18161336192, 18169724288, 18178108544, +18186498944, 18194886784, 18203275648, 18211666048, 18220048768, +18228444544, 18236833408, 18245220736] + +cache_sizes = [ +16776896, 16907456, 17039296, 17170112, 17301056, 17432512, 17563072, +17693888, 17824192, 17955904, 18087488, 18218176, 18349504, 18481088, +18611392, 18742336, 18874304, 19004224, 19135936, 19267264, 19398208, +19529408, 19660096, 19791424, 19922752, 20053952, 20184896, 20315968, +20446912, 20576576, 20709184, 20840384, 20971072, 21102272, 21233216, +21364544, 21494848, 21626816, 21757376, 21887552, 22019392, 22151104, +22281536, 22412224, 22543936, 22675264, 22806464, 22935872, 23068096, +23198272, 23330752, 23459008, 23592512, 23723968, 23854912, 23986112, +24116672, 24247616, 24378688, 24509504, 24640832, 24772544, 24903488, +25034432, 25165376, 25296704, 25427392, 25558592, 25690048, 25820096, +25951936, 26081728, 26214208, 26345024, 26476096, 26606656, 26737472, +26869184, 26998208, 27131584, 27262528, 27393728, 27523904, 27655744, +27786688, 27917888, 28049344, 28179904, 28311488, 28441792, 28573504, +28700864, 28835648, 28966208, 29096768, 29228608, 29359808, 29490752, +29621824, 29752256, 29882816, 30014912, 30144448, 30273728, 30406976, +30538432, 30670784, 30799936, 30932672, 31063744, 31195072, 31325248, +31456192, 31588288, 31719232, 31850432, 31981504, 32110784, 32243392, +32372672, 32505664, 32636608, 32767808, 32897344, 33029824, 33160768, +33289664, 33423296, 33554368, 33683648, 33816512, 33947456, 34076992, +34208704, 34340032, 34471744, 34600256, 34734016, 34864576, 34993984, +35127104, 35258176, 35386688, 35518528, 35650624, 35782336, 35910976, +36044608, 36175808, 36305728, 36436672, 36568384, 36699968, 36830656, +36961984, 37093312, 37223488, 37355072, 37486528, 37617472, 37747904, +37879232, 38009792, 38141888, 38272448, 38403392, 38535104, 38660672, +38795584, 38925632, 39059264, 39190336, 39320768, 39452096, 39581632, +39713984, 39844928, 39974848, 40107968, 40238144, 40367168, 40500032, +40631744, 40762816, 40894144, 41023552, 41155904, 41286208, 41418304, +41547712, 41680448, 41811904, 41942848, 42073792, 42204992, 42334912, +42467008, 42597824, 42729152, 42860096, 42991552, 43122368, 43253696, +43382848, 43515712, 43646912, 43777088, 43907648, 44039104, 44170432, +44302144, 44433344, 44564288, 44694976, 44825152, 44956864, 45088448, +45219008, 45350464, 45481024, 45612608, 45744064, 45874496, 46006208, +46136768, 46267712, 46399424, 46529344, 46660672, 46791488, 46923328, +47053504, 47185856, 47316928, 47447872, 47579072, 47710144, 47839936, +47971648, 48103232, 48234176, 48365248, 48496192, 48627136, 48757312, +48889664, 49020736, 49149248, 49283008, 49413824, 49545152, 49675712, +49807168, 49938368, 50069056, 50200256, 50331584, 50462656, 50593472, +50724032, 50853952, 50986048, 51117632, 51248576, 51379904, 51510848, +51641792, 51773248, 51903296, 52035136, 52164032, 52297664, 52427968, +52557376, 52690112, 52821952, 52952896, 53081536, 53213504, 53344576, +53475776, 53608384, 53738816, 53870528, 54000832, 54131776, 54263744, +54394688, 54525248, 54655936, 54787904, 54918592, 55049152, 55181248, +55312064, 55442752, 55574336, 55705024, 55836224, 55967168, 56097856, +56228672, 56358592, 56490176, 56621888, 56753728, 56884928, 57015488, +57146816, 57278272, 57409216, 57540416, 57671104, 57802432, 57933632, +58064576, 58195264, 58326976, 58457408, 58588864, 58720192, 58849984, +58981696, 59113024, 59243456, 59375552, 59506624, 59637568, 59768512, +59897792, 60030016, 60161984, 60293056, 60423872, 60554432, 60683968, +60817216, 60948032, 61079488, 61209664, 61341376, 61471936, 61602752, +61733696, 61865792, 61996736, 62127808, 62259136, 62389568, 62520512, +62651584, 62781632, 62910784, 63045056, 63176128, 63307072, 63438656, +63569216, 63700928, 63831616, 63960896, 64093888, 64225088, 64355392, +64486976, 64617664, 64748608, 64879424, 65009216, 65142464, 65273792, +65402816, 65535424, 65666752, 65797696, 65927744, 66060224, 66191296, +66321344, 66453056, 66584384, 66715328, 66846656, 66977728, 67108672, +67239104, 67370432, 67501888, 67631296, 67763776, 67895104, 68026304, +68157248, 68287936, 68419264, 68548288, 68681408, 68811968, 68942912, +69074624, 69205568, 69337024, 69467584, 69599168, 69729472, 69861184, +69989824, 70122944, 70253888, 70385344, 70515904, 70647232, 70778816, +70907968, 71040832, 71171648, 71303104, 71432512, 71564992, 71695168, +71826368, 71958464, 72089536, 72219712, 72350144, 72482624, 72613568, +72744512, 72875584, 73006144, 73138112, 73268672, 73400128, 73530944, +73662272, 73793344, 73924544, 74055104, 74185792, 74316992, 74448832, +74579392, 74710976, 74841664, 74972864, 75102784, 75233344, 75364544, +75497024, 75627584, 75759296, 75890624, 76021696, 76152256, 76283072, +76414144, 76545856, 76676672, 76806976, 76937792, 77070016, 77200832, +77331392, 77462464, 77593664, 77725376, 77856448, 77987776, 78118336, +78249664, 78380992, 78511424, 78642496, 78773056, 78905152, 79033664, +79166656, 79297472, 79429568, 79560512, 79690816, 79822784, 79953472, +80084672, 80214208, 80346944, 80477632, 80608576, 80740288, 80870848, +81002048, 81133504, 81264448, 81395648, 81525952, 81657536, 81786304, +81919808, 82050112, 82181312, 82311616, 82443968, 82573376, 82705984, +82835776, 82967744, 83096768, 83230528, 83359552, 83491264, 83622464, +83753536, 83886016, 84015296, 84147776, 84277184, 84409792, 84540608, +84672064, 84803008, 84934336, 85065152, 85193792, 85326784, 85458496, +85589312, 85721024, 85851968, 85982656, 86112448, 86244416, 86370112, +86506688, 86637632, 86769344, 86900672, 87031744, 87162304, 87293632, +87424576, 87555392, 87687104, 87816896, 87947968, 88079168, 88211264, +88341824, 88473152, 88603712, 88735424, 88862912, 88996672, 89128384, +89259712, 89390272, 89521984, 89652544, 89783872, 89914816, 90045376, +90177088, 90307904, 90438848, 90569152, 90700096, 90832832, 90963776, +91093696, 91223744, 91356992, 91486784, 91618496, 91749824, 91880384, +92012224, 92143552, 92273344, 92405696, 92536768, 92666432, 92798912, +92926016, 93060544, 93192128, 93322816, 93453632, 93583936, 93715136, +93845056, 93977792, 94109504, 94240448, 94371776, 94501184, 94632896, +94764224, 94895552, 95023424, 95158208, 95287744, 95420224, 95550016, +95681216, 95811904, 95943872, 96075328, 96203584, 96337856, 96468544, +96599744, 96731072, 96860992, 96992576, 97124288, 97254848, 97385536, +97517248, 97647808, 97779392, 97910464, 98041408, 98172608, 98303168, +98434496, 98565568, 98696768, 98827328, 98958784, 99089728, 99220928, +99352384, 99482816, 99614272, 99745472, 99876416, 100007104, +100138048, 100267072, 100401088, 100529984, 100662592, 100791872, +100925248, 101056064, 101187392, 101317952, 101449408, 101580608, +101711296, 101841728, 101973824, 102104896, 102235712, 102366016, +102498112, 102628672, 102760384, 102890432, 103021888, 103153472, +103284032, 103415744, 103545152, 103677248, 103808576, 103939648, +104070976, 104201792, 104332736, 104462528, 104594752, 104725952, +104854592, 104988608, 105118912, 105247808, 105381184, 105511232, +105643072, 105774784, 105903296, 106037056, 106167872, 106298944, +106429504, 106561472, 106691392, 106822592, 106954304, 107085376, +107216576, 107346368, 107478464, 107609792, 107739712, 107872192, +108003136, 108131392, 108265408, 108396224, 108527168, 108657344, +108789568, 108920384, 109049792, 109182272, 109312576, 109444928, +109572928, 109706944, 109837888, 109969088, 110099648, 110230976, +110362432, 110492992, 110624704, 110755264, 110886208, 111017408, +111148864, 111279296, 111410752, 111541952, 111673024, 111803456, +111933632, 112066496, 112196416, 112328512, 112457792, 112590784, +112715968, 112852672, 112983616, 113114944, 113244224, 113376448, +113505472, 113639104, 113770304, 113901376, 114031552, 114163264, +114294592, 114425536, 114556864, 114687424, 114818624, 114948544, +115080512, 115212224, 115343296, 115473472, 115605184, 115736128, +115867072, 115997248, 116128576, 116260288, 116391488, 116522944, +116652992, 116784704, 116915648, 117046208, 117178304, 117308608, +117440192, 117569728, 117701824, 117833024, 117964096, 118094656, +118225984, 118357312, 118489024, 118617536, 118749632, 118882112, +119012416, 119144384, 119275328, 119406016, 119537344, 119668672, +119798464, 119928896, 120061376, 120192832, 120321728, 120454336, +120584512, 120716608, 120848192, 120979136, 121109056, 121241408, +121372352, 121502912, 121634752, 121764416, 121895744, 122027072, +122157632, 122289088, 122421184, 122550592, 122682944, 122813888, +122945344, 123075776, 123207488, 123338048, 123468736, 123600704, +123731264, 123861952, 123993664, 124124608, 124256192, 124386368, +124518208, 124649024, 124778048, 124911296, 125041088, 125173696, +125303744, 125432896, 125566912, 125696576, 125829056, 125958592, +126090304, 126221248, 126352832, 126483776, 126615232, 126746432, +126876608, 127008704, 127139392, 127270336, 127401152, 127532224, +127663552, 127794752, 127925696, 128055232, 128188096, 128319424, +128449856, 128581312, 128712256, 128843584, 128973632, 129103808, +129236288, 129365696, 129498944, 129629888, 129760832, 129892288, +130023104, 130154048, 130283968, 130416448, 130547008, 130678336, +130807616, 130939456, 131071552, 131202112, 131331776, 131464384, +131594048, 131727296, 131858368, 131987392, 132120256, 132250816, +132382528, 132513728, 132644672, 132774976, 132905792, 133038016, +133168832, 133299392, 133429312, 133562048, 133692992, 133823296, +133954624, 134086336, 134217152, 134348608, 134479808, 134607296, +134741056, 134872384, 135002944, 135134144, 135265472, 135396544, +135527872, 135659072, 135787712, 135921472, 136052416, 136182848, +136313792, 136444864, 136576448, 136707904, 136837952, 136970048, +137099584, 137232064, 137363392, 137494208, 137625536, 137755712, +137887424, 138018368, 138149824, 138280256, 138411584, 138539584, +138672832, 138804928, 138936128, 139066688, 139196864, 139328704, +139460032, 139590208, 139721024, 139852864, 139984576, 140115776, +140245696, 140376512, 140508352, 140640064, 140769856, 140902336, +141032768, 141162688, 141294016, 141426496, 141556544, 141687488, +141819584, 141949888, 142080448, 142212544, 142342336, 142474432, +142606144, 142736192, 142868288, 142997824, 143129408, 143258944, +143392448, 143523136, 143653696, 143785024, 143916992, 144045632, +144177856, 144309184, 144440768, 144570688, 144701888, 144832448, +144965056, 145096384, 145227584, 145358656, 145489856, 145620928, +145751488, 145883072, 146011456, 146144704, 146275264, 146407232, +146538176, 146668736, 146800448, 146931392, 147062336, 147193664, +147324224, 147455936, 147586624, 147717056, 147848768, 147979456, +148110784, 148242368, 148373312, 148503232, 148635584, 148766144, +148897088, 149028416, 149159488, 149290688, 149420224, 149551552, +149683136, 149814976, 149943616, 150076352, 150208064, 150338624, +150470464, 150600256, 150732224, 150862784, 150993088, 151125952, +151254976, 151388096, 151519168, 151649728, 151778752, 151911104, +152042944, 152174144, 152304704, 152435648, 152567488, 152698816, +152828992, 152960576, 153091648, 153222976, 153353792, 153484096, +153616192, 153747008, 153878336, 154008256, 154139968, 154270912, +154402624, 154533824, 154663616, 154795712, 154926272, 155057984, +155188928, 155319872, 155450816, 155580608, 155712064, 155843392, +155971136, 156106688, 156237376, 156367424, 156499264, 156630976, +156761536, 156892352, 157024064, 157155008, 157284416, 157415872, +157545536, 157677248, 157810496, 157938112, 158071744, 158203328, +158334656, 158464832, 158596288, 158727616, 158858048, 158988992, +159121216, 159252416, 159381568, 159513152, 159645632, 159776192, +159906496, 160038464, 160169536, 160300352, 160430656, 160563008, +160693952, 160822208, 160956352, 161086784, 161217344, 161349184, +161480512, 161611456, 161742272, 161873216, 162002752, 162135872, +162266432, 162397888, 162529216, 162660032, 162790976, 162922048, +163052096, 163184576, 163314752, 163446592, 163577408, 163707968, +163839296, 163969984, 164100928, 164233024, 164364224, 164494912, +164625856, 164756672, 164887616, 165019072, 165150016, 165280064, +165412672, 165543104, 165674944, 165805888, 165936832, 166067648, +166198336, 166330048, 166461248, 166591552, 166722496, 166854208, +166985408, 167116736, 167246656, 167378368, 167508416, 167641024, +167771584, 167903168, 168034112, 168164032, 168295744, 168427456, +168557632, 168688448, 168819136, 168951616, 169082176, 169213504, +169344832, 169475648, 169605952, 169738048, 169866304, 169999552, +170131264, 170262464, 170393536, 170524352, 170655424, 170782016, +170917696, 171048896, 171179072, 171310784, 171439936, 171573184, +171702976, 171835072, 171966272, 172097216, 172228288, 172359232, +172489664, 172621376, 172747712, 172883264, 173014208, 173144512, +173275072, 173407424, 173539136, 173669696, 173800768, 173931712, +174063424, 174193472, 174325696, 174455744, 174586816, 174718912, +174849728, 174977728, 175109696, 175242688, 175374272, 175504832, +175636288, 175765696, 175898432, 176028992, 176159936, 176291264, +176422592, 176552512, 176684864, 176815424, 176946496, 177076544, +177209152, 177340096, 177470528, 177600704, 177731648, 177864256, +177994816, 178126528, 178257472, 178387648, 178518464, 178650176, +178781888, 178912064, 179044288, 179174848, 179305024, 179436736, +179568448, 179698496, 179830208, 179960512, 180092608, 180223808, +180354752, 180485696, 180617152, 180748096, 180877504, 181009984, +181139264, 181272512, 181402688, 181532608, 181663168, 181795136, +181926592, 182057536, 182190016, 182320192, 182451904, 182582336, +182713792, 182843072, 182976064, 183107264, 183237056, 183368384, +183494848, 183631424, 183762752, 183893824, 184024768, 184154816, +184286656, 184417984, 184548928, 184680128, 184810816, 184941248, +185072704, 185203904, 185335616, 185465408, 185596352, 185727296, +185859904, 185989696, 186121664, 186252992, 186383552, 186514112, +186645952, 186777152, 186907328, 187037504, 187170112, 187301824, +187429184, 187562048, 187693504, 187825472, 187957184, 188087104, +188218304, 188349376, 188481344, 188609728, 188743616, 188874304, +189005248, 189136448, 189265088, 189396544, 189528128, 189660992, +189791936, 189923264, 190054208, 190182848, 190315072, 190447424, +190577984, 190709312, 190840768, 190971328, 191102656, 191233472, +191364032, 191495872, 191626816, 191758016, 191888192, 192020288, +192148928, 192282176, 192413504, 192542528, 192674752, 192805952, +192937792, 193068608, 193198912, 193330496, 193462208, 193592384, +193723456, 193854272, 193985984, 194116672, 194247232, 194379712, +194508352, 194641856, 194772544, 194900672, 195035072, 195166016, +195296704, 195428032, 195558592, 195690304, 195818176, 195952576, +196083392, 196214336, 196345792, 196476736, 196607552, 196739008, +196869952, 197000768, 197130688, 197262784, 197394368, 197523904, +197656384, 197787584, 197916608, 198049472, 198180544, 198310208, +198442432, 198573632, 198705088, 198834368, 198967232, 199097792, +199228352, 199360192, 199491392, 199621696, 199751744, 199883968, +200014016, 200146624, 200276672, 200408128, 200540096, 200671168, +200801984, 200933312, 201062464, 201194944, 201326144, 201457472, +201588544, 201719744, 201850816, 201981632, 202111552, 202244032, +202374464, 202505152, 202636352, 202767808, 202898368, 203030336, +203159872, 203292608, 203423296, 203553472, 203685824, 203816896, +203947712, 204078272, 204208192, 204341056, 204472256, 204603328, +204733888, 204864448, 204996544, 205125568, 205258304, 205388864, +205517632, 205650112, 205782208, 205913536, 206044736, 206176192, +206307008, 206434496, 206569024, 206700224, 206831168, 206961856, +207093056, 207223616, 207355328, 207486784, 207616832, 207749056, +207879104, 208010048, 208141888, 208273216, 208404032, 208534336, +208666048, 208796864, 208927424, 209059264, 209189824, 209321792, +209451584, 209582656, 209715136, 209845568, 209976896, 210106432, +210239296, 210370112, 210501568, 210630976, 210763712, 210894272, +211024832, 211156672, 211287616, 211418176, 211549376, 211679296, +211812032, 211942592, 212074432, 212204864, 212334016, 212467648, +212597824, 212727616, 212860352, 212991424, 213120832, 213253952, +213385024, 213515584, 213645632, 213777728, 213909184, 214040128, +214170688, 214302656, 214433728, 214564544, 214695232, 214826048, +214956992, 215089088, 215219776, 215350592, 215482304, 215613248, +215743552, 215874752, 216005312, 216137024, 216267328, 216399296, +216530752, 216661696, 216790592, 216923968, 217054528, 217183168, +217316672, 217448128, 217579072, 217709504, 217838912, 217972672, +218102848, 218233024, 218364736, 218496832, 218627776, 218759104, +218888896, 219021248, 219151936, 219281728, 219413056, 219545024, +219675968, 219807296, 219938624, 220069312, 220200128, 220331456, +220461632, 220592704, 220725184, 220855744, 220987072, 221117888, +221249216, 221378368, 221510336, 221642048, 221772736, 221904832, +222031808, 222166976, 222297536, 222428992, 222559936, 222690368, +222820672, 222953152, 223083968, 223213376, 223345984, 223476928, +223608512, 223738688, 223869376, 224001472, 224132672, 224262848, +224394944, 224524864, 224657344, 224788288, 224919488, 225050432, +225181504, 225312704, 225443776, 225574592, 225704768, 225834176, +225966784, 226097216, 226229824, 226360384, 226491712, 226623424, +226754368, 226885312, 227015104, 227147456, 227278528, 227409472, +227539904, 227669696, 227802944, 227932352, 228065216, 228196288, +228326464, 228457792, 228588736, 228720064, 228850112, 228981056, +229113152, 229243328, 229375936, 229505344, 229636928, 229769152, +229894976, 230030272, 230162368, 230292416, 230424512, 230553152, +230684864, 230816704, 230948416, 231079616, 231210944, 231342016, +231472448, 231603776, 231733952, 231866176, 231996736, 232127296, +232259392, 232388672, 232521664, 232652608, 232782272, 232914496, +233043904, 233175616, 233306816, 233438528, 233569984, 233699776, +233830592, 233962688, 234092224, 234221888, 234353984, 234485312, +234618304, 234749888, 234880832, 235011776, 235142464, 235274048, +235403456, 235535936, 235667392, 235797568, 235928768, 236057152, +236190272, 236322752, 236453312, 236583616, 236715712, 236846528, +236976448, 237108544, 237239104, 237371072, 237501632, 237630784, +237764416, 237895232, 238026688, 238157632, 238286912, 238419392, +238548032, 238681024, 238812608, 238941632, 239075008, 239206336, +239335232, 239466944, 239599168, 239730496, 239861312, 239992384, +240122816, 240254656, 240385856, 240516928, 240647872, 240779072, +240909632, 241040704, 241171904, 241302848, 241433408, 241565248, +241696192, 241825984, 241958848, 242088256, 242220224, 242352064, +242481856, 242611648, 242744896, 242876224, 243005632, 243138496, +243268672, 243400384, 243531712, 243662656, 243793856, 243924544, +244054592, 244187072, 244316608, 244448704, 244580032, 244710976, +244841536, 244972864, 245104448, 245233984, 245365312, 245497792, +245628736, 245759936, 245889856, 246021056, 246152512, 246284224, +246415168, 246545344, 246675904, 246808384, 246939584, 247070144, +247199552, 247331648, 247463872, 247593536, 247726016, 247857088, +247987648, 248116928, 248249536, 248380736, 248512064, 248643008, +248773312, 248901056, 249036608, 249167552, 249298624, 249429184, +249560512, 249692096, 249822784, 249954112, 250085312, 250215488, +250345792, 250478528, 250608704, 250739264, 250870976, 251002816, +251133632, 251263552, 251395136, 251523904, 251657792, 251789248, +251919424, 252051392, 252182464, 252313408, 252444224, 252575552, +252706624, 252836032, 252968512, 253099712, 253227584, 253361728, +253493056, 253623488, 253754432, 253885504, 254017216, 254148032, +254279488, 254410432, 254541376, 254672576, 254803264, 254933824, +255065792, 255196736, 255326528, 255458752, 255589952, 255721408, +255851072, 255983296, 256114624, 256244416, 256374208, 256507712, +256636096, 256768832, 256900544, 257031616, 257162176, 257294272, +257424448, 257555776, 257686976, 257818432, 257949632, 258079552, +258211136, 258342464, 258473408, 258603712, 258734656, 258867008, +258996544, 259127744, 259260224, 259391296, 259522112, 259651904, +259784384, 259915328, 260045888, 260175424, 260308544, 260438336, +260570944, 260700992, 260832448, 260963776, 261092672, 261226304, +261356864, 261487936, 261619648, 261750592, 261879872, 262011968, +262143424, 262274752, 262404416, 262537024, 262667968, 262799296, +262928704, 263061184, 263191744, 263322944, 263454656, 263585216, +263716672, 263847872, 263978944, 264108608, 264241088, 264371648, +264501184, 264632768, 264764096, 264895936, 265024576, 265158464, +265287488, 265418432, 265550528, 265681216, 265813312, 265943488, +266075968, 266206144, 266337728, 266468032, 266600384, 266731072, +266862272, 266993344, 267124288, 267255616, 267386432, 267516992, +267648704, 267777728, 267910592, 268040512, 268172096, 268302784, +268435264, 268566208, 268696256, 268828096, 268959296, 269090368, +269221312, 269352256, 269482688, 269614784, 269745856, 269876416, +270007616, 270139328, 270270272, 270401216, 270531904, 270663616, +270791744, 270924736, 271056832, 271186112, 271317184, 271449536, +271580992, 271711936, 271843136, 271973056, 272105408, 272236352, +272367296, 272498368, 272629568, 272759488, 272891456, 273022784, +273153856, 273284672, 273415616, 273547072, 273677632, 273808448, +273937088, 274071488, 274200896, 274332992, 274463296, 274595392, +274726208, 274857536, 274988992, 275118656, 275250496, 275382208, +275513024, 275643968, 275775296, 275906368, 276037184, 276167872, +276297664, 276429376, 276560576, 276692672, 276822976, 276955072, +277085632, 277216832, 277347008, 277478848, 277609664, 277740992, +277868608, 278002624, 278134336, 278265536, 278395328, 278526784, +278657728, 278789824, 278921152, 279052096, 279182912, 279313088, +279443776, 279576256, 279706048, 279838528, 279969728, 280099648, +280230976, 280361408, 280493632, 280622528, 280755392, 280887104, +281018176, 281147968, 281278912, 281411392, 281542592, 281673152, +281803712, 281935552, 282066496, 282197312, 282329024, 282458816, +282590272, 282720832, 282853184, 282983744, 283115072, 283246144, +283377344, 283508416, 283639744, 283770304, 283901504, 284032576, +284163136, 284294848, 284426176, 284556992, 284687296, 284819264, +284950208, 285081536] +``` diff --git a/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md new file mode 100644 index 00000000000..a59d44c5240 --- /dev/null +++ b/public/content/translations/ga/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md @@ -0,0 +1,37 @@ +--- +title: Algartaim mianadóireachta +description: Súil mhionsonraithe ar na halgartaim a úsáidtear do mhianadóireacht Ethereum. +lang: ga +--- + + +Níl cruthúnas-oibre mar bhunús le meicníocht chomhdhearcaidh Ethereum a thuilleadh, rud a chiallaíonn go bhfuil an mhianadóireacht múchta. Ina áit sin, tá Ethereum urraithe ag bailíochtóirí a bhfuil ETH i ngeall acu. Is féidir leat tosú ag geallchur do chuid ETH inniu. Léigh tuilleadh ar An Cumasc, cruthúnas-gill, agus geallchur. Leathanach le spéis stairiúil é seo. + + +Bhain mianadóireacht Ethereum úsáid as algartam ar a dtugtar Ethash. Is é bun-smaoineamh an algartam go ndéanann mianadóir iarracht ionchur nonce a aimsiú trí úsáid a bhaint as ríomh lántrialach ionas go mbeidh an hais a eascraíonn as níos lú ná an tairseach a chinneann an deacracht ríofa. Is féidir an leibhéal deacrachta seo a choigeartú go dinimiciúil, rud a fhágann gur féidir bloctháirgeadh a dhéanamh go tráthrialta. + +## Réamhriachtanais {#prerequisites} + +Chun an leathanach seo a thuiscint níos fearr, molaimid duit léamh ar dtús faoi [chomhdhearcadh cruthúnas-oibre](/developers/docs/consensus-mechanisms/pow) agus [mianadóireacht](/developers/docs/consensus-mechanisms/pow/mining). + +## Dagger Hashimoto {#dagger-hashimoto} + +Ba algartam taighde réamhtheachtaithe é Dagger Hashimoto do mhianadóireacht Ethereum a tháinig in ionad Ethash. Cónascadh a bhí ann de dhá algartam éagsúla: Dagger agus Hashimoto. Ní raibh ann riamh ach cur i bhfeidhm taighde agus tháinig Ethash ina ionad faoin am a seoladh Ethereum Mainnet. + +Baineann [Dagger](http://www.hashcash.org/papers/dagger.html) le giniúint [>Graf Neamhchioglach Dírithe](https://en.wikipedia.org/wiki/Directed_acyclic_graph), a ndéantar slisní randamacha de a ghreamú le chéile. Is é an bunphrionsabal ná nach n-éilíonn gach nonce ach cuid bheag de chrann mór sonraí iomlán. Tá sé ródhaor don mhianadóireacht an fochrainn a athríomh do gach nonce - mar sin is gá an crann a stóráil - ach tá ceart go leor le haghaidh fíorú aonuaire. Ceapadh Dagger mar mhalairt ar algartaim atá ann cheana féin cosúil le Scrypt, atá crua ar chuimhne ach deacair a fhíorú nuair a mhéadaíonn a gcruas chuimhne go leibhéil atá slán i ndáiríre. Mar sin féin, bhí Dagger i mbaol luasghéarú crua-earraí cuimhne roinnte agus thit sé i bhfabhar bealaí eile taighde. + +Is algartam é [Hashimoto](http://diyhpl.us/%7Ebryan/papers2/bitcoin/meh/hashimoto.pdf) a chuireann friotaíocht ASIC leis trí bheith faoi cheangal I/O (i.e. léann an chuimhne an fachtóir teorannaithe sa phróiseas mianadóireachta). Is é an teoiric go bhfuil RAM ar fáil níos mó ná ríomh; tá imscrúdú déanta cheana ar RAM a bharrfheabhsú do chásanna úsáide éagsúla ar chostas na mbilliún dollar de thaighde, a mbíonn patrúin rochtana gar-randamach i gceist leo go minic (mar sin “cuimhne rochtana randamach”). Mar thoradh air sin, is dócha go mbeidh an RAM atá ann cheana féin measartha gar don bharrmhaith chun an algartam a mheas. Úsáideann Hashimoto an blocshlabhra mar fhoinse sonraí, ag sásamh (1) agus (3) thuas ag an am céanna. + +D'úsáid Dagger-Hashimoto leaganacha leasaithe de na halgartaim Dagger agus Hashimoto. Is é an difríocht idir Dagger Hashimoto agus Hashimoto ná, in ionad an blocshlabhra a úsáid mar fhoinse sonraí, úsáideann Dagger Hashimoto tacar sonraí saincheaptha-ghinte, a thugann cothrom le dáta bunaithe ar shonraí bloc gach N bloic. Gintear an tacar sonraí trí úsáid a bhaint as algartam Dagger, a cheadaíonn fo-thacar a bhaineann go sonrach le gach nonce don algartam fíoraithe cliant éadrom a ríomh go héifeachtach. Is é an difríocht idir Dagger Hashimoto agus Dagger ná, murab ionann agus an Dagger bunaidh, go bhfuil an tacar sonraí a úsáidtear chun an bloc a fhiosrú leathbhuan, agus nach ndéantar é a nuashonrú ach ó am go ham (m.sh. uair sa tseachtain). Ciallaíonn sé seo go bhfuil an chuid den iarracht chun an tacar sonraí a ghiniúint gar do nialas, agus mar sin bíonn argóintí Sergio Lerner maidir le luasanna cuimhne roinnte diomaibhseach. + +Tuilleadh ar[Dagger-Hashimoto](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto). + +## Ethash {#ethash} + +Ba é Ethash an t-algartam mianadóireachta a úsáideadh i ndáiríre ar an Ethereum Mainnet fíor faoin ailtireacht cruthúnas-oibre atá dímheasta anois. Ba ainm nua é Ethash i ndáiríre a tugadh ar leagan sonrach de Dagger-Hashimoto tar éis don algartam nuashonrú suntasach a fháil, agus bunphrionsabail a réamhtheachtaí fós aige le hoidhreacht. Níor úsáideadh ach Ethash riamh ar Ethereum Mainnet – leagan T&F den algartam mianadóireachta ab ea Dagger Hashimoto, a cuireadh as feidhm sula raibh mianadóireacht tosaithe ar Ethereum Mainnet. + +[Tuilleadh ar Ethash](/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash). + +## Tuilleadh léitheoireachta {#further-reading} + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ diff --git a/public/content/translations/ga/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/ga/developers/docs/nodes-and-clients/archive-nodes/index.md new file mode 100644 index 00000000000..6b3d89e5a1c --- /dev/null +++ b/public/content/translations/ga/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -0,0 +1,80 @@ +--- +title: Nód Cartlainne Ethereum +description: Forbhreathnú ar nóid chartlainne +lang: ga +sidebarDepth: 2 +--- + +Is éard atá i nód cartlainne ná sampla de chliant Ethereum atá cumraithe chun cartlann a thógáil de gach stát stairiúil. Is uirlis úsáideach é do chásanna úsáide áirithe ach d’fhéadfaí go mbeadh sé níos deacra é a rith ná nód iomlán. + +## Réamhriachtanais {#prerequisites} + +Ba cheart go dtuigfeá coincheap [nóid Ethereum](/developers/docs/nodes-and-clients/), [a ailtireacht](/developers/docs/nodes-and-clients/node-architecture/), [straitéisí sioncronaithe](/developers/docs/nodes-and-clients/#sync-modes), cleachtais [reatha](/developers/docs/nodes-and-clients/run-a-node/) agus [a n‑úsáide](/developers/docs/apis/json-rpc/). + +## Cad is nód cartlainne ann + +Chun an tábhacht a bhaineann le nód cartlainne a thuiscint, déanaimis an coincheap "stát" a shoiléiriú Is féidir cur síos a dhéanamh ar Ethereum mar _mheaisín stáit atá bunaithe ar idirbheart_. Is éard atá ann cuntais agus feidhmchláir a dhéanann idirbhearta trína n‑athraíonn siad a staid féin. Stóráiltear na sonraí domhanda le faisnéis faoi gach cuntas agus conradh i mbunachar sonraí trie ar a dtugtar stát. Déanann an cliant ciseal forghníomhaithe (EL) é sin a láimhseáil agus áirítear leis: + +- Iarmhéideanna cuntais agus neamhní +- Cód conartha agus stóráil +- Sonraí a bhaineann le comhdhearcadh, m.sh. Conradh Taisce Geallchuir + +Chun idirghníomhú leis an líonra, bloic nua a fhíorú agus a tháirgeadh, ní mór do chliaint Ethereum coimeád suas leis na hathruithe is déanaí (barr an tslabhra) agus, dá bhrí sin, leis an staid reatha. Fíoraíonn cliant sraithe forghníomhaithe atá cumraithe mar nód iomlán agus leanann sé an staid is déanaí den líonra ach ní dhéanann sé ach taisceadh ar an gcúpla stát atá caite, m.sh. an stát a bhaineann leis na 128 bloc dheireanacha, ionas gur féidir leis atheagruithe slabhra a láimhseáil agus rochtain tapa a sholáthar ar shonraí le déanaí. Is é an stát le déanaí ná an méid a theastaíonn ó gach cliant chun idirbhearta isteach a fhíorú agus an líonra a úsáid. + +Is féidir an stát a shamhlú mar ghrianghraf líonra ar feadh scaithimhín de bhloc ar leith agus is féidir an chartlann a shamhlú mar athsheoladh staire. + +Is féidir stáit stairiúla a ghearradh go sábháilte toisc nach bhfuil gá leo chun go n‑oibreodh an líonra agus go mbeadh sé iomarcach gan úsáid ag an gcliant na sonraí go léir atá as dáta a choinneáil. Go héifeachtach caitear amach stáit a bhí ann roimh bhloc éigin le déanaí (m.sh. 128 bloc roimh an gcloigeann). Ní choinníonn nóid iomlána ach sonraí stairiúla blocshlabhra (bloic agus idirbhearta) agus ó am go ham pictiúir stairiúla is féidir leo a úsáid chun stáit níos sine a athghiniúint ar iarratas. Déanann siad é seo trí idirbhearta san am atá caite a ath-fhorghníomhú san EVM, ar féidir leo a bheith éilitheach ó thaobh ríomha de nuair a bhíonn an staid inmhianaithe i bhfad ón radharc is gaire. + +Mar sin féin, ciallaíonn sé sin go n‑ídítear cuid mhór ríomha trí staid stairiúil rochtain ar nód iomlán. B'fhéidir go mbeadh ar an gcliant gach idirbheart san am atá caite a dhéanamh agus staid stairiúil amháin a ríomh ón ngéineas. Le nóid chartlainne réitítear é sin, ní hamháin trí na stáit is déanaí a stóráil ach trí gach stát stairiúil a stóráil a cruthaíodh tar éis gach bloc. Go bunúsach déanann sé comhbhabhtáil le riachtanas spás diosca níos mó. + +Tá sé tábhachtach a thabhairt faoi deara nach mbraitheann an líonra ar nóid chartlainne chun na sonraí stairiúla go léir a choinneáil agus a sholáthar. Mar a luadh thuas, is féidir gach stát eatramhach stairiúil a dhíorthú ar nód iomlán. Stóráiltear na hidirbhearta ag aon nód iomlán (níos lú ná 400G faoi láthair) agus is féidir iad a athimirt chun an chartlann iomlán a thógáil. + +### Cásanna úsáide + +Ní gá rochtain ar stáit stairiúla a úsáid go rialta le húsáid Ethereum cosúil le hidirbhearta a sheoladh, conarthaí a úsáid, comhdhearcadh a fhíorú, srl. Ní bhíonn nód cartlainne ag teastáil ó úsáideoirí chun gnáth-idirghníomhú leis an líonra. + +Is é an príomhbhuntáiste a bhaineann le cartlann an stáit ná rochtain thapa ar fhiosrúcháin faoi stáit stairiúla. Mar shampla, thabharfadh nód cartlainne torthaí go pras amhail: + +- _Cad é iarmhéid chuntas ETH 0x1337... ar bhloc 15537393?_ +- _Cad é an t-iarmhéid de chomhartha 0x i gconradh 0x ag bloc 1920000?_ + +Mar a mhínítear thuas, theastódh ó nód iomlán na sonraí seo a ghiniúint trí fhorghníomhú EVM a úsáideann an LAP, rud a thógann am. Faigheann nóid chartlainne rochtain orthu ar an diosca agus dáileann siad freagraí láithreach. Is gné úsáideach é sin le haghaidh codanna áirithe den bhonneagar, mar shampla: + +- Is maith le soláthraithe seirbhíse blocthaiscéalaithe +- Taighdeoirí +- Anailísí slándála +- Forbróirí Dapp +- Iniúchadh agus comhlíonadh + +Tá [seirbhísí ](/developers/docs/nodes-and-clients/nodes-as-a-service/)éagsúla saor in aisce ann trína gceadaítear rochtain ar shonraí stairiúla freisin. Toisc go bhfuil sé níos déine nód cartlainne a rith, tá an rochtain seo teoranta den chuid is mó agus ní oibríonn sé ach le haghaidh rochtain ócáideach. Má theastaíonn rochtain leanúnach ar shonraí stairiúla ó do thionscadal, ba cheart duit smaoineamh ar cheann a rith as do stuaim féin. + +## Feidhmithe agus úsáid + +Is ionann nód cartlainne sa chomhthéacs seo agus sonraí a fhreastalaíonn ar chliaint ar chiseal forghníomhaithe atá os comhair úsáideoirí agus iad ag láimhseáil bhunachar sonraí an stáit agus ag soláthar chríochphointí JSON-RPC. Féadfaidh roghanna cumraíochta, am sioncronaithe agus méid an bhunachair sonraí a bheith éagsúil de réir na gcliant. Le haghaidh sonraí, féach le do thoil ar na doiciméid a chuir do chliant ar fáil. + +Sula dtosaíonn tú ar do nód cartlainne féin, foghlaim faoi na difríochtaí idir na cliaint agus go háirithe na [riachtanais chrua-earraí](/developers/docs/nodes-and-clients/run-a-node/#requirements). Níl formhór na gcliant optamaithe don ghné seo agus teastaíonn níos mó ná 12TB de spás óna gcartlann. I gcodarsnacht leis sin, is féidir le feidhmiúcháin mar Erigon na sonraí céanna a stóráil faoi 3TB, rud a fhágann gurb iad an bealach is éifeachtaí chun nód cartlainne a rith. + +## Cleachtais mholta + +Seachas [moltaí ginearálta chun nód a rith](/developers/docs/nodes-and-clients/run-a-node/), d'fhéadfadh nód cartlainne a bheith níos déine maidir le crua-earraí agus cothabháil. Agus [príomhghnéithe](https://github.com/ledgerwatch/erigon#key-features) á gcur san áireamh, is é an cur chuige is praiticiúla ná cur i bhfeidhm cliant [Erigon](/developers/docs/nodes-and-clients/#erigon). + +### Crua-earraí + +Bí cinnte i gcónaí go bhfíoraíonn tú na riachtanais crua-earraí le haghaidh modh áirithe i gcáipéisíocht an chliaint. Is é an riachtanas is mó le haghaidh nóid cartlainne é an spás diosca. Ag brath ar an gcliant, athraíonn sé ó 3TB go 12TB. Fiú má mheastar HDD a bheith ina réiteach níos fearr ar mhéideanna móra sonraí, beidh tiomántáin SSD ag teastáil chun é a shioncronú agus ceann an tslabhra a nuashonrú i gcónaí. Tá tiomántáin [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) maith go leor ach ba cheart go mbeadh sé ar cháilíocht iontaofa, [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences) ar a laghad. Is féidir dioscaí a fheistiú ar ríomhaire deisce nó ar fhreastalaí le go leor sliotán. Tá feistí tiomnaithe den sórt sin go hiontach chun nód aga fónaimh aird a rith. Is féidir go cinnte é a rith ar ríomhaire glúine ach beidh costas breise ag baint leis an iniomparthacht. + +Ní mór na sonraí go léir a chur in aon imleabhar amháin, mar sin ní mór dioscaí a cheangal, m.sh. le [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) nó LVM. B'fhéidir gurbh fhiú smaoineamh ar [ZFS](https://en.wikipedia.org/wiki/ZFS) a úsáid mar go dtacaíonn sé le "Copy-on-write" trína gcinntítear go scríobhtar sonraí i gceart chuig an diosca gan aon earráidí bunúsacha. + +Chun tuilleadh cobhsaíochta agus slándála a fháil chun éillitheacht bhunachair sonraí de thaisme a chosc, go háirithe i socrú gairmiúil, smaoinigh ar [chuimhne ECC](https://en.wikipedia.org/wiki/ECC_memory) a úsáid má thacaíonn do chóras leis. Moltar go ginearálta go mbeadh an méid RAM mar an gcéanna le nód iomlán ach is féidir le níos mó RAM cabhrú leis an sioncrónú a bhrostú. + +Le linn sioncronaithe tosaigh, déanfaidh cliaint i mód cartlainne gach idirbheart ón gcéad lá riamh. Tá luas forghníomhaithe teoranta den chuid is mó ag an LAP, mar sin is féidir le LAP níos tapúla cabhrú leis an am sioncronaithe tosaigh. Ar ríomhaire meántomhaltóra, féadfaidh an sioncronú tosaigh suas le mí a thógáil. + +## Tuilleadh léitheoireachta {#further-reading} + +- [Ethereum Full Nód vs Nód Cartlainne](https://www.quicknode.com/guides/infrastructure/ethereum-full-node-vs-archive-node) - _QuickNode, Meán Fómhair 2022_ +- [Do Nód Cartlainne Ethereum Féin a Thógáil](https://tjayrush.medium.com/building-your-own-ethereum-archive-node-72c014affc09) - _Thomas Jay Rush, Lúnasa 2021_ +- [Conas Erigon, RPC Erigon agus TrueBlocks (scrape agus API) a shocrú mar sheirbhísí](https://magnushansson.xyz/blog_posts/crypto_defi/2022-01-10-Erigon-Trueblocks) _– Magnus Hansson, nuashonraithe i mí Mheán Fómhair 2022_ + +## Ábhair ghaolmhara {#related-topics} + +- [Nóid agus cliaint](/developers/docs/nodes-and-clients/) +- [Nód a rith](/developers/docs/nodes-and-clients/run-a-node/) diff --git a/public/content/translations/ga/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/translations/ga/developers/docs/nodes-and-clients/bootnodes/index.md new file mode 100644 index 00000000000..e4a77623085 --- /dev/null +++ b/public/content/translations/ga/developers/docs/nodes-and-clients/bootnodes/index.md @@ -0,0 +1,31 @@ +--- +title: Réamhrá ar Nóid Bhútála Ethereum +description: An fhaisnéis bhunúsach a theastaíonn uait chun nód bhútála a thuiscint +lang: ga +--- + +Nuair a théann nód nua isteach i líonra Ethereum ní mór dó nascadh le nóid atá ar an líonra cheana féin chun piaraí nua a aimsiú ansin. Tugtar nóid bhútála ar na pointí iontrála seo isteach i líonra Ethereum. Is gnách go mbíonn liosta de na nóid bhútála crua-chódaithe isteach ag cliaint. De ghnáth is foireann forbróirí Fhondúireacht Ethereum nó foirne cliant iad féin a reáchtálann na nóid bhútála seo. Tabhair faoi deara nach bhfuil nóid bhútála mar an gcéanna le nóid statacha. Glaoitear ar nóid statacha arís agus arís eile, ach ní ghlaoitear ar nóid bhútála ach amháin mura bhfuil go leor piaraí ann le nascadh leo agus nach mór nód chun naisc nua a bhunú. + +## Ceangail le nód bútála {#connect-to-a-bootnode} + +Tá liosta de na nóid bhútála ionsuite ag an gcuid is mó de na cliaint, ach b'fhéidir gur mhaith leat do nód bútála féin a rith, nó ceann a úsáid nach bhfuil mar chuid de liosta códaithe crua an chliaint. Sa chás seo, is féidir leat iad a shonrú nuair a thosaíonn tú do chliant, mar seo a leanas (mar shampla do Geth, seiceáil le do thoil doiciméadú do chliaint): + +``` +geth --bootnodes "enode://@:" +``` + +## Rith nód bútála {#run-a-bootnode} + +Is nóid iomlána iad nóid bhútála nach bhfuil taobh thiar de NAT ([Aistriúchán Seoltaí Líonra](https://www.geeksforgeeks.org/network-address-translation-nat/)). Is féidir le gach nód iomlán feidhmiú mar nód bútála chomh fada agus atá sé ar fáil go poiblí. + +Nuair a thosaíonn tú nód, ba cheart duit do [enode](/developers/docs/networking-layer/network-addresses/#enode) a logáil, ar aitheantóir poiblí é is féidir le daoine eile a úsáid chun nascadh leis do nód. + +De ghnáth déantar an r-nód a athghiniúint ar gach atosú, mar sin déan cinnte breathnú ar dhoiciméadú do chliaint maidir le conas r-nód marthanach a ghiniúint do do tosaithe. + +D'fhonn a bheith ina nód bútála maith is maith an smaoineamh é líon uasta na piaraí is féidir a nascadh leis a mhéadú. Má reáchtáiltear nód bútála le go leor piaraí méadóidh sé go mór an riachtanas bandaleithead. + +## Nóid bhútála atá ar fáil {#available-bootnodes} + +Is féidir liosta de na nóid bhútála ionsuite laistigh de go-ethereum a fháil [anseo](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go#L23). Tá na nóid bhútála seo á gcothabháil ag Fondúireacht Ethereum agus ag foireann go-ethereum. + +Tá liostaí eile de nóid bhútála arna gcothabháil ag oibrithe deonacha ar fáil. Cinntigh le do thoil nód tosaithe oifigiúil amháin ar a laghad a áireamh, nó d’fhéadfaí ionsaí éiclips a dhéanamh ort. diff --git a/public/content/translations/ga/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/ga/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..c9904064ff6 --- /dev/null +++ b/public/content/translations/ga/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,111 @@ +--- +title: Éagsúlacht cliant +description: Míniú ardleibhéil ar an tábhacht a bhaineann le héagsúlacht cliant Ethereum. +lang: ga +sidebarDepth: 2 +--- + +Tá iompar nód Ethereum á rialú ag na bogearraí cliant a ritheann sé. Tá roinnt cliant Ethereum ag leibhéal táirgthe, gach ceann acu arna bhforbairt agus arna chothabháil i dteangacha éagsúla ag foirne ar leith. Tógtar na cliaint de réir sonraíocht choiteann a chinntíonn go ndéanann na cliaint cumarsáid gan uaim lena chéile agus go bhfuil an fheidhmiúlacht chéanna acu agus a sholáthraíonn taithí úsáideora coibhéiseach. I láthair na huaire, áfach, níl dáileadh na gcliant thar nóid cothrom go leor chun an daingniú líonra seo a bhaint amach dá lán-acmhainneacht. Go hidéalach, roinntear úsáideoirí a bheag nó a mhór idir na cliaint éagsúla chun an oiread éagsúlacht cliant agus is féidir a thabhairt chuig an líonra. + +## Réamhriachtanais {#prerequisites} + +Mura dtuigeann tú cheana féin cad is nóid agus cliaint ann, seiceáil amach [nóid agus cliaint](/developers/docs/nodes-and-clients/). Sainmhínítear sraitheanna [Rith](/glossary/#execution-layer) agus [comhdhearcadh](/glossary/#consensus-layer) sa ghluais. + +## Cén fáth a bhfuil cliaint iolracha ann? {#why-multiple-clients} + +Tá cliaint iolracha, a forbraíodh go neamhspleách agus a chothabháiltear go neamhspleách ann toisc go ndéanann éagsúlacht cliant an líonra níos athléimní i leith ionsaithe agus fabhtanna. Is neart uathúil de chuid Ethereum é cliaint iolracha - braitheann blocshlabhraí eile ar dho-earráideacht cliant amháin. Mar sin féin, ní leor go simplí cliaint iolracha a bheith ar fáil, caithfidh an pobal glacadh leo agus na nóid ghníomhacha iomlána a dháileadh go measartha cothrom trasna orthu. + +## Cén fáth a bhfuil éagsúlacht cliant tábhachtach? {#client-diversity-importance} + +Tá sé ríthábhachtach do shláinte líonra díláraithe go mbeadh go leor cliant forbartha agus á gcothabháil go neamhspleách. Déanaimis iniúchadh ar na fáthanna. + +### Fabhtanna {#bugs} + +Is lú an riosca don líonra é fabht i gcliant aonair a dhéanann ionadú do mhionlach de nóid Ethereum. Le dáileadh measartha cothrom na nód thar go leor cliant, is beag an dóchúlacht go mbeidh formhór na gcliant ag fulaingt ó shaincheist chomhroinnte, agus mar thoradh air sin, tá an líonra níos láidre. + +### Athléimneacht in aghaidh ionsaithe {#resilience} + +Tairgeann éagsúlacht cliant athléimneacht in aghaidh ionsaithe freisin. Mar shampla, ní dócha go n-éireoidh le hionsaí a [mheallan cliant ar leith](https://twitter.com/vdWijden/status/1437712249926393858) trí chleas go brainse ar leith den slabhra toisc go bhfuil cliaint eile ann: ní dócha go bhféadfaí é a dhúshaothrú ar an mbealach céanna agus tá an slabhra canónach fós neamhthruaillithe. Méadaíonn éagsúlacht íseal cliant an riosca a bhaineann le haiceáil ar an gcliant ceannasach. Tá sé cruthaithe cheana féin gur cosaint thábhachtach í éagsúlacht na gcliant in aghaidh ionsaithe mailíseacha ar an líonra, mar shampla d’fhéadfaí ionsaí séanadh seirbhíse Shanghai in 2016 a dhéanamh toisc go raibh ionsaitheoirí in ann an cliant ceannasach (Geth) a mhealladh chun oibríocht mhall i/o a rith na mílte uair in aghaidh an bhloic. Toisc go raibh cliaint eile ar líne freisin nach raibh an leochaileacht á roinnt acu, bhí Ethereum in ann seasamh in aghaidh an ionsaí agus leanúint ar aghaidh ag oibriú agus an leochaileacht i Geth socraithe. + +### Críochnaitheacht chruthúnais gill {#finality} + +D'fhéadfadh fabht i gcliant comhdhearcaidh le níos mó ná 33% de na nóid Ethereum cosc ​​a chur ar an gciseal comhdhearcaidh ó thabhairt chun críche, rud a chiallaíonn nach bhféadfadh úsáideoirí a bheith muiníneach nach ndéanfaí idirbhearta a chur ar ais nó a athrú ag pointe éigin. Bheadh ​​​​sé seo an-deacair do go leor de na haipeanna a tógadh ar bharr Ethereum, go háirithe DeFi. + + Níos measa fós, d’fhéadfadh fabht chriticiúil i gcliant le tromlach dhá thrian a bheith ina chúis leis an slabhra deighilt agus bailchríoch go mícheart, rud a fhágann go dtéann foireann mhór bhailíochtóirí i bhfostú ar slabhra neamhbhailí. Más mian leo dul isteach arís sa slabhra ceart, beidh na bailíochtóirí seo i ngleic le slaiseáil nó le tarraingt siar agus athghníomhú deonach atá mall agus costasach. Méid scálaí slaiseála le líon na nóid inchurtha le tromlach dhá thrian slaiseáilte uasta (32 ETH). + +Cé gur cásanna neamhdhóchúla iad seo, is féidir le héiceachóras Ethereum a riosca a mhaolú trí dháileadh na gcliant thar na nóid ghníomhacha a chothromú. Go hidéalach, ní bhainfeadh aon chliant comhdhearcadh amach sciar 33% de na nóid iomlána. + +### Freagracht roinnte {#responsibility} + +Tá costas daonna ag baint le cliant tromlaigh a bheith ann freisin. Cuireann sé an iomarca brú agus freagrachta ar fhoireann bheag forbartha. Dá laghad an éagsúlacht cliant, is ea is mó an t-ualach freagrachta ar na forbróirí atá ag cothabháil an chliaint tromlaigh. Is maith an rud do shláinte líonra nód Ethereum agus a líonra daoine an fhreagracht seo a scaipeadh thar fhoirne iolracha. + +## Éagsúlacht cliant reatha {#current-client-diversity} + +![Píchairt a thaispeánann éagsúlacht cliant](./client-diversity.png) _Sonraí léaráide ó [ethernodes.org](https://ethernodes.org) agus [ clientdiversity.org](https://clientdiversity.org/)_ + +Léiríonn an dá phíchairt thuas pictiúir den éagsúlacht cliant atá ann faoi láthair maidir le sraitheanna reatha agus comhdhearcaidh (tráth scríofa na tuarascála seo i mí Eanáir 2022). Is é [Geth](https://geth.ethereum.org/) an an ciseal reatha is ceannasaí, le [Open Ethereum ](https://openethereum.github.io/) i bhfad ar a chúl sa dara háit, [Erigon](https://github.com/ledgerwatch/erigon) sa tríú háit agus [Nethermind](https://nethermind.io/) sa cheathrú háit, le cliaint eile níos lú ná 1 % den líonra. Níl an cliant is coitianta a úsáidtear ar an tsraith chomhdhearcaidh - [Prysm](https://prysmaticlabs.com/#projects) - chomh ceannasach le Geth ach fós seasann sé os cionn 60% den líonra. Tá [Lighthouse](https://lighthouse.sigmaprime.io/) agus [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) le chéile cothrom le ~20% agus ~14% faoi seach, agus is annamh a úsáidtear cliaint eile. + +Fuarthas sonraí na sraithe reatha ó [Ethernodes](https://ethernodes.org) an 23 Eanáir-2022. Fuarthas sonraí do chliaint chomhdhearcaidh ó [Michael Sproul](https://github.com/sigp/blockprint). Tá sé níos deacra sonraí cliant comhdhearcaidh a fháil toisc nach mbíonn rianta gan athbhrí ag cliaint an tsraith chomhdhearcaidh ar féidir iad a úsáid chun iad a aithint. Gineadh na sonraí trí úsáid a bhaint as algartam aicmithe a chuireann mearbhall uaireanta ar roinnt de na cliaint mhionlaigh (féach [anseo](https://twitter.com/sproulM_/status/1440512518242197516) le haghaidh tuilleadh sonraí). Sa léaráid thuas, caitear leis na haicmithe débhríocha seo le lipéad ceachtar/nó (m.sh. Nimbus/Teku). Mar sin féin, is léir go bhfuil an chuid is mó den líonra ag rith Prysm. Is léargas iad na sonraí thar thacar seasta bloc (sa chás seo bloic Beacon i sliotáin 2048001 go 2164916) agus uaireanta tá ceannas Prysm níos airde, níos mó ná 68%. In ainneoin nach bhfuil iontu ach pictiúir, tugann na luachanna sa léaráid tuiscint ghinearálta ar staid reatha éagsúlacht na gcliant. + +Tá sonraí nuashonraithe ar éagsúlacht na gcliant don tsraith chomhdhearcaidh ar fáil anois ag [clientdiversity.org](https://clientdiversity.org/). + +## Ciseal reatha {#execution-layer} + +Go dtí seo, díríodh an comhrá ar éagsúlacht na gcliant go príomha ar an tsraith chomhdhearcaidh. Mar sin féin, is ionann cliant reatha [Geth](https://geth.ethereum.org) agus thart ar 85% de na nóid go léir faoi láthair. Tá fadhb ag baint leis an gcéatadán seo ar na cúiseanna céanna agus a bhaineann le cliaint chomhdhearcaidh. Mar shampla, de bharr fabht in Geth a chuireann isteach ar láimhseáil idirbhearta nó a thógann pálasta reatha d'fhéadfadh cliaint chomhdhearcaidh idirbhearta fabhtacha nó lochtacha a dhéanamh. Mar sin, bheadh ​​​​Ethereum níos sláintiúla le dáileadh níos cothroime de chliaint reatha, go hidéalach gan aon chliant a sheasann do níos mó ná 33% den líonra. + +## Bain úsáid as cliant mionlaigh {#use-minority-client} + +Le tabhairt faoi éagsúlacht na gcliant bíonn níos mó ná úsáideoirí aonair ag teastáil chun cliaint mhionlaigh a roghnú - teastaíonn linnte mianadóirí/bailíochtórí agus institiúidí mar na dapps agus na malartáin mhóra chun cliaint a aistriú freisin. Mar sin féin, is féidir le gach úsáideoir a gcuid féin a dhéanamh chun an éagothroime reatha a cheartú agus úsáid na mbogearraí Ethereum go léir atá ar fáil a normalú. Tar éis The Merge, beidh ar gach oibreoir nód cliant reatha agus cliant comhdhearcaidh a reáchtáil. Cabhróidh roghnú teaglaim de na cliaint a mholtar thíos le héagsúlacht cliant a mhéadú. + +### Cliaint fhorghníomhú {#execution-clients} + +[Besu](https://www.hyperledger.org/use/besu) + +[Nethermind](https://downloads.nethermind.io/) + +[Erigon](https://github.com/ledgerwatch/erigon) + +[Go-Ethereum](https://geth.ethereum.org/) + +### Cliaint comhdhearcadh {#consensus-clients} + +[Nimbus](https://nimbus.team/) + +[Lighthouse](https://github.com/sigp/lighthouse) + +[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) + +[Lodestar](https://github.com/ChainSafe/lodestar) + +[Prysm](https://docs.prylabs.network/docs/getting-started) + +[Grandine](https://docs.grandine.io/) + +Is féidir le húsáideoirí teicniúla cabhrú leis an bpróiseas seo a luathú trí níos mó ranganna teagaisc agus doiciméadúcháin a scríobh do chliaint mhionlaigh agus a gcomhghleacaithe nód-oibriúcháin a spreagadh le dul ar imirce ó na cliaint cheannasacha. Tá treoracha maidir le haistriú go cliant comhdhearcadh mionlaigh ar fáil ar [clientdiversity.org](https://clientdiversity.org/). + +## Deais éagsúlacht cliant {#client-diversity-dashboards} + +Tugann roinnt deaiseanna staitisticí fíor-ama ar éagsúlacht cliant maidir leis an gciseal reatha agus comhdhearcaidh. + +**Ciseal comhdhearcaidh:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) **Ciseal reatha:** + +- [supermajority.info](https://supermajority.info//) +- [Ethernodes](https://ethernodes.org/) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Éagsúlacht cliant ar chiseal chomhdhearcaidh Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [Ethereum Merge: Rith an cliant tromlaigh ar do phriacal féin!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, 24 Márta 2022_ +- [Tábhacht éagsúlacht na gcliant](https://our.status.im/the-importance-of-client-diversity/) +- [Liosta de sheirbhísí nód Ethereum](https://ethereumnodes.com/) +- ["Cúig Fháth" den fhadhb éagsúlachta cliant](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [Éagsúlacht Ethereum agus Conas Réiteach a dhéanamh Dó (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## Ábhair ghaolmhara {#related-topics} + +- [Rith nód Ethereum](/run-a-node/) +- [Nóid agus cliaint](/developers/docs/nodes-and-clients/) diff --git a/public/content/translations/ga/developers/docs/nodes-and-clients/index.md b/public/content/translations/ga/developers/docs/nodes-and-clients/index.md new file mode 100644 index 00000000000..e4eb9603e35 --- /dev/null +++ b/public/content/translations/ga/developers/docs/nodes-and-clients/index.md @@ -0,0 +1,315 @@ +--- +title: Nóid agus cliaint +description: Forbhreathnú ar nóid Ethereum agus bogearraí cliant, móide conas nód a shocrú agus cén fáth ar chóir duit é a dhéanamh. +lang: ga +sidebarDepth: 2 +--- + +Is líonra dáilte ríomhairí é Ethereum (ar a dtugtar nóid) a ritheann bogearraí ar féidir leo bloic agus sonraí idirbhirt a fhíorú. Ní mór na bogearraí a rith ar do ríomhaire chun nód Ethereum a dhéanamh de. Tá dhá phíosa bogearraí ar leith (ar a dtugtar 'cliaint') ag teastáil chun nód a dhéanamh. + +## Réamhriachtanais {#prerequisites} + +Ba cheart go dtuigfeá coincheap líonra piara le piaraí agus [bunghnéithe an EVM](/developers/docs/evm/) sula dtéann tú i ngleic níos doimhne leis agus do chás féin de chliant Ethereum a rith. Féach ar ár [réamhrá le haghaidh Ethereum](/developers/docs/intro-to-ethereum/). + +Mura bhfuil cur amach agat ar nóid, molaimid ár réamhrá atá éasca le húsáid a sheiceáil ar [nód Ethereum a rith](/run-a-node). + +## Cad iad nóid agus cliaint? {#what-are-nodes-and-clients} + +Is éard atá i "nód" aon chás de bhogearraí cliant Ethereum atá ceangailte le ríomhairí eile a ritheann bogearraí Ethereum freisin, rud a chruthaíonn líonra. Is éard is cliant ann ná Ethereum a chur i bhfeidhm trína bhfíoraítear sonraí i gcoinne rialacha an phrótacail agus a choimeádann an líonra slán. Caithfidh nód dhá chliaint a rith: cliant comhthola agus cliant forghníomhaithe. + +- Éisteann an cliant forghníomhaithe (ar a dtugtar an tInneall Forghníomhaithe, cliant EL nó cliant Eth1 roimhe seo) le hidirbhearta nua a chraoltar sa líonra, déanann sé iad a fhorghníomhú in EVM, agus coinníonn sé an stát agus an bunachar sonraí is déanaí de shonraí reatha Ethereum ar fad. +- Cuireann an cliant comhthoil (ar a dtugtar an Beacon Node, cliant CL nó cliant Eth2 roimhe seo) an t-algartam comhdhearcaidh cruthúnais i bhfeidhm, lena gcuirtear ar chumas an líonra comhaontú a bhaint amach bunaithe ar shonraí bailíochtaithe ón gcliant forghníomhaithe. Tá tríú píosa bogearraí ann freisin, ar a dtugtar 'bailíochtóir' ar féidir a chur leis an gcliant comhdhearcaidh, rud a ligeann do nód a bheith rannpháirteach chun an líonra a dhaingniú. + +Oibríonn na cliaint seo le chéile chun súil a choinneáil ar cheann shlabhra Ethereum agus chun ligean d'úsáideoirí idirghníomhú le líonra Ethereum. Tugtar [castacht imchochlaithe](https://vitalik.eth.limo/general/2022/02/28/complexity.html) ar an dearadh modúlach ina bhfuil iliomad bogearraí ag obair le chéile. D'fhág an cur chuige sin é níos fusa [An Cumasc](/roadmap/merge) a rith gan uaim, déanann sé bogearraí cliant níos éasca a chothabháil agus a fhorbairt, agus cumasaíonn sé cliaint aonair a athúsáid, mar shampla, in [éiceachóras chiseal 2](/layer-2/). + +![Forghníomhú mar aon le cliaint chomhthola](./eth1eth2client.png) Léaráid shimplithe de chliant forghníomhaithe agus comhdhearcadh cúpláilte. + +### Éagsúlacht cliant {#client-diversity} + +Tá [cliaint forghníomhaithe](/developers/docs/nodes-and-clients/#execution-clients) agus [cliaint chomhthola](/developers/docs/nodes-and-clients/#consensus-clients) ann i dteangacha éagsúla ríomhchlárúcháin arna bhforbairt ag foirne éagsúla. + +Is féidir le feidhmiúcháin iolracha cliant an líonra a neartú trína spleáchas ar bhunachar cód amháin a laghdú. Is é an sprioc idéalach ná éagsúlacht a bhaint amach gan aon chliant a bheith i gceannas ar an líonra, rud a chuirfeadh deireadh le pointe aonair teipe. Tugann éagsúlacht na dteangacha cuireadh freisin do phobal forbróra níos leithne agus ligeann sé dóibh comhtháthú a chruthú ina rogha teanga. + +Foghlaim tuilleadh faoi [éagsúlacht cliant](/developers/docs/nodes-and-clients/client-diversity/). + +Is é an rud atá i gcoiteann ag na feidhmiúcháin sin ná go leanann siad go léir aon sonraíocht amháin. Leis na sonraíochtaí sin sonraítear an chaoi a bhfeidhmíonn líonra Ethereum agus blocshlabhra. Sainmhínítear gach mionsonra teicniúil agus is féidir sonraíochtaí a fháil amhail: + +- Ar dtús, [Páipéar Buí Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf) +- [Sonraíochtaí forghníomhaithe](https://github.com/ethereum/execution-specs/) +- [Sonraíochtaí comhdhearcaidh](https://github.com/ethereum/consensus-specs) +- [EIPs](https://eips.ethereum.org/) arna gcur i bhfeidhm sna [huasghráduithe líonra](/history/) + +### Nóid rianaithe sa líonra {#network-overview} + +Tairgeann rianairí iolracha forbhreathnú fíor-ama ar nóid i líonra Ethereum. Tabhair faoi deara, mar gheall ar nádúr na ngréasán díláraithe, ní féidir leis na ransaitheoirí sin ach radharc teoranta den líonra a sholáthar agus go bhféadfadh siad torthaí éagsúla a thuairisciú. + +- [Léarscáil na nód](https://etherscan.io/nodetracker) le Etherscan +- [Ethernodes](https://ethernodes.org/) le Bitfly +- [Nodewatch](https://www.nodewatch.io/) le Chainsafe, nóid comhaontaithe +- [Monitoreth](https://monitoreth.io/) - le MigaLabs, Uirlis dháilte um monatóireacht líonra + +## Cineálacha nód {#node-types} + +Más mian leat [do nód féin a rith](/developers/docs/nodes-and-clients/run-a-node/), ba cheart duit a thuiscint go bhfuil cineálacha éagsúla nód ann a ídíonn sonraí ar bhealaí difriúla. Go deimhin, is féidir le cliaint trí chineál éagsúla nóid a rith, mar atá: solas, iomlán agus cartlann. Tá roghanna ann freisin maidir le straitéisí sioncronaithe éagsúla trína gcumasaítear am sioncronaithe níos tapúla. Baineann sioncrónú le cé chomh tapa agus is féidir leis an bhfaisnéis is déanaí a fháil ar staid Ethereum. + +### Nód iomlán {#full-node} + +Déanann nóid iomlána bailíochtú bloc-ar-bhloc ar an mblocshlabhra, lena n-áirítear corp an bhloic agus na sonraí stáit a íoslódáil agus a fhíorú do gach bloc. Tá aicmí éagsúla nód iomlán ann - tosaíonn cuid acu ón mbloc geineasas agus fíoraíonn siad gach bloc amháin i stair iomlán an blocshlabhra. Tosaíonn daoine eile a bhfíorú ag bloc níos déanaí a bhfuil muinín acu as a bheith bailí (m.sh. ‘snap sync’ Geth). Beag beann ar an áit a dtosaítear an fíorú, ní choinníonn nóid iomlána ach cóip áitiúil de shonraí réasúnta nua (go hiondúil na 128 bloc is déanaí), rud a ligfear do scriosadh sonraí níos sine chun spás diosca a shábháil. Is féidir sonraí níos sine a athghiniúint nuair is gá. + +- Stóráiltear sonraí blocshlabhra iomlána (cé go ndéantar é seo a ghearradh go tréimhsiúil ionas nach stórálann nód iomlán na sonraí stáit go léir siar go geineasas) +- Glacann sé páirt i mbailíochtú bloc, fíoraíonn sé gach bloc agus stát. +- Is féidir gach stát a aisghabháil ó stóráil áitiúil nó a ghiniúint ó 'ghrianghraif' le nód iomlán. +- Freastalaíonn sé ar an líonra agus soláthraíonn sé sonraí ach iad a iarraidh. + +### Nód cartlainne {#archive-node} + +Is nóid iomlána iad nóid chartlainne trína bhfíoraítear gach bloc ón tús agus nach scriostar aon cheann de na sonraí a íoslódáladh riamh. + +- Stórálann sé gach rud a choinnítear sa nód iomlán agus tógann sé cartlann de stáit stairiúla. Tá sé ag teastáil más mian leat rud éigin cosúil le hiarmhéid cuntais ar bhloc #4,000,000 a cheistiú, nó do chuid idirbhearta féin a thástáil go simplí agus go hiontaofa gan mianadóireacht a dhéanamh orthu trí úsáid a bhaint as rianú. +- Léiríonn na sonraí sin aonaid teiribheart, rud a fhágann nach bhfuil nóid chartlainne chomh tarraingteach d’úsáideoirí meánacha ach a d’fhéadfadh a bheith áisiúil do sheirbhísí cosúil le blocthaiscéalaithe, díoltóirí sparán, agus anailísíocht slabhra. + +Má dhéantar cliaint a shioncronú i modh ar bith seachas sa mhodh cartlainne, déanfar sonraí blocshlabhra prúnáilte díobh. Is é is ciall leis sin nach bhfuil aon chartlann de gach stát stairiúil ach tá an nód iomlán in ann iad a thógáil ar éileamh. + +Foghlaim tuilleadh faoi [Nóid chartlainne](/developers/docs/nodes-and-clients/archive-nodes). + +### Nód éadrom {#light-node} + +In ionad gach bloc a íoslódáil, ní dhéanann nóid solais ach ceanntáisc bloc a íoslódáil. Tá faisnéis achomair sna ceanntáisc sin faoi ábhar na mbloc. Iarrtar aon fhaisnéis eile a theastaíonn ón nód solais ó nód iomlán. Ina dhiaidh sin is féidir leis an nód solais na sonraí a fhaigheann siad a fhíorú go neamhspleách i gcoinne na bhfréamhacha stáit sna ceanntáisc bloc. Cuireann nóid solais ar chumas úsáideoirí páirt a ghlacadh i líonra Ethereum gan na crua-earraí cumhachtacha nó an bandaleithead ard a theastaíonn chun nóid iomlána a rith. Faoi dheireadh, d’fhéadfadh nóid solais rith ar fhóin phóca nó ar ghléasanna leabaithe. Ní ghlacann na nóid solais páirt i gcomhthoil (.i. ní féidir leo a bheith ina mianadóirí/na mbailitheoirí), ach is féidir leo rochtain a fháil ar blocshlabhra Ethereum leis an bhfeidhmiúlacht chéanna agus leis na ráthaíochtaí slándála mar a gheobhadh nód iomlán. + +Is réimse forbartha gníomhach é cliaint éadroma do Ethereum agus táimid ag súil le cliaint éadroma nua a fheiceáil don tsraith chomhthola agus don chiseal forghníomhaithe go luath. Tá bealaí féideartha ann freisin chun sonraí cliant éadroma a sholáthar ar an [líonra cúlchainte](https://www.ethportal.net/). Buntáiste is ea sin toisc go bhféadfadh an líonra cúlchainte tacú le líonra de nóid solais gan nóid iomlána a bheith ag teastáil chun freastal ar iarratais. + +Ní thacaíonn Ethereum le daonra mór de nóid solais fós, ach tá tacaíocht nód solais ina réimse a bhfuiltear ag súil go bhforbrófar é go tapa go luath amach anseo. Go háirithe, tá cliaint amhail [Nimbus](https://nimbus.team/), [Helios](https://github.com/a16z/helios) agus [LodeStar](https://lodestar.chainsafe.io/) dírithe go mór ar nóid solais faoi láthair. + +## Cén fáth ar chóir dom nód Ethereum a rith? {#why-should-i-run-an-ethereum-node} + +Trí nód a rith, is féidir leat Ethereum a úsáid go díreach, go muiníneach agus go príobháideach agus tú ag tacú leis an líonra trína choinneáil níos láidre agus níos díláraithe. + +### Sochair duit {#benefits-to-you} + +Trí do nód féin a rith, is féidir leat Ethereum a úsáid ar bhealach príobháideach, féin-leordhóthanach agus gan bheith ag brath ar mhuinín a chur i ndaoine eile. Ní gá duit muinín a bheith agat as an líonra mar is féidir leat na sonraí a fhíorú as do stuaim féin le do chliant. Is mantra blocshlabhra coitianta é "Ná habair é, fíoraigh é". + +- Trí do nód leis féin fíoraítear na hidirbhearta agus na bloic go léir i gcoinne rialacha comhthola. Ciallaíonn sé sin nach gá duit brath ar aon nóid eile sa líonra ná muinín iomlán a bheith agat astu. +- Is féidir leat sparán Ethereum a úsáid le do nód féin. Is féidir leat daipeanna a úsáid ar bhealach níos sláine agus níos príobháidí mar ní bheidh ort do sheoltaí ná do chuid iarmhéideanna a sceitheadh ​​chuig idirghabhálaithe. Is féidir gach rud a sheiceáil le do chliant féin. Le [MetaMask](https://metamask.io), [Frame](https://frame.sh/) agus [go leor sparán eile](/wallets/find-wallet/) tairgtear RPC-allmhairiú, trína ligtear dóibh do nód a úsáid. +- Is féidir leat seirbhísí eile a bhraitheann ar shonraí ó Ethereum a rith agus féin-óstáil a dhéanamh orthu. Mar shampla, d'fhéadfaí gurb é a bheadh ann ná bailitheoir Shlabhra Beacon, bogearraí cosúil le ciseal 2, bonneagar, taiscéalaithe bloc, próiseálaithe íocaíochta, srl. +- Is féidir leat do chuid [críochphointí RPC](/developers/docs/apis/json-rpc/) saincheaptha féin a sholáthar. D’fhéadfá fiú na críochphointí sin a thairiscint go poiblí don phobal chun cabhrú leo soláthróirí móra láraithe a sheachaint. +- Is féidir leat ceangal le do nód trí úsáid a bhaint as **Cumarsáid Idirphróisis (IPC)** nó an nód a athscríobh chun do ríomhchlár a luchtú mar bhreiseán. Deonaíonn sé sin aga folaigh íseal, rud a chabhraíonn go leor, m.sh. nuair a bhíonn go leor sonraí á bpróiseáil agus leabharlanna Web3 i úsáid nó nuair is gá duit d’idirbhearta a athsholáthar chomh tapa agus is féidir (.i. rith tosaigh). +- Is féidir leat ETH a ghlacadh go díreach chun an líonra a dhaingniú agus luaíochtaí a thuilleamh. Féach ar [gheallchur aonair](/staking/solo/) le tosú. + +![Conas rochtain a fháil ar Ethereum trí d'iarratas agus trí nóid](./nodes.png) + +### Buntáistí líonra {#network-benefits} + +Tá sraith nód éagsúil tábhachtach do shláinte, do shlándáil agus d'athléimneacht oibriúcháin Ethereum. + +- Le nóid iomlána forfheidhmítear na rialacha comhaontaithe, ionas nach féidir iad a mhealladh chun glacadh le bloic nach leanann na rialacha comhaontaithe sin. Leis sin soláthraítear slándáil bhreise sa líonra mar dá mba nóid éadroma na nóid go léir, nach ndéanann fíorú iomlán, d'fhéadfadh bailíochtóirí ionsaí a dhéanamh ar an líonra. +- I gcás ionsaí a sháraíonn cosaintí cripte-eacnamaíocha an [chruthúnais geallchuir](/developers/docs/consensus-mechanisms/pos/#what-is-pos), is féidir téarnamh sóisialta a dhéanamh le nóid iomlána a roghnaíonn an slabhra macánta a leanúint. +- Mar thoradh ar níos mó nóid a bheith sa líonra, tá líonra níos éagsúla agus níos láidre ann, arb é sin sprioc dheiridh an díláraithe, trína n‑éascófar córas iontaofa atá frithsheasmhach in éadan na cinsireachta. +- Trí nóid iomlána soláthraítear rochtain ar shonraí blocshlabhra do chliaint éadroma atá ag brath ar a leithéid. Ar nóid solais ní stóráiltear an blocshlabhra iomlán, ina ionad sin, fíoraítear sonraí trí na [fréamhacha stáit sna ceanntáisc bloc](/developers/docs/blocks/#block-anatomy). Is féidir leo tuilleadh eolais a iarraidh ó nóid iomlána má theastaíonn sé uathu. + +Má ritheann tú nód iomlán, baineann líonra iomlán Ethereum leas as, fiú mura ritheann tú bailíochtóir. + +## Do nód féin a rith {#running-your-own-node} + +Spéis agat i rith do chliant Ethereum féin? + +Le haghaidh réamhrá atá áisiúil do thosaitheoirí, tabhair cuairt ar ár leathanach [rith nód](/run-a-node) chun tuilleadh a fhoghlaim. + +Más úsáideoir níos teicniúla thú, léim isteach sna sonraí agus sna roghanna breise maidir leis an gcaoi chun [do nód féin a thionscnamh](/developers/docs/nodes-and-clients/run-a-node/). + +## Roghanna eile {#alternatives} + +D’fhéadfadh costas ama agus acmhainní a bheith ort agus do nód féin a chur ar bun ach ní gá duit do chás féin a rith i gcónaí. Sa chás sin, is féidir leat soláthraí API tríú páirtí a úsáid. Le haghaidh forbhreathnú ar úsáid na seirbhísí seo, féach ar [nóid mar sheirbhís](/developers/docs/nodes-and-clients/nodes-as-a-service/). + +Má ritheann duine éigin nód Ethereum le API poiblí i do phobal, is féidir leat do sparán a dhíriú ar nód pobail trí Custom RPC agus níos mó príobháideachta a fháil ná le tríú páirtí iontaofa randamach éigin. + +Ar an láimh eile, má ritheann tú cliant, is féidir leat é a roinnt le do chairde óna bhféadfadh an cliant a bheith ag teastáil. + +## Cliaint fhorghníomhú {#execution-clients} + +Coinníonn pobal Ethereum cliaint forghníomhaithe foinse oscailte iolracha (ar a dtugtaí 'cliaint Eth1', nó díreach 'cliaint Ethereum'), arna bhforbairt ag foirne éagsúla trí theangacha cláir éagsúla a úsáid. Leis sin déantar an líonra níos láidre agus níos [ilghnéithí](/developers/docs/nodes-and-clients/client-diversity/). Is é an sprioc idéalach ná éagsúlacht a bhaint amach gan aon chliant a bheith i gceannas chun pointe ar bith teipe a laghdú. + +Sa tábla seo déantar achoimre ar na cliaint éagsúla. Éiríonn le gach ceann acu [tástálacha cliant](https://github.com/ethereum/tests) agus coinnítear iad go gníomhach chun fanacht cothrom le dáta le huasghráduithe líonra. + +| Cliant | Teanga | Córais oibriúcháin | Líonraí | Straitéisí sioncronaithe | Bearradh stáit | +| ------------------------------------------------------------------------- | ---------- | --------------------- | ------------------------- | ------------------------------------------------------------ | ------------------- | +| [Geth](https://geth.ethereum.org/) | Téigh | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync), [Iomlán](#full-sync) | Cartlann, prúnáilte | +| [Nethermind](https://www.nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync) (gan riar), Go tapa, [Iomlán](#full-sync) | Cartlann, prúnáilte | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Snap](#snap-sync), [Go tapa](#fast-sync), [Lán](#full-sync) | Cartlann, prúnáilte | +| [Erigon](https://github.com/ledgerwatch/erigon) | Téigh | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Iomlán](#full-sync) | Cartlann, prúnáilte | +| [Reth](https://reth.rs/) | Rust | Linux, Windows, macOS | Mainnet, Sepolia, Holesky | [Iomlán](#full-sync) | Cartlann, prúnáilte | +| [EthereumJS](https://github.com/ethereumjs/ethereumjs-monorepo) _(béite)_ | TypeScript | Linux, Windows, macOS | Sepolia, Holesky | [Iomlán](#full-sync) | Prúnáilte | + +Le haghaidh tuilleadh faisnéise ar líonraí a dtacaítear leo, léigh tuilleadh faoi [líonraí Ethereum](/developers/docs/networks/). + +Tá cásanna úsáide agus buntáistí uathúla ag gach cliant, mar sin ba cheart duit ceann a roghnú bunaithe ar do chuid sainroghanna féin. Tríd an éagsúlacht ligtear d'fheidhmiúcháin díriú ar ghnéithe éagsúla agus ar lucht féachana úsáideoirí. B'fhéidir gur mhaith leat cliant a roghnú bunaithe ar ghnéithe, ar thacaíocht, ar theanga ríomhchlárúcháin nó ar cheadúnais. + +### Besu {#besu} + +Is éard atá Hyperledger Besu ná cliant Ethereum de ghrád fiontair le haghaidh líonraí poiblí agus ceadaithe. Ritheann sé gnéithe Mainnet Ethereum go léir, ó rianú go GraphQL, tá monatóireacht fhairsing aige agus tacaíonn ConsenSys leis, ar bhealaí pobail oscailte agus trí CLSanna tráchtála le haghaidh fiontar. Tá sé scríofa in Java agus tá ceadúnas Apache 2.0 aige. + +Tabharfaidh [doiciméadúchán](https://besu.hyperledger.org/en/stable/) treoir duit trí na sonraí go léir maidir leis na gnéithe agus leis na socruithe a bhaineann leis. + +### Erigon {#erigon} + +Thosaigh Erigon, ar a dtugtaí Turbo-Geth roimhe seo, mar fhorc de Go Ethereum atá dírithe ar éifeachtúlacht luais agus spáis diosca. Is feidhmiú iomlán ath-ailtireachta é Erigon ar Ethereum, atá scríofa faoi láthair in Go ach tá feidhmiúcháin á bhforbairt i dteangacha eile. Is é sprioc Erigon ná cur i bhfeidhm níos tapúla, níos modúlaí agus níos optamaithe a sholáthar do Ethereum. Is féidir leis sioncrónú nód cartlainne iomlán a dhéanamh trí úsáid a bhaint as thart ar 2TB de spás diosca, laistigh de 3 lá. + +### Go Ethereum {#geth} + +Tá Go Ethereum (Geth go hachomair) ar cheann de na forfheidhmithe bunaidh de phrótacal Ethereum. Faoi láthair, is é an cliant is forleithne é ar mó an bonn úsáideora agus an éagsúlacht uirlisí aige le haghaidh úsáideoirí agus forbróirí. Tá sé scríofa in Go, ar bhonn foinse iomlán oscailte agus ceadúnaithe faoin GNU LGPL v3. + +Foghlaim tuilleadh faoi Geth ina [dhoiciméadúchán](https://geth.ethereum.org/docs/). + +### Nethermind {#nethermind} + +Is feidhmiú Ethereum é Nethermind a cruthaíodh leis an gcruach teicniúil C# .NET, atá ceadúnaithe le LGPL-3.0, ag rith ar gach ardán mór lena n-áirítear ARM. Cuireann sé feidhmíocht den scoth le: + +- meaisín fíorúil optamaithe +- rochtain stáit +- líonrú agus gnéithe saibhir cosúil le deais Prometheus/Grafana, tacaíocht do logáil fiontair seq, rianú JSON-RPC agus breiseáin anailísíochta. + +Tá [doiciméid mhionsonraithe](https://docs.nethermind.io), tacaíocht láidir forbartha, pobal ar líne agus tacaíocht 24/7 ar fáil d'úsáideoirí préimhe ag Nethermind freisin. + +### Reth {#reth} + +Is ionann Reth (nod do Rust Ethereum) agus feidhmiú nód iomlán Ethereum atá dírithe ar a bheith éasca le húsáid, an-modúil, tapa agus éifeachtach. Tógtha agus tiomáinte ag Paradigm Reth ar dtús, tá sé ceadúnaithe faoi cheadúnais Apache agus MIT. + +Tá Reth réidh le táirgeadh, agus oiriúnach le húsáid i dtimpeallachtaí misean-criticiúla ar nós seirbhísí geallchuir nó ard-aga fónaimh. Feidhmíonn sé go maith i gcásanna úsáide ina bhfuil ardfheidhmíocht le corrlaigh mhóra ag teastáil, mar shampla gníomhaíochtaí RPC, MEV, innéacsú, insamhaltaí, agus P2P. + +Foghlaim tuilleadh ar [Reth Book](https://reth.rs/), nó ar an [Reth GitHub repo](https://github.com/paradigmxyz/reth?tab=readme-ov-file#reth). + +### Forbairt ar bun {#execution-in-development} + +Tá na cliaint seo fós i gcéimeanna luatha forbartha agus ní mholtar iad fós le húsáid táirgeachta. + +#### EthereumJS {#ethereumjs} + +Tá Cliant Reatha EthereumJS (EthereumJS) scríofa i TypeScript agus tá sé comhdhéanta de roinnt pacáistí, lena n-áirítear croí-bhuin Ethereum arna léiriú ag na haicmeí Bloc, Idirbheart, agus Merkle-Patricia Trie agus comhpháirteanna lárnacha cliant lena n-áirítear cur i bhfeidhm Meaisín Fíorúil Ethereum (EVM), aicme blocshlabhra, agus cruach líonraithe DevP2P. + +Faigh tuilleadh eolais faoi ach an [doiciméadúchán](https://github.com/ethereumjs/ethereumjs-monorepo/tree/master) a léamh + +## Cliaint comhdhearcadh {#consensus-clients} + +Tá go leor cliant comhdhearcaidh (cliaint 'Eth2' mar a tugadh orthu roimhe seo) ag tacú leis na [uasghráduithe comhdhearcaidh](/roadmap/beacon-chain/). Tá siad freagrach as gach loighic a bhaineann le comhdhearcadh lena n-áirítear an t-algartam forc-rogha, fianuithe a phróiseáil agus bainistiú a dhéanamh ar luach saothair agus pionóis [cruthúnas-gill](/developers/docs/consensus-mechanisms/pos). + +| Cliant | Teanga | Córais oibriúcháin | Líonraí | +| ------------------------------------------------------------- | ---------- | --------------------- | ------------------------------------------------------------- | +| [Lighthouse](https://lighthouse.sigmaprime.io/) | Rust | Linux, Windows, macOS | Beacon Chain, Holesky, Pyrmont, Sepolia agus níos mó | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Beacon Chain, Holesky, Seplia agus níos mó | +| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Beacon Chain, Holesky, Seplia agus níos mó | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Téigh | Linux, Windows, macOS | Beacon Slabhra, Gnosis, Holesky, Pyrmont, Seplia agus níos mó | +| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | Java | Linux, Windows, macOS | Beacon Slabhra, Gnosis, Holesky, Seplia agus níos mó | +| [Grandine](https://docs.grandine.io/) | Rust | Linux, Windows, macOS | Beacon Chain, Holesky, Seplia agus níos mó | + +### Lighthouse {#lighthouse} + +Is feidhmiú cliant comhdhearcaidh é Lighthouse atá scríofa i Rust faoi cheadúnas Apache-2.0. Tá sé á chothabháil ag Sigma Prime agus tá sé cobhsaí agus réidh le táirgeadh ó bunaíodh Beacon Chain. Tá fiontair éagsúla, linnte gill agus daoine aonair ag brath air. Tá sé mar aidhm aige a bheith slán, feidhmiúil agus idir-inoibritheach i raon leathan timpeallachtaí, ó ríomhairí pearsanta deisce go dtí imscaradh sofaisticiúla uathoibrithe. + +Is féidir doiciméadú a fháil i [Leabhar Lighthouse](https://lighthouse-book.sigmaprime.io/) + +### Lodestar {#lodestar} + +Is éard atá i Lodestar ná feidhmiú cliant comhdhearcaidh atá réidh le táirgeadh atá scríofa i Typescript faoin gceadúnas LGPL-3.0. Tá sé á chothabháil ag ChainSafe Systems agus is é an ceann is nuaí de na cliaint chomhaontaithe le haghaidh páirtithe leasmhara aonair, forbróirí agus taighdeoirí. Tá Lodestar comhdhéanta de nód rabhcáin agus cliant bailíochtóra faoi thiomáint ag feidhmiú JavaScript de phrótacail Ethereum. Tá sé mar aidhm ag Lodestar feabhas a chur ar inúsáidteacht Ethereum le cliaint éadroma, inrochtaineacht a leathnú do ghrúpa níos mó forbróirí agus cur le héagsúlacht éiceachórais a thuilleadh. + +Is féidir tuilleadh eolais a fháil ar ár [ suíomh Gréasáin Lodestar](https://lodestar.chainsafe.io/) + +### Nimbus {#nimbus} + +Is cur i bhfeidhm cliant comhdhearcaidh é Nimbus atá scríofa i Nim faoin gceadúnas Apache-2.0. Is cliant é atá réidh le táirgeadh agus é in úsáid ag geallsealbhóirí aonair agus ag linnte geallta. Tá Nimbus deartha le haghaidh éifeachtúlacht acmhainní, rud a fhágann go bhfuil sé éasca é a reáchtáil ar fheistí srianta ó thaobh acmhainní agus ar bhonneagar fiontair chomh héasca céanna, gan cur isteach ar chobhsaíocht ná ar fheidhmíocht luach saothair. Ciallaíonn lorg acmhainne níos éadroime go mbíonn lamháil sábháilteachta níos mó ag an gcliant nuair a bhíonn an líonra faoi strus. + +Foghlaim tuilleadh in [doiciméid Nimbus](https://nimbus.guide/) + +### Prysm {#prysm} + +Is cliant comhdhearcaidh foinse oscailte lán-tréithe é Prysm atá scríofa in Go faoin gceadúnas GPL-3.0. Tá UI roghnach webapp aige agus tugann sé tosaíocht d’eispéireas úsáideora, do dhoiciméadú agus do chumraíocht d’úsáideoirí geall sa bhaile agus d’úsáideoirí institiúideacha. + +Tabhair cuairt ar [Prysm docs](https://docs.prylabs.network/docs/getting-started/) chun tuilleadh a fhoghlaim. + +### Teku {#teku} + +Tá Teku ar cheann de chliaint bhunaidh ghiniúint an tSlabhra Rabhcáin. In éineacht leis na gnáthspriocanna (slándáil, stóinseacht, cobhsaíocht, inúsáidteacht, feidhmíocht), tá sé mar aidhm ag Teku go sonrach cloí go hiomlán leis na caighdeáin éagsúla cliant comhaontaithe. + +Tairgeann Teku roghanna imlonnaithe an-solúbtha. Is féidir an nód rabhcáin agus an cliant bailíochtóra a rith le chéile mar phróiseas aonair, atá thar a bheith áisiúil do lucht gill aonair, nó is féidir nóid a rith ar leithligh le haghaidh oibríochtaí geallchuir sofaisticiúla. Ina theannta sin, tá Teku go hiomlán idir-inoibritheach le [Web3Signer](https://github.com/ConsenSys/web3signer/) chun eochair-shlándáil agus cosaint slaise a shíniú. + +Tá Teku scríofa i Java agus tá ceadúnas Apache 2.0 aige. Tá sé forbartha ag an bhfoireann Prótacail ag ConsenSys atá freagrach freisin as Besu agus Web3Signer. Foghlaim tuilleadh i [Teku docs](https://docs.teku.consensys.net/en/latest/). + +### Grandine {#grandine} + +Is cur i bhfeidhm cliant comhdhearcadh é Grandine, scríofa i Rust faoin gceadúnas GPL-3.0. Tá sé á chothabháil ag Foireann Grandine Core agus tá sé tapa, ardfheidhmíoch agus éadrom. Oireann sé do raon leathan geallsealbhóirí, idir geallsealbhóirí aonair a ritheann ar ghléasanna íseal-acmhainne mar Raspberry Pi go geallshealbhóirí institiúideacha móra a bhfuil na mílte bailíochtóirí á rith acu. + +Tá doiciméadacht le fáil sa [Grandine Book](https://docs.grandine.io/) + +## Modhanna an tsioncrónaithe {#sync-modes} + +Chun sonraí reatha an líonra a leanúint agus a fhíorú, ní mór don chliant Ethereum sioncrónú leis an stát líonra is déanaí. Déantar é seo trí shonraí ó phiaraí a íoslódáil, a n-ionracas a fhíorú go cripteagrafach, agus bunachar sonraí blocshlabhra áitiúil a thógáil. + +Léiríonn modhanna sioncrónaithe cuir chuige éagsúla don phróiseas seo le comhbhabhtálacha éagsúla. Athraíonn na cliaint freisin i bhfeidhmiú na n-halgartam sioncronaithe. Déan tagairt i gcónaí do dhoiciméadú oifigiúil do chliant roghnaithe le haghaidh sonraí maidir le feidhmiú. + +### Modhanna sioncronaithe ciseal forghníomhaithe {#execution-layer-sync-modes} + +Féadfar an ciseal reatha a reáchtáil ar mhodhanna éagsúla chun freastal ar chásanna úsáide difriúla, ó staid dhomhanda an bhlocshlabhra a athrith go dtí sioncronú le barr an tslabhra ó sheicphointe iontaofa amháin. + +#### Sioncronú iomlán {#full-sync} + +Íoslódálann sioncronú iomlán na bloic go léir (lena n-áirítear ceanntásca agus bloc-chomhlachtaí) agus athghintear staid an bhlocshlabhra go hincriminteach trí gach bloc ó geineasas a fhorghníomhú. + +- Laghdaíonn sé muinín agus cuireann sé an t-slándáil is airde ar fáil trí gach idirbheart a fhíorú. +- Le méadú ar líon na n-idirbheart, féadfaidh sé laethanta go seachtainí a ghlacadh chun gach idirbheart a phróiseáil. + +Déanann [nóid chartlainne](#archive-node) sioncronú iomlán chun stair iomlán na n-athruithe staide a rinne gach idirbheart i ngach bloc a chruthú (agus a choinneáil). + +#### Sioncronú tapa {#fast-sync} + +Cosúil le sioncronú iomlán, íoslódálann sioncronú tapa gach bloc (lena n-áirítear ceanntásca, idirbhearta agus admhálacha). Mar sin féin, in ionad na hidirbhearta stairiúla a athphróiseáil, braitheann sioncronú tapa ar na fáltais go dtí go sroicheann sé ceann le déanaí, nuair a aistríonn sé go bloic allmhairithe agus próiseála chun nód iomlán a sholáthar. + +- Straitéis sioncronaithe tapa. +- Laghdaíonn sé éileamh próiseála i bhfabhar úsáid bandaleithead. + +#### Sioncrónú tobann {#snap-sync} + +Fíoraíonn sioncronaithe snap an slabhra bloc-ar-bhloc freisin. Mar sin féin, in ionad tosú ag an mbloc ginis, tosaíonn sioncronú Léim ag seicphointe 'muiníneach' níos déanaí a bhfuil aithne air a bheith mar chuid den fhíor-blocshlabhra. Sábhálann an nód seicphointí tréimhsiúla agus sonraí níos sine ná aois áirithe á scriosadh. Úsáidtear na pictiúir seo chun sonraí staide a athghiniúint de réir mar is gá, seachas iad a stóráil go deo. + +- An straitéis sioncronaithe is tapúla, réamhshocraithe faoi láthair in Ethereum Mainnet. +- Sábhálann sé go leor úsáid dioscaí agus bandaleithead líonra gan an tslándáil a íobairt. + +[Tuilleadh faoin sioncronú tobann](https://github.com/ethereum/devp2p/blob/master/caps/snap.md). + +#### Sioncronú éadrom {#light-sync} + +Íoslódálann mód cliant éadrom gach ceanntásc bloic, sonraí bloic, agus fíoraíonn sé cuid acu go randamach. Ní shioncronaítear ach barr an tslabhra ón seicphointe iontaofa. + +- Ní fhaigheann sé ach an staid is déanaí agus é ag brath ar iontaoibh i bhforbróirí agus meicníocht chomhthoil. +- Cliant réidh le húsáid le staid reatha an líonra i gcúpla nóiméad. + +**NB** Ní oibríonn an sioncronú éadrom fós le Ethereum cruthúnais-gill - ba cheart leaganacha nua de shioncronú solais a sheoladh go luath! + +[Níos mó faoi chliaint éadroma](/developers/docs/nodes-and-clients/light-clients/) + +### Modhanna sioncronaithe ciseal comhdhearcaidh {#consensus-layer-sync-modes} + +#### Sioncronú dóchasach {#optimistic-sync} + +Is straitéis shioncronaithe iar-chumasc é sioncronú dóchasach atá deartha le bheith ag luí le rogha glactha agus comhoiriúnach go siarghabhálach, rud a ligeann do nóid reatha sioncrónú trí mhodhanna seanbhunaithe. Is féidir leis an inneall reatha _go dóchasach_ bloic rabhcháin a allmhairiú gan iad a fhíorú go hiomlán, an ceann is déanaí a aimsiú, agus ansin tosú ar an slabhra a shioncronú leis na modhanna thuas. Ansin, tar éis don chliant reatha breith suas, cuirfidh sé an cliant comhdhearcadh ar an eolas faoi bhailíocht na n-idirbheart sa Slabhra Rabhcáin. + +[Tuilleadh faoin sioncronú dóchasach](https://github.com/ethereum/consensus-specs/blob/dev/sync/optimistic.md) + +#### Sioncronú seicphointe {#checkpoint-sync} + +Cruthaíonn sioncrónú seicphointe, ar a dtugtar sioncronú suibiachtúlachta lag freisin, eispéireas úsáideora níos fearr chun Nód Rabhcháin a shioncronú. Tá sé bunaithe ar thoimhdí [suibiachtúlacht lag](/developers/docs/consensus-mechanisms/pos/weak-subjectivity/) a chuireann ar chumas an Slabhra Rabhcáin a shioncronú ó sheicphointe suibiachtúlachta lag le déanaí seachas géineas. Déanann sioncronaithe seicphointe an t-am sioncronaithe tosaigh i bhfad níos tapúla le boinn tuisceana iontaoibhe cosúil leis an sioncronú ó [ghineas](/glossary/#genesis-block). + +Go praiticiúil, ciallaíonn sé seo go nascann do nód le cianfhreastalaí chun staid chríochnaithe le déanaí a íoslódáil agus leanann sé ag fíorú sonraí ón bpointe sin. Tá muinín ag an tríú pháirtí a sholáthraíonn na sonraí agus ba cheart iad a phiocadh go cúramach. + +Tuilleadh faoi [sioncronú seicphointe](https://notes.ethereum.org/@djrtwo/ws-sync-in-practice) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Ethereum 101 - Cuid 2 - Nóid a Thuiscint](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– Wil Barnes, 13 Feabhra 2019_ +- [Rith Nóid Iomlána Ethereum: Treoir do Dhaoine ar Bheagán Spreagadh ](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 Samhain 2019_ + +## Ábhair ghaolmhara {#related-topics} + +- [Bloic](/developers/docs/blocks/) +- [Líonraí](/developers/docs/networks/) + +## Ranganna teagaisc a bhaineann leo {#related-tutorials} + +- [Déan nód bailíochta as do Raspberry Pi 4 trí chárta MicroSD a splancadh – Treoir suiteála](/developers/tutorials/run-node-raspberry-pi/) _ – Splancaigh do Raspberry Pi 4, plugáil isteach cábla ethernet, ceangail an diosca SSD agus las an gléas le nód iomlán Ethereum a dhéanamh den Raspberry Pi 4 a ritheann an ciseal forghníomhaithe (Mainnet) agus / nó an ciseal comhtdhearcaidh (Beacon Chain / validator)._ diff --git a/public/content/translations/ga/developers/docs/nodes-and-clients/light-clients/index.md b/public/content/translations/ga/developers/docs/nodes-and-clients/light-clients/index.md new file mode 100644 index 00000000000..89b608823a5 --- /dev/null +++ b/public/content/translations/ga/developers/docs/nodes-and-clients/light-clients/index.md @@ -0,0 +1,61 @@ +--- +title: Cliaint éadrom +description: Réamhrá do chliaint éadrom Ethereum. +lang: ga +--- + +Is é rith nóid iomlán an bealach is iontaofa, atá príobháideach, díláraithe agus friotaíoch ar chinsireacht, chun idirghníomhú le Ethereum. Le nód iomlán coinníonn tú do chóip féin den bhlocshlabhra ar féidir leat a cheistiú láithreach agus faigheann tú rochtain dhíreach ar líonra piara-le-piara Ethereum. Mar sin féin, éilíonn rith nód iomlán chuid mhór cuimhne, stórais agus LAP. Ciallaíonn sé seo nach féidir le gach duine a nód féin a rith. Tá roinnt réitigh dó seo ar threochlár Ethereum, lena n-áirítear gan staid, ach ní chuirfear i bhfeidhm iad go ceann roinnt blianta. Is é an freagra sa ghearrthéarma trádáil a dhéanamh ar chuid de na buntáistí a bhaineann le nód iomlán a reáchtáil le haghaidh feabhsuithe móra feidhmíochta a ligeann do nóid rith le riachtanais crua-earraí an-íseal. Tugtar nóid éadroma ar na nóid a dhéanann an comhbhabhtáil seo. + +## Cad is cliant éadrom ann {#what-is-a-light-client} + +Is nód éadrom nód é nód a ritheann bogearraí chliant éadrom. In ionad cóipeanna áitiúla de na sonraí blocshlabhra a choinneáil agus na hathruithe go léir a fhíorú go neamhspleách, iarrann siad na sonraí riachtanacha ó sholáthraí éigin ina ionad sin. D’fhéadfadh nasc díreach a bheith ag an soláthraí le nód iomlán nó trí fhreastalaí RPC láraithe éigin. Déantar na sonraí a fhíorú ansin ag an nód éadrom, rud a ligeann dó coimeád suas le ceann an tslabhra. Ní phróiseálann an nód éadrom ach ceanntásca bloc, agus ní dhéantar inneachar an bhloic iarbhír a íoslódáil ach ó am go chéile. Is féidir le nóid a n-éadroime a athrú, ag brath ar na teaglamaí de bhogearraí éadroma agus iomlána cliant a ritheann siad. Mar shampla, is é an chumraíocht is éadroime cliant reatha éadrom agus cliant comhdhearcaidh éadrom a rith. Is dócha freisin go roghnóidh go leor nód cliant comhdhearcaidh éadroma a reáchtáil le cliaint reatha iomlána, nó a mhalairt. + +## Conas a oibríonn cliaint éadroma? {#how-do-light-clients-work} + +Nuair a thosaigh Ethereum ag úsáid meicníocht chomhdhearcaidh bunaithe ar chruthúnas-gill, tugadh isteach bonneagar nua go sonrach chun tacú le cliaint éadroma. Is é an bealach a oibríonn sé ná fo-thacar de 512 bailíochtóir a roghnú go randamach gach 1.1 lá chun gníomhú mar **coiste sioncronaithe**. Síníonn an coiste sioncronaithe ceanntásc na mbloc le déanaí. Tá síniú comhiomlán na mbailíochtóirí sa choiste sioncronaithe i ngach mbloc-cheanntásc agus "réimse giotán" a thaispeánann cé hiad na bailíochtóirí a shínigh agus cé nár shínigh. Áirítear ar gach ceanntásc freisin liosta bailíochtóirí a bhfuiltear ag súil leo páirt a ghlacadh i síniú an chéad bhloic eile. Ciallaíonn sé seo gur féidir le cliant éadrom a fheiceáil go tapa go bhfuil clabhsúr curtha ag an gcoiste sioncronaithe leis na sonraí a fhaigheann siad, agus is féidir leo a sheiceáil freisin gurb é an coiste sioncronaithe an fíorcheann trí chomparáid a dhéanamh idir an ceann a fhaigheann siad ón gceann a dúradh leo a bheith ag súil leis sa bloc roimhe seo. Ar an mbealach seo, is féidir leis an gcliant éadrom a chuid eolais ar an bloc Ethereum is déanaí a nuashonrú gan an bloc féin a íoslódáil i ndáiríre, gan ach an ceanntásc ina bhfuil faisnéis achoimre. + +Ar an gciseal reatha níl aon sonraíocht amháin ann do chliant reatha éadrom. Is féidir le raon feidhme cliant reatha éadroma a bheith éagsúil ó "mód éadrom" cliant reatha iomlán a bhfuil feidhmiúlacht EVM agus líonraithe nód iomlán aige ach ní fhíoraíonn sé ach ceanntásca bloic, gan na sonraí gaolmhara a íoslódáil, nó is féidir é a bheith ina chliant laghduithe a bhraitheann go mór ar iarratais a chur ar aghaidh chuig soláthraí RPC chun idirghníomhú le Ethereum. + +## Cén fáth a bhfuil cliaint éadrom tábhachtach? {#why-are-light-clients-important} + +Tá cliaint éadroma tábhachtach toisc go gceadaíonn siad d'úsáideoirí sonraí isteach a fhíorú seachas muinín a chur go dall sa soláthraí sonraí a bheith ceart agus macánta, agus gan ach codán beag de na hacmhainní ríomhaireachtúla nód iomlán a úsáid. Is féidir na cliaint éadroma na sonraí a fhaigheann siad a sheiceáil i gcoinne ceanntásca bloc a bhfuil a fhios acu a bheith sínithe ag 2/3 ar a laghad de shraith randamach de bhailíochtóirí 512 Ethereum. Is fianaise an-láidir é seo go bhfuil na sonraí cruinn. + +Ní úsáideann an cliant éadrom ach méid beag de chumhacht ríomhaireachta, cuimhne agus stórála ionas gur féidir é a rith ar fón póca, leabaithe in aip nó mar chuid de bhrabhsálaí. Is bealach é cliaint éadroma rochtain ar iontaobhas íoslaghdaithe a dhéanamh ar Ethereum díreach chomh saoráideach le muinín a chur i soláthraí tríú páirtí. + +Glacaimis sampla simplí. Samhlaigh gur mhaith leat iarmhéid do chuntais a sheiceáil. Chun seo a dhéanamh caithfidh tú iarratas a dhéanamh chuig nód Ethereum. Seiceálfaidh an nód sin a chóip áitiúil de staid Ethereum le haghaidh d’iarmhéid agus seolfaidh sé ar ais chugat é. Mura bhfuil rochtain dhíreach agat ar nód, tá oibreoirí láraithe ann a sholáthraíonn na sonraí seo mar sheirbhís. Is féidir leat iarratas a sheoladh chucu, déanann siad a nód a sheiceáil, agus an toradh a sheoladh ar ais chugat. Is í an fhadhb atá leis seo ná go gcaithfidh tú muinín a chur sa soláthraí go dtabharfaidh siad an t-eolas ceart duit. Ní bheidh a fhios agat riamh an bhfuil an fhaisnéis ceart mura féidir leat é a fhíorú duit féin. + +Tugann cliant éadrom aghaidh ar an gceist seo. Iarrann tú sonraí fós ó sholáthraí seachtrach éigin, ach nuair a fhaigheann tú na sonraí ar ais tagann sé le cruthúnas gur féidir le do nód éadrom seiceáil i gcoinne na faisnéise a fuair sé i gceanntásc an bhloic. Ciallaíonn sé seo go bhfuil Ethereum ag fíorú cruinneas do shonraí in ionad roinnt oibreora iontaofa. + +## Cad iad na nuálaíochtaí a chumasaíonn cliaint éadroma? {#what-innovations-do-light-clients-enable} + +Is é príomhbhuntáiste na gcliant éadroma ná an cumas a thabhairt do níos mó daoine rochtain a fháil ar Ethereum go neamhspleách le riachtanais chrua-earraí fánacha agus leis an tuilleamaí is lú ar thríú páirtithe. Tá sé seo go maith d'úsáideoirí mar is féidir leo a gcuid sonraí féin a fhíorú agus tá sé go maith don líonra toisc go méadaíonn sé líon agus éagsúlacht na nód atá ag fíorú an tslabhra. + +Tá an cumas nóid Ethereum a reáchtáil ar fheistí a bhfuil cumhacht stórála, cuimhne agus próiseála an-bheag acu ar cheann de na príomhréimsí nuálaíochta atá nochta ag cliaint éadroma. Cé go bhfuil go leor acmhainní ríomhaireachta ag teastáil ó nóid Ethereum inniu, d'fhéadfaí cliaint éadroma a neadú i mbrabhsálaithe, a reáchtáil ar fhóin phóca agus b'fhéidir fiú ar ghléasanna níos lú cosúil le uaireadóirí cliste. Ciallaíonn sé seo go bhféadfaí sparán Ethereum le cliaint leabaithe a reáchtáil ar fhón póca. Ciallaíonn sé seo go bhféadfaí sparán móibíleacha a dhílárú i bhfad níos mó mar nach mbeadh orthu muinín a chur ar sholáthraithe láraithe sonraí as a gcuid sonraí. + +Tá breiseán leis seo ag cumasú gléasanna **idirlíon na n-earraí (IoT)**. D'fhéadfaí cliant éadrom a úsáid chun úinéireacht a chruthú go tapa ar iarmhéid chomharthaí nó NFT éigin, leis na ráthaíochtaí slándála go léir a sholáthraíonn na coistí sioncronaithe, gníomh éigin a spreagadh ar líonra IoT. Samhlaigh [seirbhís rothar ar cíos](https://youtu.be/ZHNrAXf3RDE?t=929) a úsáideann aip le cliant éadrom leabaithe le fíorú go tapa gur leatsa NFT na seirbhíse cíosa agus más amhlaidh atá, díghlasálann sé rothar duit le tabhairt leat! + +Bhainfeadh ​​​​uas-scáluithe Ethereum tairbhe as cliaint éadroma freisin. Ceann de na fadhbanna móra le haghaidh uas-scáluithe an haiceáil a bhí dírithe ar na droichid a cheadaíonn cistí a aistriú ó Ethereum Mainnet chuig uas-scálú. Leochaileacht amháin is ea na horacail a úsáideann uas-scálú chun a bhrath go bhfuil éarlais déanta ag úsáideoir sa droichead. Má chothaíonn oracal drochshonraí, d'fhéadfadh siad an t-uas-scálú a mhealladh le ceapadh go raibh éarlais sa droichead agus cistí a scaoileadh go mícheart. D'fhéadfaí cliant éadrom atá leabaithe san uas-scálú a úsáid chun cosaint a dhéanamh i gcoinne oracal truaillithe toisc go bhféadfadh an taisce isteach sa droichead teacht le cruthúnas is féidir a fhíorú leis an uas-scálú sula scaoiltear aon comharthaí. D'fhéadfaí an coincheap céanna a chur i bhfeidhm freisin ar dhroichid idirslabhra eile. + +D'fhéadfaí cliaint éadroma a úsáid freisin chun sparán Ethereum a uasghrádú. In ionad muinín a bheith agat as sonraí a chuirtear ar fáil ó sholáthraí RPC, d’fhéadfadh do sparán na sonraí atá á gcur i láthair duit a fhíorú go díreach ag baint úsáide as cliant éadrom leabaithe. Chuirfeadh sé seo le slándáil do sparáin. Má bhí do sholáthraí RPC mímhacánta agus má chuir sé sonraí míchearta ar fáil duit, d'fhéadfadh an cliant éadrom leabaithe é sin a insint duit! + +## Cad é an staid reatha forbartha na gcliant éadroma? {#current-state-of-development} + +Tá roinnt cliant éadroma á bhforbairt, lena n-áirítear rith, comhdhearcadh agus cliaint éadroma comhlíonta/comhdhearcaidh. Seo iad na feidhmeanna cliant éadroma a bhfuil eolas againn orthu agus an leathanach seo á scríobh: + +- [Lodestar](https://github.com/ChainSafe/lodestar/tree/unstable/packages/light-client): cliant éadrom comhdhearcaidh in TypeScript +- [Helios](https://github.com/a16z/helios): comhchliant éadrom reatha agus comhdhearcaidh i Rust +- [Geth](https://github.com/ethereum/go-ethereum/tree/master/beacon/light): mód éadrom do chliant reatha (á fhorbairt) in Go +- [Nimbus](https://nimbus.guide/el-light-client.html): cliant éadrom comhdhearcadh in Nim + +Go bhfios dúinn ní mheastar go bhfuil aon cheann acu seo réidh le táirgeadh go fóill. + +Tá a lán oibre á dhéanamh freisin chun feabhas a chur ar na bealaí inar féidir le cliaint éadroma rochtain a fháil ar shonraí Ethereum. Faoi láthair, bíonn cliaint éadroma ag brath ar iarratais RPC chuig nóid iomlána ag baint úsáide as samhail cliant/freastalaí, ach sa todhchaí d'fhéadfaí na sonraí a iarraidh ar bhealach níos díláraithe ag baint úsáide as líonra tiomnaithe mar an [Líonra Tairsí](https://www.ethportal.net/) a d'fhéadfadh na sonraí a sholáthar do chliaint trí úsáid a bhaint as prótacal béadáin piara le piara. + +Tabharfaidh míreanna eile [mapa bóthair](/roadmap/) mar [crann Verkle](/roadmap/verkle-trees/) agus [easpa staide](/roadmap/statelessness/) ráthaíochtaí slándála na gcliant éadrom cothrom le ráthaíochtaí na gcliant iomlán. + +## Tuilleadh léitheoireachta {#further-reading} + +- [Zsolt Felfodhi ar chliaint éadrom Geth](https://www.youtube.com/watch?v=EPZeFXau-RE) +- [Etan Kissling ar líonrú cliant éadrom](https://www.youtube.com/watch?v=85MeiMA4dD8) +- [Etan Kissling ar chliaint éadrom tar éis The Merge](https://www.youtube.com/watch?v=ZHNrAXf3RDE) +- [Piper Merriam: An bóthar casta chuig cliaint éadroma fheidhmiúla](https://snakecharmers.ethereum.org/the-winding-road-to-functional-light-clients/) diff --git a/public/content/translations/ga/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/ga/developers/docs/nodes-and-clients/node-architecture/index.md new file mode 100644 index 00000000000..bd5a1870bb8 --- /dev/null +++ b/public/content/translations/ga/developers/docs/nodes-and-clients/node-architecture/index.md @@ -0,0 +1,59 @@ +--- +title: Ailtireacht nód +description: Réamhrá ar an gcaoi a n-eagraítear nóid Ethereum. +lang: ga +--- + +Tá nód Ethereum comhdhéanta de dhá chliant: [cliant reatha](/developers/docs/nodes-and-clients/#execution-clients) agus [cliant comhdhearcaidh](/developers/docs/nodes-and-clients/#consensus-clients). Ionas cur féidir le nód bloc nua a mholadh, ní mór dó [cliant bailíochtóra](#validators) a rith freisin. + +Nuair a bhí [cruthúnas-oibre](/developers/docs/consensus-mechanisms/pow/) in úsáid ag Ethereum, ba leor cliant reatha chun nód iomlán Ethereum a rith. Ó cuireadh [cruthúnas-gill](/developers/docs/consensus-mechanisms/pow/) i bhfeidhm, áfach, ní mór an cliant reatha a úsáid taobh le píosa eile bogearraí ar a dtugtar [cliant comhdhearcaidh](/developers/docs/nodes-and-clients/#consensus-clients). + +Taispeánann an léaráid thíos an gaol idir an dá chliaint Ethereum. Nascann an dá chliaint lena líonraí piara-le-piara (P2P) faoi seach. Tá gá le líonraí P2P ar leithligh mar go ndéanann na cliaint reatha idirbhearta béadáin thar a líonra P2P, a chuireann ar a gcumas a linn idirbheart áitiúil a bhainistiú, fad a bhíonn na cliaint chomhdhearcaidh i mbun béadán bloc thar a líonra P2P, rud a chumasaíonn comhdhearcadh agus fás slabhra. + +![](node-architecture-text-background.png) + +_Tá go leor roghanna ann don chliant reatha lena n-áirítear Erigon, Nethermind, agus Besu_. + +Le go n-oibreoidh an struchtúr dhá chliant seo, ní mór do chliaint chomhdhearcaidh beartáin idirbheart a chur ar aghaidh chuig an gcliant reatha. Déanann an cliant reatha na hidirbhearta go háitiúil chun a bhailíochtú nach sáraíonn na hidirbhearta aon rialacha Ethereum agus go bhfuil an nuashonrú atá beartaithe ar staid Ethereum ceart. Nuair a roghnaítear nód le bheith ina tháirgeoir bloc iarrann a chliant comhdhearcaidh cuacha idirbheart ón gcliant reatha lena n-áireamh sa bhloc nua agus iad a rith chun an staid dhomhanda a nuashonrú. Tiomáineann an cliant comhdhearcaidh an cliant reatha trí nasc RPC áitiúil le [hInneall API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). + +## Cad a dhéanann an cliant reatha? {#execution-client} + +Tá an cliant reatha freagrach as bailíochtú, láimhseáil, agus béadán idirbheart, chomh maith le bainistíocht staide agus tacú le Meaisín Fíorúil Ethereum ([EVM](/developers/docs/evm/)). **Níl** sé freagrach as bloc-thógáil, as béadán bloc nó as láimhseáil loighic chomhdhearcaidh. Tá siad seo faoi shainchúram an chliaint chomhdhearcaidh. + +Cruthaíonn an cliant reatha ualaí reatha - liosta na n-idirbheart, staid trie nuashonraithe, agus sonraí eile a bhaineann le rith. Áiríonn cliaint chomhdhearcaidh an t-ualach reatha i ngach bloc. Tá an cliant reatha freagrach freisin as idirbhearta a athrith i mbloic nua chun a chinntiú go bhfuil siad bailí. Ritear idirbhearta ar ríomhaire leabaithe an chliaint reatha, ar a dtugtar an [Meaisín Fíorúil Ethereum (EVM)](/developers/docs/evm). + +Cuireann an cliant reatha comhéadan úsáideora ar fáil do Ethereum freisin trí [modhanna RPC](/developers/docs/apis/json-rpc) a chuireann ar chumas úsáideoirí fiosrú a dhéanamh ar blocshlabhra Ethereum, idirbhearta a chur isteach agus conarthaí cliste a imscaradh. Is gnách go láimhseálann leabharlann mar [Web3js](https://docs.web3js.org/) glaonna RPC, [Web3py](https://web3py.readthedocs.io/en/v5/), nó trí chomhéadan úsáideora cosúil le sparán brabhsálaí. + +Go hachomair, is ionann an cliant reatha agus: + +- geata úsáideora go Ethereum +- baile an Meaisín Fíorúil Ethereum, comhthiomsú staide agus idirbhearta Ethereum. + +## Cad a dhéanann an cliant comhdhearcaidh? {#consensus-client} + +Déileálann an cliant comhdhearcaidh leis an loighic go léir a chuireann ar chumas nód fanacht i sioncrónú le líonra Ethereum. Áirítear leis seo bloic a fháil ó phiara agus algartam rogha forc a reáchtáil chun a chinntiú go leanann an nód an slabhra leis an gcarnadh is mó fianuithe i gcónaí (ualaithe ag iarmhéideanna éifeachtacha an bhailíochtóra). Cosúil leis an gcliant reatha, tá a líonra P2P féin ag cliaint chomhdhearcaidh trína roinneann siad bloic agus fianuithe. + +Ní ghlacann an cliant comhdhearcaidh páirt i bhfianú nó i moladh bloic - déanann bailíochtóir é seo, breiseán roghnach do chliant comhdhearcaidh. Ní choinníonn cliant comhdhearcaidh gan bhailíochtóir ach suas le ceann an tslabhra, rud a ligeann don nód fanacht sioncrónaithe. Cuireann sé seo ar chumas úsáideora idirbhearta a dhéanamh le Ethereum ag baint úsáide as a gcliant reatha, muiníneach go bhfuil siad ar an slabhra ceart. + +## Bailitheoirí {#validators} + +Má dhéantar na bogearraí bailíochtóra a chruachadh agus a rith, beidh nód incháilithe le bheith roghnaithe chun bloc nua a mholadh. Is féidir le hoibreoirí nód bailíochtóir a chur lena gcliaint chomhdhearcaidh trí 32 ETH a thaisceadh sa chonradh taisce. Tagann an cliant bailíochtóra cuachta leis an gcliant comhdhearcaidh agus is féidir é a chur le nód ag am ar bith. Láimhseálann an bailíochtóir fianuithe agus blocthograí. Ligeann sé do nóid luaíochtaí a thuilleamh nó ETH a chailleadh trí phionóis nó slaiseáil. + +[Tuilleadh faoi gheallchur](/staking/). + +## Comhpháirteanna comparáide nód {#node-comparison} + +| Cliant Reatha | Cliant Comhdhearcaidh | Bailíochtóir | +| --------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------- | +| Idirbhearta béadáin thar a líonra P2P | Bloic bhéadáin agus fianuithe thar a líonra P2P | Molann bloic | +| Déanann/athrithean idirbhearta | Ritheann an algartam rogha forc | Fabhraíonn luach saothair/pionóis | +| Fíoraíonn sé athruithe staide isteach | Coinníonn súil ar cheann an slabhra | Déanann fianuithe | +| Bainistíonn trialacha staide agus fáltais | Bainistíonn an staid Rabhcáin (tá faisnéis chomhdhearcaidh agus reatha ann) | Éilíonn 32 ETH a chur i ngeall | +| Cruthaíonn pálasta reatha | Coinníonn sé rian ar randamacht carntha in RANDAO | Is féidir é a shaiseáil | +| Nochtann JSON-RPC API chun idirghníomhú le Ethereum | Coinníonn sé rian ar fhírinniú agus ar thabhairt chun críche | | + +## Tuilleadh léitheoireachta {#further-reading} + +- [Cruthúnas-de-geall](/developers/docs/consensus-mechanisms/pos) +- [Togra blocála](/developers/docs/consensus-mechanisms/pos/block-proposal) +- [Luaíochtaí agus pionóis an bhailíochtóra](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) diff --git a/public/content/translations/ga/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/ga/developers/docs/nodes-and-clients/nodes-as-a-service/index.md new file mode 100644 index 00000000000..eadf9231fc1 --- /dev/null +++ b/public/content/translations/ga/developers/docs/nodes-and-clients/nodes-as-a-service/index.md @@ -0,0 +1,419 @@ +--- +title: Nóid mar sheirbhís +description: Forbhreathnú ar leibhéal iontrála ar sheirbhísí nód, na buntáistí agus na míbhuntáistí, agus na soláthraithe móréilimh. +lang: ga +sidebarDepth: 2 +--- + +## Réamhrá {#Introduction} + +D'fhéadfadh sé a bheith dúshlánach do [nód Ethereum féin](/developers/docs/nodes-and-clients/#what-are-nodes-and-clients) a rith, go háirithe agus tú ag tosú amach nó ag scálú go tapa. Tá [líon seirbhísí](#popular-node-services) ann a ritheann bonneagair nóid optamaithe duit, ionas gur féidir leat díriú ar d'fheidhmchlár nó do tháirge a fhorbairt ina ionad sin. Míneoimid conas a oibríonn seirbhísí nóid, na buntáistí agus na míbhuntáistí a bhaineann lena n-úsáid agus liostáilimid soláthraithe má tá suim agat tosú. + +## Réamhriachtanais {#prerequisites} + +Mura bhfuil tuiscint agat cheana féin ar cad is nóid agus cliaint ann, seiceáil amach [Nóid agus cliaint](/developers/docs/nodes-and-clients/). + +## Gealltóirí {#stakoooooooooooooors} + +Caithfidh gealltóirí aonair a mbonneagar féin a rith seachas a bheith ag brath ar sholáthraithe tríú páirtí. Ciallaíonn sé seo cliant reatha a rith mar aon le cliant comhdhearcaidh. Roimh [An Cumasc](/roadmap/merge), bhíothas in ann cliant comhdhearcaidh amháin a rith agus soláthraí láraithe a úsáid le haghaidh sonraí reatha; ní féidir é seo a dhéanamh a thuilleadh - caithfidh geallsealbhóir aonair an dá chliaint a rith. Mar sin féin, tá seirbhísí ar fáil chun an próiseas seo a éascú. + +[Léigh tuilleadh faoi nód a rith](/developers/docs/nodes-and-clients/run-a-node/). + +Is le haghaidh nóid nach nóid geallchuir iad na seirbhísí a gcuirtear síos orthu ar an leathanach seo. + +## Conas a oibríonn seirbhísí nód? {#how-do-node-services-work} + +Reáchtálann soláthraithe seirbhíse nód cliaint nód dáilte duit sa chúlra, ionas nach gá duitse. + +De ghnáth soláthraíonn na seirbhísí seo eochair API ar féidir leat a úsáid chun scríobh chuig an blocshlabhra agus léamh uaidh. Áirítear leo go minic rochtain ar [Ethereum testnets](/developers/docs/networks/#ethereum-testnets) chomh maith le Mainnet. + +Tairgeann roinnt seirbhísí do nód tiomnaithe féin duit a bhainistíonn siad duit, agus úsáideann seirbhísí eile cothromóirí ualaigh chun gníomhaíocht a dháileadh thar nóid. + +Tá sé thar a bheith éasca beagnach gach seirbhís nóid a chomhtháthú, lena n-áirítear athruithe aon líne amháin i do chód chun do nód féin-óstach a mhalartú, nó fiú aistriú idir na seirbhísí iad féin. + +Go minic rithfidh seirbhísí nód raon de [cliaint nód](/developers/docs/nodes-and-clients/#execution-clients) agus [cineálacha](/developers/docs/nodes-and-clients/#node-types), rud a ligeann duit rochtain a fháil ar nóid iomlána agus ar nóid chartlainne chomh maith le modhanna atá sainiúil don chliant in aon API amháin. + +Tá sé tábhachtach a thabhairt faoi deara nach stórálann agus nár cheart do sheirbhísí nód d’eochracha príobháideacha nó d’fhaisnéis a stóráil. + +## Cad iad na buntáistí a bhaineann le seirbhís nód a úsáid? {#benefits-of-using-a-node-service} + +Is é an buntáiste is mó a bhaineann le seirbhís nód a úsáid ná nach gá duit am innealtóireachta a chaitheamh ag cothabháil agus ag bainistiú nóid tú féin. Ligeann sé seo duit díriú ar do tháirge a thógáil seachas a bheith buartha faoi chothabháil bonneagair. + +Is féidir leis a bheith costasach do chuid nóid féin a rith ó stóráil go bandaleithead go ham luachmhar innealtóireachta. Is féidir leis a bheith costasach do chuid nóid féin a rith ó stóráil go bandaleithead go ham luachmhar innealtóireachta. + +## Cad iad na míbhuntáistí a bhaineann le Seirbhís Nód a úsáid? {#cons-of-using-a-node-service} + +Trí sheirbhís nód a úsáid tá gné bhonneagair do tháirge á lárú agat. Ar an ábhar sin, b’fhéidir gurbh fhearr le tionscadail a thugann an tábhacht is mó don dílárú nóid fhéin-óstála seachas foinsiú allamuigh chuig tríú páirtí. + +Léigh tuilleadh faoi na [sochair a bhaineann le do nód féin a rith](/developers/docs/nodes-and-clients/#benefits-to-you). + +## Seirbhísí nód coitianta {#popular-node-services} + +Seo liosta de chuid de na soláthraithe nód Ethereum is mó tóir, ná bíodh leisce ort aon cheann atá in easnamh a chur leis! Cuireann gach seirbhís nód buntáistí agus gnéithe éagsúla ar fáil chomh maith le sraitheanna saor in aisce nó íoctha, ba cheart duit fiosrú a dhéanamh ar na cinn is fearr a oireann do do riachtanais sula ndéanann tú cinneadh. + +- [**Alchemy**](https://alchemy.com/) + - [Doiciméid](https://docs.alchemyapi.io/) + - Gnéithe + - An tsraith saor in aisce is mó le 300M aonad ríofa in aghaidh na míosa (~ 30M iarratas getLatestBlock) + - Tacaíocht ilslabhra do Polygon, Starknet, Optimism, Arbitrum + - Cumhacht ~70% den mhéid is mó dapps Ethereum agus DeFi + - Foláirimh fíor-ama ar an ngréasán trí Alchemy Notify + - Tacaíocht aicme is fearr agus iontaofacht / cobhsaíocht + - API NFT Alchemy + - Deais le Request Explorer, Mempool Watcher, agus Cumadóir + - Rochtain sconna testnet comhtháite + - Pobal tógálaí Discord Gníomhach le 18k úsáideoirí + +- [**An Nód Sin go léir**](https://allthatnode.com/) + - [Doiciméid](https://docs.allthatnode.com/) + - Gnéithe + - 50,000 iarratas in aghaidh an lae le sraith saor in aisce + - Tacaíocht do níos mó ná 40 prótacal + - Tacaítear le JSON-RPC (EVM, Tendermint), REST, agus APIs Websocket + - Rochtain neamhtheoranta ar shonraí cartlainne + - Tacaíocht theicniúil 24/7 agus 99.9% thar aga fónaimh + - Sconna ar fáil ar ilslabhraí + - Rochtain críochphointe gan teorainn le líon gan teorainn eochracha API + - Tacaítear le Trace/Debug API + - Nuashonruithe uathoibrithe + +- [**Blocshlabhra Bainistithe Amazon**](https://aws.amazon.com/managed-blockchain/) + - [Doiciméid](https://aws.amazon.com/managed-blockchain/resources/) + - Gnéithe + - Nóid Ethereum faoi bhainistiú iomlán + - Ar fáil i sé réigiún + - JSON-RPC thar HTTP agus WebSockets slán + - Tacaíonn 3 slabhraí + - CLS, Tacaíocht AWS 24/7 + - Go-ethereum agus Lighthouse + +- [**Ankr**](https://www.ankr.com/) + - [Doiciméid](https://docs.ankr.com/) + - Gnéithe + - Prótacal Ankr - rochtain oscailte ar chríochphointí API RPC Poiblí le haghaidh 8+ slabhraí + - Cothromú ualaigh agus monatóireacht ar shláinte nód le haghaidh geata tapa iontaofa chuig an nód is gaire atá ar fáil + - Sraith préimhe a chumasaíonn críochphointe WSS agus teorainn an ráta gan chaidhp + - Nód iomlán aon-clic agus imscaradh nód bailíochtóra le haghaidh 40+ slabhraí + - Scálú mar a théann tú + - Uirlisí anailísíochta + - Deais + - Críochphointí RPC, HTTPS agus WSS + - Tacaíocht dhíreach + +- [**Blast**](https://blastapi.io/) + - [Doiciméid](https://docs.blastapi.io/) + - Gnéithe + - Tacaíocht RPC agus WSS + - Óstáil nód il-réigiúin + - Bonneagar díláraithe + - API Poiblí + - Plean tiomnaithe saor in aisce + - Tacaíocht ilshlabhra (17+ blocshlabhra) + - Nóid Chartlainne + - Tacaíocht Discord 24/7 + - Monatóireacht 24/7 agus foláirimh + - SLA foriomlán 99.9% + - Íoc le criptea-airgeadra + +- [**BlockDaemon**](https://blockdaemon.com/) + - [Doiciméid](https://ubiquity.docs.blockdaemon.com/) + - Sochair + - Deais + - Per bhonn nód + - Anailísíocht + +- [**BlockPI**](https://blockpi.io/) + - [Doiciméid](https://docs.blockpi.io/) + - Gnéithe + - Struchtúr nód láidir & dáilte + - Suas le 40 críochphointe HTTPS agus WSS + - Pacáiste clárúcháin saor in aisce agus pacáiste míosúil + - Modh rian + Tacaíocht sonraí Cartlainne + - Pacáistí suas le bailíocht 90 lá + - Plean saincheaptha agus íocaíocht íoc mar a úsáidtear + - Íoc le criptea-airgeadra + - Tacaíocht dhíreach & Tacaíocht theicniúil + +- [**Bonn slabhra**](https://www.chainbase.com/) + - [Doiciméid](https://docs.chainbase.com) + - Gnéithe + - Seirbhís RPC atá ar fáil go réidh, an-tapa agus inscálaithe + - Tacaíocht ilshlabhra + - Taraifí saor in aisce, + - Deais atá éasca le húsáid + - Soláthraíonn sé seirbhísí sonraí blocshlabhra lasmuigh de RPC + +- [**Chainstack**](https://chainstack.com/) + - [Doiciméid](https://docs.chainstack.com/) + - Gnéithe + - Nótaí comhroinnte in aisce + - Nóid chartlainne chomhroinnte + - Tacaíocht GraphQL + - Críochphointí RPC agus WSS + - Nóid iomlána agus chartlainne tiomnaithe + - Am sioncronaithe tapa le haghaidh imlonnaithe tiomnaithe + - Beir leat do néal + - Praghsanna íoc in aghaidh na huaire + - Tacaíocht dhíreach 24/7 + +- [**DataHub**](https://datahub.figment.io) + - [Doiciméid](https://docs.figment.io/) + - Gnéithe + - Rogha sraithe saor in aisce le 3,000,000 iarratas / sa mhí + - Críochphointí RPC agus WSS + - Nóid iomlána agus chartlainne tiomnaithe + - Uathscálú (Lascaine Imleabhar) + - Sonraí cartlainne saor in aisce + - Anailísíocht Seirbhíse + - Deais + - Tacaíocht dhíreach 24/7 + - Íoc i gCriptea-airgeadra (Fiontar) + +- [**DRPC**](https://drpc.org/) + - [Doiciméid](https://docs.drpc.org/) + - Gnéithe + - Nóid RPC díláraithe + - 15+ Soláthraí Nód + - Nód-chothromú + - Aonaid ríomha neamhtheoranta in aghaidh na míosa ar an tsraith shaor + - Fíorú sonraí + - Críochphointí saincheaptha + - Críochphointí HTTP agus WSS + - Eochracha neamhtheoranta (sraith saor in aisce agus íoctha) + - Roghanna cúltaca solúbtha + - [Críochphointe Poiblí](https://eth.drpc.org) + - Nótaí cartlann comhroinnte in aisce + +- [**GetBlock**](https://getblock.io/) + - [Doiciméid](https://getblock.io/docs/get-started/authentication-with-api-key/) + - Gnéithe + - Rochtain ar 40+ nóid blocshlabhra + - 40K iarratas laethúil saor in aisce + - Líon neamhtheoranta eochracha API + - Luas ceangail ard ag 1GB/soic + - Lorg+Cartlann + - Anailísíocht fhorbartha + - Nuashonruithe uathoibrithe + - Tacaíocht theicniúil + +- [**InfStones**](https://infstones.com/) + - Gnéithe + - Rogha sraith saor in aisce, + - Scálú mar a théann tú + - Anailísíocht + - Deais + - Críochphointí uathúla API + - Nóid iomlána tiomnaithe + - Am sioncronaithe tapa le haghaidh imlonnaithe tiomnaithe + - Tacaíocht dhíreach 24/7 + - Rochtain ar 50+ nóid blocshlabhra + +- [**Infura**](https://infura.io/) + - [Doiciméid](https://infura.io/docs) + - Gnéithe + - Rogha sraith saor in aisce, + - Scálú mar a théann tú + - Sonraí cartlainne íoctha + - Tacaíocht Dhíreach + - Deais + +- [**Kaleido**](https://kaleido.io/) + - [Doiciméid](https://docs.kaleido.io/) + - Gnéithe + - Sraith tosaitheora saor in aisce + - Imscaradh nód Ethereum aon-chlic + - Cliaint agus halgartaim inoiriúnaithe (Geth, Quorum & Besu || PoA, IBFT & Raft) + - 500+ API riaracháin agus seirbhíse + - Comhéadan RESTful le haghaidh aighneacht idirbheart Ethereum (le tacaíocht Apache Kafka) + - Sruthanna amach le haghaidh seachadadh imeachtaí (le tacaíocht Apache Kafka) + - Bailiúchán domhain de sheirbhísí “as slabhra” agus coimhdeacha (m.sh. iompar teachtaireachta déthaobhach criptithe) + - Clárú líonra simplí le rialachas agus rialú rochtana rólbhunaithe + - Bainistíocht úsáideora shofaisticiúil do riarthóirí agus úsáideoirí deiridh araon + - Bonneagar ard-inscálaithe, athléimneach, de ghrád fiontair + - Bainistíocht eochair phríobháideach Cloud HSM + - Teaghránú Ethereum Mainnet + - ISO 27k agus SOC 2, deimhnithe Cineál 2 + - Cumraíocht dinimiciúil ama rite (m.sh. comhtháthú néil a chur leis, pointí iontrála nód a athrú, srl.) + - Tacaíocht d'eagrúcháin imlonnaithe il-scamall, il-réigiúin agus hibrideacha + - Praghsanna simplí bunaithe ar SaaS in aghaidh na huaire + - SLAanna agus tacaíocht 24x7 + +- [**Líonra Lava**](https://www.lavanet.xyz/) + - [Doiciméid](https://docs.lavanet.xyz/) + - Gnéithe + - Testnet úsáid saor in aisce + - Iomarcaíocht Díláraithe le haghaidh Aga fónaimh Ard + - Foinse oscailte + - SDK go hiomlán díláraithe + - Comhtháthú Ethers.js + - Comhéadan Bainistíochta Tionscadal iomasach + - Sláine Sonraí Bunaithe ar Chomhdhearcadh + - Tacaíocht Il-shlabhra + +- [**Moralis**](https://moralis.io/) + - [Doiciméid](https://docs.moralis.io/) + - Gnéithe + - Nótaí comhroinnte in aisce + - Nótaí cartlann comhroinnte in aisce + - Dírithe ar phríobháideachas (gan aon pholasaí logaí) + - Tacaíocht tras-slabhra + - Scálú mar a théann tú + - Deais + - SDK Uathúil Ethereum + - Críochphointí uathúla API + - Tacaíocht dhíreach, theicniúil + +- [**NodeReal MegaNode**](https://nodereal.io/) + - [Doiciméid](https://docs.nodereal.io/nodereal/meganode/introduction) + - Gnéithe + - Seirbhísí API RPC iontaofa, tapa agus inscálaithe + - API feabhsaithe d'fhorbróirí Web3 + - Tacaíocht ilshlabhra + - Tosaigh in aisce + +- [**NOWNodes**](https://nownodes.io/) + - [Doiciméid](https://documenter.getpostman.com/view/13630829/TVmFkLwy) + - Gnéithe + - Rochtain ar 50+ nóid blocshlabhra + - Eochair API in aisce + - Taiscéalaithe Bloc + - Am Freagartha API ⩽ 1 soic + - Foireann Tacaíochta 24/7 + - Bainisteoir Cuntas Pearsanta + - Nóid chomhroinnte, chartlainne, chúltaca agus tiomnaithe + +- [**Líonra póca**](https://www.pokt.network/) + - [Doiciméid](https://docs.pokt.network/home/) + - Gnéithe + - Prótacal RPC agus Ionad Margaidh díláraithe + - 1M Iarratas in aghaidh an Lae ar an Sraith In Aisce (in aghaidh an chríochphointe, uasmhéid 2) + - [Críochphointí Poiblí](https://docs.pokt.network/developers/public-endpoints) + - Clár Réamh-Gheall+ (má tá níos mó ná 1M iarratas uait in aghaidh an lae) + - 15+ Blocshlabhraí Tacaithe + - 6400+ Nóid ag tuilleamh POKT le haghaidh feidhmchlár freastail + - Nód Cartlainne, Nód Cartlainne w/ Rianú, & Tacaíocht Nód Testnet + - Éagsúlacht Cliant Nód Ethereum Mainnet + - Gan Aon Phointe Teip amháin + - Am Neamhfhónaimh: Náid + - Comharthaí-namaíocht Neas-Náid Chostas-Éifeachtach (geall POKT uair amháin le haghaidh bandaleithead líonra) + - Gan aon chostais bháite míosúla, déan sócmhainn as do bhonneagar + - Comhardú Ualaigh ionsuite sa Phrótacal + - Scálú gan teorainn ar líon na n-iarratas in aghaidh an lae agus nóid in aghaidh na huaire de réir mar a théann tú ar aghaidh + - An rogha is príobháidí, friotaíoch ar chinsireacht + - Tacaíocht fhorbróra láimhe + - [ Tairseach Pocket](https://bit.ly/ETHorg_POKTportal) deais agus anailísíocht + +- [**QuickNode**](https://www.quicknode.com) + - [Doiciméid](https://www.quicknode.com/docs/) + - Gnéithe + - Tacaíocht theicniúil 24/7 & Pobal forbróirí Discord + - Líonra geochothromaithe, il-scamall/miotail, aga folaigh íseal + - Tacaíocht ilslabhra (Optimism, Arbitrum, Polagán + 11 cinn eile) + - Lár-sraitheanna do luas & cobhsaíocht (ródú glaonna, taisce, innéacsú) + - Monatóireacht ar Chonarthaí Cliste trí Webooks + - Deais iomasach, sraith anailíse, cumadóir RPC + - Ard ghnéithe slándála (JWT, mascadh, geal-liostú) + - API sonraí agus anailísíochta NFT + - [SOC2 Deimhnithe](https://www.quicknode.com/security) + - Oiriúnach d'Fhorbróirí Fiontair + +- [**Rivet**](https://rivet.cloud/) + - [Doiciméid](https://rivet.readthedocs.io/en/latest/) + - Gnéithe + - Rogha sraith saor in aisce, + - Scálú mar a théann tú + +- [**SenseiNode**](https://senseinode.com) + - [Doiciméid](https://docs.senseinode.com/) + - Gnéithe + - Nóid Tiomnaithe agus Chomhroinnte + - Deais + - Óstáil AWS ar sholáthraithe óstála iolracha thar láithreacha éagsúla i Meiriceá Laidineach + - Cliaint Prysm agus Lighthouse + +- [**SettleMint**](https://console.settlemint.com/) + - [Doiciméid](https://docs.settlemint.com/) + - Gnéithe + - Triail saor in aisce + - Scálú mar a théann tú + - Tacaíocht GraphQL + - Críochphointí RPC agus WSS + - Nóid iomlána tiomnaithe + - Beir leat do néal + - Uirlisí anailísíochta + - Deais + - Praghsanna íoc in aghaidh na huaire + - Tacaíocht dhíreach + +- [**Tenderly**](https://tenderly.co/web3-gateway) + - [Doiciméid](https://docs.tenderly.co/web3-gateway/web3-gateway) + - Gnéithe + - Sraith saor in aisce lena n-áirítear 25 milliún Aonad Tairisceana in aghaidh na míosa + - Rochtain ar shonraí stairiúla saor in aisce, + - Suas le 8x ualaí oibre trom inléite níos tapúla + - Rochtain léite comhsheasmhach 100% + - Críochphointí JSON-RPC + - Tógálaí iarratais RPC bunaithe ar Chomhéadain agus réamhamharc iarratais + - Comhtháite go docht le huirlisí forbartha, dífhabhtaithe agus tástála Tenderly + - Insamhaltaí idirbhirt + - Anailísíocht úsáide agus scagadh + - Bainistíocht eochair rochtana éasca + - Tacaíocht thiomnaithe innealtóireachta trí chomhrá, ríomhphost, agus Discord + +- [**Tokenview**](https://services.tokenview.io/) + - [Doiciméid](https://services.tokenview.io/docs?type=nodeService) + - Gnéithe + - Tacaíocht theicniúil 24/7 & Pobal Dev Telegram + - Tacaíocht Ilslabhra (Bitcoin, Ethereum, Tron, BNB Smart Chain, Ethereum Classic) + - Tá críochphointí RPC agus WSS ar fáil le húsáid + - Rochtain neamhtheoranta ar shonraí cartlainne API + - Deais le Request Explorer agus Mempool Watcher + - Tugann API sonraí NFT agus Webhook fógra + - Íoc i gCriptea-airgeadra + - Tacaíocht sheachtrach do riachtanais iompair bhreise + +- [**Watchdata**](https://watchdata.io/) + - [Doiciméid](https://docs.watchdata.io/) + - Gnéithe + - Iontaofacht sonraí + - Ceangal gan bhriseadh gan aon aga neamhfhónaimh + - Uathoibriú próisis + - Taraifí saor in aisce, + - Teorainneacha arda a oireann d'aon úsáideoir + - Tacaíocht do nóid éagsúla + - Scálú acmhainní + - Luasanna próiseála ard + +- [**ZMOK**](https://zmok.io/) + - [Doiciméid](https://docs.zmok.io/) + - Gnéithe + - Rith tosaigh mar sheirbhís + - Mempool idirbhearta domhanda le modhanna cuardaigh/scagtha + - Táille TX neamhtheoranta agus Gás gan teorainn le haghaidh idirbhearta a sheoladh + - An fháil bhloc nua agus an léamh blocshlabhra is tapúla + - An praghas is fearr in aghaidh ráthaíocht glao API + +- [**Zeeve**](https://www.zeeve.io/) + - [Doiciméid](https://www.zeeve.io/docs/) + - Gnéithe + - Ardán uathoibrithe gan chóid de ghrád fiontair a sholáthraíonn imscaradh, monatóireacht agus bainistiú nóid agus líonraí Blocshlabhra + - 30+ Prótacal Tacaithe & Comhtháthú, agus tuilleadh a chur leis + - Seirbhísí bonneagair breisluacha web3 amhail stóráil díláraithe, céannacht dhíláraithe agus APIanna sonraí Blocshlabhra Mórleabhar le haghaidh cásanna úsáide sa saol fíor + - Cinntíonn tacaíocht 24/7 agus monatóireacht réamhghníomhach sláinte na nóid an t-am ar fad. + - Tugann críochphointí RPC rochtain fhíordheimhnithe ar APInna, bainistíocht gan strus le painéal iomasach agus anailísíocht. + - Soláthraíonn sé an dá néal bainistithe agus tabharfaidh tú do roghanna néil féin le roghnú astu agus tacaíonn sé le gach mórsholáthraí néil mar AWS, Azure, Google Cloud, Digital Ocean agus ar-áitreabh. + - Bainimid úsáid as ródú cliste chun an nód is gaire do d'úsáideoir a bhualadh gach uair + + +## Tuilleadh léitheoireachta {#further-reading} + +- [Liosta de sheirbhísí nód Ethereum](https://ethereumnodes.com/) + +## Ábhair ghaolmhara {#related-topics} + +- [Nóid agus cliaint](/developers/docs/nodes-and-clients/) + +## Ranganna teagaisc a bhaineann leo {#related-tutorials} + +- [Tús a chur le forbairt Ethereum ag baint úsáide as Alchemy](/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/) +- [Treoir maidir le hidirbhearta a sheoladh le web3 agus Alchemy](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) diff --git a/public/content/translations/ga/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/ga/developers/docs/nodes-and-clients/run-a-node/index.md new file mode 100644 index 00000000000..ef9fa3f2375 --- /dev/null +++ b/public/content/translations/ga/developers/docs/nodes-and-clients/run-a-node/index.md @@ -0,0 +1,480 @@ +--- +title: Déan do nód Ethereum féin a shníomh +description: Réamhrá ginearálta ar d'ásc féin de chliant Ethereum a rith. +lang: ga +sidebarDepth: 2 +--- + +Soláthraíonn rith do nód féin buntáistí éagsúla duit, osclaíonn sé féidearthachtaí nua, agus cabhraíonn sé le tacú leis an éiceachóras. Tabharfaidh an leathanach seo treoir duit chun do nód féin a shníomh agus páirt a ghlacadh in idirbhearta Ethereum a bhailíochtú. + +Tabhair faoi deara, tar éis [The Merge](/roadmap/merge), go gceanglaítear ar bheirt chliaint nód Ethereum a rith; cliant **ciseal reatha (EL)** agus cliant ** ciseal comhdhearcaidh (CL)**. Taispeánfaidh an leathanach seo conas an dá chliaint seo a shuiteáil, a chumrú agus a nascadh chun nód Ethereum a rith. + +## Réamhriachtanais {#prerequisites} + +Ba cheart duit a thuiscint cad is nód Ethereum ann agus cén fáth go mbeadh fonn ort cliant a rith. Clúdaítear é seo in [Nóid agus cliaint](/developers/docs/nodes-and-clients/). + +Mura bhfuil taithí agat ar nód a rith, nó má tá conair nach bhfuil chomh teicniúil uait, molaimid duit ár réamhrá atá éasca le húsáid a sheiceáil ar [nód Ethereum a rith](/run-a-node). + +## Ag roghnú cur chuige {#choosing-approach} + +Is é an chéad chéim chun do nód a shníomh ná do chur chuige a roghnú. Bunaithe ar riachtanais agus ar fhéidearthachtaí éagsúla, ní mór duit cur i bhfeidhm na gcliant (na gcliant reatha agus comhdhearcaidh araon), an timpeallacht (crua-earraí, córas), agus na paraiméadair do shuímh na gcliant a roghnú. + +Tabharfaidh an leathanach seo treoir duit trí na cinntí seo agus cabhróidh sé leat teacht ar an mbealach is oiriúnaí chun d'ásc Ethereum a rith. + +Chun rogha a dhéanamh ó fheidhmiúcháin cliant, féach ar na [cliaint reatha](/developers/docs/nodes-and-clients/#execution-clients) atá ar fáil, [cliaint chomhdhearcaidh](/developers/docs/nodes-and-clients/#consensus-clients) agus foghlaim faoi [éagsúlacht cliant](/developers/docs/nodes-and-clients/client-diversity). + +Déan cinneadh cé acu ar cheart duit na bogearraí a rith ar do [crua-earraí nó sa scamall](#local-vs-cloud), le haird ar [riachtanais na gcliant](#requirements). + +Tar éis duit an timpeallacht a ullmhú, suiteáil na cliaint roghnaithe le [comhéadan cairdiúil do thosaitheoirí](#automatized-setup) nó [de láimh](#manual-setup) ag úsáid teirminéal le roghanna forbartha. + +Agus an nód á rith agus á shioncronú, tá tú réidh le [é a úsáid](#using-the-node), ach bí cinnte súil a choinneáil ar a [chothabháil](#operating-the-node). + +![Cumraíocht chliant](./diagram.png) + +### Timpeallacht agus crua-earraí {#environment-and-hardware} + +#### Áitiúil nó néal {#local-vs-cloud} + +Tá cliaint Ethereum in ann oibriú ar ríomhairí tomhaltóra agus níl aon chrua-earraí speisialta ag teastáil uathu, cosúil le meaisíní mianadóireachta mar shampla. Mar sin, tá roghanna éagsúla agat chun an nód a imscaradh bunaithe ar do chuid riachtanas. Chun simpliú a dhéanamh, smaoinímis ar nód a rith ar mheaisín fisiciúil áitiúil agus ar fhreastalaí néil araon: + +- Néal + - Tairgeann soláthraithe ard-aga fónaimh fhreastalaí agus seoltaí IP poiblí statacha + - Is féidir le freastalaí tiomnaithe nó fíorúil a bheith níos compordaí ná do chuid féin a thógáil + - Tá muinín ag comhréiteach as tríú páirtí - soláthraí freastalaí + - Mar gheall ar an méid stórais a theastaíonn le haghaidh nód iomlán, d'fhéadfadh praghas freastalaí ar cíos a bheith ard +- Crua-earraí féin + - Cur chuige níos neamhiontaofa agus ceannasach + - Infheistíocht aon uaire + - An rogha meaisíní réamhchumraithe a cheannach + - Caithfidh tú an meaisín agus an líonrú a ullmhú, a chothabháil agus a b'fhéidir fabhtcheartú a dhéanamh + +Tá buntáistí éagsúla ag an dá rogha mar atá achoimrithe thuas. Má tá réiteach néil uait, chomh maith le go leor soláthraithe néalríomhaireachta traidisiúnta, tá seirbhísí ann freisin atá dírithe ar nóid a imscaradh. Seiceáil [nóid mar sheirbhís](/developers/docs/nodes-and-clients/nodes-as-a-service/) le haghaidh tuilleadh roghanna ar nóid óstáilte. + +#### Crua-earraí {#hardware} + +Mar sin féin, níor cheart go mbeadh líonra díláraithe atá frithsheasmhach do chinsireacht ag brath ar sholáthraithe néil. Ina áit sin, tá sé níos sláintiúla don éiceachóras do nód a reáchtáil ar do chrua-earraí áitiúla féin. Léiríonn [Meastacháin](https://www.ethernodes.org/networkType/Hosting) sciar mór de na nóid a ritear ar an néal, rud a d'fhéadfadh a bheith ina phointe aonair teipe. + +Is féidir le cliaint Ethereum rith ar do ríomhaire, ríomhaire glúine, freastalaí, nó fiú ríomhaire aonchláir. Cé gur féidir cliaint a reáchtáil ar do ríomhaire pearsanta, má tá meaisín tiomnaithe díreach do do nód féadann sé a fheidhmíocht agus a shlándáil a fheabhsú go suntasach agus an tionchar ar do phríomh-ríomhaire a íoslaghdú. + +Is féidir leis a bheith an-éasca do chrua-earraí féin a úsáid. Tá go leor roghanna simplí ann chomh maith le hard-shocruithe do dhaoine níos teicniúla. Mar sin féachaimis ar na riachtanais agus na modhanna chun cliaint Ethereum a reáchtáil ar do ríomhaire. + +#### Riachtanais {#requirements} + +Ní hionann riachtanais crua-earraí idir chliaint ach de ghnáth ní bhíonn siad chomh hard sin mar ní gá don nód ach fanacht sioncronaithe. Ná meas gur ionann é agus mianadóireacht, rud a éilíonn cumhacht ríomhaireachta i bhfad níos mó. Feabhsaítear am sioncronaithe agus feidhmíocht le crua-earraí níos cumhachtaí, áfach. + +Sula ndéanann tú aon chliant a shuiteáil, cinntigh le do thoil go bhfuil go leor acmhainní ag do ríomhaire chun é a rith. Is féidir leat na ceanglais íosta agus molta a fháil thíos. + +Is é spás diosca den chuid is mó an scroig ar do chrua-earraí. Tá sioncronú bhlocshlabhra Ethereum an-dian ar ionchur/aschur agus éilíonn sé go leor spáis. Is fearr **tiomáint soladstaide (SSD)** a bheith agat leis na céadta GB de spás saor le spáráil fiú tar éis an tsioncrónaithe. + +Braitheann méid an bhunachair shonraí agus luas an tsioncrónaithe tosaigh ar an gcliant roghnaithe, a chumraíocht agus a [straitéis sioncronaithe](/developers/docs/nodes-and-clients/#sync-modes). + +Cinntigh freisin nach bhfuil do nasc idirlín teoranta ag [caidhp bandaleithead](https://wikipedia.org/wiki/Data_cap). Moltar nasc neamh-mhéadraithe a úsáid mar go bhféadfadh an sioncronú tosaigh agus na sonraí a chraoltar chuig an líonra do theorainn a shárú. + +##### Córas oibriúcháin + +Tacaíonn gach cliant le mórchórais oibriúcháin - Linux, MacOS, Windows. Ciallaíonn sé seo gur féidir leat nóid a rith ar ghnáth-mheaisíní deisce nó ar fhreastalaithe rialta leis an gcóras oibriúcháin (OS) is fearr a oireann duit. Bí cinnte go bhfuil do OS cothrom le dáta chun saincheisteanna ionchasacha agus leochaileachtaí slándála a sheachaint. + +##### Riachtanais íosta + +- LAP le 2+ croíleacáin +- 8 GB RAM +- 2TB SSD +- 10+ MBit/s bandaleithead + +##### Sonraíochtaí molta + +- LAP tapa le 4+ croíleacáin +- 16 GB+ RAM +- SSD tapa le 2+TB +- 25+ MBit/s bandaleithead + +Beidh tionchar ag an modh sioncronaithe agus an cliant a roghnaíonn tú ar riachtanais spáis, ach tá meastachán déanta againn ar an spás diosca a bheidh uait do gach cliant thíos. + +| Cliant | Méid an diosca (sioncronú snap) | Méid an diosca (cartlann iomlán) | +| ---------- | ------------------------------- | -------------------------------- | +| Besu | 800GB+ | 12TB+ | +| Erigon | N/A | 2.5TB+ | +| Geth | 500GB+ | 12TB+ | +| Nethermind | 500GB+ | 12TB+ | +| Reth | N/A | 2.2TB+ | + +- Nóta: Ní thairgeann Erigon agus Reth sioncronú snap, ach is féidir Púnáil Iomlán a dhéanamh (~2TB le haghaidh Erigon, ~1.2TB do Reth) + +Maidir le cliaint chomhdhearcaidh, braitheann riachtanas spáis freisin ar fheidhmiú na gcliant agus ar ghnéithe cumasaithe (m.sh. slaiseálaí bailíochtóra) ach de ghnáth comhairtear é le 200GB eile a theastaíonn le haghaidh sonraí rabhcháin. Le líon mór bailíochtóirí, fásann an t-ualach bandaleithead chomh maith. Is féidir leat [sonraí ar riachtanais na gcliant comhdhearcaidh a fháil san anailís seo](https://mirror.xyz/0x934e6B4D7eee305F8C9C42b46D6EEA09CcFd5EDc/b69LBy8p5UhcGJqUAmT22dpvdkU-Pulg2inrhoS9Mbc). + +#### Réitigh plugáil agus seinn {#plug-and-play} + +Is é an rogha is éasca chun nód a rith le do chrua-earraí féin ná boscaí plugáil-agus-seinn a úsáid. Tugann meaisíní réamhchumraithe ó dhíoltóirí an taithí is simplí: ordú, ceangal, rith. Tá gach rud réamhchumraithe agus ritheann sé go huathoibríoch le treoir iomasach agus painéal chun monatóireacht agus rialú a dhéanamh ar na bogearraí. + +- [DappNode](https://dappnode.io/) +- [Avado](https://ava.do/) + +#### Ethereum ar ríomhaire aon-chláir {#ethereum-on-a-single-board-computer} + +Bealach éasca agus saor chun nód Ethereum a rith ná ríomhaire aon bhoird a úsáid, fiú le hailtireacht ARM cosúil leis an Raspberry Pi. Soláthraíonn [Ethereum on ARM](https://ethereum-on-arm-documentation.readthedocs.io/en/latest/) íomhánna atá éasca le rith d’il-fheidhmiú agus cliant comhdhearcaidh le haghaidh Raspberry Pi agus boird ARM eile. + +Tá gléasanna beaga, inacmhainne agus éifeachtacha mar seo oiriúnach chun nód a rith sa bhaile ach ná dearmad a bhfeidhmíocht theoranta. + +## Ag casadh suas an nód {#spinning-up-node} + +Is féidir socrú iarbhír na gcliant a dhéanamh le lainseálaithe uathoibrithe nó de láimh, trí bhogearraí cliaint a shocrú go díreach. + +I gcás úsáideoirí nach bhfuil mórán taithí acu, is é an cur chuige a mholtar ná lainseálaí a úsáid, bogearraí a threoraíonn tú tríd an tsuiteáil agus a uathoibríonn próiseas cumraíochta an chliaint. Mar sin féin, má tá taithí éigin agat ar úsáid teirminéal, ba cheart go mbeadh na céimeanna le haghaidh cumraíocht de láimh simplí le leanúint. + +### Cumraíocht treoraithe {#automatized-setup} + +Tá sé mar aidhm ag tionscadail iolracha atá éasca le húsáid feabhas a chur ar an taithí a bhaineann le cliant a chumrú. Soláthraíonn na lainseálaithe seo suiteáil agus cumraíocht uathoibríoch don chliaint, agus cuireann cuid acu comhéadan grafach ar fáil fiú le haghaidh socrú treoraithe agus monatóireacht a dhéanamh ar chliaint. + +Seo thíos roinnt tionscadal ar féidir leo cabhrú leat cliaint a shuiteáil agus a rialú le cúpla clic: + +- [DappNode](https://docs.dappnode.io/docs/user/getting-started/choose-your-path) - Ní thagann DappNode ach le meaisín ó dhíoltóir. Is féidir na bogearraí, an tosaitheoir nód iarbhír agus an t-ionad rialaithe le go leor gnéithe a úsáid ar chrua-earraí treallacha. +- [eth-docker](https://eth-docker.net/) - Socrú uathoibrithe ag baint úsáide as Docker dírithe ar gheallchur éasca agus slán, teastaíonn buneolas teirminéil agus Docker, molta d'úsáideoirí beagán níos forbartha. +- [Stereum](https://stereum.net/ethereum-node-setup/) - Lainseálaí chun cliaint a shuiteáil ar fhreastalaí cianda trí nasc SSH le treoir chumrú GUI, lárionad rialaithe, agus go leor gnéithe eile. +- [NiceNode](https://www.nicenode.xyz/) - Lainseálaí le taithí úsáideora simplí chun nód a rith ar do ríomhaire. Díreach roghnaigh cliaint agus tosaigh iad le cúpla clic. Fós á fhorbairt. +- [Sedge](https://docs.sedge.nethermind.io/docs/intro) - Uirlis chumraíochta Nód a ghineann cumraíocht Docker go huathoibríoch trí úsáid a bhaint as draoi CLI. Scríofa in Go ag Nethermind. + +### Socrú cliant de láimh {#manual-setup} + +Is é an rogha eile ná bogearraí an chliaint a íoslódáil, a fhíorú agus a chumrú de láimh. Fiú má thairgeann roinnt cliant comhéadan grafach, teastaíonn bunscileanna leis an teirminéal le cumraíocht de láimh ach cuireann sé i bhfad níos mó solúbthachta ar fáil. + +Mar a míníodh cheana, beidh gá le péire cliant comhdhearcaidh agus reatha a bhunú le haghaidh do nód Ethereum féin. D’fhéadfadh cliant éadrom a bheith cuimsithe i roinnt cliant den chineál eile agus sioncronú gan gá le haon bhogearraí eile. Mar sin féin, éilíonn fíorú iomlán iontaofa an dá chur i bhfeidhm. + +#### Faigh na bogearraí cliant {#getting-the-client} + +Ar dtús, ní mór duit do rogha [cliant reatha](/developers/docs/nodes-and-clients/#execution-clients) agus [bogearraí cliant comhdhearcaidh](/developers/docs/nodes-and-clients/#consensus-clients) a fháil. + +Is féidir leat feidhmchlár inrite nó pacáiste suiteála a oireann do do chóras oibriúcháin agus d’ailtireacht a íoslódáil. Fíoraigh sínithe agus seiceálacha na bpacáistí íoslódála i gcónaí. Tairgeann roinnt cliant stóir nó íomhánna Docker freisin le haghaidh suiteála agus nuashonruithe níos éasca. Tá na cliaint go léir foinse oscailte, ionas gur féidir leat iad a thógáil ón bhfoinse freisin. Is modh níos forbartha é seo, ach i gcásanna áirithe, d'fhéadfadh sé a bheith ag teastáil. + +Soláthraítear treoracha maidir le suiteáil gach cliant sna doiciméid atá nasctha sna liostaí cliant thuas. + +Seo iad leathanaigh eisithe na gcliant mar ar féidir leat teacht ar a gcuid dénártha réamhthógtha nó treoracha maidir le suiteáil: + +##### Cliaint fhorghníomhú + +- [Besu](https://github.com/hyperledger/besu/releases) +- [Erigon](https://github.com/ledgerwatch/erigon/releases) +- [Geth](https://geth.ethereum.org/downloads/) +- [Nethermind](https://downloads.nethermind.io/) +- [Reth](https://reth.rs/installation/installation.html) + +Is fiú a thabhairt faoi deara freisin gur saincheist í [éagsúlacht na gcliant maidir leis an gciseal reatha](/developers/docs/nodes-and-clients/client-diversity/#execution-layer). Moltar do léitheoirí smaoineamh ar chliant reatha mionlaigh a reáchtáil. + +##### Cliaint comhdhearcadh + +- [Lighthouse](https://github.com/sigp/lighthouse/releases/latest) +- [Lodestar](https://chainsafe.github.io/lodestar/install/source/) (Ní sholáthraíonn sé dénártha réamhthógtha, íomhá Docker amháin nó le tógáil ón bhfoinse) +- [Nimbus](https://github.com/status-im/nimbus-eth2/releases/latest) +- [Prysm](https://github.com/prysmaticlabs/prysm/releases/latest) +- [Teku](https://github.com/ConsenSys/teku/releases) + +Tá [éagsúlacht cliant](/developers/docs/nodes-and-clients/client-diversity/) ríthábhachtach do nóid chomhdhearcaidh a ritheann bailíochtóirí. Má tá feidhmiú chliant amháin á rith ag tromlach na mbailíochtóirí, tá slándáil líonra i mbaol. Moltar mar sin smaoineamh ar chliant mionlaigh a roghnú. + +[Féach ar an úsáid chliaint líonra is déanaí ](https://clientdiversity.org/) agus foghlaim tuilleadh faoi [ éagsúlacht cliant](/developers/docs/nodes-and-clients/client-diversity). + +##### Na bogearraí a fhíorú + +Agus bogearraí á n-íoslódáil ón idirlíon, moltar a sláine a fhíorú. Tá an chéim seo roghnach ach go háirithe le píosa bonneagair ríthábhachtach cosúil leis an gcliant Ethereum, tá sé tábhachtach a bheith ar an eolas faoi veicteoirí ionsaithe féideartha agus iad a sheachaint. Má d'íoslódáil tú dénártha réamhthógtha, ní mór duit muinín a bheith agat ann agus riosca a bheith agat go bhféadfadh ionsaitheoir an fheidhm inrite a mhalartú le haghaidh ceann mailíseach. + +Síníonn forbróirí dénártha scaoilte lena n-eochracha PGP ionas gur féidir leat a fhíorú go cripteagrafach go bhfuil tú ag rith go díreach na bogearraí a chruthaigh siad. Níl le déanamh agat ach eochracha poiblí a úsáideann forbróirí a fháil, ar féidir iad a fháil ar leathanaigh eisithe na gcliant nó i gcáipéisíocht. Tar éis duit an eisiúint chliant a íoslódáil agus a shíniú, is féidir leat feidhmiú PGP a úsáid, m.sh. [GnuPG](https://gnupg.org/download/index.html) chun iad a fhíorú go héasca. Féach ar chúrsa teagaisc maidir le bogearraí foinse oscailte a fhíorú trí úsáid a bhaint as `gpg` ar [linux](https://www.tecmint.com/verify-pgp-signature-downloaded-software/) nó [Windows/MacOS](https://freedom.press/training/verifying-open-source-software/). + +Foirm eile fíoraithe is ea a chinntiú go bhfuil hais, méarloirg cripteagrafach uathúil, na mbogearraí a d’íoslódáil tú ag teacht leis an gceann a chuir na forbróirí ar fáil. Tá sé seo níos éasca fós ná PGP a úsáid, agus ní thairgeann roinnt cliant ach an rogha seo. Déan an fheidhm haise a rith go díreach ar na bogearraí íoslódáilte agus cuir í i gcomparáid leis an gceann ón leathanach scaoileadh. Mar shampla: + +```sh +sha256sum teku-22.6.1.tar.gz + +9b2f8c1f8d4dab0404ce70ea314ff4b3c77e9d27aff9d1e4c1933a5439767dde +``` + +#### Cumraíocht chliant {#client-setup} + +Tar éis duit na bogearraí cliant a shuiteáil, a íoslódáil, nó a thiomsú, tá tú réidh chun é a rith. Ní chiallaíonn sé seo ach go gcaithfear é a rith leis an gcumraíocht cheart. Tairgeann cliaint roghanna saibhir cumraíochta, ar féidir leo gnéithe éagsúla a chumasú. + +Tosaímid le roghanna ar féidir leo tionchar suntasach a imirt ar fheidhmíocht na gcliant agus ar úsáid sonraí. Léiríonn [ modhanna sioncronaithe](/developers/docs/nodes-and-clients/#sync-modes) modhanna éagsúla chun sonraí blocshlabhra a íoslódáil agus a bhailíochtú. Sula dtosaíonn tú an nód, ba cheart duit cinneadh a dhéanamh cén modh líonra agus sioncronaithe a úsáidfidh tú. Is iad na rudaí is tábhachtaí le breithniú ná an spás diosca, agus an t-am sioncronaithe a bheidh ag teastáil ón gcliant. Tabhair aird ar dhoiciméid an chliaint chun a chinneadh cén modh sioncronaithe atá réamhshocraithe. Mura n-oireann sin duit, roghnaigh ceann eile bunaithe ar an leibhéal slándála, na sonraí atá ar fáil, agus an costas. Seachas an t-algartam sioncrónaithe, is féidir leat prúnáil de chineálacha éagsúla sean-shonraí a shocrú freisin. Cumasaíonn prúnáil sonraí atá as dáta a scriosadh, m.sh. nóid trie stáit a bhaint nach féidir teacht orthu ó bhloic le déanaí. + +Tá roghanna bunúsacha cumraíochta eile ann, e.g. roghnú líonra - Mainnet nó testnets, críochphointe HTTP do RPC nó WebSockets, srl a chumasú. Is féidir leat na gnéithe agus na roghanna go léir a fháil i ndoiciméadú an chliaint. Is féidir cumraíochtaí éagsúla cliant a shocrú tríd an gcliant a rith leis na bratacha comhfhreagracha go díreach sa chomhad CLI nó cumraíochta. Tá gach cliant beagán difriúil; déan tagairt i gcónaí dá cháipéisíocht oifigiúil nó dá leathanach cabhrach le haghaidh sonraí ar roghanna cumraíochta. + +Chun críocha tástála, b'fhéidir gurbh fhearr leat cliant a rith ar cheann de na líonraí testnet. [Féach forbhreathnú ar líonraí tacaithe](/developers/docs/nodes-and-clients/#execution-clients). + +Is féidir samplaí de chliaint reatha a rith le cumraíocht bhunúsach a fháil sa chéad chuid eile. + +#### Ag tosú leis an gcliant reatha {#starting-the-execution-client} + +Sula dtosaíonn tú ar na bogearraí cliant Ethereum, déan seiceáil deireanach go bhfuil do thimpeallacht réidh. Mar shampla, déan cinnte: + +- Tá go leor spáis diosca nuair a chuirtear san áireamh an líonra roghnaithe agus an modh sioncronaithe. +- Ní chuireann cláir eile stop le cuimhne agus LAP. +- Déantar an córas oibriúcháin a nuashonrú go dtí an leagan is déanaí. +- Tá an t-am agus an dáta ceart ag an gcóras. +- Glacann do ródaire agus balla dóiteáin naisc ar phoirt éisteachta. De réir réamhshocraithe úsáideann cliaint Ethereum port éisteora (TCP) agus port fionnachtana (UDP), araon ar 30303 de réir réamhshocraithe. + +Rith do chliant ar testnet ar dtús le cinntiú go bhfuil gach rud ag obair i gceart. + +Ní mór duit aon socruithe cliant nach bhfuil réamhshocraithe a dhearbhú ag an tús. Is féidir leat bratacha nó an comhad cumraíochta a úsáid chun an chumraíocht is fearr leat a dhearbhú. Bíonn tacar gnéithe agus comhréir cumraíochta gach cliant difriúil. Seiceáil doiciméadú do chliaint le haghaidh na sonraí. + +Déanann cliaint reatha agus comhdhearcaidh cumarsáid trí chríochphointe fíordheimhnithe atá sonraithe in [Engine API](https://github.com/ethereum/execution-apis/tree/main/src/engine). Chun nascadh le cliant comhdhearcaidh, ní mór don chliant reatha [`jwtsecret`](https://jwt.io/) a ghiniúint ag cosán aitheanta. Ar chúiseanna slándála agus cobhsaíochta, ba cheart do chliaint a bheith ag rith ar an meaisín céanna, agus ní mór go mbeadh aithne ag an dá chliaint ar an gcosán seo toisc go n-úsáidtear é chun nasc RPC áitiúil eatarthu a fhíordheimhniú. Ní mór don chliant reatha port éisteachta a shainiú freisin le haghaidh APIanna fíordheimhnithe. + +Gintear an comhartha seo go huathoibríoch ag bogearraí an chliaint, ach i gcásanna áirithe, b'fhéidir go mbeadh ort é a dhéanamh tú féin. Is féidir leat é a ghiniúint trí úsáid a bhaint as [OpenSSL](https://www.openssl.org/): + +```sh +openssl rand -hex 32 > jwtsecret +``` + +#### Cliant ratha a rith {#running-an-execution-client} + +Tabharfaidh an chuid seo treoir duit trí chliaint reatha a thosú. Ní fheidhmíonn sé ach mar shampla de chumraíocht bhunúsach, a chuirfidh tús leis an gcliant leis na socruithe seo: + +- Sonraítear líonra le nascadh leis, Mainnet inár samplaí + - Ina ionad sin is féidir leat [ceann de testnets](/developers/docs/networks/) a roghnú le haghaidh réamhthástáil ar do chumraíocht +- Sainmhíníonn eolaire sonraí, ina stórálfar na sonraí go léir lena n-áirítear blocshlabhra + - Déan cinnte an cosán a chur in ionad ceann fíor, m.sh. ag díriú ar do thiomáint seachtrach +- Cumasaíonn sé comhéadain chun cumarsáid a dhéanamh leis an gcliant + - Lena n-áirítear JSON-RPC agus Inneall API le haghaidh cumarsáide le cliant comhdhearcaidh +- Sainmhíníonn sé conair chuig `jwtsecret` don API fíordheimhnithe + - Déan cinnte cosán an tsampla a chur in ionad cosán fíor ar féidir le cliaint rochtain a fháil air, m.sh. `/tmp/jwtsecret` + +Meabhraigh le do thoil nach bhfuil anseo ach sampla bunúsach, beidh gach cumraíocht eile socraithe mar réamhshocrú. Tabhair aird ar dhoiciméadú gach cliant chun foghlaim faoi luachanna réamhshocraithe, socruithe agus gnéithe. Le haghaidh tuilleadh gnéithe, mar shampla le haghaidh bailíochtóiirí a rith, monatóireacht, etc., féach ar dhoiciméadú an chliaint ar leith. + +> Tabhair faoi deara gur chun críocha formáidithe amháin a úsáidtear cúlslais `\` i samplaí; is féidir bratacha cumraíochta a shainiú i líne amháin. + +##### Ag rith Besu + +Tosaíonn an sampla seo Besu ar Mainnet, stórálann sé sonraí blocshlabhra i bhformáid réamhshocraithe ag `/data/ethereum`, cuireann sé ar chumas JSON-RPC agus Engine RPC cliant comhdhearcaidh a nascadh. Fíordheimhnítear Engine API le comhartha `jwtsecret` agus ní cheadaítear ach glaonna ó `localhost`. + +```sh +besu --network=mainnet \ + --data-path=/data/ethereum \ + --rpc-http-enabled=true \ + --engine-rpc-enabled=true \ + --engine-host-allowlist="*" \ + --engine-jwt-enabled=true \ + --engine-jwt-secret=/path/to/jwtsecret +``` + +Tagann Besu le rogha lainseálaithe freisin a chuirfidh sraith ceisteanna agus a ghinfidh an comhad cumraíochta. Rith an tosaitheoir idirghníomhach ag úsáid: + +```sh +besu --Xlauncher +``` + +[Tá roghanna breise agus sonraí cumraíochta i gcáipéisíocht Besu](https://besu.hyperledger.org/en/latest/HowTo/Get-Started/Starting-node/). + +##### At rith Erigon + +Tosaíonn an sampla seo Erigon ar Mainnet, stórálann sé sonraí blocshlabhra ag `/data/ethereum`, cumasaíonn sé JSON-RPC, sainmhíníonn sé cé na spásanna ainm a cheadaítear agus cumasaíonn sé fíordheimhniú chun an cliant comhdhearcaidh atá sainmhínithe ag an `jwtsecret` a nascadh ag cosán rúnda. + +```sh +erigon --chain mainnet \ + --datadir /data/ethereum \ + --http --http.api=engine,eth,web3,net \ + --authrpc.jwtsecret=/path/to/jwtsecret +``` + +De réir réamhshocraithe déanann Erigon sioncronú iomlán le 8GB HDD as a dtiocfaidh níos mó ná 2TB de shonraí cartlainne. Cinntigh go bhfuil `datadir` ag díriú ar dhiosca a bhfuil go leor spáis ar fáil ann nó breathnaigh ar bhratach `--prúnála` ar féidir léi cineálacha éagsúla sonraí a bhearradh. Seiceáil `--cabhair` Erigon chun tuilleadh a fhoghlaim. + +##### Ag rith Geth + +Tosaíonn an sampla seo Geth ar Mainnet, stórálann sé sonraí blocshlabhra ag `/data/ethereum`, cumasaíonn sé JSON-RPC agus sainmhíníonn sé na spásanna ainm a cheadaítear. Cumasaíonn sé freisin fíordheimhniú chun cliant comhdhearcaidh a nascadh a éilíonn cosán chuig `jwtsecret` agus freisin rogha chun na naisc a cheadaítear a shainiú, inár sampla amháin ó `localhost`. + +```sh +geth --mainnet \ + --datadir "/data/ethereum" \ + --http --authrpc.addr localhost \ + --authrpc.vhosts="localhost" \ + --authrpc.port 8551 + --authrpc.jwtsecret=/path/to/jwtsecret +``` + +Seiceáil [docs le haghaidh gach rogha cumraíochta](https://geth.ethereum.org/docs/fundamentals/command-line-options) agus foghlaim tuilleadh faoi [rith Geth le cliant comhdhearcaidh](https://geth.ethereum.org/docs/getting-started/consensus-clients). + +##### Ag rith Nethermind + +Tairgeann Nethermind [roghanna suiteála](https://docs.nethermind.io/nethermind/first-steps-with-nethermind/getting-started) éagsúla. Tagann an pacáiste le cóid dhénártha éagsúla, lena n-áirítear Lainseála le socrú treoraithe, a chabhróidh leat an chumraíocht a chruthú go hidirghníomhach. Nó, aimsíonn tú Runner arb é an fheidhm inrite é féin agus is féidir leat é a rith díreach le bratacha cumraíochta. Tá JSON-RPC cumasaithe de réir réamhshocraithe. + +```sh +Nethermind.Runner --config mainnet \ + --datadir /data/ethereum \ + --JsonRpc.JwtSecretFile=/path/to/jwtsecret +``` + +Tairgeann docs Nethermind [treoir iomlán](https://docs.nethermind.io/nethermind/first-steps-with-nethermind/running-nethermind-post-merge) maidir le Nethermind a rith le cliant comhdhearcaidh. + +Tosóidh cliant reatha a chroífheidhmeanna, a chríochphointí roghnaithe, agus tosóidh sé ag lorg piaraí. Tar éis dó piaraí a fhionnadh go rathúil, tosaíonn an cliant an sioncronú. Beidh an cliant reatha ag fanacht le nasc ón gcliant comhdhearcaidh. Beidh sonraí reatha blocshlabhra ar fáil nuair a bheidh an cliant sioncronaithe go rathúil leis an staid reatha. + +##### Ag rith Reth + +Tosaíonn an sampla seo Reth ar Mainnet, ag baint úsáide as suíomh sonraí réamhshocraithe. Cumasaíonn sé fíordheimhniú JSON-RPC agus Engine RPC chun an cliant comhdhearcaidh atá sainmhínithe ag an gcosán `jwtsecret` a nascadh, agus ní cheadaítear ach glaonna ó `localhost`. + +```sh +reth node \ + --authrpc.jwtsecret /path/to/jwtsecret \ + --authrpc.addr 127.0.0.1 \ + --authrpc.port 8551 +``` + +Féach [Cumrú Reth](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth) chun tuilleadh a fhoghlaim faoi eolairí sonraí réamhshocraithe. Tá roghanna breise agus sonraí cumraíochta i [i gcáipéisíocht Reth](https://reth.rs/run/mainnet.html). + +#### Ag tosú leis an gcliant comhdhearcaidh {#starting-the-consensus-client} + +Ní mór an cliant comhdhearcaidh a thosú leis an gcumraíocht cheart poirt chun nasc RPC áitiúil a bhunú leis an gcliant reatha. Ní mór na cliaint chomhdhearcaidh a rith leis an bport cliant reatha nochta mar argóint chumraíochta. + +Teastaíonn ón gcliant comhdhearcadh freisin an cosán chuig `jwt-secret` an chliaint reatha chun an nasc RPC eatarthu a fhíordheimhniú. Cosúil leis na samplaí reatha thuas, tá bratach cumraíochta ag gach cliant comhdhearcaidh a ghlacann cosán an chomhaid chomharthaí jwt mar argóint. Caithfidh sé seo a bheith comhsheasmhach leis an gcosán `jwtsecret` a thugtar don chliant reatha. + +Má tá sé beartaithe agat bailíochtóir a rith, déan cinnte bratach cumraíochta a chur leis ina sonraítear seoladh Ethereum fhaighteoir na táille. Seo nuair a charnann luach saothair éitear do do bhailíochtóir. Tá rogha ag gach cliant comhdhearcaidh, m.sh. `--suggested-fee-recipient=0xabcd1`, a thógann seoladh Ethereum mar argóint. + +Agus Nód Rabhcáin á thosú ar líonra tástála, is féidir leat am suntasach sioncronaithe a shábháil trí úsáid a bhaint as críochphointe poiblí le haghaidh [Sioncronú seicphointe](https://notes.ethereum.org/@launchpad/checkpoint-sync). + +#### Cliant comhdhearcaidh a rith {#running-a-consensus-client} + +##### Ag rith Lighthouse + +Sula ritheann tú Lighthouse, foghlaim tuilleadh faoi conas é a shuiteáil agus a chumrú i [Leabhar Lighthouse](https://lighthouse-book.sigmaprime.io/installation.html). + +```sh +lighthouse beacon_node \ + --network mainnet \ + --datadir /data/ethereum \ + --http \ + --execution-endpoint http://127.0.0.1:8551 \ + --execution-jwt /path/to/jwtsecret +``` + +##### Ag rith Lodestar + +Suiteáil bogearraí Lodestar trína thiomsú nó tríd an íomhá Docker a íoslódáil. Foghlaim tuilleadh i [docs](https://chainsafe.github.io/lodestar/) agus in [treoir chumraíochta](https://hackmd.io/@philknows/rk5cDvKmK). + +```sh +lodestar beacon \ + --rootDir="/data/ethereum" \ + --network=mainnet \ + --eth1.enabled=true \ + --execution.urls="http://127.0.0.1:8551" \ + --jwt-secret="/path/to/jwtsecret" +``` + +##### Ag rith Nimbus + +Tagann Nimbus le cliaint chomhdhearcaidh agus reatha araon. Is féidir é a rith ar ghléasanna éagsúla fiú le cumhacht ríomhaireachta an-bheag. Tar éis [spleáchais agus Nimbus féin](https://nimbus.guide/quick-start.html) a shuiteáil, is féidir leat a chliant comhdhearcaidh a rith: + +```sh +nimbus_beacon_node \ + --network=mainnet \ + --web3-url=http://127.0.0.1:8551 \ + --rest \ + --jwt-secret="/path/to/jwtsecret" +``` + +##### Ag rith Prysm + +Tagann Prysm le script a cheadaíonn suiteáil uathoibríoch éasca. Is féidir sonraí a fháil sna [doiciméid Prysm](https://docs.prylabs.network/docs/install/install-with-script). + +```sh +./prysm.sh beacon-chain \ + --mainnet \ + --datadir /data/ethereum \ + --execution-endpoint=http://localhost:8551 \ + --jwt-secret=/path/to/jwtsecret +``` + +##### Ag rith Teku + +```sh +teku --network mainnet \ + --data-path "/data/ethereum" \ + --ee-endpoint http://localhost:8551 \ + --ee-jwt-secret-file "/path/to/jwtsecret" +``` + +Nuair a nascann cliant comhdhearcaidh leis an gcliant reatha chun an conradh taisce a léamh agus bailíochtóirí a aithint, nascann sé freisin le piaraí Nód Rabhcáin eile agus tosaíonn sé ag sioncrónú sliotáin chomhdhearcaidh ó ghineas. Nuair a shroicheann an Nód Rabhcáin an tréimhse reatha, beidh an Beacon API inúsáidte ag do bhailíochtóirí. Foghlaim tuilleadh faoi [Nód Rabhcáin API ](https://eth2docs.vercel.app/). + +### Bailíochtóirí a chur leis {#adding-validators} + +Feidhmíonn cliant comhdhearcaidh mar Nód Rabhcáin chun go bhféadfaidh bailíochtóirí nascadh. Tá a bhogearraí bailíochtaithe féin ag gach cliant comhdhearcaidh a ndéantar cur síos mionsonraithe orthu ina dhoiciméid faoi seach. + +Trí do bhailíochtóir féin a rith ceadaítear [geallta aonair](/staking/solo/), an modh is mó tionchair agus is neamhiontaofa chun tacú le líonra Ethereum. Mar sin féin, éilíonn sé seo éarlais de 32 ETH. Chun bailíochtóir a rith ar do nód féin le méid níos lú, b'fhéidir go mbeadh suim agat i linn díláraithe le hoibreoirí nód gan chead, mar [Rocket Pool](https://rocketpool.net/node-operators). + +Is é an bealach is éasca chun tús a chur le giniúint eochrach geallta agus bailíochtóirí ná [Holesky Testnet Staking Launchpad](https://holesky.launchpad.ethereum.org/) a úsáid, a ligeann duit do socraithe ag [nóid rith ar Holesky](https://notes.ethereum.org/@launchpad/holesky). Nuair a bheidh tú réidh le haghaidh Mainnet, is féidir leat na céimeanna seo a dhéanamh arís ag baint úsáide as an [Mainnet Staking Launchpad](https://launchpad.ethereum.org/). + +Breathnaigh ar [leathanach geallchuir](/staking) le haghaidh forbhreathnú ar na roghanna geallta. + +### An nód a úsáid {#using-the-node} + +Tairgeann cliaint reatha [ críochphointí API RPC](/developers/docs/apis/json-rpc/) ar féidir leat a úsáid chun idirbhearta a chur isteach, idirghníomhú le conarthaí cliste ar líonra Ethereum nó iad a imscaradh ar bhealaí éagsúla: + +- Ag glaoch orthu de láimh le prótacal oiriúnach (m.sh. ag baint úsáide as `curl`) +- Consól soláthraithe á cheangal (m.sh. `get attach`) +- Iad a chur i bhfeidhm in aon fheidhmchlár a úsáideann leabharlanna web3, e.g. [web3.py](https://web3py.readthedocs.io/en/stable/overview.html#overview), [ethers](https://github.com/ethers-io /ethers.js/) + +Tá feidhmiúcháin éagsúla de chríochphointí RPC ag cliaint éagsúla. Ach tá JSON-RPC caighdeánach ann ar féidir leat a úsáid le gach cliant. Le haghaidh forbhreathnú [léigh na doiciméid JSON-RPC](/developers/docs/apis/json-rpc/). Is féidir le hiarratais a dteastaíonn faisnéis ó líonra Ethereum uathu an RPC seo a úsáid. Mar shampla, ligeann sparán móréilimh MetaMask duit [nascadh le do chríochphointe RPC féin](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) a bhfuil buntáistí láidre príobháideachta agus slándála aige. + +Nochtann na cliaint chomhdhearcaidh go léir [Beacon API](https://ethereum.github.io/beacon-APIs) ar féidir a úsáid chun stádas an chliaint chomhdhearcaidh a sheiceáil nó chun bloic agus sonraí comhdhearcaidh a íoslódáil trí iarratais a sheoladh le huirlisí ar nós [Curl](https://curl.se). Is féidir tuilleadh eolais a fháil faoi seo sna doiciméid do gach cliant comhdhearcaidh. + +#### RPC a bhaint amach {#reaching-rpc} + +Is é `8545` an port réamhshocraithe do chliant reatha JSON-RPC ach is féidir leat poirt na gcríochphointí áitiúla a mhodhnú sa chumraíocht. De réir réamhshocraithe, ní féidir an comhéadan RPC a bhaint amach ach ar localhost do ríomhaire. Chun é a dhéanamh cianda-inrochtana, b'fhéidir gur mhaith leat é a nochtadh don phobal tríd an seoladh a athrú go `0.0.0.0`. Fágfaidh sé seo go mbeidh sé insroichte thar sheoltaí líonra áitiúil agus IP poiblí. I bhformhór na gcásanna beidh ort seoladh ar aghaidh poirt a shocrú ar do ródaire freisin. + +Tabhair aire agus tú ag nochtadh na bport ar an idirlíon mar ligfidh sé seo d’aon duine ar an idirlíon do nód a rialú. D’fhéadfadh gníomhairí mailíseacha rochtain a fháil ar do nód chun do chóras a thabhairt anuas nó do chistí a ghoid má tá do chliant á úsáid agat mar sparán. + +Bealach thart air seo ná modhanna RPC a d’fhéadfadh a bheith díobhálach a chosc ó bheith inathraithe. Mar shampla, le Geth, is féidir leat modhanna inathraithe a dhearbhú le bratach: `--http.api web3,eth,txpool`. + +Is féidir rochtain ar an gcomhéadan RPC a leathnú trí APIanna ciseal imill nó feidhmchláir freastalaí gréasáin a fhorbairt, cosúil le Nginx, agus iad a nascadh le seoladh agus le port áitiúil do chliaint. Trí lárchiseal a ghiaráil, is féidir le forbróirí a bheith in ann teastas a chumrú le haghaidh naisc shlána `https` leis an gcomhéadan RPC. + +Ní hé an t-aon bhealach amháin chun rochtain ar chríochphointe RPC do nód a chur ar bun freastalaí gréasáin, seachfhreastalaí, nó Rest API a bhfuil aghaidh sheachtrach air. Bealach eile chun príobháideacht a chaomhnú chun críochphointe inrochtana poiblí a shocrú ná an nód a óstáil ar do sheirbhís oinniúin [Tor](https://www.torproject.org/) féin. Ligfidh sé seo duit an RPC a bhaint amach lasmuigh de do líonra áitiúil gan seoladh IP poiblí statach nó port oscailte. Mar sin féin, d’fhéadfadh úsáid na cumraíochta seo a bheith in ann rochtain a fháil ar chríochphointe an RPC trí líonra Tor nach dtacaíonn gach feidhmchlár leis agus d’fhéadfadh fadhbanna ceangail a bheith mar thoradh air. + +Chun seo a dhéanamh, caithfidh tú do [seirbhís oinniúin](https://community.torproject.org/onion-services/) féin a chruthú. Seiceáil [na doiciméid](https://community.torproject.org/onion-services/setup/) ar chumraíocht na seirbhíse oinniúin chun do chuid féin a óstáil. Is féidir leat é a chur in iúl do fhreastalaí gréasáin le seachfhreastalaí chuig an bport RPC nó díreach chuig an RPC. + +Ar deireadh, agus ceann de na bealaí is coitianta chun rochtain a sholáthar ar líonraí inmheánacha ná trí nasc VPN. Ag brath ar do chás úsáide agus ar líon na n-úsáideoirí a bhfuil rochtain uathu ar do nód, d'fhéadfadh nasc slán VPN a bheith ina rogha. Is SSL VPN lán-ghnéitheach é [OpenVPN](https://openvpn.net/) a chuireann síneadh líonra slán OSI ciseal 2 nó 3 i bhfeidhm ag baint úsáide as prótacal SSL/TLS caighdeánach an tionscail, a thacaíonn le modhanna fhíordheimhniú solúbtha cliant atá bunaithe ar dheimhnithe, cártaí cliste, agus/nó ainm úsáideora/pasfhocal dintiúir, agus ceadaíonn sé beartais rialaithe rochtana a bhaineann go sonrach le húsáideoirí nó le grúpa trí úsáid a bhaint as rialacha balla dóiteáin a chuirtear i bhfeidhm ar chomhéadan fíorúil VPN. + +### An nód a oibriú {#operating-the-node} + +Ba chóir duit monatóireacht rialta a dhéanamh ar do nód chun a chinntiú go bhfuil sé ag rith i gceart. Seans go mbeidh ort cothabháil a dhéanamh ó am go chéile. + +#### Nód a choinneáil ar líne {#keeping-node-online} + +Ní gá do nód a bheith ar líne an t-am ar fad, ach ba cheart duit é a choinneáil ar líne oiread agus is féidir chun é a choinneáil sioncronaithe leis an líonra. Is féidir leat é a dhúnadh síos chun é a atosú, ach cuimhnigh: + +- Is féidir go dtógfaidh sé cúpla nóiméad múchadh má tá an staid le déanaí fós á scríobh ar diosca. +- Is féidir le múchadh éigeantach damáiste a dhéanamh don bhunachar sonraí a éilíonn ort an nód iomlán a athshioncronú. +- Rachaidh do chliant as sioncronú leis an líonra agus beidh ort sioncronú a dhéanamh arís nuair a atosóidh tú é. Cé gur féidir an nód a shioncronú ón uair a bhí sé múchta go deireanach, féadfaidh an próiseas am a ghlacadh ag brath ar cé chomh fada is atá sé as líne. + +_Ní bhaineann sé seo le nóid bhailíochtóirí ciseal comhdhearcaidh._ Má thógtar do nód as líne beidh tionchar aige ar na seirbhísí go léir atá ag brath air. Má tá nód á rith agat chun críocha _geallchuir_ ba cheart duit iarracht a dhéanamh an t-am neamhfhónaimh a laghdú oiread agus is féidir. + +#### Seirbhísí cliant a chruthú {#creating-client-services} + +Smaoinigh ar sheirbhís a chruthú chun do chliaint a rith go huathoibríoch agus iad ag am tosaithe. Mar shampla, ar fhreastalaithe Linux, bheadh ​​dea-chleachtas ann seirbhís a chruthú, e.g. le `systemd`, a fheidhmíonn an cliant le cumraíocht chuí, faoi úsáideoir le pribhléidí teoranta agus a atosaíonn go huathoibríoch. + +#### Cliaint á nuashonrú {#updating-clients} + +Ní mór duit bogearraí do chliaint a choinneáil cothrom le dáta leis na paistí slándála, na gnéithe agus na [EIPs](/eips/) is déanaí. Go háirithe roimh [foirc chrua](/history/), cinntigh go bhfuil na leaganacha cearta cliant á rith agat. + +> Roimh nuashonruithe líonra tábhachtacha, foilsíonn EF postáil ar a [blog](https://blog.ethereum.org). Is féidir leat [liostáil leis na fógraí seo](https://blog.ethereum.org/category/protocol#subscribe) chun fógra a chur chuig do ríomhphost nuair a bhíonn nuashonrú de dhíth ar do nód. + +Tá sé an-simplí cliaint a nuashonrú. Tá treoracha sonracha ag gach cliant ina ndoiciméadú, ach go ginearálta níl sa phróiseas ach an leagan is déanaí a íoslódáil agus an cliant a atosú leis an fheidhm inrite nua. Ba chóir don chliant piocadh suas san áit ar éirigh sé as, ach leis na nuashonruithe i bhfeidhm. + +Tá teaghrán leagain inléite ag gach cliant a úsáidtear sa phrótacal piaraí go piaraí ach atá inrochtana freisin ón líne ordaithe. Ligeann an teaghrán leagan seo d'úsáideoirí a sheiceáil go bhfuil an leagan ceart á rith acu agus ceadaíonn sé do bhloc-thaiscéalaithe agus d'uirlisí anailíse eile a bhfuil suim acu dáileadh cliant ar leith thar an líonra a chainníochtú. Déan tagairt le do thoil do dhoiciméadú an chliaint aonair le haghaidh tuilleadh eolais faoi theaghráin leagan. + +#### Seirbhísí breise a rith {#running-additional-services} + +Ceadaíonn rith do nód féin duit úsáid a bhaint as seirbhísí a éilíonn rochtain dhíreach ar RPC cliant Ethereum. Is seirbhísí iad seo a tógadh ar bharr Ethereum mar [ réitigh ciseal 2](/developers/docs/scaling/#layer-2-scaling), inneall do sparán, taiscéalaithe bloc, uirlisí forbróra agus bonneagar eile Ethereum. + +#### Monatóireacht a dhéanamh ar an nód {#monitoring-the-node} + +Chun monatóireacht cheart a dhéanamh ar do nód, smaoinigh ar mhéadracht a bhailiú. Soláthraíonn cliaint críochphointí méadrachta ionas gur féidir leat sonraí cuimsitheacha a fháil faoi do nód. Úsáid uirlisí mar [InfluxDB](https://www.influxdata.com/get-influxdb/) nó [Prometheus](https://prometheus.io/) chun bunachair shonraí a chruthú ar féidir leat léirshamhlú agus cairteacha a dhéanamh orthu i mbogearraí ar nós [Grafana](https://grafana.com/). Tá go leor socruithe ann chun na bogearraí seo a úsáid agus deais éagsúla Grafana chun do nód agus an líonra ina iomláine a léirshamhlú. Mar shampla, féach ar [theagasc ar mhonatóireacht Geth](/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/). + +Mar chuid de do mhonatóireacht, déan cinnte súil a choinneáil ar fheidhmíocht do mheaisín. Le linn sioncronaithe tosaigh do nód, féadfaidh na bogearraí cliant a bheith an-trom ar LAP agus RAM. Chomh maith le Grafana, is féidir leat na huirlisí a thairgeann do OS a úsáid mar `htop` nó `uptime` chun é seo a dhéanamh. + +## Tuilleadh léitheoireachta {#further-reading} + +- [Treoracha Geallchuir Ethereum](https://github.com/SomerEsat/ethereum-staking-guides) - _Somer Esat, nuashonraithe go minic_ +- [Treoir | Conas bailíochtóir a shocrú le haghaidh geall Ethereum ar mainnet](https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet) _ – CoinCashew, nuashonraithe go rialta_ +- [treoracha ETHStaker maidir le bailíochtóirí a rith ar testnets](https://github.com/remyroy/ethstaker#guides) – _ETHStaker, nuashonraithe go rialta_ +- [Ceisteanna Coitianta Cumaisc le haghaidh oibreoirí nód](https://notes.ethereum.org/@launchpad/node-faq-merge) - _Iúil 2022_ +- [Anailís ar na riachtanais chrua-earraí le bheith ina nód iomlán bailíochtaithe Ethereum ](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 Meán Fómhair 2018_ +- [Rith Nóid Iomlána Ethereum: Treoir do Dhaoine ar Bheagán Spreagadh ](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 Samhain 2019_ +- [Rith Nód Hyperledger Besu ar an Ethereum Mainnet: Sochair, Riachtanais, agus Socrú](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 Bealtaine 2020_ +- [Cliant Nethermind Ethereum a Imscaradh le Cruach Monatóireachta](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _– Nethermind.eth, 8 Lúil 2020_ + +## Ábhair ghaolmhara {#related-topics} + +- [Nóid agus cliaint](/developers/docs/nodes-and-clients/) +- [Bloic](/developers/docs/blocks/) +- [Líonraí](/developers/docs/networks/) diff --git a/public/content/translations/ga/developers/docs/scaling/index.md b/public/content/translations/ga/developers/docs/scaling/index.md new file mode 100644 index 00000000000..22dbbd0f21a --- /dev/null +++ b/public/content/translations/ga/developers/docs/scaling/index.md @@ -0,0 +1,115 @@ +--- +title: Scálú +description: Réamhrá ar na roghanna scálaithe éagsúla atá á bhforbairt faoi láthair ag pobal Ethereum. +lang: ga +sidebarDepth: 3 +--- + +## Forbhreathnú scálaithe {#scaling-overview} + +De réir mar a mhéadaigh líon na ndaoine a úsáideann Ethereum, tá teorainneacha áirithe cumais bainte amach ag an mblocshlabhra. D'ardaigh sé seo an costas a bhaineann le húsáid an líonra, rud a chruthaigh an gá atá le "réitigh scálaithe." Tá taighde á dhéanamh ar an iliomad réiteach, tá siad á dtástáil agus á gcur i bhfeidhm i gcineálacha cur chuige éagsúla chun spriocanna comhchosúla a bhaint amach. + +Is é príomhsprioc na hinscálaitheachta luas an idirbhirt (críochnaitheacht níos tapúla) agus tréchur idirbheart a mhéadú (líon níos airde idirbheart in aghaidh an tsoicind) gan dílárú ná slándáil a íobairt (tuilleadh ar an [fís Ethereum](/roadmap/vision/)). Ar blocshlabhra Ethereum ciseal 1, bíonn idirbhearta níos moille agus [praghsanna gáis](/developers/docs/gas/) neamh-inmharthana mar thoradh ar éileamh ard. Tá méadú ar acmhainn an líonra i dtéarmaí luais agus tréchur bunúsach ó thaobh le glacadh bríoch agus uilíoch Ethereum. + +Cé go bhfuil luas agus tréchur tábhachtach, tá sé ríthábhachtach go bhfanfaidh réitigh scálaithe a chumasaíonn na spriocanna seo díláraithe agus slán. Tá sé ríthábhachtach an bhacainn íseal ar iontráil a choinneáil d'oibreoirí nód chun cosc ​​a chur ar dhul chun cinn i dtreo cumhachta ríomhaireachta láraithe agus neamhchinnte. + +Go coincheapúil déanaimid scálú a chatagóiriú ar dtús mar scálú ar slabhra nó mar scálú as slabhra. + +## Réamhriachtanais {#prerequisites} + +Ba chóir go mbeadh tuiscint mhaith agat ar na hábhair bhunúsacha go léir. Cuirtear feidhmiú réitigh scálaithe chun cinn toisc nach bhfuil an oiread sin tástála catha déanta ar an teicneolaíocht, agus go leantar ag déanamh taighde agus forbartha uirthi. + +## Scálú ar slabhra {#onchain-scaling} + +Teastaíonn athruithe ar phrótacal Ethereum (ciseal 1 [Príomhlíonra](/glossary/#mainnet)) le haghaidh scálaithe ar slabhra. Ar feadh i bhfad, bhíothas ag súil leis an mblocshlabhra a sceardadh chun Ethereum a scálú. Is éard a bhí i gceist leis seo ná an blocshlabhra a roinnt ina phíosaí scoite (scearda) le bheith fíoraithe ag fo-thacair de bhailíochtóirí. Mar sin féin, is é an príomhtheicníc scálaithe an scálú de réir uas-scáluithe ciseal-2. Tacaítear leis seo trí fhoirm nua sonraí níos saoire a chur leis atá ceangailte le bloic Ethereum atá deartha go speisialta chun uas-scáluithe a dhéanamh saor d'úsáideoirí. + +### Sceardadh {#sharding} + +Is é atá i gceist le sceardadh ná an próiseas chun bunachar sonraí a scoilteadh. Bheadh ​​​​fothacair de bhailíochtóirí freagrach as scearda aonair seachas súil a choinneáil ar Ethereum go léir. Bhí sceardadh ar [threochlár](/roadmap/) Ethereum le fada, agus bhí sé beartaithe tráth a sheoladh roimh An Cumasc go cruthúnas-gill. Mar sin féin, mar gheall ar fhorbairt mhear [uas-scálú ciseal 2](#layer-2-scaling) agus aireagáin [Danksharding](/roadmap/danksharding) (blobaí de shonraí uas-scáluithe a chur le bloic Ethereum is féidir le bailíochtóirí a fhíorú go han-éifeachtach) tá pobal Ethereum i bhfabhar scáluithe uas-scálú-lárnaithe seahcas scálú le sceardadh. Cabhróidh sé seo freisin le loighic chomhdhearcadh Ethereum a choinneáil níos simplí. + +## Scálú as slabhra {#offchain-scaling} + +Cuirtear réitigh as slabhra i bhfeidhm ar leithligh ó chiseal 1 Mainnet - ní éilíonn siad aon athruithe ar an bprótacal Ethereum atá ann cheana féin. Faigheann roinnt réitigh, ar a dtugtar réitigh "ciseal 2", a slándáil go díreach ó chomhdhearcadh ciseal 1 Ethereum, mar shampla[rollups dóchasach](/developers/docs/scaling/optimistic-rollups/), [uas-scáluithe dífhianaise](/developers/docs/scaling/zk-rollups/) nó [cainéil staidel](/developers/docs/scaling/state-channels/). Is éard atá i gceist le réitigh eile ná slabhraí nua a chruthú i bhfoirmeacha éagsúla a fhaigheann a gcuid slándála ar leithligh ó Mainnet, mar [taobhshlabhraí](#sidechains), [validiums](#validium), nó [slabhraí plasma](#plasma). Déanann na réitigh seo cumarsáid le Mainnet ach díorthaítear a slándáil ar bhealach difriúil chun spriocanna éagsúla a bhaint amach. + +### Scálú sraith 2 {#layer-2-scaling} + +Faigheann an chatagóir seo de réitigh as slabhra a slándáil ó Mainnet Ethereum. + +Is téarma comhchoiteann é Ciseal 2 le haghaidh réitigh atá deartha chun cabhrú le d’iarratas a scálú trí idirbhearta a láimhseáil ón Mainnet Ethereum (ciseal 1) agus leas a bhaint as samhail láidir slándála díláraithe Mainnet. Fulaingíonn luas an idirbhirt nuair a bhíonn an líonra gnóthach, rud a fhágann go mbíonn taithí an úsáideora lag do chineálacha áirithe dapps. Agus de réir mar a éiríonn an líonra níos gnóthaí, méadaíonn praghsanna gáis de réir mar a bhíonn sé mar aidhm ag seoltóirí idirbheart dul i muinín a chéile. Is féidir leis seo cur go mór le costas úsáide Ethereum. + +Tá an chuid is mó de réitigh ciseal 2 dírithe ar fhreastalaí nó braisle fhreastalaithe, agus féadfar tagairt a dhéanamh do gach ceann díobh mar nód, bailíochtóir, oibreoir, seicheamhóir, táirgeoir bloc, nó téarma comhchosúil. Ag brath ar an bhfeidhmiú, féadfaidh na daoine aonair, na gnólachtaí nó na haonáin a úsáideann iad, nó oibreoir 3ú páirtí, nó grúpa mór daoine aonair (cosúil le Mainnet) na nóid ciseal 2 seo a reáchtáil. Go ginearálta, cuirtear idirbhearta isteach chuig na nóid ciseal 2 seo in ionad iad a chur isteach go díreach chuig ciseal 1 (Príomhlíonra). I gcás roinnt réitigh, déanann cás ciseal 2 iad a bhaisceadh ina ngrúpaí sula gcuirtear ar ancaire iad go dtí ciseal 1, agus ina dhiaidh sin déantar iad a dhaingniú le ciseal 1 agus ní féidir iad a athrú. Athraíonn na sonraí faoin gcaoi a ndéantar é seo go mór idir teicneolaíochtaí agus feidhmiúcháin ciseal 2 éagsúla. + +D’fhéadfadh cás sonrach ciseal 2 a bheith oscailte agus roinnte ag go leor feidhmchlár, nó féadfar é a imscaradh ag tionscadal amháin agus é tiomnaithe do thacú lena n-iarratas amháin. + +#### Cén fáth a bhfuil ciseal 2 ag teastáil? {#why-is-layer-2-needed} + +- Feabhsaíonn idirbhearta méadaithe in aghaidh an tsoicind an taithí úsáideora go mór, agus laghdaítear brú tráchta líonra ar Mainnet Ethereum. +- Déantar idirbhearta a uas-scálú in idirbheart amháin chuig Mainnet Ethereum, ag laghdú táillí gáis d'úsáideoirí agus ag déanamh Ethereum níos cuimsithí agus níos inrochtana do dhaoine i ngach áit. +- Níor cheart go mbeadh dílárú ná slándáil thíos leis mar gheall ar aon nuashonruithe ar inscálaitheacht - tógann ciseal 2 ar bharr Ethereum. +- Tá líonraí ciseal 2 a bhaineann go sonrach le feidhmchláir ann a thugann a gcuid éifeachtúlachtaí féin agus iad ag obair le sócmhainní ar scála. + +[Tuilleadh maidir le ciseal 2](/layer-2/). + +#### Uas-scáluithe {#rollups} + +Déanann Uas-scáluithe rith idirbheart lasmuigh de chiseal 1 agus ansin postáiltear na sonraí chuig ciseal 1 áit a bhfuil comhdhearcadh bainte amach. Toisc go bhfuil sonraí idirbhirt san áireamh i mbloic ciseal 1, ceadaíonn sé seo uas-scáluithe a áirithiú le slándáil dhúchasach Ethereum. + +Tá dhá chineál uas-scáluithe ann le samhlacha slándála éagsúla: + +- **Uas-scáluithe dóchasacha**: glacann sé leis go bhfuil idirbhearta bailí de réir réamhshocraithe agus nach ndéanann sé ach ríomh a rith, trí [**chruthúnas calaoise**](/glossary/#fraud-proof), i gcás dúshláin. [Tuilleadh faoi uas-scáluithe dóchasacha](/developers/docs/scaling/optimistic-rollups/). +- **Uas-scáluithe dífhianaise**: ritheann sé an ríomh as slabhra agus cuireann sé [**cruthúnas bailíochta**](/glossary/#validity-proof) isteach sa slabhra. [Tuilleadh maidir le huas-scáluithe dífhianaise](/developers/docs/scaling/zk-rollups/). + +#### Cainéil stáit {#channels} + +Úsáideann bealaí staide conarthaí multisig chun a chur ar chumas rannpháirtithe idirbheartaíocht a dhéanamh go tapa agus go héasca as slabhra, ansin críochnaitheacht a shocrú le Mainnet. Laghdaíonn sé seo brú tráchta líonra, táillí agus moilleanna. Is iad an dá chineál cainéal faoi láthair ná bealaí staide agus bealaí íocaíochta. + +Foghlaim tuilleadh faoi [chainéil staide](/developers/docs/scaling/state-channels/). + +### Taobhshlabhraí {#sidechains} + +Is blocshlabhra neamhspleách EVM-comhoiriúnach é taobhshlabhraí a ritheann go comhthreomhar le Príomhlíonra. Tá siad seo comhoiriúnach le Ethereum trí dhroichid dhá bhealach agus ritheann siad faoina rialacha roghnaithe féin maidir le paraiméadair chomhthola agus bloic. + +Foghlaim tuilleadh faoi [Taobhshlabhraí](/developers/docs/scaling/sidechains/). + +### Plasma {#plasma} + +Is blocshlabhra ar leith é slabhra plasma atá daingnithe le príomhshlabhra Ethereum agus a úsáideann cruthúnais calaoise (cosúil le [uas-scáluithe dóchasacha](/developers/docs/scaling/optimistic-rollups/)) chun eadráin a dhéanamh ar dhíospóidí. + +Foghlaim tuilleadh faoi [Plasma](/developers/docs/scaling/plasma/). + +### Validium {#validium} + +Úsáideann slabhra Validium cruthúnais bailíochta cosúil le huas-scáluithe dífhianaise ach ní stóráiltear sonraí ar phríomhshlabhra 1 Ethereum. D’fhéadfadh 10k idirbheart in aghaidh an tsoicind in aghaidh an tslabhra Validium a bheith mar thoradh air seo agus is féidir slabhraí iolracha a rith ag an am céanna. + +Foghlaim tuilleadh faoi [Validium](/developers/docs/scaling/validium/). + +## Cén fáth a bhfuil an oiread sin réitigh scálaithe ag teastáil? {#why-do-we-need-these} + +- Is féidir le réitigh iolracha cuidiú leis an bplódú foriomlán ar aon chuid amháin den líonra a laghdú agus pointí aonair teipe a chosc. +- Is mó an t-iomlán ná suim a chuid páirteanna. Is féidir le réitigh éagsúla a bheith ann agus oibriú le chéile, rud a cheadaíonn éifeacht easpónantúil ar luas agus ar thréchur idirbhirt sa todhchaí. +- Ní éilíonn gach réiteach úsáid a bhaint as algartam comhdhearcadh Ethereum go díreach, agus is féidir le roghanna eile tairbhí a thairiscint a bheadh ​​deacair a fháil murach sin. +- Ní leor aon réiteach scálaithe amháin chun [fís Ethereum](/roadmap/vision/) a chomhlíonadh. + +## An foghlaimeoir amhairc den chuid is mó tú? {#visual-learner} + + + +_Tabhair faoi deara go n-úsáideann an míniú san fhíseán an téarma "Ciseal 2" chun tagairt a dhéanamh do gach réiteach scálaithe as slabhra, agus idirdhealú á dhéanamh againn ar "Ciseal 2" mar réiteach as slabhra a fhaigheann a shlándáil trí chomhdhearcadh Mainnet ciseal 1._ + + + +## Tuilleadh léitheoireachta {#further-reading} + +- [Treochlár uas-scálú-lárnach Ethereum](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) _Vitalik Buterin_ +- [Anailísíocht chothrom le dáta ar réitigh scálaithe Chiseal 2 do Ethereum](https://www.l2beat.com/) +- [Measúnú ar Réitigh Scála Ethereum ciseal 2: Creat Comparáide](https://medium.com/matter-labs/evaluating-ethereum-l2-scaling-solutions-a-comparison-framework-b6b2f410f955) +- [Treoir Neamhiomlán ar Uas-scáluithe](https://vitalik.eth.limo/general/2021/01/05/rollup.html) +- [ZK-Rollups faoi thiomáint Ethereum: Buailteoirí Domhanda](https://hackmd.io/@canti/rkUT0BD8K) +- [Uas-scáluithe dóchasacha vs ZK Rollups](https://limechain.tech/blog/optimistic-rollups-vs-zk-rollups/) +- [Inscálaitheacht Bhlocshlabhra Dhífhianaise](https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf) +- [Cén fáth gurb é rollups + scearda sonraí an t-aon réiteach inbhuanaithe le haghaidh inscálaitheacht ard](https://polynya.medium.com/why-rollups-data-shards-are-the-only-sustainable-solution-for-high-scalability-c9aabd6fbb48) +- [Cén cineál Sraith 3 a bhfuil ciall leis?](https://vitalik.eth.limo/general/2022/09/17/layer_3.html) +- [Infhaighteacht Sonraí Nó: Mar a fhoghlaim Rolluithe Suas Conas Gan a Bheith Buartha agus Grá a Thabhairt do Ethereum](https://research.2077.xyz/data-availability-or-how-rollups-learned-to-stop-worrying-and-love-ethereum) +- [An Treoir Phraiticiúil maidir le hUas-Scáluithe Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ diff --git a/public/content/translations/ga/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/ga/developers/docs/scaling/optimistic-rollups/index.md new file mode 100644 index 00000000000..475be8a6c05 --- /dev/null +++ b/public/content/translations/ga/developers/docs/scaling/optimistic-rollups/index.md @@ -0,0 +1,265 @@ +--- +title: Uas-scáluithe dóchasacha +description: Réamheolas ar uas-scáluithe dóchasacha - réiteach scálaithe a úsáideann pobal Ethereum. +lang: ga +--- + +Is prótacail ciseal 2 (L2) iad uas-scáluithe dóchasacha atá deartha chun tréchur bhunchiseal Ethereum a leathnú. Laghdaíonn siad ríomh ar phríomh-shlabhra Ethereum trí idirbhearta a phróiseáil as slabhra, ag tairiscint feabhsuithe suntasacha ar luasanna próiseála. Murab ionann agus réitigh scálaithe eile, mar [ taobhshlabhraí](/developers/docs/scaling/sidechains/), díorthaíonn uas-scáluithe dóchasacha slándáil ó Príomhlíonra trí thorthaí idirbheart a fhoilsiú ar slabhra, nó [ slabhraí plasma](/developers/docs/scaling/plasma/), a fhíoraíonn idirbhearta sonraí idirbheart Ethereum le cruthúnais calaoise freisin. + +Toisc gurb é an ríomh an chuid mhall, chostasach d'úsáid Ethereum, is féidir le huas-scáluithe dóchasacha feabhsuithe suas le 10-100x in inscálaitheacht a thairiscint. Scríobhann uas-scáluithe dóchasacha idirbhearta chuig Ethereum mar `calldata` nó i [blobaí](/roadmap/danksharding/), rud a laghdaíonn costais gháis d'úsáideoirí. + +## Réamhriachtanais {#prerequisites} + +Ba cheart go mbeadh ár leathanaigh ar [Scálú Ethereum](/developers/docs/scaling/) agus [ciseal 2](/layer-2/) léite agus tuigthe agat. + +## Cad is uas-scálú dóchasach ann? {#what-is-an-optimistic-rollup} + +Is ionann uas-scálú dóchasach agus cur chuige maidir le scálú Ethereum a bhaineann le ríomh agus stóras staide a bhogadh as slabhra. Ritheann uas-scáluithe dóchasacha idirbhearta lasmuigh de Ethereum, ach postálann siad sonraí idirbhirt chuig Príomhlíonra mar `calldata` nó i [blobaí](/roadmap/danksharding/). + +Déanann oibreoirí uas-scáluithe dóchasacha il-idirbheart as slabhra a chumhdach le chéile i mbaisceanna móra sula gcuirtear faoi bhráid Ethereum iad. Leis an gcur chuige seo is féidir costais sheasta a leathadh thar idirbhearta iolracha i ngach baisc, ag laghdú táillí d’úsáideoirí deiridh. Úsáideann uas-scáluithe dóchasacha freisin teicnící comhbhrú chun méid na sonraí a phostáiltear ar Ethereum a laghdú. + +Meastar go bhfuil uas-scáluithe dóchasacha “dóchasach” toisc go nglacann siad leis go bhfuil idirbhearta seachshlabhra bailí agus nach bhfoilsíonn siad cruthúnais bailíochta do bhaisceanna idirbheart a phostáiltear ar slabhra. Scarann ​​sé seo uas-scáluithe dóchasacha ó [uas-scálú eolas-nialais](/developers/docs/scaling/zk-rollups) a fhoilsíonn [cruthúnais bhailíochta](/glossary/#validity-proof) le haghaidh idirbhearta as slabhra. + +Ina ionad sin, braitheann uas-scáluithe dóchasacha ar scéim chun calaois a chruthú chun cásanna a bhrath nach ndéantar idirbhearta a ríomh i gceart. Tar éis baisc uas-scáluithe a chur isteach ar Ethereum, tá tréimhse ama ann (ar a dtugtar tréimhse dhúshláin) inar féidir le duine ar bith dúshlán a thabhairt do thorthaí idirbheart uas-scálaithe trí [chruthúnas calaoise](/glossary/#fraud-proof) a ríomh. + +Má éiríonn leis an gcruthúnas calaoise, déanann an prótacal uas-scálú an idirbhirt (na n-idirbhearta) a ath-rith agus déanann sé staid an uascálaithe a nuashonrú dá réir. Is é an éifeacht eile a bhaineann le cruthú calaoise rathúil ná go gcuirtear pionós ar an seicheamhóir atá freagrach as an idirbheart a rinneadh go mícheart a áireamh i mbloc. + +Mura dtugtar dúshlán don bhaisc uas-scálaithe (i.e., déantar gach idirbheart i gceart) tar éis don tréimhse dúshláin dul in éag, meastar é a bheith bailí agus glactha ar Ethereum. Féadfaidh daoine eile leanúint ar aghaidh ag tógáil ar bhloc uas-scálaithe neamhdheimhnithe, ach le caveat: déanfar torthaí idirbheart a aisiompú má tá siad bunaithe ar idirbheart a rinneadh go mícheart a foilsíodh roimhe seo. + +## Conas a idirghníomhaíonn uas-scáluithe dóchasacha le Ethereum? {#optimistic-rollups-and-Ethereum} + +Tá uas-scáluithe dóchasacha ina [réitigh scálaithe as slabhra](/developers/docs/scaling/#offchain-scaling) tógtha chun oibriú ar bharr Ethereum. Déantar gach uas-scálú dóchasach a bhainistiú trí shraith conarthaí cliste a imscartar ar líonra Ethereum. Próiseálann uascáluithe dóchasacha idirbhearta as an bpríomhshlabhra Ethereum, ach postálann siad idirbhearta as slabhra (i mbaisceanna) chuig conradh uas-scálaithe ar slabhra. Cosúil leis an blocshlabhra Ethereum, tá an taifead idirbheart seo do-athraithe agus is "slabhra uas-scálaithe dóchasach" é. + +Cuimsíonn ailtireacht uas-scálú dóchasach na codanna seo a leanas: + +**Conarthaí ar slabhra**: Tá feidhmiú an uas-scálú dóchasach á rialú ag conarthaí cliste a ritheann ar Ethereum. Áirítear leis seo conarthaí a stórálann bloic uas-scáluithe, a dhéanann monatóireacht ar nuashonruithe staide ar an uascálú, agus a rianaíonn taiscí úsáideoirí. Sa chiall seo, feidhmíonn Ethereum mar an ciseal bonn nó "ciseal 1" le haghaidh uas-scáluithe dóchasacha. + +**Meaisín fíorúil as slabhra (VM)**: Cé go bhfuil conarthaí a bhainistíonn an prótacal uas-scálaithe dóchasach á rith ar Ethereum, déanann an prótacal uasc-scálaithe ríomh agus stóráil staide ar mheaisín fíorúil eile ar leith ón [Meaisín Fíorúil Ethereum](/developers/docs/evm/). Is i slabhra VM a chónaíonn feidhmchláir agus ina ritear athruithe staide; feidhmíonn sé mar chiseal uachtarach nó "ciseal 2" le haghaidh uas-scálú dóchasach. + +Toisc go bhfuil uas-scáluithe dóchasacha deartha chun cláir a rith atá scríofa nó tiomsaithe don EVM, cuimsíonn an as slabhra VM go leor sonraíochtaí dearaidh EVM. Ina theannta sin, ceadaíonn cruthúnais calaoise a ríomhtar ar slabhra do líonra Ethereum bailíocht na n-athruithe staide a ríomhtar sa VM as slabhra a fhorfheidhmiú. + +Déantar cur síos ar uas-scáluithe dóchasacha mar 'réitigh scálaithe hibrideacha' mar, cé go bhfuil siad ann mar phrótacail ar leithligh, díorthaítear a n-airíonna slándála ó Ethereum. I measc rudaí eile, ráthaíonn Ethereum cruinneas ríomh as slabhra uas-scáluithe agus infhaighteacht na sonraí taobh thiar den ríomh. Déanann sé seo uas-scáluithe dóchasacha níos sláine ná prótacail scálaithe as slabhra íon (m.sh., [ taobh-shlabhraí taobh](/developers/docs/scaling/sidechains/)) nach bhfuil ag brath ar Ethereum le haghaidh slándála. + +Braitheann uas-scáluithe dóchasacha ar phríomh-phrótacal Ethereum do na nithe seo a leanas: + +### Infhaighteacht sonraí {#data-availability} + +Mar a luadh, cuireann uas-scáluithe dóchasacha sonraí idirbhirt chuig Ethereum mar `calldata` nó [blobaí](/roadmap/danksharding/). Ós rud é go bhfuil forghníomhú an tslabhra uas-scálaithe bunaithe ar idirbhearta a cuireadh isteach, is féidir le duine ar bith an fhaisnéis seo a úsáid - atá daingnithe ar an ciseal bunúsach Ethereum - chun staid an uas-scálaithe a rith agus chun cruinneas na n-aistrithe staide a fhíorú. + +Tá [Infhaighteacht sonraí](/developers/docs/data-availability/) ríthábhachtach mar gan rochtain ar shonraí staide, ní féidir le lucht dúshláin cruthúnais calaoise a thógáil chun oibríochtaí uas-scálaithe neamhbhailí a cheistiú. Agus infhaighteacht sonraí á gcur ar fáil ag Ethereum, laghdaítear an baol go n-éireoidh le hoibreoirí uas-scáluithe gníomhartha mailíseacha (m.sh. bloic neamhbhailí a chur isteach) a dhéanamh. + +### Friotaíocht chinsireachta {#censorship-resistance} + +Braitheann uas-scáluithe dóchasacha freisin ar Ethereum le cur in aghaidh na cinsireachta. In uas-scálú dóchasach tá aonán láraithe (an t-oibreoir) freagrach as idirbhearta a phróiseáil agus as bloic uascálaithe a chur isteach chuig Ethereum. Tá roinnt impleachtaí aige seo: + +- Is féidir le hoibreoirí uas-scálaithe úsáideoirí a chinsireacht trí dhul as líne go hiomlán, nó trí bhloic a dhiúltú a chuimsíonn idirbhearta áirithe iontu. + +- Is féidir le hoibreoirí uas-scálaithe úsáideoirí a chosc ó chistí atá i dtaisce sa chonradh uas-scálaithe a aistarraingt trí shonraí staide atá riachtanach chun cruthúnais úinéireachta Merkle a choinneáil siar. Nuair a choinnítear siar sonraí staide is féidir staid an uas-scálaithe a cheilt ó úsáideoirí agus iad a chosc ó idirghníomhú leis an uas-scálú. + +Réitíonn uas-scáluithe dóchasacha an fhadhb seo trí iallach a chur ar oibreoirí sonraí a bhaineann le nuashonruithe staide a fhoilsiú ar Ethereum. Tá na buntáistí seo a leanas ag baint le sonraí uas-scálaithe a fhoilsiú ar slabhra: + +- Má théann oibritheoir uas-scáluithe dóchasacha as líne nó má stopann sé táirgeadh bhaisceanna idirbheart, is féidir le nód eile sonraí atá ar fáil a úsáid chun staid dheireanach an uas-scálaithe a atáirgeadh agus leanúint ar aghaidh le táirgeadh bloc. + +- Is féidir le húsáideoirí sonraí idirbhirt a úsáid chun cruthúnais Merkle a chruthú a chruthaíonn úinéireacht cistí agus a gcuid sócmhainní a tharraingt siar ón uas-scálú. + +- Is féidir le húsáideoirí a n-idirbhearta a chur isteach ar L1 freisin seachas chuig an seicheamhóir, agus sa chás sin caithfidh an seicheamhóir an t-idirbheart a chur san áireamh laistigh de theorainn ama áirithe chun leanúint de bhloic bhailí a tháirgeadh. + +### Réiteach {#settlement} + +Ról eile a imríonn Ethereum i gcomhthéacs uas-scáluithe dóchasacha is ea an ciseal socraíochta. Is crann taca é ciseal socraíochta don éiceachóras blocshlabhra ar fad, bunaíonn sé slándáil, agus soláthraíonn sé críochnaitheacht oibiachtúil má tharlaíonn díospóid ar shlabhra eile (uas-scáluithe dóchasacha sa chás seo) a éilíonn eadráin. + +Soláthraíonn Ethereum Mainnet mol le haghaidh uas-scáluithe dóchasacha chun cruthúnais calaoise a fhíorú agus díospóidí a réiteach. Ina theannta sin, níl na hidirbhearta a dhéantar ar an uas-scálú críochnaitheach ach amháin _tar éis_ glacadh leis an mbloc uas-scálaithe ar Ethereum. Nuair a bheidh idirbheart uas-scálaithe tiomanta do chiseal bonn Ethereum, ní féidir é a rollú siar (ach amháin i gcás atheagrú caolseansúil slabhra). + +## Conas a oibríonn uas-scáluithe dóchasacha? {#how-optimistic-rollups-work} + +### Idirbheart a rith agus a chomhiomlánú {#transaction-execution-and-aggregation} + +Cuireann úsáideoirí idirbhearta faoi bhráid “oibreoirí”, ar nóid iad atá freagrach as idirbhearta a phróiseáil ar an uas-scálú dóchasach. Déanann an t-oibreoir idirbhearta, a dtugtar “bailíochtóir” nó “comhbhailitheoir” freisin air, idirbhearta a chomhiomlánú, na sonraí bunúsacha a chomhbhrú, agus an bloc a fhoilsiú ar Ethereum. + +Cé gur féidir le duine ar bith a bheith ina bhailitheoir, ní mór do bhailitheoirí uas-scáluithe dóchasacha banna a sholáthar sula ndéantar bloic a tháirgeadh, cosúil le [córas cruthúnas-gill](/developers/docs/consensus-mechanisms/pos/). Is féidir an banna seo a chiorrú má phostálann an bailíochtóir bloc neamhbhailí nó má thógann sé bloc sean ach neamhbhailí (fiú má tá a bhloc bailí). Ar an mbealach seo, úsáideann uas-scálú dóchasach dreasachtaí cripte-eacnamaíochta chun a chinntiú go ngníomhaíonn bailíochtóirí go hionraic. + +Táthar ag súil go ndéanfaidh bailíochtóirí eile ar an slabhra uas-scálú dóchasach na hidirbhearta a cuireadh isteach a rith ag baint úsáide as a gcóip féin de staid an uas-scálaithe. Má tá staid deiridh an bhailíochtóra difriúil ó staid bheartaithe an oibreora, féadfaidh sé tús a chur le dúshlán agus cruthúnas calaoise a ríomh. + +Féadfaidh roinnt uas-scáluithe dóchasacha córas bailíochtaithe gan chead a sheachligean agus “seicheamhóir” amháin a úsáid chun an slabhra a rith. Cosúil le bailíochtóir, déanann an seicheamhóir idirbhearta a phróiseáil, táirgeann sé uas-scálú, agus cuireann sé idirbhearta uas-scálaithe chuig an slabhra L1 (Ethereum). + +Tá an seicheamhóir difriúil ó oibritheoir uas-scálaithe rialta toisc go bhfuil níos mó smachta acu ar ordú na n-idirbheart. Chomh maith leis sin, tá rochtain tosaíochta ag an seicheamhóir ar an slabhra uas-scáluithe agus is é an t-aon aonán atá údaraithe chun idirbhearta a chur isteach sa chonradh ar slabhra. Ní dhéantar ach idirbhearta ó nóid neamhsheichimh nó ó úsáideoirí rialta a chur i scuaine i mbosca isteach ar leith go dtí go n-áiríonn an seicheamhóir iad i mbaisc nua. + +#### Bloic uas-scáluithe a chur isteach chuig Ethereum {#submitting-blocks-to-ethereum} + +Mar a luadh, déanann oibreoir uas-scáluithe dóchasacha idirbhearta lasmuigh den slabhra a bhailiú i mbaisc agus seolann sé í chuig Ethereum le haghaidh nótaireachta. Is éard atá i gceist leis an bpróiseas seo ná sonraí a bhaineann le hidirbhearta a chomhbhrú agus é a fhoilsiú ar Ethereum mar `calldata` nó i blobaí. + +Is réimse neamh-inathraithe, neamhsheasmhach é `calldata` i gconradh cliste a iompraíonn go príomha mar [chuimhne](/developers/docs/smart-contracts/anatomy/#memory). Cé go leanann `calldata` ar slabhra mar chuid de [logaí staire](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs) an blocshlabhra, ní stóráiltear é mar chuid de staid Ethereum. Toisc nach mbaineann `calldata` le haon chuid de staid Ethereum, tá sé níos saoire ná an staid chun sonraí a stóráil ar slabhra. + +Úsáidtear an eochairfhocal `calldata` freisin i Solidity chun argóintí a chur ar aghaidh chuig feidhm chonartha cliste ag am forghníomhaithe. Aithníonn `calldata` an fheidhm atá á glaoch le linn idirbheart agus coinníonn sé ionchuir don fheidhm i bhfoirm seicheamh beart treallach. + +I gcomhthéacs uas-scáluithe dóchasacha, úsáidtear `calldata` chun sonraí idirbheart comhbhrúite a sheoladh chuig an gconradh ar slabhra. Cuireann an t-oibreoir uas-scáluithe baisc nua leis trí ghlaoch ar an bhfeidhm riachtanach sa chonradh uas-scálaithe agus na sonraí comhbhrúite a rith mar argóintí feidhme. Laghdaítear táillí úsáideoirí trí úsáid a bhaint as `calldata` ós rud é go dtagann formhór na gcostas a thabhaíonn uas-scáluithe as sonraí a stóráil ar slabhra. + +Seo [sampla](https://etherscan.io/tx/0x9102bfce17c58b5fc1c974c24b6bb7a924fb5fbd7c4cd2f675911c27422a5591) de chur faoi bhráid bhaisc uas-scálaithe a léiríonn oibriú an choincheapa seo. D'úsáid an seicheamhóir an modh `appendSequencerBatch()` agus chuir sé na sonraí idirbhirt chomhbhrúite mar ionchuir ag úsáid `calldata`. + +Úsáideann roinnt uas-scáluithe blobaí anois chun baisceanna idirbheart a phostáil chuig Ethereum. + +Tá blobanna neamh-inathraithe agus neamhsheasmhach (cosúil le `sonraí glaonna`) ach prúnáiltear iad ón stair tar éis ~18 lá. Le haghaidh tuilleadh eolais ar bhloic, féach [Danksharding](/roadmap/danksharding). + +### Gealltanais staide {#state-commitments} + +Ag am ar bith, eagraítear an staid uas-scálú dóchasach (cuntais, iarmhéideanna, cód conartha, etc.) mar [crann Merkle](/whitepaper/#merkle-trees) ar a dtugtar “crann staide”. Déantar fréamh an chrainn Merkle seo (fréamh staide), a thagraíonn don staid is déanaí den uas-scálú, a haiseáil agus a stóráil sa chonradh uas-scálaithe. Táirgeann gach trasdul stáit ar an slabhra staid rollup nua, a bhfuil oibreoir tiomanta dó trí fhréamh staide nua a ríomh. + +Éilítear ar an oibreoir fréamhacha sean-staide agus fréamhacha staide nua araon a chur isteach nuair a bhíonn baisceanna á bpostáil. Má mheaitseálann an seanfhréamh staide an fhréamh staide atá ann cheana féin sa chonradh ar slabhra, cuirtear an dara ceann i leataobh agus cuirtear an fhréamh staide nua ina ionad. + +Ceanglaítear ar an oibreoir uas-scáluithe freisin fréamh Merkle a ghealladh don bhaisc idirbheart féin. Ligeann sé seo do dhuine ar bith cuimsiú idirbheart sa bhaisc (ar L1) a chruthú trí [Merkle proof](/developers/tutorials/merkle-proofs-for-offline-data-integrity/) a chur i láthair. + +Tá gá le gealltanais staide, go háirithe fréamhacha staide, chun cruinneas na n-athruithe staide in uas-scálú dóchasach a chruthú. Glacann an conradh uas-scálaithe fréamhacha staide nua ó oibreoirí díreach tar éis iad a phostáil, ach féadann sé fréamhacha staide neamhbhailí a scriosadh níos déanaí chun an t-uas-scálú a chur ar ais go dtí a staid cheart. + +### Fíorú calaoise {#fraud-proving} + +Mar a mhínítear, ligeann uas-scáluithe dóchasacha do dhuine ar bith bloic a fhoilsiú gan cruthúnais bhailíochta a sholáthar. Mar sin féin, chun a chinntiú go bhfanann an slabhra slán, sonraíonn rollups dóchasach tréimhse ama inar féidir le duine ar bith agóid a dhéanamh faoi aistriú stáit. Mar sin, tugtar “dearbhuithe” ar bhlocanna uas-scálaithe mar is féidir le haon duine a mbailíocht a dhíospóid. + +Má dhéanann duine agóid in aghaidh dearbhaithe, ansin cuirfidh an prótacal uas-scálaithe tús leis an ríomh cruthúnas calaoise. Tá gach cineál cruthúnais calaoise idirghníomhach - ní mór do dhuine dearbhú a phostáil sula bhféadfaidh duine eile dúshlán a thabhairt dó. Is é an difríocht ná cé mhéad babhta idirghníomhaíochta a theastaíonn chun an fíorú calaoise a ríomh. + +Déanann scéimeanna um chruthú idirghníomhach aon-bhabhta idirbhearta faoi dhíospóid a athimirt ar L1 chun dearbhuithe neamhbhailí a bhrath. Déanann an prótacal uas-scálaithe aithris ar ath-rith an idirbhirt faoi dhíospóid ar L1 (Ethereum) ag baint úsáide as conradh fíoraitheora, agus is é bunchloch an stáit ríofa a chinneann cé a bhuaigh an dúshlán. Má tá éileamh an iomaitheoir faoi staid cheart an uas-scálaithe i gceart, gearrtar pionós ar an oibreoir trína bhanna a ghearradh. + +Mar sin féin, chun idirbhearta a ath-rith ar L1 chun calaois a bhrath ní mór gealltanais staide a fhoilsiú maidir le hidirbhearta aonair agus méadaítear ar na sonraí is gá do na huas-scáluithe a fhoilsiú ar slabhra. Tabhaítear costais shuntasacha gáis freisin le hidirbhearta athimeartha. Ar na cúiseanna seo, tá uas-scáluithe dóchasacha ag aistriú go cruthú idirghníomhach il-bhabhta, a bhaineann an cuspóir céanna amach (i.e. oibríochtaí rollup neamhbhailí a bhrath) le níos mó éifeachtúlachta. + +#### Cruthú idirghníomhach il-bhabhta {#multi-round-interactive-proving} + +Is éard atá i gceist le cruthú idirghníomhach ilbhabhta ná prótacal anonn is anall idir an té atá agóid agus an t-iomaitheoir arna mhaoirsiú ag conradh fíoraitheora L1, a chinneann an páirtí bréag ar deireadh. Tar éis dúshlán nód L2 a thabhairt do dhearbhú, ní mór don éilitheoir an dearbhú faoi dhíospóid a roinnt ina dhá leath chothroma. Beidh a oiread céimeanna ríomha i ngach dearbhú aonair sa chás seo agus a bheidh sna cinn eile. + +Roghnóidh an t-iomaitheoir ansin cén dearbhú atá sé ag iarraidh a dhúshlán a thabhairt. Leanann an próiseas roinnte (ar a dtugtar “prótacal déroinnte”) ar aghaidh go dtí go bhfuil an dá pháirtí ag aighneas dearbhú faoi chéim reatha _singil_. Ag an bpointe seo, réiteofar an díospóid le conradh L1 tríd an treoir (agus a thoradh) a mheas chun an páirtí calaoiseach a ghabháil. + +Ceanglaítear ar an dearbhóir “cruthúnas aon-chéime” a sholáthar a fhíoraíonn bailíocht na ríomha aon-chéime atá faoi dhíospóid. Má theipeann ar an dearbhóir an cruthúnas aon-chéime a sholáthar, nó má mheasann an fíoraitheoir L1 an cruthúnas a bheith neamhbhailí, caillfidh sé an dúshlán. + +Roinnt nótaí faoin gcineál seo cruthúnais calaoise: + +1. Meastar go gcruthaítear calaois idirghníomhach il-bhabhta éifeachtach toisc go laghdaítear an obair a chaithfidh an slabhra L1 a dhéanamh in eadráin díospóide. In ionad an t-idirbheart iomlán a athimirt, ní gá don slabhra L1 ach céim amháin a ath-fhorghníomhú i gcur i gcrích an uas-scálaithe. + +2. Laghdaíonn prótacail déroinnte an méid sonraí a phostáiltear ar slabhra (ní gá gealltanais staide a fhoilsiú do gach idirbheart). Chomh maith leis sin, ní chuireann teorainn gháis Ethereum srian ar idirbhearta uas-scáluithe dóchasacha. Os a choinne sin, ní mór do uas-scáluithe dóchasacha a ath-ritheann idirbhearta a chinntiú go bhfuil teorainn gháis níos ísle ag idirbheart L2 chun aithris a dhéanamh ar a rith laistigh d'idirbheart Ethereum amháin. + +3. Bronntar cuid de bhanna an éilitheora mailísigh ar an iomaitheoir, agus dóitear an chuid eile. Coisceann an dó claonpháirteachas i measc bailíochtóirí; má thagann beirt bhailíochtóirí le chéile chun dúshláin bhréagacha a thionscnamh, forghéillfidh siad fós cuid mhór den gheall iomlán. + +4. Éilíonn cruthú idirghníomhach ilbhabhta go ndéanfadh an dá pháirtí (an dearbhóir agus an t-iomaitheoir) gluaiseachtaí laistigh den fhuinneog ama sonraithe. Mura ngníomhaítear roimh éag an spriocdháta forghéillfidh an páirtí is cúis mhainneachtana an dúshlán. + +#### Cén fáth a bhfuil cruthúnais calaoise tábhachtach do uas-scáluithe dóchasacha {#fraud-proof-benefits} + +Tá fíorú calaoise tábhachtach toisc go n-éascaíonn siad _críochnaitheacht iontaofa_ in uas-scáluithe dóchasacha. Is cáilíocht in uas-scáluithe dóchasacha é críochnaitheacht gan iontaoibh a ráthaíonn go ndeimhneofar idirbheart - chomh fada agus a bheidh sé bailí - ar deireadh thiar. + +Is féidir le nóid mhailíseacha iarracht a dhéanamh moill a chur ar dheimhniú bloc uas-scáluithe bailí trí dhúshláin bhréagacha a thosú. Mar sin féin, cruthóidh cruthúnais chalaoise bailíocht an bhloic uas-scáluithe agus déanfar é a dhearbhú. + +Baineann sé seo freisin le airí slándála eile a bhaineann le huas-scáluithe dóchasacha: braitheann bailíocht an tslabhra ar nód macánta _aon_ a bheith ann. Is féidir leis an nód macánta an slabhra a chur chun cinn i gceart trí dhearbhuithe bailí a phostáil nó trí dhíospóid a dhéanamh ar dhearbhuithe neamhbhailí. Cibé an cás, caillfidh nóid mailíseach a théann i ndíospóidí leis an nód macánta a ngeallta le linn an phróisis chruthú calaoise. + +### Idir-inoibritheacht L1/L2 {#l1-l2-interoperability} + +Tá uas-scáluithe dóchasacha deartha le haghaidh idir-inoibritheachta le Ethereum Príomhlíonra agus ligeann siad d'úsáideoirí teachtaireachtaí agus sonraí treallacha a chur ar aghaidh idir L1 agus L2. Tá siad comhoiriúnach freisin leis an EVM, ionas gur féidir leat [dapps](/developers/docs/dapps/) atá ann cheana a phortáil chuig uas-scáluithe dóchasacha nó dapps nua a chruthú le huirlisí forbartha Ethereum. + +#### 1. Gluaiseacht sócmhainní {#asset-movement} + +##### Ag dul isteach san uas-scálú + +Chun uas-scálú dóchasach a úsáid, cuireann úsáideoirí ETH, comharthaí ERC-20, agus sócmhainní glactha eile i dtaisce i gconradh [droichead](/developers/docs/bridges/) an rollups ar L1. Déanfaidh an conradh droichid an t-idirbheart a athsheoladh chuig L2, áit a ndéanfar méid choibhéiseach sócmhainní a bhualadh agus a sheoladh chuig an seoladh roghnaithe ag an úsáideoir ar an uas-scálú dóchasach. + +De ghnáth cuirtear idirbhearta a ghintear le húsáideoirí (cosúil le taisce L1> L2) i scuaine go dtí go ndéanann an seicheamhóir iad a chur isteach arís sa chonradh uas-scálaithe. Mar sin féin, chun an fhriotaíocht chinsireachta a chaomhnú, cuireann uas-scáluithe dóchasacha ar chumas úsáideoirí idirbheart a chur isteach go díreach chuig an gconradh uas-scálaithe ar slabhra má cuireadh moill air thar an uastréimhse a cheadaítear. + +Glacann roinnt uas-scáluithe dóchasacha cur chuige níos simplí chun seicheamhóirí a chosc ó úsáideoirí a chinsireacht. Anseo, sainmhínítear bloc leis na hidirbhearta go léir a cuireadh isteach sa chonradh L1 ón mbloc roimhe seo (m.sh., taiscí) de bhreis ar na hidirbhearta a phróiseáiltear ar an slabhra uas-scálaithe. Má dhéanann seicheamhóir neamhaird ar idirbheart L1, foilseoidh sé an fhréamh staide mícheart (inchruthaithe); mar sin, ní féidir le seicheamhóirí moill a chur ar theachtaireachtaí a ghintear ón úsáideoir nuair a phostáiltear iad ar L1. + +##### Scor ón uas-scálú + +Tá sé níos deacra tarraingt siar ó uas-scálú dóchasach go Ethereum mar gheall ar an scéim chun calaois a chruthú. Má chuireann úsáideoir tús le hidirbheart L2 > L1 chun cistí ar eascró ar L1 a aistarraingt, ní mór dóibh fanacht go dtí go rachaidh an tréimhse dúshláin — a mhaireann thart ar seacht lá — thart. Mar sin féin, tá an próiseas aistarraingthe féin sách simplí. + +Tar éis an t-iarratas aistarraingthe a thionscnamh ar an uas-scálú L2, cuirtear an t-idirbheart san áireamh sa chéad bhaisc eile, agus dóitear sócmhainní an úsáideora ar an uas-scálú. Nuair a bheidh an bhaisc foilsithe ar Ethereum, is féidir leis an úsáideoir cruthúnas Merkle a ríomh lena bhfíoraítear cuimsiú a n-idirbheart scoir sa bhloc. Níl le déanamh ansin ach fanacht tríd an tréimhse moille chun an t-idirbheart ar L1 a thabhairt chun críche agus cistí a tharraingt siar go Mainnet. + +Ionas nach gá fanacht seachtain roimh airgead a aistarraingt chuig Ethereum, is féidir le húsáideoirí uas-scálú dóchasach **soláthraí leachtachta** (LP) a fhostú. Glacann soláthraí leachtachta úinéireacht ar aistarraingt L2 atá ar feitheamh agus íocann sé an t-úsáideoir ar L1 (mar mhalairt ar tháille). + +Is féidir le soláthraithe leachtachta bailíocht iarratas aistarraingthe an úsáideora a sheiceáil (tríd an slabhra a rith iad féin) sula scaoiltear cistí. Ar an mbealach seo tá dearbhuithe acu go ndeimhneofar an t-idirbheart sa deireadh (i.e. críochnaitheacht gan iontaoibh). + +#### 2. Comhoiriúnacht EVM {#evm-compatibility} + +I gcás forbróirí, is é an buntáiste a bhaineann le huas-scáluithe dóchasacha ná a gcomhoiriúnacht - nó, níos fearr fós, a gcoibhéis - le [Meaisín Fíorúil Ethereum (EVM)](/developers/docs/evm/). Comhlíonann rollup EVM-comhoiriúnach na sonraíochtaí i [bPáipéar Buí Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf) agus tacaíonn siad leis an EVM ag leibhéal an bheartchóid. + +Tá na buntáistí seo a leanas ag baint le comhoiriúnacht EVM in uas-scáluithe dóchasacha: + +i. Is féidir le forbróirí conarthaí cliste atá ann cheana féin a aistriú ar Ethereum chuig slabhraí uas-scáluithe dóchasacha gan é a bheith riachtanach dóibh bunachair chóid a mhodhnú go forleathan. Is féidir leis seo am foirne forbartha a shábháil agus conarthaí cliste Ethereum á n-imscaradh ar L2. + +ii. Is féidir le forbróirí agus foirne tionscadail a úsáideann uas=scáluithe dóchasacha leas a bhaint as bonneagar Ethereum. Áirítear leis seo teangacha ríomhchlárúcháin, leabharlanna cód, uirlisí tástála, bogearraí cliant, bonneagar imlonnaithe, agus mar sin de. + +Tá sé tábhachtach an uirlis atá ann cheana a úsáid mar go ndearnadh iniúchadh forleathan ar na huirlisí seo, rinneadh iad a dhífhabhtú agus a fheabhsú thar na blianta. Cuireann sé deireadh freisin leis an ngá atá le forbróirí Ethereum a fháil amach conas tógáil le stoic forbartha go hiomlán nua. + +#### 3. Glaonna conartha tras-slabhra {#cross-chain-contract-calls} + +Idirghníomhaíonn úsáideoirí (cuntais faoi úinéireacht sheachtrach) le conarthaí L2 trí idirbheart a chur isteach sa chonradh uas-scálaithe nó trí sheicheamhóir nó bailíochtóir é a dhéanamh ar a son. Ligeann uas-scáluithe dóchasacha freisin do chuntais chonartha ar Ethereum idirghníomhú le conarthaí L2 le conarthaí idirlinne chun teachtaireachtaí a sheoladh agus sonraí a chur ar aghaidh idir L1 agus L2. Ciallaíonn sé seo gur féidir leat conradh L1 a ríomh ar Ethereum Príomhlíonra chun feidhmeanna a bhaineann le conarthaí a agairt ar uas-scálú dóchasach L2. + +Tarlaíonn glaonna conartha trasshlabhra go neamh-shioncrónach - rud a chiallaíonn go gcuirtear tús leis an nglao ar dtús, agus go ndéantar é níos déanaí. Tá sé seo difriúil ó ghlaonna idir an dá chonradh ar Ethereum, áit a dtáirgeann an glao torthaí láithreach. + +Sampla de ghlao conradh trasshlabhra is ea an éarlais chomharthaíochta a thuairiscítear níos luaithe. Cuireann conradh ar L1 comharthaí an úsáideora in eascró agus seolann sé teachtaireacht chuig conradh péireáilte L2 chun an méid céanna comharthaí a bhreacadh ar an uas-scálú. + +Ós rud é go n-eascraíonn rith conradh as glaonna teachtaireachtaí tras-shlabhra, is gnách go gceanglaítear ar an seoltóir [costais gháis](/developers/docs/gas/) a chlúdach le haghaidh ríomha. Tá sé inmholta teorainn ard gáis a shocrú chun an t-idirbheart a chosc ó theip ar an sprioc-shlabhra. Is sampla maith é an droichead comharthaí; má oibríonn taobh L1 an idirbhirt (na comharthaí a thaisceadh), ach go dteipeann ar an taobh L2 (comhartha comharthaí nua) mar gheall ar ghás íseal, ní féidir an taisce a aisghabháil. + +Ar deireadh, ba cheart dúinn a thabhairt faoi deara go bhfuil glaonna teachtaireachta L2> L1 idir conarthaí (Déantar glaonna L1 > L2 go hiondúil tar éis roinnt nóiméad). Tá sé seo amhlaidh toisc nach féidir teachtaireachtaí a sheoltar chuig Mainnet ón uas-scálú dóchasach a chur i gcrích go dtí go dtéann an fhuinneog dúshláin in éag. + +## Conas a oibríonn táillí uas-scálú dóchasach? {#how-do-optimistic-rollup-fees-work} + +Úsáideann uas-scáluithe dóchasacha scéim táillí gáis, cosúil le Ethereum, chun an méid a íocann úsáideoirí in aghaidh an idirbhirt a chur in iúl. Braitheann na táillí a ghearrtar ar uas-scáluithe dóchasacha ar na comhpháirteanna seo a leanas: + +1. **Scríobh staide**: Foilsíonn uas-scáluithe dóchasacha sonraí idirbhirt agus ceanntásca bloc (ina bhfuil an hais ceanntásc roimhe seo, an fhréamh staide an fhréamh baisc) chuig Ethereum mar `bhlob`, nó mar "réad mór dénártha". Thug [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) isteach réiteach cost-éifeachtach chun sonraí ar slabhra a áireamh. Is réimse idirbheart nua é `blob` a ligeann do uas-scáluithe sonraí aistrithe staide chomhbhrúite a phostáil chuig Ethereum L1. Murab ionann agus `sonraí glaonna`, a fhanann ar shlabhra go buan, tá blobanna gearrthéarmach agus is féidir iad a phrúnáil ó chliaint tar éis [4096 tréimhs](https://github.com/ethereum/consensus-specs/blob/81f3ea8322aff6b9fb15132d050f8f98b16bdba4/configs/mainnet.yaml#L147) (thart ar 18 lá). Trí úsáid a bhaint as blobaí chun baisceanna d'idirbhearta comhbhrúite a phostáil, féadann uas-scáluithe dóchasacha an costas a bhaineann le hidirbhearta a scríobh go L1 a laghdú go suntasach. + +2. **Blob gáis úsáidte**: Úsáidtear meicníocht táillí dinimiciúil le hidirbhearta iompróra blobaí cosúil leis an gceann a tugadh isteach ag [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559). Cuireann an táille gháis le haghaidh idirbheart cineál-3 san áireamh an buntáille le haghaidh blobaí, a chinneann an líonra bunaithe ar éileamh blob-spáis agus úsáid blob-spás an idirbhirt atá á sheoladh. + +3. **Táillí oibritheora L2**: Seo é an méid a íoctar leis na nóid uas-scáluithe mar chúiteamh ar chostais ríomhaireachtúla a thabhaítear in idirbhearta próiseála, cosúil le táillí gáis ar Ethereum. Gearrann nóid rollup táillí idirbhirt níos ísle ós rud é go bhfuil cumais phróiseála níos airde ag L2anna agus nach bhfuil siad ag tabhairt aghaidh ar na plódú líonra a chuireann iallach ar bhailíochtóirí ar Ethereum tosaíocht a thabhairt d'idirbhearta a bhfuil táillí níos airde orthu. + +Cuireann uas-scáluithe dóchasacha roinnt meicníochtaí i bhfeidhm chun táillí a laghdú d’úsáideoirí, lena n-áirítear idirbhearta a bhaisceadh agus `calldata` a chomhbhrú chun costais fhoilsithe sonraí a laghdú. Is féidir leat an [Rianaire Táille L2](https://l2fees.info/) a sheiceáil le haghaidh forbhreathnú fíor-ama ar an méid a chosnaíonn sé uas-scáluithe dóchasacha bunaithe ar Ethereum a úsáid. + +## Conas Ethereum a scálú le huas-scáluithe dóchasacha? {#scaling-ethereum-with-optimistic-rollups} + +Mar a mhínítear, foilsíonn uas-scáluithe dóchasacha sonraí idirbheart comhbhrúite ar Ethereum chun infhaighteacht sonraí a ráthú. Tá an cumas chun sonraí a fhoilsítear ar slabhra a chomhbhrú ríthábhachtach chun tréchur a scálú ar Ethereum le huas-scáluithe dóchasacha. + +Cuireann príomhshlabhra Ethereum teorainneacha ar an méid is féidir le bloic sonraí a choinneáil, ainmnithe in aonaid gháis (is é an [meánmhéid bloc](/developers/docs/blocks/#block-size) ná 15 milliún gás). Cé go gcuireann sé seo srian ar an méid gáis is féidir le gach idirbheart a úsáid, ciallaíonn sé freisin gur féidir linn idirbhearta próiseáilte in aghaidh an bhloc a mhéadú trí shonraí a bhaineann le hidirbhearta a laghdú – inscálaithe a fheabhsú go díreach. + +Úsáideann uas-scáluithe dóchasacha roinnt teicnící chun comhbhrú sonraí idirbhirt a bhaint amach agus chun rátaí TPS a fheabhsú. Mar shampla, déanann an t- [alt](https://vitalik.eth.limo/general/2021/01/05/rollup.html) comparáid idir na sonraí a ghineann idirbheart úsáideora bunúsach (éitear seolta) ar Príomhlíonra vs cé mhéad sonraí a ghineann an t-idirbheart céanna ar uas-scálú: + +| Paraiméadar | Ethereum (L1) | Uas-scálú (L2) | +| ------------ | ------------------ | -------------- | +| Nonce | ~3 | 0 | +| Praghas gáis | ~8 | 0-0.5 | +| Gás | 3 | 0-0.5 | +| Chuig | 21 | 4 | +| Luach | 9 | ~3 | +| Síniú | ~68 (2 + 33 + 33) | ~0.5 | +| Ó | 0 (aisghafa ó sig) | 4 | +| **Iomlán** | **~112 beart** | **~12 beart** | + +Má dhéantar roinnt ríomhanna garbha ar na figiúirí seo is féidir cabhrú leis na feabhsuithe inscálaithe a léiríonn uas-scálú dóchasach: + +1. Is é an spriocmhéid do gach bloc ná 15 milliún gás agus cosnaíonn sé 16 gás chun beart amháin sonraí a fhíorú. Trí mheánmhéid na mbloc a roinnt ar 16 ghás (15,000,000/16) is féidir leis an meánbhloc **937,500 beart sonraí** a choinneáil. +2. Má úsáideann bun-idirbheart uas-scálaithe 12 beart, ansin is féidir leis an meán-bhloc Ethereum ** 78,125 idirbheart uas-scálaithe** (937,5000/12) nó **39 mbaisceanna uas-scálaithe** a phróiseáil (má tá 2,000 idirbheart ar an meán ag gach baisc). +3. Má tháirgtear bloc nua ar Ethereum gach 15 soicind, is ionann luasanna próiseála an uas-scálaithe agus thart ar **5,208 idirbheart in aghaidh an tsoicind**. Déantar é seo trí líon na mbun-idirbheart uas-scálaithe is féidir le bloc Ethereum (**78,125**) a choinneáil ar an meán-am bloc (**15 soicind**). + +Is meastachán measartha dóchasach é seo, ós rud é nach féidir le hidirbhearta uas-scáluithe dóchasacha bloc iomlán ar Ethereum a áireamh. Mar sin féin, féadann sé tuairim gharbh a thabhairt ar cé mhéad gnóthachain inscálaithe is féidir a thabhairt d’úsáideoirí Ethereum le rollups dóchasach (tairgeann feidhmiúcháin reatha suas le 2,000 TPS). + +Táthar ag súil go bhfeabhsóidh tabhairt isteach [sceardadh sonraí](/roadmap/danksharding/) ar Ethereum inscálaitheacht in uas-scáluithe dóchasacha. Toisc go gcaithfidh idirbhearta uas-scáluithe blocspás a roinnt le hidirbhearta neamh-uas-scáluithe eile, tá a gcumas próiseála teoranta ag tréchur sonraí ar phríomhshlabhra Ethereum. Méadóidh Danksharding an spás atá ar fáil do shlabhraí L2 chun sonraí a fhoilsiú in aghaidh an bhloic, ag baint úsáide as stóras “blob” níos saoire neamh-bhuana in ionad `CALLDATA` costasach, buan. + +### Buntáistí agus míbhuntáistí a bhaineann le huas-scáluithe dóchasacha {#optimistic-rollups-pros-and-cons} + +| Buntáistí | Míbhuntáistí | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Cuireann sé feabhsuithe ollmhóra ar inscálaitheacht ar fáil gan slándáil nó easpa muiníne a íobairt. | Moill ar chríochnaitheacht idirbheart mar gheall ar dhúshláin fhéideartha calaoise. | +| Stóráiltear sonraí idirbhirt ar an slabhra ciseal 1, chun trédhearcacht, slándáil, friotaíocht cinsireachta agus dílárú a fheabhsú. | Is féidir le hoibreoirí uas-scáluithe láraithe (seicheamhóirí) tionchar a imirt ar ordú idirbhearta. | +| Ráthaíonn cruthú calaoise críochnúlacht neamhiontaofa agus ligeann sé do mhionlaigh macánta an slabhra a dhaingniú. | Mura bhfuil nóid macánta ann is féidir le hoibreoir mailíseach cistí a ghoid trí bhloic neamhbhailí agus gealltanais staide a phostáil. | +| Tá cruthúnais chalaoise ríomhaireachta oscailte do nód L2 rialta, murab ionann agus cruthúnais bailíochta (a úsáidtear i ZK-rollups) a dteastaíonn crua-earraí speisialta uathu. | Braitheann an tsamhail slándála ar nód macánta amháin ar a laghad a dhéanann idirbhearta rollup agus cruthúnais chalaoise a chur isteach chun agóid a dhéanamh ar aistrithe staide neamhbhailí. | +| Baineann uas-scáluithe leas as "beo iontaofa" (is féidir le duine ar bith iallach a chur ar an slabhra dul ar aghaidh trí idirbhearta a dhéanamh agus dearbhuithe a phostáil) | Ní mór d'úsáideoirí fanacht leis an tréimhse dhúshlán seachtaine dul in éag sula n-aistarraingítear cistí ar ais go Ethereum. | +| Braitheann uas-scáluithe dóchasacha ar dhreasachtaí cripte-eacnamaíocha dea-dheartha chun slándáil an tslabhra a mhéadú. | Caithfidh Uas-scáluithe na sonraí idirbheart go léir a phostáil ar slabhra, rud a d'fhéadfadh costais a mhéadú. | +| Ceadaíonn comhoiriúnacht le EVM agus Solidity d'fhorbróirí conarthaí cliste dúchasacha Ethereum a phortáil chuig uas-scáluithe nó úsáid a bhaint as uirlisí atá ann cheana féin chun dapps nua a chruthú. | | + +### Míniú amhairc ar uas-scáluithe dóchasacha {#optimistic-video} + +An foghlaimeoir amhairc den chuid is mó tú? Féach ar Finematics ag míniú uas-scáluithe dóchasacha: + + + +## Tuilleadh léitheoireachta ar uas-scáluithe dóchasacha + +- [Conas a oibríonn uas-scáluithe dóchasacha (An Treoir Iomlán)](https://www.alchemy.com/overviews/optimistic-rollups) +- [Cad is Uas-Scálú Blocshlabhra ann? Réamhrá Teicniúil](https://www.ethereum-ecosystem.com/blog/what-is-a-blockchain-rollup-a-technical-introduction) +- [An Treoir Riachtanach maidir le Arbitrum](https://newsletter.banklesshq.com/p/the-essential-guide-to-arbitrum) +- [Treoir Phraiticiúil Maidir le hUas-scáluithe Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) +- [Staid na gCruthúnas Calaoise In Ethereum L2s](https://research.2077.xyz/the-state-of-fraud-proofs-in-ethereum-l2s) +- [Conas a oibríonn Uas-Scálú Optimism i ndáiríre?](https://www.paradigm.xyz/2021/01/how-does-optimisms-rollup-really-work) +- [Tumadh Domhain OVM](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52) +- [Cad é an Meaisín Fíorúil Dóchasach?](https://www.alchemy.com/overviews/optimistic-virtual-machine) diff --git a/public/content/translations/ga/developers/docs/scaling/plasma/index.md b/public/content/translations/ga/developers/docs/scaling/plasma/index.md new file mode 100644 index 00000000000..e6137a126c1 --- /dev/null +++ b/public/content/translations/ga/developers/docs/scaling/plasma/index.md @@ -0,0 +1,175 @@ +--- +title: Slabhraí plasma +description: Réamhrá ar shlabhraí plasma mar réiteach scálaithe atá in úsáid faoi láthair ag pobal Ethereum. +lang: ga +incomplete: true +sidebarDepth: 3 +--- + +Is blocshlabhra ar leith é slabhra Plasma atá fréamhaithe in Ethereum Mainnet ach a ritheann idirbhearta as slabhra lena mheicníocht féin le haghaidh bailíochtú bloc. Uaireanta tugtar slabhraí "mic" ar shlabhraí plasma, go bunúsach cóipeanna níos lú den Ethereum Mainnet. Úsáideann slabhraí plasma [cruthúnais calaoise](/glossary/#fraud-proof) (cosúil le [uas-scáluithe dóchasacha](/developers/docs/scaling/optimistic-rollups/)) chun díospóidí a eadránú. + +Le crainn Merkle is féidir cruach gan teorainn de na slabhraí seo a chruthú ar féidir leo oibriú chun bandaleithead a dhíluchtú ó slabhraí máthar (lena n-áirítear Ethereum Mainnet). Mar sin féin, cé go bhfaigheann na slabhraí seo roinnt slándála ó Ethereum (trí chruthúnas calaoise), bíonn tionchar ag teorainneacha dearaidh ar a slándáil agus a n-éifeachtúlacht. + +## Réamhriachtanais {#prerequisites} + +Ba cheart go mbeadh tuiscint mhaith agat ar na hábhair bhunúsacha go léir agus tuiscint ardleibhéil ar [scálú Ethereum](/developers/docs/scaling/). + +## Cad is Plasma ann? + +Is creat é Plasma chun inscálaitheacht a fheabhsú i mblocshlabhraí poiblí cosúil le Ethereum. Mar a thuairiscítear sa [Pháipéar Bán Plasma](http://plasma.io/plasma.pdf) bunaidh, tógtar slabhraí Plasma ar bharr na mbloc slabhra eile (ar a dtugtar "fréamhshlabhra"). Síneann gach "slabhra mic" ón slabhra fréimhe agus déantar é a bhainistiú go ginearálta trí chonradh cliste a imscartar ar an máthairshlabhra. + +Feidhmíonn an conradh Plasma, i measc nithe eile, mar [dhroichead](/developers/docs/bridges/) a ligeann d'úsáideoirí sócmhainní a aistriú idir Ethereum Mainnet agus an slabhra plasma. Cé go bhfágann sé seo go bhfuil siad cosúil le [ taobhshlabhraí](/developers/docs/scaling/sidechains/), baineann slabhraí plasma leas - ar a laghad, go pointe áirithe - as slándáil Ethereum Mainnet. Tá sé seo éagosúil le taobhshlabhraí atá freagrach as a gcuid slándála amháin. + +## Conas a oibríonn Plasma? + +Is iad na comhpháirteanna bunúsacha den chreat Plasma: + +### Ríomh as slabhra {#offchain-computation} + +Tá luas próiseála reatha Ethereum teoranta do ~ 15-20 idirbheart in aghaidh an tsoicind, a laghdaíonn féidearthacht ghearrthéarmach an scálaithe chun níos mó úsáideoirí a láimhseáil. Tá an fhadhb seo ann go príomha toisc go n-éilíonn [meicníocht comhaontú](/developers/docs/consensus-mechanisms/)l Ethereum go leor nóid piara-go-piara chun gach nuashonrú ar staid an bhlocshlabhra a fhíorú. + +Cé go bhfuil gá le meicníocht chomhaontú Ethereum maidir le slándáil, ní fhéadfaidh sé a bheith i bhfeidhm ar gach cás úsáide. Mar shampla, b'fhéidir nach mbeadh a cuid íocaíochtaí laethúla ag teastáil ó Alice le Bob ar son cupán caife arna fhíorú ag líonra iomlán Ethereum ós rud é go bhfuil roinnt muiníne idir an dá pháirtí. + +Is dóigh le Plasma nach gá do Ethereum Mainnet gach idirbheart a fhíorú. Ina áit sin, is féidir linn idirbhearta a phróiseáil as Mainnet, rud a fhágann nach mbeidh orainn gach idirbheart a bhailíochtú. + +Tá gá le ríomh lasmuigh den slabhra toisc gur féidir le slabhraí Plasma barrfheabhsú a dhéanamh ar luas agus costas. Mar shampla, d’fhéadfadh slabhra Plasma “oibreoir” amháin a úsáid chun ordú agus bainistiú idirbheart a dhéanamh, agus is minic a dhéantar mar sin é. Le haonán amháin ag fíorú idirbhearta, tá amanna próiseála ar slabhra plasma níos tapúla ná Ethereum Mainnet. + +### Gealltanais staide {#state-commitments} + +Cé go ritheann Plasma idirbhearta as slabhra, socraítear iad ar phríomhshlabhra reatha Ethereum - murach sin, ní féidir le slabhraí Plasma leas a bhaint as ráthaíochtaí slándála Ethereum. Ach trí idirbhearta slabhra a thabhairt chun críche gan staid an tslabhra plasma a bheith ar an eolas, bhrisfí an tsamhail slándála agus cheadódh sé iomadú idirbheart neamhbhailí. Sin é an fáth go gceanglaítear ar an oibreoir, an t-aonán atá freagrach as bloic a tháirgeadh ar an slabhra plasma, "tiomantais staide" a fhoilsiú ar Ethereum go tréimhsiúil. + +Teicníc chripteagrafach chun gealltanas a thabhairt do luach nó do ráiteas gan é a nochtadh do pháirtí eile is ea [scéim ghealltanais](https://en.wikipedia.org/wiki/Commitment_scheme). Tá tiomantais "ceangailteach" sa chiall nach féidir leat an luach nó an ráiteas a athrú nuair a bheidh tú tiomanta dó. Is éard atá i dtiomantais staide i Plasma ná "Fréamhacha Merkle" (díorthaithe ó [Merkle tree](/whitepaper/#merkle-trees)) a sheolann an t-oibreoir ag eatraimh chuig an gconradh Plasma ar an slabhra Ethereum. + +Is bunchodanna cripteagrafacha iad fréamhacha Merkle a chuireann ar chumas comhbhrúite mhéideanna móra faisnéise. D'fhéadfadh fréamh Merkle (ar a dtugtar "blocfhréamh" sa chás seo) na hidirbhearta go léir i mbloc a léiriú. Le fréamhacha Merkle freisin bíonn sé níos éasca a fhíorú go bhfuil píosa beag sonraí mar chuid de thacar sonraí níos mó. Mar shampla, is féidir le húsáideoir [Cruthúnas Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/#main-content) a tháirgeadh chun cuimsiú idirbheart i mbloc ar leith a chruthú. + +Tá fréamhacha Merkle tábhachtach chun faisnéis a sholáthar do Ethereum faoin staid as slabhra. Is féidir leat smaoineamh ar fhréamhacha Merkle mar "phointí sábháil": tá an t-oibreoir ag rá, "Is é seo staid an tslabhra Plasma ag x pointe in am, agus is é seo an fhréamh Merkle mar chruthúnas." Tá an t-oibreoir tiomanta do _staid reatha_ an tslabhra plasma le fréamh Merkle, agus is é sin an fáth a dtugtar "tiomantas staide" air. + +### Iontrálacha agus scoir {#entries-and-exits} + +Chun go mbainfidh úsáideoirí Ethereum leas as Plasma, ní mór meicníocht a bheith ann chun cistí a aistriú idir slabhraí Mainnet agus plasma. Ní féidir linn éitear a sheoladh go treallach chuig seoladh ar an slabhra plasma, - tá na slabhraí seo neamh-chomhoiriúnach, mar sin theipfeadh ar an idirbheart nó chaillfí cistí dá bharr. + +Úsáideann Plasma conradh máistir a ritheann ar Ethereum chun iontrálacha agus scoir úsáideoirí a phróiseáil. Tá an conradh máistir seo freagrach freisin as tiomantais staide a rianú (a míníodh níos luaithe) agus as iompar mímhacánta a phionósú trí chruthúnas calaoise (tuilleadh air seo níos déanaí). + +#### Iontráil sa slabhra plasma {#entering-the-plasma-chain} + +Chun iontráil sa slabhra plasma, beidh ar Alice (an t-úsáideoir) ETH nó aon chomhartha ERC-20 a thaisceadh sa chonradh plasma. Déanann an t-oibreoir plasma, a bhreathnaíonn ar thaiscí conartha, méid atá comhionann le héarlais tosaigh Alice a athchruthú agus scaoileann sé chuig a seoladh ar an slabhra plasma é. Éilítear ar Alice a fhianú go bhfuair sí na cistí ar an slabhra mic agus is féidir léi na cistí sin a úsáid le haghaidh idirbhearta. + +#### Scor ón slabhra plasma {#exiting-the-plasma-chain} + +Tá sé níos casta scor ón slabhra plasma ná dul isteach ann ar chúiseanna éagsúla. Is é an ceann is mó, cé go bhfuil faisnéis ag Ethereum faoi staid an tslabhra plasma, ní féidir leis a fhíorú an bhfuil an fhaisnéis fíor nó nach bhfuil. D'fhéadfadh úsáideoir mailíseach dearbhú mícheart a dhéanamh ("Tá 1000 ETH agam") agus fáil réidh le cruthúnais falsa a sholáthar chun tacú leis an éileamh. + +Chun aistarraingtí mailíseacha a chosc, tugtar isteach “tréimhse dhúshláin”. Le linn na tréimhse dúshláin (seachtain de ghnáth), is féidir le duine ar bith agóid a dhéanamh i gcoinne iarratas aistarraingthe trí úsáid a bhaint as cruthúnas calaoise. Má éiríonn leis an dúshlán, diúltaítear don iarratas ar aistarraingt. + +Mar sin féin, is gnách go mbíonn úsáideoirí macánta agus go ndéanann siad éilimh chearta faoi na cistí ar leo iad. Sa chás seo, cuirfidh Alice tús le hiarratas ar aistarraingt ar fhréamhshlabhra (Ethereum) trí idirbheart a chur isteach sa chonradh plasma. + +Ní mór di cruthúnas Merkle a sholáthar freisin ag fíorú go raibh idirbheart a chruthaigh a cistí ar an slabhra Plasma san áireamh i mbloc. Tá sé seo riachtanach le haghaidh atriallta Plasma, ar nós [Plasma MVP](https://www.learnplasma.org/en/learn/mvp.html), a úsáideann [Samhail Idirbheart Neamhchaite (UT)](https://en.wikipedia.org/wiki/Unspent_transaction_output). + +Seasann cinn eile, ar nós [Plasma Cash](https://www.learnplasma.org/en/learn/cash.html), do chistí mar [chomharthaí neamh-idirmhalartacha](/developers/docs/standards/tokens/erc-721/) in ionad UTXOs. Éilíonn aistarraingt, sa chás seo, cruthúnas ar úinéireacht chomharthaí ar an slabhra Plasma. Déantar é seo tríd an dá idirbheart is déanaí a bhaineann leis an chomhartha a chur isteach agus cruthúnas Merkle a sholáthar lena bhfíoraítear cuimsiú na n-idirbheart sin i mbloc. + +Ní mór don úsáideoir banna a chur leis an iarratas ar aistarraingt mar ráthaíocht ar iompar macánta. Má chruthaíonn iomaitheoir go bhfuil iarratas Alice ar aistarraingt neamhbhailí, gearrtar a banna, agus téann cuid de chuig an iomaitheoir mar luach saothair. + +Má théann an tréimhse dúshláin in éag gan cruthúnas calaoise a sholáthar do dhuine ar bith, meastar go bhfuil iarratas Alice ar aistarraingt bailí, rud a ligeann di taiscí a aisghabháil ón gconradh Plasma ar Ethereum. + +### Eadránú díospóide {#dispute-arbitration} + +Cosúil le haon bhlocshlabhra, tá meicníocht ag teastáil ó shlabhraí plasma chun sláine na n-idirbheart a fhorghníomhú i gcás go ngníomhóidh rannpháirtithe go mailíseach (m.sh. cistí a chaitear faoi dhó). Chuige sin, úsáideann slabhraí plasma cruthúnais calaoise chun díospóidí a bhaineann le bailíocht aistrithe staide a eadránú agus pionós a ghearradh ar dhrochiompar. Úsáidtear cruthúnais chalaoise mar mheicníocht trína ndéanann slabhra leanaí Plasma gearán a chomhdú chuig a máthairshlabhra nó chuig an slabhra fréimhe. + +Níl i gcruthúnas calaoise ach éileamh go bhfuil aistriú staide ar leith neamhbhailí. Sampla is ea má dhéanann úsáideoir (Alice) iarracht na cistí céanna a chaitheamh faoi dhó. B'fhéidir gur chaith sí an UTXO in idirbheart le Bob agus gur mhaith leis an UTXO céanna (atá anois ag Bob) a chaitheamh in idirbheart eile. + +Chun an aistarraingt a chosc, soláthróidh Bob cruthúnas calaoise le fianaise gur chaith Alice an UTXO sin in idirbheart roimhe seo agus cruthúnas Merkle ar chuimsiú an idirbhirt i mbloc. Oibríonn an próiseas céanna i Plasma Cash - bheadh ​​ar Bob cruthúnas a sholáthar gur aistrigh Alice na comharthaí a bhfuil sí ag iarraidh a aistarraingt níos luaithe. + +Má éiríonn le dúshlán Bob, cuirtear iarratas Alice a aistarraingt ar ceal. Mar sin féin, braitheann an cur chuige seo ar chumas Bob féachaint ar an slabhra le haghaidh iarratais ar aistarraingt. Má tá Bob as líne, is féidir le Alice an aistarraingt mhailíseach a phróiseáil a luaithe a théann an tréimhse dúshláin i léig. + +## An fhadhb sluascoir i plasma {#the-mass-exit-problem-in-plasma} + +Tarlaíonn an fhadhb sluascoir nuair a dhéanann líon mór úsáideoirí iarracht aistarraingt as slabhra plasma ag an am céanna. Baineann an fáth a bhfuil an fhadhb seo le ceann de na fadhbanna is mó atá ag Plasma: **neamh-infhaighteacht sonraí**. + +Is éard atá in infhaighteacht sonraí ná an cumas a fhíorú gur foilsíodh an fhaisnéis le haghaidh bloic mholta i ndáiríre ar an líonra blocshlabhra. Níl bloc "ar fáil" má fhoilsíonn an táirgeoir an bloc féin ach go gcoinníonn sé siar na sonraí a úsáidtear chun an bloc a chruthú. + +Ní mór bloic a bheith ar fáil má tá nóid le bheith in ann an bloc a íoslódáil agus bailíocht na n-idirbheart a fhíorú. Cinntíonn blocshlabhraí infhaighteacht sonraí trí iallach a chur ar tháirgeoirí bloc gach sonra idirbhirt a phostáil ar slabhra. + +Cuidíonn infhaighteacht sonraí freisin le prótacail scálaithe slabhra a dhaingniú atá tógtha ar bhunchiseal Ethereum. Trí iallach a chur ar oibreoirí ar na slabhraí seo sonraí idirbheart a fhoilsiú ar Ethereum, is féidir le duine ar bith dúshlán a thabhairt do bhloic neamhbhailí trí chruthúnas calaoise a thógáil a thagraíonn do staid cheart an tslabhra. + +Stórálann slabhraí plasma sonraí idirbhirt leis an oibreoir go príomha agus **ní fhoilsíonn siad aon sonraí ar Mainnet ** (i.e. seachas gealltanais stáit tréimhsiúla). Ciallaíonn sé seo go gcaithfidh úsáideoirí brath ar an oibreoir chun sonraí bloc a sholáthar más gá dóibh cruthúnais chalaoise a chruthú a thabharfadh dúshlán d'idirbhearta neamhbhailí. Má oibríonn an córas seo, is féidir le húsáideoirí i gcónaí úsáid a bhaint as cruthúnais calaoise chun cistí a fháil. + +Tosaíonn an fhadhb nuair is é an t-oibreoir, ní hamháin aon úsáideoir, an páirtí atá ag gníomhú go mailíseach. Toisc gurb é an t-oibreoir amháin atá i gceannas ar an mblocshlabhra, tá níos mó dreasachta acu aistrithe staide neamhbhailí a chur chun cinn ar scála níos mó, mar shampla cistí a ghoid a bhaineann le húsáideoirí an slabhra plasma. + +Sa chás seo, ag baint úsáide as an gcóras calaois-cruthúnas clasaiceach ní oibríonn sé. D'fhéadfadh an t-oibreoir idirbheart neamhbhailí a dhéanamh go héasca ag aistriú cistí Alice agus Bob chuig a sparán agus na sonraí riachtanacha chun an cruthúnas calaoise a chruthú a cheilt. Tá sé seo indéanta toisc nach gá don oibreoir sonraí a chur ar fáil d'úsáideoirí nó Mainnet. + +Mar sin, is é an réiteach is dóchasaí ná iarracht a dhéanamh ar "shluascor" úsáideoirí ón slabhra plasma. Moillíonn an sluascor plean an oibreora mailísigh chun cistí a ghoid agus tugann sé cosaint áirithe d’úsáideoirí. Ordaítear iarratais ar aistarraingt bunaithe ar an uair a cruthaíodh gach UTXO (nó comhartha), rud a choisceann ​​​​oibreoirí mailíseacha ó theacht roimh úsáideoirí macánta. + +Mar sin féin, tá bealach fós ag teastáil uainn chun bailíocht na n-iarratas ar tharraingt siar a fhíorú le linn ollscoir - chun caimiléirí faille a chosc ó airgead a dhéanamh as an gcíor thuathail a leanfadh próiseáil na scor neamhbhailí. Is é an réiteach simplí: a éileamh ar úsáideoirí an **staid dheireanach sa slabhra** a phostáil chun scor as a gcuid airgid. + +Ach tá fadhbanna fós ag an gcur chuige seo. Mar shampla, más gá do gach úsáideoir ar shlabhra plasma scor (a d'fhéadfadh tarlú i gcás oibreora mailísigh), ní mór staid bhailí iomlán an tslabhra plasma a dhumpáil láithreach ar bhunchiseal Ethereum. Le méid treallach na slabhraí plasma (tréchur ard = níos mó sonraí) agus srianta ar luasanna próiseála Ethereum, ní réiteach idéalach é seo. + +Cé go bhfuil cuma an-mhaith ar chluichí scoir go teoiriciúil, is dócha go spreagfaidh sluascor fíor-saoil brú tráchta ar fud an líonra ar Ethereum féin. Seachas dochar a dhéanamh d'fheidhmiúlacht Ethereum, ciallaíonn sluascor nach bhfuil comhordaithe go maith go bhféadfadh sé nach mbeidh úsáideoirí in ann cistí a aistarraingt sula ndéanann an t-oibreoir gach cuntas ar an slabhra plasma a dhraenáil. + +## Buntáistí agus míbhuntáistí plasma {#pros-and-cons-of-plasma} + +| Buntáistí | Míbhuntáistí | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Tairgeann tréchur ard agus costas íseal in aghaidh an idirbhirt. | Ní thacaíonn sé le ríomh ginearálta (ní féidir conarthaí cliste a rith). Ní thacaítear ach le haistrithe comharthaí bunúsacha, le babhtálacha agus le roinnt cineálacha idirbheart eile trí loighic réamhaithrise. | +| Go maith d’idirbhearta idir úsáideoirí treallacha (gan forchostas in aghaidh an phéire úsáideora má tá an dá cheann bunaithe ar an slabhra plasma) | Is gá féachaint go tréimhsiúil ar an líonra (riachtanas beochta) nó an fhreagracht seo a tharmligean chuig duine éigin eile chun slándáil do chistí a chinntiú. | +| Is féidir slabhraí plasma a oiriúnú do chásanna úsáide sonracha nach mbaineann leis an bpríomhshlabhra. Is féidir le duine ar bith, lena n-áirítear gnólachtaí, conarthaí cliste Plasma a shaincheapadh chun bonneagar inscálaithe a sholáthar a oibríonn i gcomhthéacsanna éagsúla. | Ag brath ar oibreoir amháin nó níos mó chun sonraí a stóráil agus a sheirbheáil ar iarratas. | +| Laghdaíonn sé an t-ualach ar Ethereum Mainnet trí ríomhaireacht agus stóras a bhogadh as slabhra. | Cuirtear moill roinnt laethanta ar aistarraingtí chun dúshláin a cheadú. I gcás sócmhainní idirmhalartacha, is féidir le soláthraithe leachtachta é seo a mhaolú, ach tá costas caipitil gaolmhar i gceist. | +| | Má dhéanann an iomarca úsáideoirí iarracht scor ag an am céanna, d'fhéadfadh go mbeadh brú tráchta ar Ethereum Mainnet. | + +## Prótacail scálaithe plasma vs ciseal 2 {#plasma-vs-layer-2} + +Cé gur measadh Plasma tráth mar réiteach scálaithe úsáideach do Ethereum, éiríodh as i bhfabhar prótacail scálaithe [ ciseal 2 (L2)](/layer-2/). Leigheasann réitigh scálaithe L2 roinnt fadhbanna Plasma: + +### Éifeachtacht {#efficiency} + +Gineann [Uas-scálú Dífhianaise](/developers/docs/scaling/zk-rollups) cruthúnais cripteagrafacha ar bhailíocht gach baisc idirbheart a phróiseáiltear as slabhra. Coisceann sé seo úsáideoirí (agus na hoibreoirí) ó aistrithe stáit neamhbhailí a chur chun cinn, rud a chuireann deireadh leis an ngá atá le tréimhsí dúshláin agus le cluichí scoir. Ciallaíonn sé freisin nach gcaithfidh úsáideoirí féachaint ar an slabhra go tréimhsiúil chun a gcuid cistí a dhaingniú. + +### Tacaíocht do chonarthaí cliste {#support-for-smart-contracts} + +Fadhb eile leis an gcreat plasma is ea [an t-éagumas chun tacú le cur i gcrích conarthaí cliste Ethereum](https://ethresear.ch/t/why-smart-contracts-are-not-feasible-on-plasma/2598/4). Mar thoradh air sin, tógadh an chuid is mó d'fheidhmiú Plasma le haghaidh íocaíochtaí simplí nó malartú comharthaí ERC-20. + +Os a choinne sin, tá uas-scáluithe dóchasachacomhoiriúnach le [Meaisín Fíorúil Ethereum](/developers/docs/evm/) agus is féidir leo [conarthaí cliste](/developers/docs/smart-contracts/) Ethereum a rith ó dhúchas, rud a fhágann gur réiteach úsáideach agus _slán_ iad le haghaidh scálú[feidhmchláir dhíláraithe](/developers/docs/dapps/). Mar an gcéanna, tá pleananna ar bun chun [chur i bhfeidhm gan eolas ar an EVM (zkEVM)](https://ethresear.ch/t/a-zk-evm-specification/11549) a chruthú a cheadódh do ZK-rollups loighic threallach a phróiseáil agus conarthaí cliste a dhéanamh. + +### Neamh-infhaighteacht sonraí {#data-unavailability} + +Mar a míníodh níos luaithe, tá fadhb infhaighteachta sonraí ag plasma. Dá gcuirfeadh oibreoir mailíseach aistriú neamhbhailí ar an slabhra plasma chun cinn, ní bheadh ​​úsáideoirí in ann agóid a dhéanamh ina choinne toisc gur féidir leis an oibreoir na sonraí is gá chun an cruthúnas calaoise a chruthú a choinneáil siar. Réitíonn uas-scáluithe an fhadhb seo trí iallach a chur ar oibreoirí sonraí idirbheart a phostáil ar Ethereum, rud a ligeann do dhuine ar bith staid an tslabhra a fhíorú agus cruthúnais calaoise a chruthú más gá. + +### Fadhb an tsluascoir {#mass-exit-problem} + +Réitíonn ZK-rollups agus uas-scáluithe dóchasacha fadhb scoir Plasma ar bhealaí éagsúla. Mar shampla, braitheann ZK-rollup ar mheicníochtaí cripteagrafacha a chinntíonn nach féidir le hoibreoirí cistí úsáideoirí a ghoid in aon chás. + +Ar an gcaoi chéanna, cuireann uas-scáluithe dóchasacha tréimhse moille ar aistarraingtí inar féidir le haon duine dúshlán a thionscnamh agus iarratais mhailíseacha aistarraingthe a chosc. Cé go bhfuil sé seo cosúil le Plasma, is é an difríocht ná go bhfuil rochtain ag fíoraitheoirí ar shonraí a theastaíonn chun cruthúnais calaoise a chruthú. Mar sin, ní gá d'úsáideoirí uas-scálaithe dul i mbun éalú mire, "is-túisce-amach" go Ethereum Mainnet. + +## Cén difríocht atá idir Plasma agus taobhshlabhraí agus sceardadh? {#plasma-sidechains-sharding} + +Tá plasma, taobhshlabhraí, agus sceardadh sách cosúil toisc go nascann siad go léir le Ethereum Mainnet ar bhealach éigin. Mar sin féin, athraíonn leibhéal agus neart na nasc seo, rud a chuireann isteach ar airíonna slándála gach réiteach scálaithe. + +### Plasma vs taobhshlabhraí {#plasma-vs-sidechains} + +Is blocshlabhra a oibrítear go neamhspleách é [taobhshlabhraí](/developers/docs/scaling/sidechains/) atá nasctha le Ethereum Mainnet trí dhroichead dhá bhealach. Ligeann [Droichid](/bridges/) d’úsáideoirí comharthaí a mhalartú idir an dá bhlocshlabhra chun oibriú ar an taobhshlabhra, ag laghdú brú tráchta ar Ethereum Mainnet agus ag feabhsú inscálaithe. Úsáideann taobhshlabhraí meicníocht chomhthola ar leith agus de ghnáth bíonn siad i bhfad níos lú ná Ethereum Mainnet. Mar thoradh air sin, tá riosca méadaithe i gceist le sócmhainní a nascadh leis na slabhraí sin; i bhfianaise an easpa ráthaíochtaí slándála a fuarthas le hoidhreacht Ethereum Mainnet sa mhúnla taobhshlabhra, tá riosca ag úsáideoirí go gcaillfear cistí in ionsaí ar an taobhshlabhra. + +Os a choinne sin, díorthaíonn slabhraí plasma a slándáil ó Mainnet. Is léir mar sin go bhfuil siad níos sláine ná taobhshlabhraí. Is féidir le prótacail chomhdhearcadh éagsúla a bheith ag an dá taobhshlabhraí agus slabhraí plasma, ach is é an difríocht ná go bhfoilsíonn slabhraí plasma fréamhacha Merkle do gach bloc ar Ethereum Mainnet. Is píosaí beaga faisnéise iad fréamhacha bloc is féidir linn a úsáid chun faisnéis a fhíorú faoi idirbhearta a tharlaíonn ar shlabhra plasma. Má tharlaíonn ionsaí ar slabhra plasma, is féidir le húsáideoirí a gcuid cistí a aistarraingt go sábháilte go Mainnet leis na cruthúnais chuí. + +### Plasma vs Sceardadh {#plasma-vs-sharding} + +Foilsíonn slabhraí plasma agus slabhraí sceard araon cruthúnais cripteagrafacha chuig Ethereum Mainnet. Mar sin féin, tá airíonna slándála éagsúla ag an dá cheann. + +Tiomnaíonn slabhraí Shard "ceanntásca comhthiomsaithe" do Mainnet ina bhfuil faisnéis mhionsonraithe faoi gach sceard sonraí. Déanann Nóid ar Mainnet bailíocht scearda sonraí a fhíorú agus a fhorghníomhú, ag laghdú an fhéidearthacht aistrithe sceard neamhbhailí agus ag cosaint an líonra ar ghníomhaíocht mhailíseach. + +Tá plasma difriúil toisc nach bhfaigheann Mainnet ach faisnéis íosta faoi staid slabhraí leanaí. Ciallaíonn sé seo nach féidir le Mainnet idirbhearta a dhéantar ar shlabhraí mic a fhíorú go héifeachtach, rud a fhágann nach bhfuil siad chomh slán sin. + +**Tabhair faoi deara** nach bhfuil sceardadh an bhlocshlabhra Ethereum ar an treochlár a thuilleadh. Tá scálú trí uas-scáluithe agus [Danksharding](/roadmap/danksharding) tagtha ina ionad. + +### Úsáid Plasma {#use-plasma} + +Soláthraíonn tionscadail iolracha feidhmiúcháin Plasma ar féidir leat a chomhtháthú i do dapps: + +- [Polygon](https://polygon.technology/) (Matic Network roimhe seo) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Foghlaim Plasma](https://www.learnplasma.org/en/) +- [Meabhrúchán tapa ar cad a chiallaíonn "slándáil chomhroinnte" agus cén fáth a bhfuil sé chomh tábhachtach sin](https://old.reddit.com/r/ethereum/comments/sgd3zt/a_quick_reminder_of_what_shared_security_means/) +- [Taobhshlabhraí vs Plasma vs Sceardadh](https://vitalik.eth.limo/general/2019/06/12/plasma_vs_sharding.html) +- [Plasma a Thuiscint, Cuid 1: Na Bunghnéithe](https://www.theblockcrypto.com/amp/post/10793/understanding-plasma-part-1-the-basics) +- [Beatha agus Bás Plasma](https://medium.com/dragonfly-research/the-life-and-death-of-plasma-b72c6a59c5ad#) + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ diff --git a/public/content/translations/ga/developers/docs/scaling/sidechains/index.md b/public/content/translations/ga/developers/docs/scaling/sidechains/index.md new file mode 100644 index 00000000000..59d0973e828 --- /dev/null +++ b/public/content/translations/ga/developers/docs/scaling/sidechains/index.md @@ -0,0 +1,73 @@ +--- +title: Taobhshlabhraí +description: Réamhrá ar taobhshlabhraí mar réiteach scálaithe atá in úsáid faoi láthair ag pobal Ethereum. +lang: ga +sidebarDepth: 3 +--- + +Is blocshlabhra ar leith é taobhshlabhra a ritheann neamhspleách ar Ethereum agus atá ceangailte le Ethereum Príomhlíonra trí dhroichead dhá bhealach. Féadann paraiméadair bhloc ar leith agus [algartaim chomhdhearcaidh](/developers/docs/consensus-mechanisms/) a bheith ag taobhshlabhraí, a dearadh go minic chun idirbhearta a phróiseáil go héifeachtúil. Is éard atá i gceist le húsáid taobhshlabhra ná comhbhabhtáil, áfach, ós rud é nach n-oidhríonn siad airíonna slándála Ethereum. Murab ionann agus [réitigh scálaithe ciseal 2](/layer-2/), ní phostálann taobhshlabhraí athruithe staide agus sonraí idirbhirt ar ais chuig Ethereum Mainnet. + +Géilleann taobhshlabhraí méid áirithe díláraithe nó slándála freisin chun tréchur ard a bhaint amach ([ inscálaitheacht trilemma](https://vitalik.eth.limo/general/2021/05/23/scaling.html)). Tá Ethereum tiomanta, áfach, do scálú a dhéanamh gan cur isteach ar dhílárú agus slándáil mar atá leagtha amach ina [ráiteas físe](/roadmap/vision/) le haghaidh uasghráduithe. + +## Conas a oibríonn taobhshlabhraí? {#how-do-sidechains-work} + +Is blocshlabhraí neamhspleácha iad taobhshlabhraí, le stair éagsúil, léarscáileanna forbartha agus gnéithe dearaidh. Cé go bhféadfadh taobhshlabhra roinnt cosúlachtaí ar leibhéal an dromchla a roinnt le Ethereum, tá roinnt gnéithe sainiúla aige. + +### Algartaim chomhdhearcaidh {#consensus-algorithms} + +Ceann de na cáilíochtaí a dhéanann taobhshlabhraí uathúil (i.e., difriúil ó Ethereum) is ea an t-algartam comhdhearcaidh a úsáidtear. Ní bhíonn taobhshlabhraí ag brath ar Ethereum le haghaidh comhdhearcaidh agus is féidir leo prótacail chomhdhearcaidh eile a roghnú a oireann dá gcuid riachtanas. I measc roinnt samplaí d'algartaim chomhdhearcaidh a úsáidtear ar taobhshlabhraí tá: + +- [Cruthúnas-údaráis](/developers/docs/consensus-mechanisms/poa/) +- [Cruthúnas-gill tramligthe](https://en.bitcoin.it/wiki/Delegated_proof_of_stake) +- [Lamháltas lochtanna Biosántach](https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained). + +Cosúil le Ethereum, tá nóid bailíochtaithe ag taobhshlabhraí a fhíoraíonn agus a phróiseálann idirbhearta, a tháirgeann bloic, agus a stórálann staid an blocshlabhra. Tá bailíochtóirí freagrach freisin as comhdhearcadh a choinneáil ar fud an líonra agus as é a dhaingniú in aghaidh ionsaithe mailíseacha. + +#### Paraiméadair bhloc {#block-parameters} + +Cuireann Ethereum teorainneacha ar [bloc-amanna](/developers/docs/blocks/#block-time) (i.e., an t-am a thógann sé bloic nua a tháirgeadh) agus [méid na mbloc](/developers/docs/blocks/#block-size) (i.e., an méid sonraí atá in aghaidh an bhloic ainmnithe i ngás). Os a choinne sin, is minic a ghlacann taobhshlabhraí paraiméadair éagsúla, mar shampla amanna bloic níos tapúla agus teorainneacha gáis níos airde, chun tréchur ard, idirbhearta tapa, agus táillí íseal a bhaint amach. + +Cé go bhfuil roinnt buntáistí ag baint leis seo, tá impleachtaí ríthábhachtacha aige do dhílárú agus slándáil líonra. Méadaíonn paraiméadair bhloc, cosúil le hamanna bloc tapa agus méideanna móra bloc, an deacracht a bhaineann le nód iomlán a rith - rud a fhágann go bhfuil roinnt "sár nóid" freagrach as an slabhra a dhaingniú. I gcás den sórt sin, méadaítear an fhéidearthacht go mbeidh claonpháirteachas ag an bhailíochtóir nó go ndéanfaí an slabhra a thabhairt ar láimh go mailíseach. + +Chun blocshlabhra a scálú gan dochar a dhéanamh don dílárú, ní mór reáchtáil nóid a bheith oscailte do gach duine - níl gá ag páirtithe le crua-earraí speisialaithe. Sin é an fáth go bhfuil iarrachtaí ar bun lena chinntiú gur féidir le gach duine [nód iomlán a rith](/developers/docs/nodes-and-clients/#why-should-i-run-an-ethereum-node) ar líonra Ethereum. + +### Comhoiriúnacht EVM {#evm-compatibility} + +Tá roinnt taobhshlabhraí comhoiriúnach le EVM agus tá siad in ann conarthaí a forbraíodh don [Meaisín Fíorúil Ethereum (EVM)](/developers/docs/evm/) a rith. Tacaíonn taobhshlabhraí atá comhoiriúnach le EVM le conarthaí cliste [scríofa i Solidity](/developers/docs/smart-contracts/languages/), chomh maith le teangacha conartha cliste eile EVM, rud a chiallaíonn go n-oibreoidh conarthaí cliste scríofa do Ethereum Mainnet ar thaobhshlabhraí atá comhoiriúnach le EVM freisin. + +Ciallaíonn sé seo más mian leat do [dapp](/developers/docs/dapps/) a úsáid ar thaobhshlabhra, níl le déanamh ach do [chonradh cliste](/developers/docs/smart-contracts/) a imscaradh chuig an taobhshlabhra seo. Breathnaíonn sé, mothaíonn, agus gníomhaíonn sé díreach cosúil le Mainnet - scríobhann tú conarthaí i Solidity, agus idirghníomhaíonn tú leis an slabhra tríd na taobhshlabhraí RPC. + +Toisc go bhfuil taobhshlabhraí comhoiriúnach le EVM, meastar gur [réiteach scálaithe](/developers/docs/scaling/) úsáideach iad le haghaidh dapps dúchasacha Ethereum. Le do dapp ar thaobhshlabhra, is féidir le húsáideoirí taitneamh a bhaint as táillí gáis níos ísle agus idirbhearta níos tapúla, go háirithe má tá brú tráchta ar Mainnet. + +Mar sin féin, mar a míníodh roimhe seo, tá comhbhabhtáil shuntasach i gceist le húsáid taobhshlabhra. Tá gach taobhshlabhra freagrach as a shlándáil féin agus ní fhaigheann sé oidhreacht maoine slándála Ethereum. Méadaíonn sé seo an fhéidearthacht iompar mailíseach a d’fhéadfadh dul i bhfeidhm ar d’úsáideoirí nó a gcuid cistí a chur i mbaol. + +### Gluaiseacht sócmhainní {#asset-movement} + +Chun gur féidir le blocshlabhra ar leith a bheith ina thaobhshlabhra go Ethereum Mainnet ní mór dó an cumas chun aistriú sócmhainní ó agus go Ethereum Mainnet a éascú. Baintear an idir-inoibritheacht seo amach le Ethereum le droichead blocshlabhra. Úsáideann [Droichid](/bridges/) conarthaí cliste arna n-imscaradh ar Ethereum Mainnet agus taobhshlabhra chun idirlinne cistí eatarthu a rialú. + +Cé go gcabhraíonn droichid le húsáideoirí cistí a aistriú idir Ethereum agus an taobhshlabhra, ní bhogtar na sócmhainní go fisiciúil thar an dá slabhraí. Ina áit sin, úsáidtear meicníochtaí lena mbaineann bualadh agus dó de ghnáth chun luach a aistriú thar slabhraí. Tuilleadh faoi [conas a oibríonn droichid](/developers/docs/bridges/#how-do-bridges-work). + +## Buntáistí agus míbhuntáistí taobhshlabhraí {#pros-and-cons-of-sidechains} + +| Buntáistí | Míbhuntáistí | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Tá an teicneolaíocht atá mar bhonn agus mar thaca ag taobhshlabhraí seanbhunaithe agus baineann sí leas as taighde fairsing agus feabhsuithe sa dearadh. | Géilleann taobhshlabhraí méid éigin díláraithe agus easpa muiníne ar mhaithe le hinscálaitheacht. | +| Tacaíonn taobhshlabhraí le ríomh ginearálta agus cuireann siad comhoiriúnacht EVM ar fáil (is féidir leo dapps Ethereum-dúchais a reáchtáil). | Úsáideann taobhshlabhra meicníocht chomhdhearcaidh ar leith agus ní bhaineann sé leas as ráthaíochtaí slándála Ethereum. | +| Úsáideann taobhshlabhraí samhlacha comhdhearcaidh éagsúla chun idirbhearta a phróiseáil go héifeachtach agus táillí idirbheart a ísliú d'úsáideoirí. | Teastaíonn boinn tuisceana iontaobhais níos airde ó thaobhshlabhraí (m.sh., is féidir le bailíochtóirí taobhshlabhraí mailíseacha calaois a dhéanamh). | +| Ceadaíonn taobhshlabhraí atá comhoiriúnach le EVM do dapps a n-éiceachóras a leathnú. | | + +### Úsáid Taobhshlabhraí {#use-sidechains} + +Soláthraíonn tionscadail iolracha feidhmiúcháin taobhshlabhraí ar féidir leat a chomhtháthú i do dapps: + +- [Polygon PoS](https://polygon.technology/solutions/polygon-pos) +- [Skale](https://skale.network/) +- [Slabhra Gnosis (xDai roimhe seo)](https://www.gnosischain.com/) +- [Líonra Loom](https://loomx.io/) +- [Metis Andromeda](https://www.metis.io/) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Dapps Ethereum a scálú trí Thaobhshlabhraí](https://medium.com/loom-network/dappchains-scaling-ethereum-dapps-through-sidechains-f99e51fff447) _ 8 Feabhra, 2018 - Georgios Konstantopoulos_ + +_Ar eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis!_ diff --git a/public/content/translations/ga/developers/docs/scaling/state-channels/index.md b/public/content/translations/ga/developers/docs/scaling/state-channels/index.md new file mode 100644 index 00000000000..421195049a8 --- /dev/null +++ b/public/content/translations/ga/developers/docs/scaling/state-channels/index.md @@ -0,0 +1,261 @@ +--- +title: Cainéil Staide +description: Réamhrá ar chainéil staide agus cainéil íocaíochta mar réiteach scálaithe a úsáideann pobal Ethereum faoi láthair. +lang: ga +sidebarDepth: 3 +--- + +Ligeann cainéil staide do rannpháirtithe idirbheartaíocht a dhéanamh go sábháilte as slabhra agus idirghníomhú le Ethereum Príomhlíonra a íoslaghdú. Is féidir le piaraí cainéil líon treallach idirbheart as slabhra a dhéanamh agus gan ach dhá idirbheart ar slabhra a chur isteach chun an cainéal a oscailt agus a dhúnadh. Ceadaíonn sé seo tréchur idirbhearta thar a bheith ard agus bíonn costais níos ísle ar úsáideoirí dá bharr. + +## Réamhriachtanais {#prerequisites} + +Ba cheart go mbeadh ár leathanaigh ar [Scálú Ethereum](/developers/docs/scaling/) agus [ciseal 2](/layer-2/) léite agus tuigthe agat. + +## Cad iad cainéil? {#what-are-channels} + +Tá dúshláin inscálaithe ann do bhlocshlabhra poiblí, mar shampla Ethereum, mar gheall ar a n-ailtireacht dháilte: ní mór do gach nóid idirbhearta ar slabhra a dhéanamh. Caithfidh nóid a bheith in ann líon na n-idirbheart i mbloc a láimhseáil le crua-earraí measartha, rud a chuireann teorainn ar thréchur an idirbhirt chun an líonra a choinneáil díláraithe. Réitíonn cainéil Bhlocshlabhraí an fhadhb seo trí ligean d'úsáideoirí idirghníomhú as slabhra agus iad fós ag brath ar shlándáil an phríomhshlabhra le haghaidh socrú deiridh. + +Is prótacail simplí idir piaraí iad cainéil a cheadaíonn do dhá pháirtí go leor idirbheart a dhéanamh eatarthu féin gan ach na torthaí deiridh a phostáil chuig an mblocshlabhra. Úsáideann an cainéal cripteagrafaíocht chun a léiriú go bhfuil na sonraí achoimre a ghineann siad i ndáiríre mar thoradh ar shraith bhailí d’idirbhearta idirmheánacha. Cinntíonn conradh cliste ["multisig"](/developers/docs/smart-contracts/#multisig) go bhfuil na hidirbhearta sínithe ag na páirtithe cearta. + +Le cainéil, déanann páirtithe leasmhara athruithe staide a rith agus a bhailíochtú, rud a íoslaghdaíonn an ríomh ar chiseal forghníomhaithe Ethereum. Laghdaíonn sé seo an brú tráchta ar Ethereum agus méadaíonn sé luasanna próiseála idirbheart d’úsáideoirí. + +Tá gach cainéal á bhainistiú ag [conradh multisig cliste] (/developers/docs/smart-contracts/#multisig) a ritheann ar Ethereum. Chun cainéal a oscailt, imscarfaidh rannpháirtithe an conradh cainéal ar slabhra agus cuireann siad cistí isteach ann. Síníonn an dá pháirtí le chéile nuashonrú staide chun staid an chainéil a thúsú, agus ina dhiaidh sin is féidir leo idirbheartaíocht a dhéanamh go tapa agus go saor as slabhra. + +Chun an cainéal a dhúnadh, cuireann na rannpháirtithe isteach ar staid chomhaontaithe deiridh an chainéil ar slabhra. Ina dhiaidh sin, dáileann an conradh cliste na cistí faoi ghlas de réir iarmhéid gach rannpháirtí i staid dheiridh an chainéil. + +Tá cainéil piara-le-piara thar a bheith úsáideach do chásanna inar mian le roinnt rannpháirtithe réamhshainithe idirbheartaíocht a dhéanamh ar ardmhinicíocht gan tabhú forchostais infheicthe. Tagann cainéil bhlocshlabhra faoi dhá chatagóir: **cainéil íocaíochta** agus **cainéil staide**. + +## Cainéil íocaíochta {#payment-channels} + +Is fearr cur síos ar chainéal íocaíochta mar “mórleabhar dhá threo” arna chothabháil ag beirt úsáideoir i dteannta a chéile. Is é iarmhéid tosaigh an mhórleabhair suim na dtaiscí atá faoi ghlas sa chonradh ar slabhra le linn na céime oscailte cainéal. Is féidir aistrithe cainéal íocaíochta a dhéanamh ar an toirt agus gan baint ag an blocshlabhra iarbhír féin, ach amháin i gcás cruthú ar slabhra aon-uaire tosaigh agus dúnadh an chainéil faoi dheireadh. + +Éilíonn nuashonruithe ar iarmhéid an mhórleabhair (i.e. staid an chainéil íocaíochta) ceadú gach páirtí sa chainéal. Meastar go bhfuil nuashonrú cainéil, sínithe ag gach rannpháirtí cainéil, tugtha chun críche, cosúil le hidirbheart ar Ethereum. + +Bhí cainéil íocaíochta i measc na réitigh scálaithe is luaithe a dearadh chun gníomhaíocht ar slabhra chostasach idirghníomhaíochtaí simplí úsáideora a íoslaghdú (m.sh. aistrithe ETH, babhtálacha adamhacha, micrea-íocaíochtaí). Is féidir le rannpháirtithe cainéil méid neamhtheoranta d’idirbhearta láithreacha gan táille a dhéanamh idir a chéile fad is nach sáraíonn suim ghlan a n-aistrithe na comharthaí taiscthe. + +## Cainéil staide {#state-channels} + +Seachas tacú le híocaíochtaí as slabhra, ní raibh cainéil íocaíochta úsáideach chun loighic ghinearálta aistrithe staide a láimhseáil. Cruthaíodh cainéil staide chun an fhadhb seo a réiteach agus chun cainéil a dhéanamh úsáideach chun ríomh ginearálta a scálú. + +Tá go leor i gcoiteann fós ag cainéil staide agus cainéil íocaíochta. Mar shampla, idirghníomhaíonn úsáideoirí trí theachtaireachtaí sínithe go cripteagrafach (idirbhearta) a mhalartú, nach mór do rannpháirtithe an chainéil eile a shíniú freisin. Mura bhfuil nuashonrú staide molta sínithe ag na rannpháirtithe go léir, meastar é a bheith neamhbhailí. + +Mar sin féin, chomh maith le hiarmhéideanna an úsáideora a choinneáil, rianaíonn an cainéal staid reatha stórais an chonartha (i.e. luachanna athróg conartha). + +Mar sin is féidir conradh cliste a rith as slabhra idir dhá úsáideoir. Sa chás seo, ní theastaíonn ach ceadú na bpiaraí a chruthaigh an cainéal le haghaidh nuashonruithe ar staid inmheánach an chonartha chliste. + +Cé go réitíonn sé seo an fhadhb inscálaithe a luadh níos luaithe, tá impleachtaí aige do shlándáil. Ar Ethereum, déantar bailíocht aistrithe staide a fhorghníomhú ag prótacal comhdhearcadh an líonra. Fágann sin go bhfuil sé dodhéanta nuashonrú neamhbhailí a mholadh do staid an chonartha chliste nó forghníomhú conartha cliste a athrú. + +Níl na ráthaíochtaí slándála céanna ag cainéil staide. Go pointe áirithe, is leagan beag de Mainnet é cainéal staide. Agus líon teoranta rannpháirtithe ag cur rialacha i bhfeidhm, méadaítear an fhéidearthacht go ndéanfaí iompar mailíseach (m.sh. nuashonruithe staide neamhbhailí a mholadh). Díorthaíonn cainéil staide a slándáil ó chóras eadrána díospóide atá bunaithe ar [cruthúnais calaoise](/gluais/#fraud-proof). + +## Conas a oibríonn cainéil staide {#how-state-channels-work} + +Go bunúsach, is ionann gníomhaíocht i gcainéal staide agus seisiún idirghníomhaíochtaí a bhaineann le húsáideoirí agus córas blocshlabhra. Déanann úsáideoirí cumarsáid den chuid is mó lena chéile as slabhra agus ní idirghníomhaíonn siad ach leis an mblocshlabhra bunúsach chun an cainéal a oscailt, an cainéal a dhúnadh, nó díospóidí féideartha idir rannpháirtithe a réiteach. + +Imlíníonn an chuid seo a leanas sreabhadh oibre bunúsach cainéal staide: + +### An cainéil a oscailt {#opening-the-channel} + +Chun cainéal a oscailt ní mór do rannpháirtithe cistí a ghealladh do chonradh cliste ar Príomhlíonra. Feidhmíonn an taisce mar tháb fíorúil freisin, agus mar sin is féidir le gníomhaithe rannpháirteacha idirbheartaíocht a dhéanamh go héasca gan gá le híocaíochtaí a shocrú láithreach. Go dtí go mbíonn an cainéal críochnaithe ar slabhra ní shocraíonn páirtithe a chéile agus a dhéanann siad an méid atá fágtha dá dtáb a aistarraingt. + +Feidhmíonn an taisce seo mar bhanna freisin chun iompar macánta a ráthú ó gach rannpháirtí. Má fhaightear taisceoirí ciontach i ngníomhartha mailíseacha le linn na céime réitithe díospóide, gearrann an conradh a n-éarlais. + +Ní mór do phiaraí cainéil staid thosaigh a shíniú, a aontaíonn siad go léir air. Feidhmíonn sé seo mar bhunús an chainéil staide, ina dhiaidh sin is féidir le húsáideoirí tosú ar idirbhearta. + +### An cainéal a úsáid {#using-the-channel} + +Tar éis staid an chainéil a thúsú, idirghníomhaíonn piaraí trí idirbhearta a shíniú agus iad a sheoladh chuig a chéile le faomhadh. Cuireann rannpháirtithe tús le nuashonruithe staide leis na hidirbhearta seo agus síníonn siad nuashonruithe staide ó dhaoine eile. Cuimsíonn gach idirbheart na nithe seo a leanas: + +- **Nonce**, a fheidhmíonn mar aitheantas uathúil le haghaidh idirbhearta agus a chuireann cosc ​​ar ionsaithe athimeartha. Sainaithníonn sé freisin an t-ord inar tharla nuashonruithe staide (rud atá tábhachtach maidir le réiteach díospóide) + +- Sean-staid an chainéil + +- Staid nua an chainéil + +- An t-idirbheart a spreagann an t-aistriú staide (m.sh., cuireann Alice 5 ETH chuig Bob) + +Ní chraoltar nuashonruithe stáit sa chainéal ar slabhra mar a tharlaíonn de ghnáth nuair a idirghníomhaíonn úsáideoirí ar Mainnet, a ailíníonn le sprioc na gcainéal staide chun lorg ar slabhra a íoslaghdú. Chomh fada agus a aontaíonn na rannpháirtithe ar nuashonruithe staide, tá siad chomh críochnaitheach le hidirbheart Ethereum. Ní gá do rannpháirtithe brath ar chomhdhearcadh Mainnet ach amháin má thagann díospóid chun cinn. + +### Cainéal a dhúnadh {#closing-the-channel} + +Chun cainéal staide a dhúnadh ní mór staid dheiridh, aontaithe an chainéil a chur isteach sa chonradh cliste ar slabhra. Áirítear ar na sonraí a ndéantar tagairt dóibh sa nuashonrú staide líon gluaiseachtaí gach rannpháirtí agus liosta na n-idirbheart ceadaithe. + +Tar éis a fhíorú go bhfuil an nuashonrú staide bailí (i.e., tá sé sínithe ag gach páirtí) críochnaíonn an conradh cliste an cainéal agus dáileann sé na cistí faoi ghlas de réir thoradh an chainéil. Cuirtear íocaíochtaí a dhéantar as slabhra i bhfeidhm ar staid Ethereum agus faigheann gach rannpháirtí a gcuid eile de na cistí faoi ghlas. + +Léiríonn an cás a luadh thuas cad a tharlaíonn sa chás sona. Uaireanta, b'fhéidir nach mbeidh úsáideoirí in ann teacht ar chomhaontú agus an cainéal a thabhairt chun críche (an cás brónach). D’fhéadfadh aon cheann díobh seo a leanas a bheith fíor faoin gcás: + +- Téann rannpháirtithe as líne agus ní mholann siad aistrithe staide + +- Diúltaíonn rannpháirtithe nuashonruithe bailí staide a chomhshíniú + +- Déanann na rannpháirtithe iarracht an cainéal a thabhairt chun críche trí nuashonrú sean-staide a mholadh don chonradh ar slabhra + +- Molann rannpháirtithe aistrithe staide neamhbhailí do dhaoine eile le síniú + +Aon uair a chliseann ar chomhdhearcadh idir gníomhaithe rannpháirteacha i gcainéal, is é an rogha dheireanach ná brath ar chomhdhearcadh Mainnet chun staid bhailí deiridh an chainéil a fhorfheidhmiú. Sa chás seo, éilíonn dúnadh an chainéal staide díospóidí a shocrú ar slabhra. + +### Díospóidí a réiteach {#settling-disputes} + +De ghnáth, comhaontaíonn páirtithe i gcainéal an cainéal a dhúnadh roimh ré agus an t-aistriú staide deiridh a chomhshíniú, agus cuireann siad isteach sa chonradh cliste é. Nuair a bheidh an nuashonrú ceadaithe ar slabhra, cuirtear deireadh le rith an chonartha cliste as slabhra agus scoireann rannpháirtithe an cainéal lena gcuid airgid. + +Mar sin féin, is féidir le páirtí amháin iarratas ar slabhra a chur isteach chun deireadh a chur le rith an chonartha cliste agus an cainéal a thabhairt chun críche - gan fanacht le ceadú a gcomhghleacaí. Má tharlaíonn aon cheann de na cásanna briste comhdhearcaidh a luadh níos luaithe, féadfaidh ceachtar páirtí an conradh ar slabhra a spreagadh chun an cainéal a dhúnadh agus cistí a dháileadh. Soláthraíonn sé seo **iontaofacht**, ag cinntiú gur féidir le páirtithe macánta a gcuid taiscí a fhágáil ag pointe ar bith, beag beann ar ghníomhartha an pháirtí eile. + +Chun scor ón gcainéil a phróiseáil, ní mór don úsáideoir an nuashonrú staide bailí deiridh den fheidhmchlár a chur isteach sa chonradh ar slabhra. Más féidir é seo a dhearbhú (i.e., tá síniú gach páirtí air), ansin déantar cistí a athdháileadh ina bhfabhar. + +Tá moill, áfach, maidir le hiarratais scoir aon-úsáideoir a rith. Má tá an t-iarratas chun an cainéal a thabhairt i gcrích faofa d'aon toil, ansin déantar an t-idirbheart scoir ar slabhra a rith láithreach. + +Tagann an mhoill i bhfeidhm maidir le scoir aon-úsáideora mar gheall ar fhéidearthacht gníomhartha calaoiseacha. Mar shampla, féadfaidh rannpháirtí cainéil iarracht a dhéanamh an cainéal a thabhairt chun críche ar Ethereum trí nuashonrú staide níos sine a chur isteach ar slabhra. + +Mar fhrithbheart, cuireann cainéil staide ar chumas úsáideoirí macánta dúshlán a thabhairt do nuashonruithe staide neamhbhailí trí staid bhailí is déanaí an chainéil ar slabhra a chur isteach. Deartar cainéil staide ionas go n-iompaíonn nuashonruithe staid níos nuaí, comhaontaithe, nuashonruithe staid níos sine. + +Chomh luath agus a spreagann piaraí an córas réitigh díospóide ar slabhra, ceanglaítear ar an bpáirtí eile freagairt laistigh de theorainn ama (ar a dtugtar an fhuinneog dúshláin). Ligeann sé seo d’úsáideoirí dúshlán a thabhairt don idirbheart scoir, go háirithe má tá an páirtí eile ag cur uasdátú seanda i bhfeidhm. + +Cibé cás, bíonn ráthaíochtaí críochnaitheachta láidre ag úsáideoirí cainéil i gcónaí: má shínigh na comhaltaí go léir an t-aistriú staide ina seilbh agus gurb é an nuashonrú is déanaí é, ansin tá sé chomh críochnaitheach le hidirbheart rialta ar slabhra. Caithfidh siad fós dúshlán a thabhairt don pháirtí eile ar slabhra, ach is é an t-aon toradh a d'fhéadfadh a bheith ann ná an staid bhailí deiridh, atá acu, a thabhairt chun críche. + +### Conas a idirghníomhaíonn cainéil staide le Ethereum? {#how-do-state-channels-interact-with-ethereum} + +Cé go bhfuil siad ann mar phrótacail as slabhra, tá comhpháirt ar slabhra ag cainéil staide: an conradh cliste a imscartar ar Ethereum agus an cainéal á oscailt. Rialaíonn an conradh seo na sócmhainní a thaisctear sa chainéal, fíoraíonn sé nuashonruithe staide, agus eadránaíonn sé díospóidí idir rannpháirtithe. + +Ní fhoilsíonn cainéil staide sonraí idirbhirt ná gealltanais staide chuig Mainnet, murab ionann agus réitigh scálaithe [ciseal 2](/ciseal-2/). Mar sin féin, tá siad níos nasctha le Mainnet ná, abair, [taobhshlabhraí](/developers/docs/scaling/sidechains/), rud a fhágann go bhfuil siad beagán níos sábháilte. + +Braitheann cainéil staide ar phríomhphrótacal Ethereum le haghaidh na nithe seo a leanas: + +#### 1. Beocht {#liveness} + +Tá an conradh ar slabhra a imscartar nuair a bhíonn an cainéal á oscailt freagrach as feidhmiúlacht an chainéil. Má tá an conradh ag rith ar Ethereum, ansin tá an cainéal ar fáil i gcónaí le húsáid. Os a choinne sin, is féidir le taobhshlabhra teip i gcónaí, fiú má tá Mainnet ag feidhmiú, ag cur cistí úsáideoirí i mbaol. + +#### 2. Slándáil {#security} + +Go pointe áirithe, bíonn cainéil staide ag brath ar Ethereum chun slándáil a sholáthar agus úsáideoirí a chosaint ó phiaraí mailíseacha. Mar atá pléite in ailt níos déanaí, úsáideann cainéil meicníocht chruthúnas calaoise a ligeann d’úsáideoirí dúshlán a thabhairt d’iarrachtaí an cainéal a thabhairt chun críche le nuashonrú neamhbhailí nó sean. + +Sa chás seo, soláthraíonn an páirtí macánta staid bhailí is déanaí an chainéil mar chruthúnas calaoise don chonradh ar slabhra lena fhíorú. Cuireann cruthúnais chalaoise ar chumas páirtithe nach bhfuil muinín acu as a chéile idirbhearta as slabhra a dhéanamh gan a gcuid cistí a chur i mbaol sa phróiseas. + +#### 3. Chríochnaitheacht {#finality} + +Meastar go bhfuil nuashonruithe staide arna síniú le chéile ag úsáideoirí cainéal chomh maith le hidirbhearta ar slabhra. Mar sin féin, ní bhaineann gach gníomhaíocht in-chainéil fíor-chríochnaitheacht amach ach amháin nuair a dhúntar an cainéal ar Ethereum. + +Sa chás dóchasach, is féidir leis an dá pháirtí comhoibriú agus an nuashonrú staide deiridh a shíniú agus ar slabhra a chur isteach chun an cainéal a dhúnadh, ansin déantar na cistí a dháileadh de réir staid dheiridh an chainéil. Sa chás doirbh, nuair a dhéanann duine iarracht caimiléireacht trí nuashonrú staid míchearta a phostáil ar slabhra, ní thugtar a n-idirbheart chun críche go dtí go dtéann an fhuinneog dúshláin thart. + +## Cainéil staide fíorúla {#virtual-state-channels} + +Is éard a bheadh ​​i gceist le cur i bhfeidhm saonta cainéal staide conradh nua a imscaradh nuair is mian le beirt úsáideoir feidhmchlár a rith ar slabhra. Ní hamháin go bhfuil sé seo indéanta, ach diúltaíonn sé cost-éifeachtúlacht na gcainéal staide (is féidir go dtiocfaidh méadú tapa ar chostais idirbheartaíochta ar slabhra). + +Chun an fhadhb seo a réiteach, cruthaíodh "cainéil fhíorúla". Murab ionann agus cainéil rialta a éilíonn idirbhearta ar slabhra a oscailt agus a fhoirceannadh, is féidir cainéal fíorúil a oscailt, a fhorghníomhú, agus a thabhairt chun críche gan idirghníomhú leis an bpríomhshlabhra. Is féidir fiú díospóidí a réiteach as slabhra ag baint úsáide as an modh seo. + +Braitheann an córas seo ar "chainéil mhórleabhair" mar a thugtar orthu, atá maoinithe ar slabhra a bheith ann. Is féidir cainéil fhíorúla idir dhá pháirtí a thógáil ar bharr an chainéil mhórleabhair atá ann cheana féin, agus úinéir(í) an chainéil mhórleabhair ag feidhmiú mar idirghabhálaí. + +Idirghníomhaíonn úsáideoirí i ngach cainéal fíorúil trí ásc chonartha nua, agus tá an cainéal mórleabhair in ann tacú le hiliomad cásanna conartha. Tá níos mó ná staid stóras conartha amháin i staid an chainéil mhórleabhair freisin, rud a cheadaíonn feidhmiú comhthreomhar as slabhra idir úsáideoirí éagsúla. + +Díreach cosúil le cainéil rialta, malartaíonn úsáideoirí nuashonruithe staide chun an meaisín staide a chur chun cinn. Mura dtagann díospóid chun cinn, ní gá dul i dteagmháil leis an idirghabhálaí ach amháin nuair a bhíonn an cainéal á oscailt nó á fhoirceannadh. + +### Cainéil íocaíochta fhíorúla {#virtual-payment-channels} + +Feidhmíonn cainéil íocaíochta fhíorúla as an smaoineamh céanna le cainéil fhíorúla staide: is féidir le rannpháirtithe atá ceangailte leis an líonra céanna teachtaireachtaí a sheoladh gan gá le cainéal nua ar slabhra a oscailt. I gcainéil fhíorúla íocaíochta, seoltar aistrithe luacha trí idirghabhálaí amháin nó níos mó, le ráthaíochtaí nach féidir ach leis an bhfaighteoir beartaithe cistí aistrithe a fháil. + +## Feidhmchláir chainéil staide {#applications-of-state-channels} + +### Íocaíochtaí {#payments} + +Prótacail shimplí a bhí sna cainéil bhlocshlabhra luatha a cheadaigh do bheirt rannpháirtí aistrithe tapa ar tháillí íseal a dhéanamh as slabhra gan a bheith orthu táillí arda idirbhirt a íoc ar Mainnet. Sa lá atá inniu ann, tá cainéil íocaíochta fós úsáideach d'iarratais atá deartha chun éitear agus comharthaí a mhalartú agus a thaisceadh. + +Tá na buntáistí seo a leanas ag íocaíochtaí bunaithe ar chainéil: + +1. \*\*Tréchur \*\*: Níl baint ag méid na n-idirbheart ar slabhra in aghaidh an chainéil le tréchur Ethereum, atá faoi thionchar ag fachtóirí éagsúla, go háirithe méid na mbloc agus am bloc. Trí idirbhearta as slabhra a rith, is féidir le cainéil bhlocshlabhra tréchur níos airde a bhaint amach. + +2. **Príobháideacht**: Toisc go bhfuil na cainéil as slabhra, ní dhéantar sonraí na n-idirghníomhaíochtaí idir rannpháirtithe a thaifeadadh ar blocshlabhra poiblí Ethereum. Ní bhíonn ar úsáideoirí cainéal ach idirghníomhú ar slabhra ach nuair a bhíonn siad ag maoiniú agus ag dúnadh cainéil nó ag réiteach díospóidí. Mar sin, tá cainéil úsáideach do dhaoine aonair a dteastaíonn níos mó idirbhearta príobháideacha uathu. + +3. \*\* Aga folaigh\*\*: Is féidir idirbhearta as slabhra a dhéantar idir rannpháirtithe an chainéil a shocrú láithreach, má chomhoibríonn an dá pháirtí, rud a laghdóidh moilleanna. I gcodarsnacht leis sin, chun idirbheart a sheoladh ar Mainnet ní mór fanacht le nóid chun an t-idirbheart a phróiseáil, bloc nua a tháirgeadh leis an idirbheart, agus teacht ar chomhdhearcadh. Seans go mbeidh ar úsáideoirí fanacht le tuilleadh dearbhuithe bloc sula mbreithnítear idirbheart a tugadh chun críche. + +4. **Costas**: Tá cainéil staide\* thar a bheith úsáideach i gcásanna ina malartóidh tacar rannpháirtithe go leor nuashonruithe staide thar thréimhse fhada. Is iad na costais amháin a thabhaítear ná conradh cliste an chainéil staide a oscailt agus a dhúnadh; beidh gach athrú staide idir oscailt agus dúnadh an chainéil níos saoire ná an ceann deireanach toisc go ndéantar an costas socraíochta a dháileadh dá réir. + +Má chuirtear cainéil staide i bhfeidhm ar réitigh ciseal 2, amhail [uas-scáluithe] (/forbróirí/doiciméid/scála/#rollups), d’fhéadfaí iad a dhéanamh níos tarraingtí fós le haghaidh íocaíochtaí. Cé go dtugann cainéil íocaíochtaí saora, d’fhéadfadh na costais a bhaineann le bunú an chonartha ar slabhra ar Mainnet le linn na céime tosaigh a bheith costasach - go háirithe nuair a thagann ardú ar tháillí gáis. Tairgeann uas-scálú atá bunaithe ar Ethereum [táillí idirbheartaíochta níos ísle](https://l2fees.info/) agus féadann siad forchostas a laghdú do rannpháirtithe cainéil trí tháillí socraithe a laghdú. + +### Micrea-idirbhearta {#microtransactions} + +Is íocaíochtaí ar luach íseal iad micrea-idirbhearta (m.sh., níos ísle ná codán de dhollair) nach féidir le gnólachtaí a phróiseáil gan caillteanais a thabhú. Ní mór do na haonáin seo soláthraithe seirbhíse íocaíochta a íoc, rud nach féidir leo a dhéanamh má tá an corrlach ar íocaíochtaí custaiméirí ró-íseal le brabús a dhéanamh. + +Réitíonn bealaí íocaíochta an fhadhb seo tríd an bhforchostas a bhaineann le micrea-idirbhearta a laghdú. Mar shampla, is féidir le Soláthraí Seirbhíse Idirlín (ISP) cainéal íocaíochta a oscailt le custaiméir, rud a ligeann dóibh íocaíochtaí beaga a shruthú gach uair a úsáideann siad an tseirbhís. + +Taobh amuigh den chostas a bhaineann leis an gcainéal a oscailt agus a dhúnadh, ní thabhaíonn rannpháirtithe costais bhreise ar mhicrea-idirbhearta (gan táillí gáis). Is cás é seo a dhéanann buntáiste do chách ós rud é go bhfuil níos mó solúbthachta ag custaiméirí maidir leis an méid a íocann siad as seirbhísí agus nach gcaillfidh gnólachtaí amach ar mhicrea-idirbhearta brabúsacha. + +### Feidhmchláir dhíláraithe {#decentralized-applications} + +Cosúil le cainéil íocaíochta, is féidir le cainéil staide íocaíochtaí coinníollacha a dhéanamh de réir staid dheiridh an mheaisín staide. Is féidir le cainéil staide tacú le loighic aistrithe staide treallach freisin, rud a fhágann go bhfuil siad úsáideach chun aipeanna cineálacha a rith as slabhra. + +Is minic go mbíonn cainéil staide teoranta d’iarratais shimplí atá bunaithe ar shealanna, mar go ndéanann sé seo níos éasca cistí atá tiomanta don chonradh ar slabhra a bhainistiú. Chomh maith leis sin, le líon teoranta páirtithe ag nuashonrú staid an iarratais as slabhra ag eatraimh, tá sé sách simplí iompar mímhacánta a phionósú. + +Braitheann éifeachtacht iarratais cainéal staide freisin ar a dhearadh. Mar shampla, d'fhéadfadh forbróir an conradh cainéal aip a imscaradh uair amháin agus ligean d'imreoirí eile an aip a athúsáid gan dul ar slabhra. Sa chás seo, feidhmíonn an aip chainéal tosaigh mar chainéal mórleabhair a thacaíonn le hil-chainéil fhíorúla, gach ceann acu ag rith sampla nua as slabhra conradh cliste an aip. + +Cás úsáide féideartha d’fheidhmchláir chainéil staide is ea cluichí simplí dhá imreoir, ina ndáiltear cistí bunaithe ar thoradh an chluiche. Is é an buntáiste atá leis seo ná nach gcaithfidh imreoirí muinín a chur ina chéile (dílárú) agus rialaíonn an conradh ar slabhra, ní imreoirí, leithdháileadh cistí agus réiteach díospóidí (dílárú). + +I measc na gcásanna úsáide féideartha eile le haghaidh aipeanna cainéal staide tá úinéireacht ainm ENS, mórleabhair NFT, agus go leor eile. + +### Aistrithe adamhacha {#atomic-transfers} + +Bhí cainéil luathíocaíochta teoranta d'aistrithe idir dhá pháirtí, rud a chuir srian lena n-in-úsáidteacht. Mar sin féin, thug bunú na gcainéil fhíorúla deis do dhaoine aonair aistrithe a dhéanamh trí idirghabhálaithe (i.e. ilchainéil p2p) gan a bheith orthu cainéal nua a oscailt. + +Tugtar “aistrithe multi-hop” orthu go coitianta, tá íocaíochtaí ródaithe adamhach (i.e. éiríonn le gach cuid den idirbheart nó teipeann sé ar fad). Úsáideann aistrithe adamhacha [Haiseanna Conarthaí Glais Ama(HTLCs)](https://en.bitcoin.it/wiki/Hash_Time_Locked_Contracts) chun a chinntiú nach scaoiltear an íocaíocht ach amháin má chomhlíontar coinníollacha áirithe, rud a laghdaíonn an riosca contrapháirtí. + +## Míbhuntáistí a bhaineann le cainéil staide a úsáid {#drawbacks-of-state-channels} + +### Toimhdí beochta {#liveness-assumptions} + +Chun éifeachtúlacht a chinntiú, cuireann cainéil staide teorainneacha ama ar chumas rannpháirtithe na gcainéal freagairt a thabhairt ar dhíospóidí. Glacann an riail seo leis go mbeidh piaraí ar líne i gcónaí chun monatóireacht a dhéanamh ar ghníomhaíocht cainéal agus chun dúshláin a chonspóid nuair is gá. + +I ndáiríre, is féidir le húsáideoirí dul as líne ar chúiseanna nach bhfuil smacht acu orthu (m.sh. nasc idirlín lag, teip mheicniúil, srl.). Má théann úsáideoir macánta as líne, is féidir le piaraí mailíseacha leas a bhaint as an scéal trí sheanstaideanna idirmheánacha a chur i láthair an chonartha breithneora agus na cistí geallta a ghoid. + +Úsáideann roinnt cainéal “túir fhaire”—aonáin atá freagrach as féachaint ar imeachtaí díospóide ar slabhra thar ceann daoine eile agus as na bearta riachtanacha a dhéanamh, amhail foláireamh a thabhairt do pháirtithe lena mbaineann. Mar sin féin, féadfaidh sé seo cur leis na costais a bhaineann le cainéal staide a úsáid. + +### Neamh-infhaighteacht sonraí {#data-unavailability} + +Mar a míníodh níos luaithe, ní mór an staid bhailí is déanaí den chainéil staide a chur i láthair chun díospóid neamhbhailí a chomhrac. Seo riail eile atá bunaithe ar thoimhde - go bhfuil rochtain ag úsáideoirí ar an staid is déanaí ar an gcainéal. + +Cé go bhfuil sé réasúnta a bheith ag súil le húsáideoirí cainéil cóipeanna de staid iarratais as slabhra a stóráil, d'fhéadfadh na sonraí seo a bheith caillte mar gheall ar earráid nó teip mheicniúil. Mura bhfuil na sonraí cúltacaithe ag an úsáideoir, ní féidir leo ach a bheith ag súil nach gcuirfidh an páirtí eile iarratas scoir neamhbhailí i gcrích trí úsáid a bhaint as seanaistrithe staide atá ina sheilbh. + +Ní chaithfidh úsáideoirí Ethereum déileáil leis an bhfadhb seo ós rud é go gcuireann an líonra rialacha i bhfeidhm maidir le hinfhaighteacht sonraí. Stóráiltear agus iomadaítear sonraí idirbhirt ag gach nód agus bíonn siad ar fáil d’úsáideoirí le híoslódáil más gá agus nuair is gá. + +### Saincheisteanna leachtachta {#liquidity-issues} + +Chun cainéal blocshlabhra a bhunú, ní mór do rannpháirtithe cistí a ghlasáil i gconradh cliste ar slabhra ar feadh saolré an chainéil. Laghdaíonn sé seo leachtacht úsáideoirí cainéal agus cuireann sé srian freisin ar chainéil dóibh siúd atá in acmhainn cistí a choinneáil faoi ghlas ar Mainnet. + +Mar sin féin, is féidir le cainéil mhórleabhair - arna n-oibriú ag soláthraí seirbhíse as slabhra (OSP) - saincheisteanna leachtachta a laghdú d'úsáideoirí. Is féidir le beirt phiaraí atá ceangailte le cainéal mórleabhair cainéal fíorúil a chruthú, ar féidir leo a oscailt agus a thabhairt chun críche go hiomlán as slabhra, am ar bith is mian leo. + +D’fhéadfadh soláthraithe seirbhísí as slabhra cainéil a oscailt le piaraí iolracha freisin, rud a fhágann go bhfuil siad úsáideach chun íocaíochtaí a ródú. Ár ndóigh, ní mór d’úsáideoirí táillí a íoc le OSPanna ar son a gcuid seirbhísí, rud a d’fhéadfadh a bheith neamh-inmhianaithe do roinnt daoine. + +### Ionsaithe 'griefing' {#griefing-attacks} + +Is gné choitianta de chórais cruthúnas calaoise iad ionsaithe 'griefing'. Ní théann ionsaí 'griefing' chun leasa an ionsaitheora go díreach ach cruthaíonn sé brón (i.e., dochar) don íospartach, agus mar sin an t-ainm. + +Is féidir le cruthúnas calaoise ionsaithe 'griefing' a fhulaingt toisc go gcaithfidh an páirtí macánta freagra a thabhairt ar gach díospóid, fiú díospóidí neamhbhailí, nó caillfidh siad a gcuid cistí. Is féidir le rannpháirtí mailíseach cinneadh a dhéanamh arís agus arís eile aistrithe seanstaide a phostáil ar slabhra, rud a chuireann iallach ar an bpáirtí macánta freagra a thabhairt leis an staid bhailí. Féadann costas na n-idirbheart ar slabhra méadú go tapa, rud a fhágann go gcaillfidh páirtithe macánta amach sa phróiseas. + +### Tacair rannpháirtí réamhshainithe {#predefined-participant-sets} + +De réir dearaidh, fanann líon na rannpháirtithe a chuimsíonn cainéal staide seasta ar feadh a shaolré. Is é an fáth atá leis seo ná go gcuirfeadh nuashonrú an tacair rannpháirtí castacht le hoibriú an chainéil, go háirithe agus an cainéal á mhaoiniú, nó díospóidí á réiteach. Bheadh ​​gníomhaíocht bhreise ar slabhra de dhíth freisin chun rannpháirtithe a chur leis nó a bhaint, rud a mhéadódh forchostais d’úsáideoirí. + +Cé go n-éascaíonn sé seo an réasúnú faoi chainéil staide, cuireann sé teorainn le húsáidí dearaí cainéal d'fhorbróirí feidhmchlár. Míníonn sé seo go páirteach cén fáth ar laghdaíodh cainéil staide i bhfabhar réitigh scálaithe eile, ar nós uas-scáluithe. + +### Próiseáil idirbheart comhthreomhar {#parallel-transaction-processing} + +Seolann rannpháirtithe sa chainéal stáit nuashonruithe stáit ar a seal, agus is é sin an fáth go n-oibríonn siad is fearr le haghaidh “feidhmchláir bunaithe ar chasadh” (m.sh., cluiche fichille dhá imreoir). Cuireann sé seo deireadh leis an ngá atá le nuashonruithe staide comhuaineacha a láimhseáil agus laghdaítear an obair a chaithfidh an conradh ar slabhra a dhéanamh chun pionós a ghearradh ar phostáluithe nua nuashonraithe atá as dáta. Mar sin féin, is taobh-éifeacht den dearadh seo go bhfuil idirbhearta ag brath ar a chéile, ag méadú aga folaigh agus ag laghdú ar an taithí úsáideora iomlán. + +Réitíonn roinnt cainéil staide an fhadhb seo trí dhearadh “lán-dhéphléacsacha” a úsáid a scarann ​​an staid as slabhra ina dhá staid “shimplí” aontreocha, rud a cheadaíonn nuashonruithe comhthráthacha staide. Feabhsaíonn dearaí den sórt sin tréchur as slabhra agus laghdaítear moilleanna idirbheartaíochta. + +## Úsáid cainéil staide {#use-state-channels} + +Soláthraíonn tionscadail iolracha feidhmiúcháin de chainéil staide ar féidir leat iad a chomhtháthú le do dapps: + +- [Connext](https://connext.network/) +- [Kchannels](https://www.kchannels.io/) +- [Perun](https://perun.network/) +- [Raiden](https://raiden.network/) +- [Statechannels.org](https://statechannels.org/) + +## Tuilleadh léitheoireachta {#further-reading} + +**Cainéil staide** + +- [Ciall a bhaint as Réitigh Scálú Ciseal 2 Ethereum: Cainéil Staide, Plasma, agus Truebit](https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4) _– Josh Stark, 12 Feabhra 2018_ +- [Cainéil Staide - míniú](https://www.jeffcoleman.ca/state-channels/) 6 Samhain, 2015 - Jeff Coleman_ +- [Bunús na gCainéal Staide](https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/) _District0x_ +- [Cainéil Staide Blocshlabhra: Staid den Scoth](https://ieeexplore.ieee.org/document/9627997) + +_An bhfuil eolas agat ar acmhainn pobail a chabhraigh leat? Cuir an leathanach seo in eagar agus cuir leis é!_ diff --git a/public/content/translations/ga/developers/docs/scaling/validium/index.md b/public/content/translations/ga/developers/docs/scaling/validium/index.md new file mode 100644 index 00000000000..bbd935f9c2f --- /dev/null +++ b/public/content/translations/ga/developers/docs/scaling/validium/index.md @@ -0,0 +1,166 @@ +--- +title: Validium +description: Réamhrá ar Validium mar réiteach scálaithe atá in úsáid faoi láthair ag pobal Ethereum. +lang: ga +sidebarDepth: 3 +--- + +Is réiteach scáluithe é validium [a thugann réiteach ar scálú](/developers/docs/scaling/) a chuirtear i bhfeidhm le cruthúnais bailíochta cosúil le [ZK-rollups](/developers/docs/scaling/zk-rollups/), ach ní stórálann sé sonraí idirbhearta ar Ethereum Mainnet. Cé go dtugtar comhbhabhtálacha isteach le hinfhaighteacht sonraí as slabhra, d’fhéadfadh feabhsuithe ollmhóra a bheith mar thoradh ar inscálaithe (is féidir le validiums [~9,000 idirbheart, nó níos mó, in aghaidh an tsoicind](https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263) a phróiseáil). + +## Réamhriachtanais {#prerequisites} + +Ba cheart go mbeadh ár leathanach ar [scálú Ethereum](/developers/docs/scaling/) agus [ciseal 2](/layer-2) léite agus tuigthe agat. + +## Cad is validium ann? {#what-is-validium} + +Is réitigh scálaithe iad Validiums a úsáideann infhaighteacht sonraí as slabhra agus ríomh atá deartha chun tréchur a fheabhsú trí idirbhearta a phróiseáil as Ethereum Mainnet. Cosúil le huascálú dífhianaise (ZK-rollups), foilsíonn validiums [cruthúnais dífhianaise](/glossary/#zk-proof) chun idirbhearta as slabhra ar Ethereum a fhíorú. Coisceann sé seo aistrithe staide neamhbhailí agus feabhsaíonn sé ráthaíochtaí slándála slabhra validium. + +Is féidir leis na "cruthúnais bailíochta" seo teacht i bhfoirm ZK-SNARKanna (Argóint Faisnéise Gonta Neamh-Idirghníomhach Dífhianaise) nó ZK-STARKanna (Argóint Faisnéise Trédhearcach Inscálaithe Dífhianaise). Tuilleadh faoi [chruthúnais dhífhianaise](https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/). + +Tá cistí a bhaineann le húsáideoirí validium á rialú ag conradh cliste ar Ethereum. Tairgeann Validiums aistarraingtí beagnach láithreach, cosúil le ZK-rollups; a luaithe a bheidh an cruthúnas bailíochta d’iarratas aistarraingthe fíoraithe ar Mainnet, is féidir le húsáideoirí cistí a tharraingt siar trí [Cruthúnas Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/) a sholáthar. Déanann cruthúnas Merkle bailíochtú ar áireamh idirbheart aistarraingthe an úsáideora i mbaisc idirbheart fíoraithe, rud a ligeann don chonradh ar slabhra an aistarraingt a phróiseáil. + +Mar sin féin, is féidir le cistí úsáideoirí validium a bheith reoite agus a gcuid aistarraingtí a bheith srianta. Féadfaidh sé seo tarlú má choinníonn bainisteoirí infhaighteachta sonraí ar as slabhra validium sonraí staide as slabhra siar ó úsáideoirí. Gan rochtain ar shonraí idirbhirt, ní féidir le húsáideoirí an cruthúnas Merkle a ríomh a theastaíonn chun úinéireacht cistí a chruthú agus aistarraingtí a dhéanamh. + +Is í seo an phríomhdhifríocht idir validium agus ZK-rollups – a shuíomh ar speictream infhaighteacht sonraí. Tá cur chuige difriúil ag an dá réiteach maidir le stóras sonraí, agus impleachtaí aige dá réir do shlándáil agus d’iontaofacht. + +## Conas a idirghníomhaíonn validiums le Ethereum? {#how-do-validiums-interact-with-ethereum} + +Is prótacail scálaithe iad Validiums a tógadh ar bharr an tslabhra Ethereum atá ann cheana féin. Cé go ndéanann sé idirbhearta as slabhra, déantar slabhra validium a riar trí bhailiúchán conarthaí cliste a imscartar ar Mainnet lena n-áirítear: + +1. **Conradh fíoraitheora**: Fíoraíonn an conradh fíoraitheora bailíocht na gcruthúnas a chuir an t-oibreoir validium isteach agus nuashonruithe staide á dhéanamh aige. Áirítear leis sin cruthúnais bailíochta a dheimhníonn cruinneas na n-idirbheart as slabhra agus cruthúnais infhaighteachta sonraí lena bhfíoraítear go bhfuil sonraí idirbhirt as slabhra ann. + +2. **Príomhchonradh**: Stórálann an príomhchonradh gealltanais staide (fréamhacha Merkle) arna gcur isteach ag táirgeoirí bloc agus nuashonraítear staid na bailíochta nuair a fhíoraítear cruthúnas bailíochta ar slabhra. Próiseálann an conradh seo taiscí chuig slabhra validium agus aistarraingtí uaidh freisin. + +Braitheann Validiums freisin ar an bpríomhshlabhra Ethereum le haghaidh na nithe seo a leanas: + +### Réiteach {#settlement} + +Ní féidir idirbhearta a dhéantar ar validium a dhearbhú go hiomlán go dtí go bhfíoróidh an mháthairshlabhra a mbailíocht. Ní mór gach gnó a dhéantar ar validium a shocrú ar Mainnet faoi dheireadh. Soláthraíonn an Ethereum blocshlabhra "ráthaíochtaí socraíochta" freisin d'úsáideoirí validium, rud a chiallaíonn nach féidir idirbhearta slabhra a aisiompú nó a athrú nuair a bhíonn siad tiomanta do shlabhra. + +### Slándáil {#security} + +Ráthaíonn Ethereum, ag gníomhú mar chiseal socraíochta, bailíocht aistrithe staide ar validium. Déantar idirbhearta as slabhra a ritear ar an slabhra validium a fhíorú trí chonradh cliste ar bhunchiseal Ethereum. + +Má mheasann conradh an fhíoraitheora ar slabhra an cruthúnas a bheith neamhbhailí, diúltaítear do na hidirbhearta. Ciallaíonn sé seo go gcaithfidh oibreoirí na coinníollacha bailíochta arna bhforfheidhmiú ag prótacal Ethereum a shásamh sula ndéantar staid an validium a nuashonrú. + +## Conas a oibríonn validium? {#how-does-validium-work} + +### Idirbhearta {#transactions} + +Cuireann úsáideoirí idirbhearta faoi bhráid an oibreora, nód atá freagrach as idirbhearta a rith ar an slabhra validium. D’fhéadfadh roinnt validium oibreoir aonair a úsáid chun an slabhra a rith, nó brath ar mheicníocht [cruthúnas-gill (PoS)](/developers/docs/consensus-mechanisms/pos/) le haghaidh oibreoirí rothlacha. + +Comhiomlánaíonn an t-oibreoir idirbhearta ina bhaisc agus cuireann sé iad chuig ciorcad cruthaithe lena chruthú. Glacann an ciorcad cruthúnais leis an mbaisc idirbhirt (agus sonraí ábhartha eile) mar ionchuir agus aschuir cruthúnas bailíochta a fhíoraíonn gur comhlíonadh na hoibríochtaí i gceart. + +### Gealltanais staide {#state-commitments} + +Tá staid an validium haiseáilte mar chrann Merkle leis an fhréamh atá stóráilte sa phríomhchonradh ar Ethereum. Feidhmíonn fréamh Merkle, ar a dtugtar an fhréamh staide freisin, mar ghealltanas cripteagrafach do staid reatha na gcuntas agus na n-iarmhéideanna ar an validium. + +Chun nuashonrú staide a dhéanamh, ní mór don oibreoir fréamh staide nua a ríomh (tar éis idirbhearta a fhorghníomhú) agus é a chur isteach sa chonradh slabhra. Má fhíoraítear an cruthúnas bailíochta, glacfar leis an staid atá beartaithe agus aistríonn an validium go dtí an fréamh staide nua. + +### Éarlaisí agus aistarraingtí {#deposits-and-withdrawals} + +Bogann úsáideoirí cistí ó Ethereum go validium trí ETH (nó aon chomhartha ERC-comhoiriúnach) a thaisceadh sa chonradh slabhra. Déanann an conradh an t-imeacht taisce a athsheoladh chuig an validium as slabhra, áit a gcuirtear méid atá comhionann lena thaisce chun sochair do sheoladh an úsáideora. Áiríonn an t-oibreoir an t-idirbheart taisce seo i mbaisc nua freisin. + +Chun cistí a aistriú ar ais go Mainnet, tionscnaíonn úsáideoir validium idirbheart aistarraingthe agus cuireann sé faoi bhráid an oibreora a bhailíochtaíonn an t-iarratas ar astarraingt agus a áiríonn i mbaisc é. Scriostar sócmhainní an úsáideora ar an slabhra validium freisin sular féidir leo imeacht ón gcóras. Nuair a bheidh an cruthúnas bailíochta a bhaineann leis an bhaisc fíoraithe, is féidir leis an úsáideoir glaoch ar an bpríomhchonradh chun an chuid eile dá éarlais tosaigh a aistarraingt. + +Mar mheicníocht frith-chinsireachta, ceadaíonn an prótacal validium d'úsáideoirí tarraingt siar go díreach ón gconradh validium gan dul tríd an oibreoir. Sa chás seo, ní mór d'úsáideoirí cruthúnas Merkle a sholáthar don chonradh fíoraitheora a thaispeánann cuimsiú an chuntais sa bhfréamh staide. Má ghlactar leis an gcruthúnas, is féidir leis an úsáideoir glaoch ar fheidhm aistarraingthe an phríomhchonartha chun a gcuid cistí a scor ón validium. + +### Taisceadh baisce {#batch-submission} + +Tar éis baisc idirbheart a chur i gcrích, cuireann an t-oibreoir an cruthúnas bailíochta gaolmhar isteach chuig an gconradh fíoraitheora agus molann sé fréamh staide nua don phríomhchonradh. Má tá an cruthúnas bailí, déanann an príomhchonradh staid an validium a nuashonrú agus torthaí na n-idirbheart sa bhaisc a thabhairt chun críche. + +Murab ionann agus ZK-rollup, níl sé de cheangal ar tháirgeoirí bloc ar validium sonraí idirbhirt a fhoilsiú maidir le baisceanna idirbheart (bloc ceanntásca amháin). Fágann sé seo gur prótacal scálaithe as slabhra amháin é validium, i gcomparáid le prótacail scálaithe “hibrideacha” (i.e., [ciseal 2](/layer-2/)) a fhoilsíonn sonraí staide ar phríomhshlabhra Ethereum mar `calldata`. + +### Infhaighteacht sonraí {#data-availability} + +Mar a luadh, úsáideann validiums múnla infhaighteachta sonraí as slabhra, ina stórálann oibreoirí na sonraí idirbhirt go léir ó Ethereum Mainnet. Feabhsaíonn lorg sonraí ar slabhra íseal validium an inscálaitheacht (níl an tréchur teoranta ag cumas próiseála sonraí Ethereum) agus laghdaítear táillí úsáideoirí (tá an costas a bhaineann le foilsiú `calldata` níos ísle). + +Tá fadhb ag baint le hinfhaighteacht sonraí as slabhra, áfach: b'fhéidir nach mbeidh na sonraí riachtanacha chun cruthúnais Merkle a chruthú nó a fhíorú ar fáil. Ciallaíonn sé sin go bhféadfadh sé nach mbeadh úsáideoirí in ann cistí a aistarraingt ón gconradh ar slabhra más rud é go ngníomhaíonn oibreoirí go mailíseach. + +Déanann réitigh bailí éagsúla iarracht an fhadhb seo a réiteach trí stóras sonraí staide a dhílárú. Is éard atá i gceist leis seo iallach a chur ar tháirgeoirí bloc na sonraí bunúsacha a sheoladh chuig "bainisteoirí infhaighteachta sonraí" atá freagrach as sonraí as slabhra a stóráil agus iad a chur ar fáil d'úsáideoirí ar iarratas. + +Deimhníonn bainisteoirí infhaighteachta sonraí i validium an infhaighteacht sonraí le haghaidh idirbhearta as slabhra trí gach baisc validium a shíniú. Is éard atá sna sínithe seo ná cineál "cruthúnas infhaighteachta" a sheiceálann an fíoraitheoir ar slabhra an chonartha sula gceadaítear nuashonruithe staide. + +Tá difríocht idir validiums ina gcur chuige maidir le hinfhaighteacht sonraí a bhainistiú. Bíonn cuid acu ag brath ar pháirtithe iontaofa chun sonraí stáit a stóráil, agus úsáideann daoine eile bailíochtaithe a shanntar go randamach don tasc. + +#### Coiste Infhaighteachta Sonraí (DAC) {#data-availability-committee} + +Chun infhaighteacht sonraí as slabhra a ráthú, ceapann roinnt réitigh bhailíochta grúpa aonán iontaofa, ar a dtugtar coiste infhaighteachta sonraí (DAC) chun cóipeanna den staid a stóráil agus cruthúnas ar infhaighteacht sonraí a sholáthar. Tá sé níos fusa DACanna a chur i bhfeidhm agus teastaíonn níos lú comhordaithe ós rud é go bhfuil an bhallraíocht íseal. + +Mar sin féin, ní mór d’úsáideoirí muinín a chur in DAC chun na sonraí a chur ar fáil nuair is gá (m.sh., chun cruthúnais Merkle a ghiniúint). D’fhéadfadh go mbeadh baill de choistí infhaighteachta sonraí [curtha i gcontúirt ag gníomhaí mailíseach](https://notes.ethereum.org/DD7GyItYQ02d0ax_X-UbWg?view) atá in ann sonraí an tslabhra a choinneáil siar ansin. + +[Tuilleadh eolais faoi choistí infhaighteachta sonraí in validiums](https://medium.com/starkware/data-availability-e5564c416424). + +#### Infhaighteacht sonraí nasctha {#bonded-data-availability} + +Éilíonn validiums eile ar rannpháirtithe a bhfuil sé de chúram orthu sonraí as líne a stóráil (i.e., glasáil) comharthaí a gheallchur i gconradh cliste sula nglacfaidh siad lena róil. Feidhmíonn an geall seo mar “bhanna” chun iompar macánta a ráthú i measc bainisteoirí infhaighteachta sonraí agus laghdaítear boinn tuisceana iontaobhais. Má theipeann ar na rannpháirtithe seo infhaighteacht sonraí a chruthú, gearrtar an banna. + +I scéim banna-infhaighteachta sonraí, is féidir aon duine a shannadh chun sonraí as slabhra a choinneáil a luaithe a sholáthraíonn siad an geall riachtanach. Leathnaíonn sé seo an linn de bhainisteoirí incháilithe um infhaighteacht sonraí, ag laghdú an lárnaithe a théann i bhfeidhm ar choistí infhaighteachta sonraí (DACanna). Níos tábhachtaí fós, braitheann an cur chuige seo ar dhreasachtaí cripteacnamaíocha chun gníomhaíocht mhailíseach a chosc, atá i bhfad níos sláine ná páirtithe iontaofa a cheapadh chun sonraí as líne a shlánú sa validium. + +[Tuilleadh maidir le hinfhaighteacht sonraí bannaithe i validiums](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf). + +## Toilithe agus validium {#volitions-and-validium} + +Tá go leor buntáistí ag baint le Validiums ach baineann laigí leo (go háirithe, infhaighteacht sonraí). Ach, mar atá i gcás go leor réitigh scálaithe, tá validiums feiliúnach do chásanna úsáide ar leith - agus is é sin an fáth ar cruthaíodh toilithe. + +Comhcheanglaíonn toilithe slabhra ZK-rollup agus validium agus ligeann siad d’úsáideoirí aistriú idir an dá réiteach scálaithe. Le toilithe, is féidir le húsáideoirí leas a bhaint as infhaighteacht sonraí as slabhra validium le haghaidh idirbhearta áirithe, agus a bheith saor ag an am céanna aistriú chuig réiteach infhaighteachta sonraí ar slabhra (ZK-rollup) más gá. Tugann sé seo go bunúsach an tsaoirse d'úsáideoirí comhbhabhtálacha a roghnú de réir a gcúinsí uathúla. + +B’fhéidir gurbh fhearr le malartán díláraithe (DEX) bonneagar inscálaithe agus príobháideach validium a úsáid le haghaidh trádálacha ardluacha. Féadfaidh sé úsáid a bhaint as ZK-rollup freisin d'úsáideoirí a dteastaíonn ráthaíochtaí slándála níos airde agus easpa muiníne ZK-rollup uathu. + +## Comhoiriúnacht validiums agus EVM {#validiums-and-evm-compatibility} + +Cosúil le ZK-rollups, tá validiums níos oiriúnaí d’fheidhmchláir shimplí den chuid is mó, mar bhabhtálacha comharthaí agus íocaíochtaí. Tá sé deacair tacú le ríomh ginearálta agus le rith conarthaí cliste i measc na validium, i bhfianaise na bhforchostas suntasacha a bhaineann le treoracha [EVM](/developers/docs/evm/) a chruthú i gciorcad cruthúnais dífhianaise. + +Déanann roinnt tionscadal validium iarracht an fhadhb seo a sheachaint trí theangacha atá comhoiriúnach le EVM (m.sh., Solidity, Vyper) a thiomsú chun beartchód saincheaptha a chruthú atá optamaithe don chruthúnas éifeachtach. Míbhuntáiste a bhaineann leis an gcur chuige seo ná go mb’fhéidir nach dtacóidh VManna nua atá neamhdhíobhálach don dífhianaise le opcodes tábhachtacha EVM, agus go gcaithfidh forbróirí scríobh go díreach sa teanga ardleibhéil ar mhaithe le taithí optamach. Cruthaíonn sé seo níos mó fadhbanna fós: cuireann sé iallach ar fhorbróirí dapps a thógáil le cruach forbartha iomlán nua agus briseann sé comhoiriúnacht le bonneagar reatha Ethereum. + +Tá roinnt foirne, áfach, ag iarraidh barrfheabhsú a dhéanamh ar cóid oibríochta EVM atá ann cheana féin le haghaidh ciorcaid a chruthaíonn ZK. Mar thoradh air seo forbrófar Meaisín Fíorúil Ethereum ar dhífhianaise (zkEVM), VM-comhoiriúnach le EVM a tháirgeann cruthúnais chun cruinneas cur i gcrích an chláir a fhíorú. Le zkEVM, is féidir le slabhraí bailíochta conarthaí cliste a rith as slabhra agus cruthúnais bailíochta a chur isteach chun ríomh as slabhra a fhíorú (gan gá é a ath-rith) ar Ethereum. + +[Tuilleadh faoi zkEVMs](https://www.alchemy.com/overviews/zkevm). + +## Conas a scálaíonn validiums Ethereum? {#scaling-ethereum-with-validiums} + +### 1. Stóras sonraí as slabhra {#offchain-data-storage} + +Déanann tionscadail scálaithe Chiseal 2, amhail uas-scáluithe dóchasacha agus ZK-rollups, trádáil ar inscálaitheacht gan teorainn na bprótacal scálaithe as slabhra íon (m.sh., [Plasma](/developers/docs/scaling/plasma/)) ar mhaithe le slándáil trí roinnt sonraí idirbhirt a fhoilsiú ar L1. Ach ciallaíonn sé seo go bhfuil airíonna inscálaitheachta uas-scáluithe teoranta ag bandaleithead sonraí ar Ethereum Mainnet ([sceardadh sonraí](/roadmap/danksharding/) a mholtar le feabhas a chur ar acmhainn stóras sonraí Ethereum ar an gcúis seo). + +Baineann Validiums inscálaitheacht amach trí na sonraí idirbhirt go léir a choinneáil as slabhra agus ní iarchuireann siad ach gealltanais staide (agus cruthúnais bhailíochta) nuair a bhíonn nuashonruithe staide á seoladh chuig an bpríomhshlabhra Ethereum. Mar sin féin, tugann cruthúnais bhailíochta ráthaíochtaí slándála níos airde do validiums ná réitigh scálaithe íona eile, lena n-áirítear Plasma agus [taobhshlabhraí](/developers/docs/scaling/sidechains/). Trí laghdú a dhéanamh ar an méid sonraí a chaithfidh Ethereum a phróiseáil sula ndéantar idirbhearta slabhra a bhailíochtú, cuireann dearaí vailidium go mór leis an tréchur ar Príomhlíonra. + +### 2. Cruthúnas athchúrsach {#recursive-proofs} + +Is cruthúnas bailíochta é cruthúnas athchúrsach a fhíoraíonn bailíocht cruthúnais eile. Gintear na "cruthúnas de cruthúnais" seo trí chruthúnas iolrach a chomhiomlánú go hathchúrsach go dtí go gcruthaítear cruthúnas deiridh amháin a fhíoraíonn gach cruthúnais roimhe seo. Scálaíonn cruthúnas athchúrsach luasanna próiseála blocshlabhra trí líon na n-idirbheart is féidir a fhíorú de réir cruthúnais bhailíochta a mhéadú. + +De ghnáth, déanann gach cruthúnas bailíochta a chuireann an t-oibreoir validium faoi bhráid Ethereum lena fhíorú bailíochtú sláine aon bhloic amháin. De bhrí gur féidir cruthúnas athchúrsach amháin a úsáid chun bailíocht roinnt bloc validium a dheimhniú ag an am céanna - is féidir é seo a dhéanamh toisc gur féidir leis an gciorcad cruthúnais roinnt cruthúnais bloic a chomhiomlánú go hathchúrsach in aon chruthúnas deiridh amháin. Má ghlacann an conradh fíoraithe ar slabhra an cruthúnas athchúrsach, déantar na bloic bhunúsacha go léir a thabhairt chun críche láithreach. + +## Buntáistí agus míbhuntáistí validium {#pros-and-cons-of-validium} + +| Buntáistí | Míbhuntáistí | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Forfheidhmíonn cruthúnais bhailíochta sláine na n-idirbheart as slabhra agus coisceann siad ​​ar oibreoirí nuashonruithe staid neamhbhailí a thabhairt chun críche. | Teastaíonn crua-earraí speisialta chun cruthúnais bhailíochta a tháirgeadh, rud a chruthaíonn riosca láraithe. | +| Méadaíonn sé éifeachtúlacht chaipitil d'úsáideoirí (gan aon mhoill maidir le cistí a aistarraingt go Ethereum) | Tacaíocht theoranta do ríomhaireacht ghinearálta/conarthaí cliste; sainteangacha a theastaíonn le forbairt. | +| Gan a bheith i mbaol ionsaithe eacnamaíocha áirithe a bhíonn os comhair córais atá bunaithe ar chalaois i bhfeidhmchláir ardluacha. | Cumhacht ard ríomhaireachta ag teastáil chun cruthúnais ZK a ghiniúint; nach bhfuil éifeachtach ó thaobh costais d'fheidhmchláir tréchur íseal. | +| Laghdaíonn sé táillí gáis d'úsáideoirí trí gan sonraí glaonna a phostáil chuig Ethereum Príomhlíonra. | Am críochnaitheachta suibiachtúla níos moille (10-30 nóiméad chun cruthúnas ZK a ghiniúint) ach níos tapúla go dtí críochnaitheacht iomlán toisc nach bhfuil aon mhoill ama díospóide ann. | +| Oiriúnach do chásanna úsáide sonracha, cosúil le cearrbhachas trádála nó blocshlabhra a thugann tosaíocht do phríobháideacht agus inscálaitheacht na n-idirbheart. | Is féidir cosc ​​a chur ar úsáideoirí cistí a aistarraingt ós rud é go gceanglaíonn giniúint cruthúnais Merkle ar úinéireacht go mbeadh sonraí as slabhra ar fáil i gcónaí. | +| Soláthraíonn infhaighteacht sonraí as slabhra leibhéil níos airde tréchur agus méadaíonn sé scálaitheacht. | Braitheann samhail slándála ar thoimhdí iontaobhais agus dreasachtaí cripteacnamaíocha, murab ionann agus ZK-rollups, a bhíonn ag brath go hiomlán ar mheicníochtaí slándála cripteagrafacha. | + +### Úsáid Validium/Toilithe {#use-validium-and-volitions} + +Soláthraíonn tionscadail iolracha feidhmiúcháin validium agus toilithe is féidir leat a chomhtháthú le do dapps: + +**StarkWare StarkEx** - _Is réiteach inscálaithechta Ethereum Sraith 2 (L2) é StarkEx atá bunaithe ar chruthúnais bhailíochta. Is féidir leis oibriú i modhanna ZK-Rollup nó Validium infhaighteacht sonraí._ + +- [Doiciméadúchán](https://docs.starkware.co/starkex-v4/starkex-deep-dive/data-availability-modes#validium) +- [Suíomh Gréasáin](https://starkware.co/starkex/) + +**Matter Labs zkPorter** - _Is prótacal scálaithe Sraith 2 é zkPorter a théann i ngleic le hinfhaighteacht sonraí le cur chuige hibrideach a chomhcheanglaíonn smaointe zkRollup agus sceardadh. Is féidir leis tacú go treallach le go leor scearda, agus a bheartas infhaighteachta sonraí féin ag gach ceann acu._ + +- [Blag](https://blog.matter-labs.io/zkporter-a-breakthrough-in-l2-scaling-ed5e48842fbf) +- [Doiciméadúchán](https://docs.zksync.io/zk-stack/concepts/data-availability) +- [Suíomh Gréasáin](https://zksync.io/) + +## Tuilleadh léitheoireachta {#further-reading} + +- [Bailíocht agus an Chiseal 2 Dó-faoi-Dhó — Eagrán Uimh. 99](https://www.buildblockchain.tech/newsletter/issues/no-99-validium-and-the-layer-2-two-by-two) +- [ZK-rollups vs Validium](https://blog.matter-labs.io/zkrollup-vs-validium-starkex-5614e38bc263) +- [Toiliú agus an speictream Infhaighteachta Sonraí atá ag Teacht Chun Cinn](https://medium.com/starkware/volition-and-the-emerging-data-availability-spectrum-87e8bfa09bb) +- [Uas-scáluithe, Validiums, agus Toilithe: Foghlaim Faoi na Réitigh Scálú Ethereum is Teo](https://www.defipulse.com/blog/rollups-validiums-and-volitions-learn-about-the-hottest-ethereum-scaling-solutions) +- [An Treoir Phraiticiúil maidir le hUas-Scáluithe Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) diff --git a/public/content/translations/ga/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/ga/developers/docs/scaling/zk-rollups/index.md new file mode 100644 index 00000000000..724b18c1d65 --- /dev/null +++ b/public/content/translations/ga/developers/docs/scaling/zk-rollups/index.md @@ -0,0 +1,256 @@ +--- +title: Rollaí Leibhéal Eolais Nialasach +description: Réamheolas ar uas-scáluithe dífhianaise - réiteach scálaithe a úsáideann pobal Ethereum. +lang: ga +--- + +Is éard atá in uas-scáluithe dífhianaise (ZK-rollups) ciseal 2 [réitigh scálaithe](/developers/docs/scaling/) a mhéadaíonn tréchur ar Ethereum Príomhlíonra trí ríomhaireacht agus stóráil staide a bhogadh as slabhra. Is féidir le ZK-rollups na mílte idirbheart a phróiseáil i mbaisc agus ansin gan ach roinnt sonraí achoimre íosta a phostáil chuig Príomhlíonra. Sainmhíníonn na sonraí achoimre seo na hathruithe ba chóir a dhéanamh ar staid Ethereum agus roinnt cruthúnas cripteagrafach go bhfuil na hathruithe sin ceart. + +## Réamhriachtanais {#prerequisites} + +Ba cheart go mbeadh ár leathanach ar [scálú Ethereum](/developers/docs/scaling/) agus [ciseal 2](/layer-2) léite agus tuigthe agat. + +## Cad iad uas-scáluithe dífhianaise? {#what-are-zk-rollups} + +**Déanann uas-scáluithe dífhianaise (ZK-rollups)** beart (nó 'roll up') de idirbhearta a chur i mbaisceanna a dhéantar as slabhra. Laghdaíonn ríomh as slabhra an méid sonraí a chaithfear a phostáil chuig an mblocshlabhra. Cuireann oibreoirí ZK-rollup isteach achoimre ar na hathruithe is gá chun na hidirbhearta go léir a léiriú i mbaisc seachas gach idirbheart a sheoladh ina n-aonar. Táirgeann siad [cruthúnais bailíochta](/glossary/#validity-proof) freisin chun cruinneas na n-athruithe a chruthú. + +Tá staid an ZK-rollup á chothabháil ag conradh cliste a imscartar ar líonra Ethereum. Chun an staid seo a nuashonrú, ní mór do nóid ZK-rollup cruthúnas bailíochta a chur isteach lena fhíorú. Mar a luadh, is dearbhú cripteagrafach é an cruthúnas bailíochta go bhfuil an t-athrú staide atá molta ag an uas-scálú i ndáiríre mar thoradh ar an mbaisc áirithe idirbheart a chur i gcrích. Ciallaíonn sé seo nach gá do ZK-rollups ach cruthúnais bailíochta a sholáthar chun idirbhearta a thabhairt chun críche ar Ethereum in ionad na sonraí idirbheart go léir a phostáil ar shlabhra mar [uas-scálú dóchasach](/developers/docs/scaling/optimistic-rollups/). + +Níl aon mhoill ar chistí a aistriú ó ZK-rollup go Ethereum toisc go ndéantar idirbhearta scoir a luaithe a fhíoraíonn an conradh ZK-rollup an cruthúnas bailíochta. Os a choinne sin, tá aistarraingt chistí as uas-scáluithe dóchasacha faoi réir moille chun ligean d’aon duine dúshlán a thabhairt don idirbheart scoir le [cruthúnas calaoise](/glossary/#fraud-proof). + +Scríobhann ZK-rollups idirbhearta chuig Ethereum mar `calldata`. Is é `calldata` an áit a stórálfar sonraí a chuimsítear i nglaonna seachtracha ar fheidhmeanna conartha cliste. Foilsítear faisnéis i `calldata` ar an mblocshlabhra, rud a ligeann do dhuine ar bith staid an uas-scálaithe a athchruthú go neamhspleách. Úsáideann ZK-rollups teicníochtaí comhbhrú chun sonraí idirbhirt a laghdú - mar shampla, déantar cuntais a léiriú trí innéacs seachas seoladh, a shábhálann 28 beart sonraí. Is costas suntasach é foilsiú sonraí ar slabhra ar uas-scáluithe, mar sin is féidir le comhbhrú sonraí táillí úsáideoirí a laghdú. + +## Conas a idirghníomhaíonn ZK-rollups le Ethereum? {#zk-rollups-and-ethereum} + +Is prótacal as slabhra é slabhra ZK-rollup a fheidhmíonn ar bharr an blocshlabhra Ethereum agus a bhainistíonn conarthaí cliste Ethereum ar slabhra. Déanann ZK-rollups idirbhearta lasmuigh de Mainnet, ach go tréimhsiúil cuireann siad baisceanna idirbheart as slabhra do conradh le haghaidh uas-scálú ar slabhra. Tá an taifead idirbhirt seo do-athraithe, cosúil le blocshlabhra Ethereum, agus cruthaíonn sé an slabhra ZK-rollup. + +Tá croí-ailtireacht an ZK-rollup comhdhéanta de na comhpháirteanna seo a leanas: + +1. **Conarthaí Ar slabhra **: Mar a luadh, tá an prótacal ZK-rollup á rialú ag conarthaí cliste a ritheann ar Ethereum. Áirítear leis seo an príomhchonradh a stórálann bloic uas-scálaithe, a rianaíonn taiscí, agus a dhéanann monatóireacht ar nuashonruithe staide. Fíoraíonn conradh eile ar slabhra (an conradh fíoraitheora) cruthúnais dhífhianaise a chuir táirgeoirí bloc isteach. Mar sin, feidhmíonn Ethereum mar bhunchiseal nó "ciseal 1" don ZK-rollup. + +2. **Meaisín fíorúil As slabhra (VM)**: Cé go maireann an prótacal ZK-rollup ar Ethereum, tarlaíonn cur i gcrích idirbheart agus stóráil staide ar mheaisín fíorúil ar leith atá neamhspleách ar an [EVM](/developers/docs/evm/). Is é an VM as slabhra seo an timpeallacht reatha le haghaidh idirbhearta ar an ZK-rollup agus feidhmíonn sé mar an ciseal tánaisteach nó "ciseal 2" don phrótacal ZK-rollup. Ráthaíonn cruthúnais bhailíochta arna bhfíorú ar Ethereum Príomhlíonra cruinneas na n-aistrithe staide sa VM as slabhra. + +Is "réitigh scálaithe hibrideach" iad ZK-rollups - prótacail as slabhra a fheidhmíonn go neamhspleách ach a dhíorthaíonn slándáil ó Ethereum. Go sonrach, forfheidhmíonn líonra Ethereum bailíocht nuashonruithe staide ar an ZK-rollup agus ráthaíonn sé infhaighteacht na sonraí taobh thiar de gach nuashonrú ar staid an uas-scálaithe. Mar thoradh air sin, tá ZK-rollups i bhfad níos sábháilte ná réitigh scálaithe as slabhra íon, mar [ slabhraí taobh](/developers/docs/scaling/sidechains/), atá freagrach as a n-airíonna slándála, nó [validiums](/developers/docs/scaling/validium/), ach a fhíoraíonn idirbhearta bailíochta in áiteanna eile chomh maith le Ethereum. + +Braitheann ZK-rollups ar phríomhphrótacal Ethereum do na nithe seo a leanas: + +### Infhaighteacht sonraí {#data-availability} + +Foilsíonn ZK-rollups sonraí staide do gach idirbheart a phróiseáiltear as slabhra go Ethereum. Leis na sonraí seo, is féidir le daoine aonair nó gnólachtaí staid an uas-scálaithe a atáirgeadh agus an slabhra a bhailíochtú iad féin. Cuireann Ethereum na sonraí seo ar fáil do rannpháirtithe uile an líonra mar `calldata`. + +Ní gá do ZK-rollups mórán sonraí idirbheart a fhoilsiú ar slabhra toisc go ndeimhníonn cruthúnais bailíochta barántúlacht aistrithe staide cheana féin. Mar sin féin, tá stóráil sonraí ar slabhra fós tábhachtach toisc go gceadaíonn sé fíorú neamhspleách gan chead ar staid an tslabhra L2 a ligeann d’aon duine baisceanna idirbheart a chur isteach, rud a chuireann cosc ​​ar oibreoirí mailíseacha an slabhra a chinsireacht nó a reo. + +Tá ar slabhra ag teastáil d'úsáideoirí chun idirghníomhú leis an uas-scálú. Gan rochtain ar shonraí staide ní féidir le húsáideoirí iarmhéid a gcuntas a cheistiú ná idirbhearta a thionscnamh (m.sh. aistarraingtí) a bhíonn ag brath ar fhaisnéis staide. + +### Críochnaitheacht idirbhirt {#transaction-finality} + +Feidhmíonn Ethereum mar chiseal socraíochta le haghaidh ZK-rollups: ní thugtar idirbhearta L2 chun críche ach amháin má ghlacann an conradh L1 an cruthúnas bailíochta. Cuireann sé seo deireadh leis an mbaol go ndéanfaidh oibreoirí mailíseacha an slabhra a éilliú (m.sh. cistí uas-scálaithe a ghoid) toisc go gcaithfidh gach idirbheart a bheith ceadaithe ar Mainnet. Chomh maith leis sin, ráthaíonn Ethereum nach féidir oibríochtaí úsáideoirí a aisiompú nuair a bheidh siad críochnaithe ar L1. + +### Friotaíocht chinsireachta {#censorship-resistance} + +Úsáideann an chuid is mó de ZK-rollups "supernode" (an t-oibreoir) chun idirbhearta a rith, baisceanna a tháirgeadh, agus bloic a chur isteach chuig L1. Cé go n-áirithíonn sé seo éifeachtúlacht, méadaíonn sé an baol cinsireachta: is féidir le hoibreoirí mailíseacha ZK-rollup cinsireacht a dhéanamh ar úsáideoirí trí dhiúltú a gcuid idirbheart a áireamh i mbaisceanna. + +Mar bheart slándála, cuireann ZK-rollups ar chumas úsáideoirí idirbhearta a chur isteach go díreach chuig an gconradh uas-scálaithe ar Mainnet má cheapann siad go bhfuil siad á gcinsireacht ag an oibreoir. Ligeann sé seo d’úsáideoirí iallach a chur scor ón ZK-rollup go Ethereum gan a bheith ag brath ar chead an oibreora. + +## Conas a oibríonn ZK-rollups? {#how-do-zk-rollups-work} + +### Idirbhearta {#transactions} + +Síníonn úsáideoirí sna hidirbhearta ZK-rollup agus cuireann é faoi bhráid oibreoirí L2 lena phróiseáil agus a chuimsiú sa chéad bhaisc eile. I gcásanna áirithe, is aonán láraithe é an t-oibreoir, ar a dtugtar seicheamhóir, a dhéanann idirbhearta, a chomhiomlánaíonn i mbaisceanna iad, agus a chuireann faoi bhráid L1. Is é an seicheamhóir sa chóras seo an t-aon aonán a cheadaítear chun bloic L2 a tháirgeadh agus idirbhearta uas-scálaithe a chur leis an gconradh ZK-rollup. + +Is féidir le ZK-rollups eile ról an oibreora a rothlú trí úsáid a bhaint as tacar bailíochtaithe [cruthúnas-gill](/developers/docs/consensus-mechanisms/pos/). Cuireann oibreoirí ionchasacha cistí i dtaisce sa chonradh uas-scálaithe, agus bíonn tionchar ag méid gach gill ar na seansanna atá ag na gealltóirí go roghnófar iad chun an chéad bhaisc uas-scálaithe eile a tháirgeadh. Is féidir geall an oibreora a laghdú má ghníomhaíonn sé go mailíseach, rud a spreagann iad chun bloic bhailí a phostáil. + +#### Conas a fhoilsíonn ZK-rollups sonraí idirbheart ar Ethereum {#how-zk-rollups-publish-transaction-data-on-ethereum} + +Mar a mhínítear, foilsítear sonraí idirbhirt ar Ethereum mar `calldata`. Is réimse sonraí é `calldata` i gconradh cliste a úsáidtear chun argóintí a chur ar aghaidh chuig feidhm agus iompraíonn sé mar an gcéanna le [cuimhne](/developers/docs/smart-contracts/anatomy/#memory). Cé nach bhfuil `calldata` stóráilte mar chuid de stát Ethereum, leanann sé ar ar slabhra mar chuid de [logaí staire](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html?highlight=memory#logs) de chuid slabhra Ethereum. Ní chuireann `calldata` isteach ar staid Ethereum, rud a fhágann gur bealach saor é chun sonraí a stóráil ar slabhra. + +Is minic a shainaithníonn an eochairfhocal `calldata` an modh conartha cliste atá á ghlaoch ag idirbheart agus coinníonn sé ionchuir chuig an modh i bhfoirm seicheamh treallach beart. Úsáideann ZK-rollups `calldata` chun sonraí idirbheart comhbhrúite a fhoilsiú ar slabhra; go simplí cuireann an t-oibreoir uas-scálú baisc nua leis trí ghlaoch ar an bhfeidhm riachtanach sa chonradh uas-scálaithe agus seachadann sé na sonraí comhbhrúite mar argóintí feidhme. Cuidíonn sé seo le costais a laghdú d'úsáideoirí ós rud é go dtéann cuid mhór de na táillí uas-scálaithe chun sonraí idirbheart a stóráil ar slabhra. + +### Gealltanais staide {#state-commitments} + +Léirítear staid an ZK-rollup, lena n-áirítear cuntais agus iarmhéideanna L2, mar [Crann Merkle](/whitepaper/#merkle-trees). Stóráiltear hais cripteagrafach de fhréamh crann Merkle (fréimhe Merkle) sa chonradh ar slabhra, rud a ligeann don phrótacal uas-scálaithe athruithe ar staid an ZK-rollup a rianú. + +Aistríonn an t-uas-scálú go staid nua tar éis sraith nua idirbheart a chur i gcrích. Ceanglaítear ar an oibreoir a chuir tús leis an aistriú staide fréamh stáit nua a ríomh agus a chur faoi bhráid an chonartha ar slabhra. Má dhéantar an cruthúnas bailíochta a bhaineann leis an mbaisc a fhíordheimhniú leis an gconradh fíoraithe, déantar fréamh staid chanónach an ZK-rollup de fhréamh nua Merkle. + +Chomh maith le fréamhacha staide a ríomh, cruthaíonn an t-oibreoir ZK-rollup baiscfhréamh - fréamh crann Merkle a chuimsíonn gach idirbheart i mbaisc. Nuair a chuirtear baisc nua isteach, stórálann an conradh uas-scálaithe an fhréamh bhaisc, rud a ligeann d'úsáideoirí a chruthú go raibh idirbheart (m.sh. iarratas ar aistarraingt) san áireamh sa bhaisc. Beidh ar úsáideoirí sonraí idirbhirt a sholáthar, an fhréamh bhaisc, agus [ Cruthúnas Merkle](/developers/tutorials/merkle-proofs-for-offline-data-integrity/) a thaispeánann an chonair chuimsithe. + +### Cruthúnais bhailíochta {#validity-proofs} + +Tá an fhréamh nua staide a chuireann an t-oibreoir ZK-rollup isteach sa chonradh L1 mar thoradh ar nuashonruithe ar staid an uas-scálaithe. Abair go seolann Alice 10 gcomhartha chuig Bob, ní dhéanann an t-oibreoir ach iarmhéid Alice a laghdú faoi 10 agus méadaíonn sé iarmhéid Bob faoi 10. Ansin déanann an t-oibreoir haiseáil ar na sonraí cuntais nuashonraithe, atógann sé crann Merkle an uas-scálaithe, agus cuireann sé an fhréamh Merkle nua faoi bhráid an chonartha ar slabhra. + +Ach ní ghlacfaidh an conradh uas-scálaithe go huathoibríoch leis an ngealltanas molta staide go dtí go gcruthóidh an t-oibreoir an fhréamh Merkle nua mar thoradh ar nuashonruithe cearta ar staid an uas-scálaithe. Déanann an t-oibreoir ZK-rollup é seo trí chruthúnas bailíochta a tháirgeadh, gealltanas cripteagrafach gonta a fhíoraíonn cruinneas na n-idirbheart baisce. + +Ligeann cruthúnais bhailíochta do pháirtithe cruinneas ráitis a chruthú gan an ráiteas féin a nochtadh—dá bhrí sin, tugtar cruthúnais dhífhianaise orthu freisin. Úsáideann ZK-rollups cruthúnais bailíochta chun cruinneas na n-aistrithe staide as slabhra a dhearbhú gan idirbhearta a ath-rith ar Ethereum. Is féidir na cruthúnais seo a dhéanamh i bhfoirm [ZK-SNARK](https://arxiv.org/abs/2202.06877) (Argóint Ghonta Neamh-Idirghníomhach Dhífhianaise an Eolais) nó [ZK-STARK](https://eprint.iacr.org/2018/046) (Argóint Faisnéise Trédhearcach Inscálaithe Dhífhianaise). + +Cuidíonn an dá SNARKs agus STARKs fianú sláine ríomh as slabhra i ZK-rollups, cé go bhfuil gnéithe sainiúla ag gach cineál cruthúnais. + +**ZK-SNARcanna** + +Chun go n-oibreoidh prótacal ZK-SNARK, ní mór Teaghrán Tagartha Coiteann (CRS) a chruthú: soláthraíonn an CRS paraiméadair phoiblí chun cruthúnais bhailíochta a chruthú agus a fhíorú. Braitheann slándáil an chórais chruthúnais ar shocrú CRS; má thagann faisnéis a úsáidtear chun paraiméadair phoiblí a chruthú i seilbh ghníomhaithe mailíseacha féadfaidh siad a bheith in ann cruthúnais bailíochta bréagacha a ghiniúint. + +Déanann roinnt ZK-rollups iarracht an fhadhb seo a réiteach trí úsáid a bhaint as [searmanas ríomh ilpháirtí (MPC)](https://zkproof.org/2021/06/30/setup-ceremonies/amp/), a bhaineann le daoine aonair iontaofa, chun paraiméadair phoiblí a ghiniúint don chiorcad ZK-SNARK. Cuireann gach páirtí roinnt randamacht (ar a dtugtar "dramhaíl thocsaineach") le tógáil an CRS, a chaithfidh siad a scriosadh láithreach. + +Úsáidtear socruithe iontaofa toisc go méadaíonn siad slándáil an tsocraithe CRS. Chomh fada agus a scriosann rannpháirtí macánta amháin a n-ionchur, tá slándáil an chórais ZK-SNARK ráthaithe. Mar sin féin, éilíonn an cur chuige seo muinín a bheith acu siúd atá i gceist as a randamacht shamplaithe a scriosadh agus gan an bonn a bhaint de ráthaíochtaí slándála an chórais. + +Gan trácht ar bhoinn tuisceana iontaobhais, tá tóir ar ZK-SNARKanna mar gheall ar a méideanna beaga cruthúnais agus a bhfíorú tairisigh-ama. Toisc gurb ionann fíorú cruthúnais ar L1 agus an costas níos mó a bhaineann le ZK-rollup a oibriú, úsáideann L2anna ZK-SNARKanna chun cruthúnais a ghiniúint ar féidir iad a fhíorú go tapa agus go saor ar Mainnet. + +**ZK-STARKanna** + +Cosúil le ZK-SNARKanna, cruthaíonn ZK-STARKanna bailíocht ríomh as slabhra gan na hionchuir a nochtadh. Mar sin féin, meastar gur feabhas iad ZK-ZK-STARKanna ar ZK-ZK-STARKanna mar gheall ar a n-inscálaitheacht agus a dtrédhearcacht. + +Tá ZK-STARKanna ‘trédhearcach’, mar is féidir leo oibriú gan socrú Teaghrán Tagartha Coiteann (CRS) iontaofa. Ina áit sin, bíonn ZK-STARKanna ag brath ar randamacht atá infhíoraithe go poiblí chun paraiméadair a shocrú chun cruthúnais a ghiniúint agus a fhíorú. + +Soláthraíonn ZK-STARKanna níos mó inscálaitheachta freisin toisc go méadaíonn an t-am a theastaíonn chun cruthúnais bhailíochta a chruthú _go cuasailíneach_ i gcoibhéis le castacht na bunríomhaireachta. Le ZK-STARKanna, déantar amanna cruthaithe agus fíoraithe a scálú _go líneach_ i ndáil le méid na ríomha bunúsacha. Ciallaíonn sé seo go dteastaíonn níos lú ama ó ZK-STARKanna ná mar a bhíonn ó ZK-SNARKanna chun a chruthú agus a fhíorú nuair a bhíonn tacair shonraí móra i gceist, rud a fhágann go bhfuil siad úsáideach d’fheidhmchláir ard-toirte. + +Tá ZK-STARKanna slán freisin i gcoinne ríomhairí chandamacha, agus creidtear go forleathan go bhfuil Cripteagrafaíocht Cuar Eiliptic (ECC) a úsáidtear i ZK-SNARKanna so-ghabhálach i leith ionsaithe ríomhaireachta chandamacha. Is é an míbhuntáiste a bhaineann le ZK-STARKanna ná go dtáirgeann siad méideanna cruthúnais níos mó, atá níos costasaí a fhíorú ar Ethereum. + +#### Conas a oibríonn cruthúnais bailíochta i ZK-rollups? {#validity-proofs-in-zk-rollups} + +##### Giniúint chruthúnais + +Sula nglacfaidh sé le hidirbhearta, déanfaidh an t-oibreoir na gnáthsheiceálacha. Áirítear leis seo a dhearbhú: + +- Tá cuntais an tseoltóra agus an ghlacadóra mar chuid den chrann staide. +- Go bhfuil go leor cistí ag an seoltóir chun an t-idirbheart a phróiseáil. +- Go bhfuil an t-idirbheart ceart agus go meaitseálann sé eochair phoiblí an tseoltóra ar an uas-scálú. +- Go bhfuil nonce an tseoltóra ceart, srl. + +Nuair a bhíonn dóthain idirbheart ag an nód ZK-rollup, comhiomlánaíonn sé iad ina bhaisc agus tiomsaíonn sé ionchuir chun go dtiomsóidh an ciorcad cruthúnais i ZK-cruthúnais gonta. Áirítear leis seo: + +- Fréamh crann Merkle a chuimsíonn na hidirbhearta go léir sa bhaisc. +- Cruthuithe Merkle maidir le hidirbhearta chun cuimsiú sa bhaisc a chruthú. +- Tá cruthúnais Merkle do gach péire seoltóir-glacadóir in idirbhearta chun na cuntais sin a chruthú mar chuid de chrann staide an uas-scálaithe. +- Sraith fréamhacha stáit idirmheánacha, a dhíorthaítear ón bhfréamh staide a nuashonrú tar éis nuashonruithe staide a chur i bhfeidhm do gach idirbheart (i.e. cuntais seoltóra a laghdú agus cuntais glacadóra a mhéadú). + +Ríomhann an ciorcad cruthaithe an cruthúnas bailíochta trí "lúb" thar gach idirbheart agus déanann sé na seiceálacha céanna a rinne an t-oibreoir roimh phróiseáil an idirbhirt. Ar an gcéad dul síos, fíoraíonn sé go bhfuil cuntas an tseoltóra mar chuid den fhréamh staide atá ann cheana ag baint úsáide as an cruthúnas Merkle a sholáthraítear. Ansin laghdaíonn sé iarmhéid an tseoltóra, méadaíonn sé a nonce, haiseálann na sonraí cuntais nuashonraithe agus comhcheanglaíonn sé le cruthúnas Merkle chun fréamh Merkle nua a ghiniúint. + +Léiríonn an fhréamh Merkle seo an t-aon athrú ar staid an ZK-rollup: athrú ar chothromaíocht agus nonce an tseoltóra. Tá sé seo indéanta toisc go n-úsáidtear an cruthúnas Merkle a úsáideadh chun a chruthú go bhfuil an cuntas ann chun an fhréamh staide nua a dhíorthú. + +Déanann an ciorcad cruthaithe an próiseas céanna ar chuntas an ghlacadóra. Seiceálann sé an bhfuil cuntas an ghlacadóra ann faoi fhréamh na staide idirmheánaí (ag baint úsáide as cruthúnas Merkle), méadaíonn sé a n-iarmhéid, ath-haiseálann sonraí an chuntais agus nascann sé le cruthúnas Merkle chun fréamh staide nua a ghiniúint. + +Athdhéantar an próiseas do gach idirbheart; cruthaíonn gach "lúb" fréamh staide nua ó chuntas an tseoltóra a nuashonrú agus fréamh nua ina dhiaidh sin ó chuntas an ghlacadóra a nuashonrú. Mar a mhínítear, is ionann gach nuashonrú ar an bhfréamh staide agus cuid amháin d'athrú crann staide an uas-scálaithe. + +Déanann an ciorcad ZK-proving atriail thar an bhaisc idirbheart ar fad, ag fíorú an t-ord nuashonruithe a eascraíonn i bhfréamh staide deiridh tar éis an t-idirbheart deireanach a rith. Is í an fhréamh dheireanach Merkle a ríomhtar an fhréamh staide chanónach is nuaí den ZK-rollup. + +##### Fíorú cruthúnais + +Tar éis don chiorcad cruthaithe cruinneas na nuashonruithe staide a fhíorú, cuireann an t-oibreoir L2 an cruthúnas bailíochta ríofa chuig an gconradh fíoraitheora ar L1. Fíoraíonn ciorcad fíoraithe an chonartha bailíocht an chruthúnais agus seiceálann sé freisin ionchuir phoiblí atá mar chuid den chruthúnas: + +- **Fréamh réamhstaide**: Seanfhréamh staide an ZK-rollup (i.e. sular cuireadh na hidirbhearta baisce i gcrích), ag léiriú staid bhailí deiridh an tslabhra L2. + +- **Fréamh iar-staide**: Fréamh staide nua an ZK-rollup (i.e. tar éis na hidirbhearta baisce a chur i gcrích), a léiríonn an staid is nuaí sa slabhra L2. Is é an fhréamh iar-staide an fhréamh dheiridh a dhíorthaítear tar éis nuashonruithe staide a chur i bhfeidhm sa chiorcad cruthaithe. + +- **Fréamh an bhaisc**: Fréamh Merkle na baisce, a dhíorthaítear trí _fhréamhú Merkle_ a dhéanamh ar na hidirbhearta sa bhaisc agus fréamh an chrainn a haiseáil. + +- **Ionchuir Idirbheart**: Sonraí a bhaineann leis na hidirbhearta a rinneadh mar chuid den bhaisc a cuireadh isteach. + +Má shásaíonn an cruthúnas an ciorcad (i.e., tá sé bailí), ciallaíonn sé go bhfuil seicheamh idirbheart bailí ann a aistríonn an t-uas-scálú ón staid roimhe sin (méarloirg go cripteagrafach ag an bhfréamh réamhstaide) go staid nua (méarloirg go cripteach ag an bhfréamh iar-staide). Má mheaitseálann an fhréamh réamh-staide an fhréamh atá stóráilte sa chonradh uas-scálaithe, agus go bhfuil an cruthúnas bailí, tógann an conradh uas-scálaithe an fhréamh iar-staide ón gcruthúnas agus nuashonraíonn sé a chrann staide chun staid athraithe an uas-scálaithe a léiriú. + +### Iontrálacha agus scoir {#entries-and-exits} + +Téann úsáideoirí isteach sa ZK-rollup trí chomharthaí a thaisceadh i gconradh an uas-scálaithe a imscartar ar an slabhra L1. Tá an t-idirbheart seo curtha i scuaine toisc nach féidir ach le hoibreoirí idirbhearta a chur isteach sa chonradh uas-scálaithe. + +Má thosaíonn an scuaine taisce atá ar feitheamh ag líonadh suas, tógfaidh an t-oibreoir ZK-rollup na hidirbhearta taisce agus cuirfidh sé faoi bhráid an chonartha uas-scálaithe iad. Nuair a bheidh cistí an úsáideora san uas-scálú, is féidir leo tosú ar idirbhearta trí idirbhearta a sheoladh chuig an oibreoir lena bpróiseáil. Is féidir le húsáideoirí iarmhéideanna ar an uas-scálú a fhíorú trí shonraí a gcuntas a haiseáil, an hais a sheoladh chuig an gconradh uas-scálaithe, agus cruthúnas Merkle a sholáthar chun a fhíorú i gcoinne an fhréamh staide reatha. + +Tá sé éasca tarraingt siar ó ZK-rollup go L1. Cuireann an t-úsáideoir tús leis an idirbheart scoir trína gcuid sócmhainní a sheoladh ar an uas-scálú chuig cuntas sonraithe le dó. Má chuimsíonn an t-oibreoir an t-idirbheart sa chéad bhaisc eile, is féidir leis an úsáideoir iarratas ar aistarraingt a chur isteach sa chonradh ar slabhra. Áireofar na nithe seo a leanas san iarratas ar aistarraingt: + +- Cruthúnas Merkle a chruthaíonn cuimsiú idirbheart an úsáideora chuig an gcuntas sruthán i mbaisc idirbhirt + +- Sonraí idirbhirt + +- Fréamh bhaisc + +- Seoladh L1 chun cistí taiscthe a fháil + +Haiseálann an conradh uas-scálaithe na sonraí idirbhirt, seiceálann an bhfuil an fhréamh bhaisc ann, agus úsáideann an cruthúnas Merkle le seiceáil an bhfuil an hais idirbheart mar chuid den fhréamh bhaisc. Ina dhiaidh sin, déanann an conradh an t-idirbheart scoir agus seolann sé cistí chuig an seoladh roghnaithe ag an úsáideoir ar L1. + +## Comhoiriúnacht ZK-rollups agus EVM {#zk-rollups-and-evm-compatibility} + +Murab ionann is uas-scáluithe dóchasacha, níl uas-scáluithe ZK-rollups éasca a chomhoiriúnú le [Meaisín Fíorúil Ethereum (EVM)](/developers/docs/evm/). Tá sé níos deacra agus níos déine ó thaobh acmhainní de ríomh EVM ilchuspóireach a chruthú i gciorcaid ná ríomhanna simplí a chruthú (cosúil leis an aistriú comhartha a cuireadh síos cheana). + +Mar sin féin, tá [dul chun cinn i dteicneolaíocht dhífhianaise](https://hackmd.io/@yezhang/S1_KMMbGt#Why-possible-now) ag spreagadh spéise athnuaite i ríomh EVM a fhilleadh i gcruthúnas dífhianaise. Tá na hiarrachtaí seo dírithe ar chur chun feidhme EVM (zkEVM) ar dhífhianaise a chruthú a bheidh in ann cruinneas rith an chláir a fhíorú go héifeachtach. Déanann zkEVM athchruthú ar opcodes EVM atá ann cheana chun ciorcaid a chruthú/a fhíorú, rud a cheadaíonn conarthaí cliste a rith. + +Cosúil leis an EVM, déantar aistrithe zkEVM idir staid tar éis ríomh a dhéanamh ar roinnt ionchuir. Is é an difríocht ná go gcruthaíonn an zkEVM cruthúnais dhífhianaise freisin chun cruinneas gach céime i rith an chláir a fhíorú. D’fhéadfadh cruthúnais bhailíochta cruinneas na n-oibríochtaí a dhéanann teagmháil le staid an VM (cuimhne, cruachta, stóráil) agus an ríomh féin a fhíorú (i.e., ar ghlaoigh an oibríocht ar na opcodes cearta agus ar ritheadh ​​​​iad i gceart?). + +Táthar ag súil go gcabhróidh tabhairt isteach ZK-rollups atá comhoiriúnach le EVM le forbróirí chun ráthaíochtaí inscálaithe agus slándála cruthúnais dhífhianaise a ghiaráil. Níos tábhachtaí fós, ciallaíonn comhoiriúnacht le bonneagar dúchasach Ethereum gur féidir le forbróirí dapps atá neamhdhíobhálach don ZK a thógáil ag baint úsáide as uirlisí agus teangacha eolacha (agus cath-thástáil). + +## Conas a oibríonn táillí ZK-rollup? {#how-do-zk-rollup-fees-work} + +Tá an méid a íocann úsáideoirí as idirbhearta ar ZK-rollups ag brath ar an táille gháis, díreach mar atá ar Ethereum Mainnet. Mar sin féin, oibríonn táillí gáis ar bhealach difriúil ar L2 agus bíonn tionchar ag na costais seo a leanas orthu: + +1. ** Scríobh Staide**: Tá costas seasta ar scríobh chuig staid Ethereum (i.e. idirbheart a chur isteach ar bhlocshlabhra Ethereum). Laghdaíonn ZK-rollups an costas seo trí idirbhearta a bhaisceadh agus costais sheasta a scaipeadh ar úsáideoirí iolracha. + +2. **Foilsiú sonraí**: Foilsíonn ZK-rollups sonraí staide do gach idirbheart chuig Ethereum mar `calldata`. Tá costais `calldata` á rialú faoi láthair ag [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), a shonraíonn costas 16 ghás le haghaidh beart neamh-nialasach agus 4 ghás le haghaidh beart nialasach de `calldata`, faoi seach. Bíonn tionchar ag an gcostas a íoctar ar gach idirbheart ar an méid `calldata` is gá a phostáil ar slabhra dó. + +3. **Táillí oibritheora L2**: Seo é an méid a íoctar leis an oibreoir uas-scálaithe mar chúiteamh ar chostais ríomhaireachtúla a thabhaítear in idirbhearta próiseála, cosúil le [táillí tosaíochta (leideanna) na hidirbhearta](/developers/docs/gas/#how-are-gas-fees-calculated) ar Ethereum Príomhlíonra. + +4. **Giniúint cruthúnais agus fíorú**: Ní mór d'oibreoirí ZK-rollup cruthúnais bailíochta a tháirgeadh le haghaidh baisceanna idirbheart, atá dian ar acmhainní. Cosnaíonn sé gás (~ 500,000 gás) freisin nuair a dhéantar cruthúnais dhífhianaise a fhíorú ar Príomhlíonra. + +Seachas idirbhearta baisce, laghdaíonn ZK-rollups táillí d'úsáideoirí trí shonraí idirbhirt a chomhbhrú. Is féidir leat [forbhreathnú fíor-ama a fheiceáil](https://l2fees.info/) ar an méid a chosnaíonn sé úsáid a bhaint as Ethereum ZK-rollups. + +## Conas a scálaíonn ZK-rollups Ethereum? {#scaling-ethereum-with-zk-rollups} + +### Comhbhrú sonraí idirbhirt {#transaction-data-compression} + +Leathnaíonn ZK-rollups an tréchur ar bhunchiseal Ethereum trí ríomh a bhaint as slabhra, ach tagann an fíor-bhreisiú le haghaidh scálaithe ó chomhbhrú sonraí idirbhirt. Cuireann [méid an bhloic](/developers/docs/blocks/#block-size) teorainn leis na sonraí is féidir le gach bloc a choinneáil agus, dá réir sin, líon na n-idirbheart a phróiseáiltear in aghaidh an bhloic. Trí shonraí a bhaineann le hidirbhearta a chomhbhrú, méadaíonn ZK-rollups go suntasach líon na n-idirbheart a phróiseáiltear in aghaidh an bhloic. + +Is féidir le ZK-rollups sonraí idirbhirt a chomhbhrú níos fearr ná uas-scáluithe dóchasacha ós rud é nach gá dóibh na sonraí go léir a theastaíonn chun gach idirbheart a bhailíochtú a phostáil. Ní bhíonn orthu ach na sonraí íosta atá riachtanach a phostáil chun staid na gcuntas agus na n-iarmhéideanna is déanaí a atógáil ar an uas-scálú. + +### Cruthúnas athchúrsach {#recursive-proofs} + +Buntáiste a bhaineann le cruthúnais dhífhianasie ná go mbíonn cruthúnais in ann cruthúnais eile a fhíorú. Mar shampla, is féidir le ZK-SNARK amháin ZK-SNARKanna eile a fhíorú. Tugtar cruthúnais athchúrsacha ar a leithéid de "cruthúnas-de-cruthúnais" agus méadaítear go mór an tréchur ar ZK-rollups. + +Faoi láthair, gintear cruthúnais bhailíochta ar bhonn bloc ar bhloc agus cuirtear isteach sa chonradh L1 iad lena bhfíorú. Mar sin féin, cuireann fíorú cruthúnais bloc aonair teorainn leis an tréchur is féidir le ZK-rollups a bhaint amach ós rud é nach féidir ach bloc amháin a thabhairt chun críche nuair a chuireann an t-oibreoir cruthúnas isteach. + +De bharr cruthúnais athfhillteacha, áfach, is féidir roinnt bloc a thabhairt chun críche le cruthúnas bailíochta amháin. Tá sé seo amhlaidh toisc go gcomhiomlánaíonn an ciorcad cruthaithe go hathchúrsach cruthúnais iolracha go dtí go gcruthaítear cruthúnas deiridh amháin. Cuireann an t-oibreoir L2 an cruthúnas athfhillteach seo isteach, agus má ghlacann an conradh leis, cuirfear na bloic ábhartha ar fad i gcrích láithreach. Le cruthúnais athchúrsacha, méadaíonn líon na n-idirbheart ZK-rollup is féidir a thabhairt chun críche ar Ethereum ag eatraimh. + +### Buntáistí agus míbhuntáistí ZK-rollups {#zk-rollups-pros-and-cons} + +| Buntáistí | Míbhuntáistí | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Cinntíonn cruthúnais bhailíochta cruinneas na n-idirbheart as slabhra agus cuireann siad cosc ​​ar oibreoirí aistrithe neamhbhailí staide a dhéanamh. | Is mór an costas a bhaineann le cruthúnais bhailíochta a ríomh agus a fhíorú agus féadann sé táillí a mhéadú d’úsáideoirí uas-scáluithe. | +| Tairgeann sé críochnaitheacht idirbheartaíochta níos tapúla de réir mar a fhaomhtar nuashonruithe staide a luaithe a fhíoraítear cruthúnais bailíochta ar L1. | Tá sé deacair ZK-rollups atá comhoiriúnach le EVM a thógáil mar gheall ar chastacht na teicneolaíochta dífhianaise. | +| Braitheann sé ar mheicníochtaí cripteagrafacha gan iontaoibh le haghaidh slándála, ní ar ionracas na ngníomhaithe dreasachta mar atá le [rollup dóchasach](/developers/docs/scaling/optimistic-rollups/#optimistic-pros-and-cons). | Teastaíonn crua-earraí speisialaithe chun cruthúnais bhailíochta a tháirgeadh, rud a d'fhéadfadh rialú láraithe ar an slabhra a spreagadh ag roinnt páirtithe. | +| Stórálann sé na sonraí is gá chun an staid as slabhra a aisghabháil ar L1, a ráthaíonn slándáil, frithsheasmhacht cinsireachta agus dílárú. | Is féidir le hoibreoirí láraithe (seicheamhóirí) tionchar a imirt ar ordú na n-idirbheart. | +| Baineann úsáideoirí leas as éifeachtúlacht chaipitil níos fearr agus is féidir leo cistí a tharraingt siar ó L2 gan mhoill. | D’fhéadfadh ceanglais chrua-earraí líon na rannpháirtithe a laghdú a fhéadfaidh iallach a chur ar an slabhra dul chun cinn a dhéanamh, rud a mhéadódh an baol go ndéanfaidh oibreoirí mailíseacha staid an uas-scálaithe a reo agus go ndéanfar cinsireacht ar úsáideoirí. | +| Níl sé ag brath ar thoimhdí beochta agus ní gá d'úsáideoirí an slabhra a bhailíochtú chun a gcuid cistí a chosaint. | Éilíonn roinnt córas cruthaithe (m.sh., ZK-SNARK) socrú iontaofa a d’fhéadfadh, dá ndéanfaí mí-láimhseáil orthu, samhail slándála ZK-rollup a chur i mbaol. | +| Is féidir le comhbhrú sonraí níos fearr cuidiú leis na costais a bhaineann le foilsiú `calldata` ar Ethereum a laghdú agus táillí uas-scálaithe d'úsáideoirí a íoslaghdú. | | + +### Míniú amhairc ar ZK-rollups {#zk-video} + +Féach ar Finematics ag míniú ZK-rollups: + + + + +## Cé atá ag obair ar zkEVM? {#zkevm-projects} + +I measc na dtionscadal atá ag obair ar zkEVMs tá: + +- **[zkEVM](https://github.com/privacy-scaling-explorations/zkevm-specs)** - _ Is tionscadal é zkEVM atá maoinithe ag Fondúireacht Ethereum chun ZK-rollup atá comhoiriúnach le EVM a fhorbairt agus meicníocht chun bailíocht a chruthú le haghaidh bloic Ethereum._ + +- Is éard atá i **[Polygon zkEVM](https://polygon.technology/solutions/polygon-zkevm)** - _ ná ZK Rollup díláraithe ar Príomhlíonra Ethereum ag obair ar Meaisín Fíorúil Ethereum dífhianaise (zkEVM) a dhéanann idirbhearta Ethereum ar bhealach trédhearcach, lena n-áirítear conarthaí cliste a bhfuil bailíochtú dífhianaise orthu._ + +- **[Scroll](https://scroll.io/blog/zkEVM)** - _Is cuideachta theicneolaíocht-tiomáinte é Scroll a oibríonn ar Réiteach Sraith 2 ZkEVM dúchais a thógáil le haghaidh Ethereum._ + +- **[Taiko](https://taiko.xyz)** - _Is é Taiko ZK-rollup díláraithe, coibhéiseach Ethereum (a [Cineál 1 ZK- EVM](https://vitalik.eth.limo/general/2022/08/04/zkevm.html))._ + +- **[ZKsync](https://docs.zksync.io/)** - _ Is ZK Rollup atá comhoiriúnach le EVM é ZKsync Era arna thógáil ag Matter Labs, arna chumhachtú ag a zkEVM féin._ + +- **[Starknet](https://starkware.co/starknet/)** - _Is réiteach scálaithe ciseal 2 atá comhoiriúnach le EVM é StarkNet arna thógáil ag StarkWare._ + +- **[Morph](https://www.morphl2.io/)** - _ Is réiteach scálú uas-scálaithe hibrideach é morph a úsáideann zk-proof chun aghaidh a thabhairt ar shaincheist dhúshlán staide Sraith 2._ + +## Tuilleadh léitheoireachta maidir le léamh ZK-rollups {#further-reading-on-zk-rollups} + +- [Cad is Uas-scálú Dífhianaise ann?](https://coinmarketcap.com/alexandria/glossary/zero-knowledge-rollups) +- [Cad iad uas-scáluithe dífhianaise?](https://alchemy.com/blog/zero-knowledge-rollups) +- [Treoir Phraiticiúil Maidir le hUas-scáluithe Ethereum](https://research.2077.xyz/the-practical-guide-to-ethereum-rollups) +- [STARKs vs SNARKs](https://consensys.net/blog/blockchain-explained/zero-knowledge-proofs-starks-vs-snarks/) +- [Cad is zkEVM ann?](https://www.alchemy.com/overviews/zkevm) +- [Cineálacha ZK-EVM: Ethereum-coibhéis, EVM-coibhéiseach, Cineál 1, Cineál 4, agus dordfhocail criptea eile](https://taiko.mirror.xyz/j6KgY8zbGTlTnHRFGW6ZLVPuT0IV0_KmgowgStpA0K4) +- [Cur i láthair zkEVM](https://hackmd.io/@yezhang/S1_KMMbGt) +- [Cad iad L2anna ZK-EVM?](https://linea.mirror.xyz/qD18IaQ4BROn_Y40EBMTUTdJHYghUtdECscSWyMvm8M) +- [Acmhainní iontacha-zkEVM](https://github.com/LuozhuZhang/awesome-zkevm) +- [ZK-SNARKanna faoin gcochall](https://vitalik.eth.limo/general/2017/02/01/zk_snarks.html) +- [Conas atá SNARKs indéanta?](https://vitalik.eth.limo/general/2021/01/26/snarks.html) diff --git a/public/content/translations/ga/developers/docs/smart-contracts/security/index.md b/public/content/translations/ga/developers/docs/smart-contracts/security/index.md index e5e474fcf57..a3a9ff6303a 100644 --- a/public/content/translations/ga/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/ga/developers/docs/smart-contracts/security/index.md @@ -101,7 +101,7 @@ Is cur chuige eile é clár deolchairí fabht a bhunú chun athbhreithnithe cód Nuair a úsáidtear i gceart iad, tugann deolchairí fabhtanna dreasacht do bhaill an phobail haiceála chun do chód a iniúchadh le haghaidh lochtanna criticiúla. Sampla ón bhfíorshaol is ea an “fabht airgid gan teorainn” a ligfeadh d’ionsaitheoir méid neamhtheoranta éitear a chruthú ar [Soirbhíochas](https://www.optimism.io/), prótacal [Ciseal 2](/layer-2/) a ritheann ar Ethereum. Ar ámharaí an tsaoil, d’aimsigh haiceálaí bán [an locht](https://www.saurik.com/optimism.html) agus chuir sé in iúl don fhoireann é, [agus thuill sé íocaíocht mhór ar a shon](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). -Straitéis úsáideach is ea íocaíocht amach clár deolchaire fabhtanna a shocrú i gcomhréir le méid na gcistí atá i gceist. Déantar cur síos air mar [deolchaire fabht scálaithe](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7) dreasachtaí airgeadais do dhaoine aonair chun leochaileachtaí a nochtadh go freagrach in ionad iad a shaothrú. +Straitéis úsáideach is ea íocaíocht amach clár deolchaire fabhtanna a shocrú i gcomhréir le méid na gcistí atá i gceist. Déantar cur síos air mar “[deolchaire fabht scálaithe](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7) dreasachtaí airgeadais do dhaoine aonair chun leochaileachtaí a nochtadh go freagrach in ionad iad a shaothrú. ### 5. Lean na cleachtais is fearr le linn forbairt conarthaí cliste {#follow-smart-contract-development-best-practices} @@ -501,7 +501,7 @@ Má tá sé ar intinn agat ceist a chur ar oracal ar slabhra maidir le praghsann - **[OpenZeppelin](https://www.openzeppelin.com/security-audits)** - _ Cuideachta conartha cliste slándála a sholáthraíonn iniúchtaí slándála ar chórais dáilte._ -- **[Fíorú Am Reatha](https://runtimeverification.com/)** - _Cuideachta slándála a dhéanann sainchúram de shamhaltú foirmiúil agus fíorú conarthaí cliste._ +- **[Fíorú Am Reatha](https://runtimeverification.com/)** - _ Cuideachta slándála a dhéanann sainchúram de shamhaltú foirmiúil agus fíorú conarthaí cliste._ - **[Hacken](https://hacken.io)** - _ Iniúchóir cibearshlándála Web3 le cur chuige 360-céim maidir le slándáil blocshlabhra. _ diff --git a/public/content/translations/ga/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/ga/developers/docs/standards/tokens/erc-1155/index.md index 8195bb34c10..ee30fcde938 100644 --- a/public/content/translations/ga/developers/docs/standards/tokens/erc-1155/index.md +++ b/public/content/translations/ga/developers/docs/standards/tokens/erc-1155/index.md @@ -141,6 +141,6 @@ _Nóta_: Tá gach feidhm bhaisc lena n-áirítear an crúca ann freisin mar leag ## Tuilleadh léitheoireachta {#further-reading} - [EIP-1155: Caighdeán Ilchomhartha](https://eips.ethereum.org/EIPS/eip-1155) -- [ERC-1155: Doiciméid Openzeppelin](https://docs.openzeppelin.com/contracts/3.x/erc1155) +- [ERC-1155: Doiciméid Openzeppelin](https://docs.openzeppelin.com/contracts/5.x/erc1155) - [ERC-1155: GitHub Stóras](https://github.com/enjin/erc-1155) - [Ailceimic NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/public/content/translations/ga/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/ga/developers/docs/standards/tokens/erc-4626/index.md index 08f16dc6ac6..438ceb1234d 100644 --- a/public/content/translations/ga/developers/docs/standards/tokens/erc-4626/index.md +++ b/public/content/translations/ga/developers/docs/standards/tokens/erc-4626/index.md @@ -158,7 +158,7 @@ Tugann an fheidhm seo ar ais uasmhéid na scaireanna is féidir a fhuascailt ón function previewRedeem(uint256 shares) public view returns (uint256 assets) ``` -Ligeann an fheidhm seo d'úsáideoirí insamhlú a dhéanamh ar éifeachtaí a bhfuascailte ag an mbloc reatha. +Ligeann an fheidhm seo d’úsáideoirí insamhlú a dhéanamh ar éifeachtaí a bhfuascailte ag an mbloc reatha. #### redeem {#redeem} @@ -203,7 +203,7 @@ event Deposit( ) ``` -Sa chás gurb é `seoltóir` an t-úsáideoir a mhalartóidh `sócmhainní` le haghaidh `scaireanna`, agus a d'aistrigh na `scaireanna` sin chuig `úinéir`. +Sa chás gurb é `seoltóir` an t-úsáideoir a mhalartóidh `sócmhainní` le haghaidh `scaireanna`, agus a d’aistrigh na `scaireanna` sin chuig `úinéir`. #### Imeacht Aistarraingthe diff --git a/public/content/translations/ga/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/ga/guides/how-to-create-an-ethereum-account/index.md index 69b569835a9..9eeae716a7d 100644 --- a/public/content/translations/ga/guides/how-to-create-an-ethereum-account/index.md +++ b/public/content/translations/ga/guides/how-to-create-an-ethereum-account/index.md @@ -1,6 +1,6 @@ --- title: Conas cuntas Ethereum a "chruthú" -description: Treoir céim ar chéim ar chruthú cuntas Ethereum ag baint úsáide as sparán. +description: Treoir céim ar chéim maidir le cuntas Ethereum a chruthú ag baint úsáide as sparán. lang: ga --- diff --git a/public/content/translations/ga/payments/index.md b/public/content/translations/ga/payments/index.md index c97696dda56..f47e3fe93a0 100644 --- a/public/content/translations/ga/payments/index.md +++ b/public/content/translations/ga/payments/index.md @@ -1,31 +1,31 @@ --- title: Íocaíochtaí Ethereum -metaTitle: Payments on Ethereum -description: An overview of payments on Ethereum +metaTitle: Íocaíochtaí ar Ethereum +description: Forbhreathnú ar íocaíochtaí ar Ethereum lang: ga template: use-cases emoji: ":frame_with_picture:" sidebarDepth: 2 image: /images/impact_transparent.png -alt: An Eth logo being displayed along with giving hands. -summaryPoint1: A world where money moves as freely as information -summaryPoint2: Open and global, enabling borderless transactions for everyone -summaryPoint3: Payments received within a minute +alt: Lógó Eth á thaispeáint mar aon le lámha a thabhairt. +summaryPoint1: Domhan ina bhfuil airgead ag gluaiseacht chomh héasca le faisnéis +summaryPoint2: Oscailte agus domhanda, rud a chumasaíonn idirbhearta gan teorainn do gach duine +summaryPoint3: Íocaíochtaí faighte laistigh de nóiméad --- -Every day, millions of people face the same challenge: moving money across borders is slow, expensive, and often frustrating. A freelancer in Bali waits days for payment to clear from their New York client. This particularly affects people in regions with limited banking infrastructure, making it difficult to participate in the global economy. +Gach lá, bíonn an dúshlán céanna roimh na milliúin daoine: bíonn sé mall, costasach, agus is minic a bhíonn frustrachas ar airgead a aistriú thar theorainneacha. Fanann saoroibrí in Bali laethanta le híocaíocht a ghlanadh óna gcliant i Nua-Eabhrac. Cuireann sé seo isteach go háirithe ar dhaoine i réigiúin a bhfuil infrastruchtúr baincéireachta teoranta acu, rud a fhágann go bhfuil sé deacair a bheith rannpháirteach sa gheilleagar domhanda. -This isn't a far-off dream – it's happening today on Ethereum. While traditional financial institutions have built robust payment systems over decades, they often remain constrained by borders, working hours, and legacy infrastructure. Ethereum offers a new paradigm: a global, 24/7 financial platform that enables near-instant, programmable transactions for anyone with internet access. +Ní aisling am éigin i bhfad amach romhainn é seo - tá sé ag tarlú inniu ar Ethereum. Cé go bhfuil córais láidre íocaíochta tógtha ag institiúidí airgeadais traidisiúnta le blianta fada anuas, is minic go mbíonn siad srianta fós ag teorainneacha, uaireanta oibre agus bonneagar leagáide. Tairgeann Ethereum paraidím nua: ardán airgeadais domhanda 24/7 a chumasaíonn idirbhearta in-ríomhchláraithe neasláithreach do gach duine a bhfuil rochtain idirlín acu.
-![Ethereum logo on the computer screen](./computer.png) +![Lógó Ethereum ar scáileán an ríomhaire](./computer.png)
-## Remittances: cheaper international transfers {#remittances} +## Seoltáin: aistrithe idirnáisiúnta níos saoire {#remittances} -For millions of people working abroad, sending money back home is a regular necessity. Traditional remittance services often come with high fees and slow processing times. Ethereum offers a compelling alternative. +Do na milliúin daoine atá ag obair thar lear, tá sé riachtanach go rialta airgead a chur ar ais abhaile. Is minic a bhíonn táillí arda agus amanna próiseála mall ag baint le seirbhísí íocaíochta traidisiúnta. Tairgeann Ethereum rogha eile an-láidir. @@ -33,123 +33,123 @@ For millions of people working abroad, sending money back home is a regular nece -## Access to Global Currencies {#access-to-global-currencies} +## Rochtain ar Airgeadra Domhanda {#access-to-global-currencies} -In many countries, inflation is a pressing concern, often accompanied by limited access to foreign currencies. People in these situations struggle to preserve their wealth as they are forced to hold rapidly depreciating savings. +Ina lán tíortha, is ábhar imní práinneach é boilsciú, agus go minic bíonn rochtain theoranta ar airgeadraí eachtracha ag gabháil leis. Bíonn deacrachtaí ag daoine sna cásanna seo a saibhreas a chaomhnú mar go gcuirtear iallach orthu coigilteas a choinneáil atá ag dímheas go tapa. -The Ethereum community has created **a robust alternative financial system** that is independent of any nation’s monetary policies or control. +Chruthaigh pobal Ethereum **córas airgeadais malartach láidir** atá  neamhspleách ar bheartais airgeadaíochta nó ar rialú aon náisiún. -Ethereum users can use **stablecoins—tokens typically tied to strong currencies like the US Dollar**. By earning and saving in cryptocurrency, people can protect themselves from high inflation in their country, helping to preserve or even grow their purchasing power. This also enables easier payments for goods and services, both locally and globally. +Is féidir le húsáideoirí Ethereum **stablecoins a úsáid - dearbháin atá ceangailte go hiondúil le hairgeadraí láidre cosúil le Dollar SAM**. Trí thuilleamh agus coigilt i criptea-airgeadra, is féidir le daoine iad féin a chosaint ó bhoilsciú ard ina dtír, ag cabhrú a chaomhnú nó fiú fás a gcumhacht ceannaigh. Cumasaíonn sé seo íocaíochtaí níos éasca ar earraí agus ar sheirbhísí, go háitiúil agus go domhanda. - More on stablecoins + Tuilleadh faoi bhoinn stáblaí -## Buying Goods and Payment for Services {#buying-goods-and-payment-for-services} +## Earraí a Cheannach agus Íocaíocht as Seirbhísí {#buying-goods-and-payment-for-services} -Many businesses are beginning to accept ether (ETH) and other cryptocurrencies as payment. Mar shampla: +Tá go leor gnólachtaí ag tosú ag glacadh éitear (ETH) agus criptea-airgeadraí eile mar íocaíocht. Mar shampla: -- **Newegg:** The popular electronics retailer accepts Ethereum for purchases in select countries. -- **Travala.com:** This travel booking platform allows users to pay for hotels and flights using Ethereum. -- **Shopify:** This popular E-commerce platform which serves as a platform for hosting businesses also accepts payments for goods and services using Ethereum. -- **Sotheby's:** This organisation trade fine and decorative art, jewellery, and collectibles and allows for payments using Ethereum and other cryptocurrencies. +- \*\* Newegg:\*\* Glacann an miondíoltóir leictreonaice móréilimh le Ethereum le ceannach i dtíortha roghnaithe. +- **Travala.com:** Ligeann an t-ardán áirithinte taistil seo d’úsáideoirí íoc as óstáin agus eitiltí ag baint úsáide as Ethereum. +- \*\* Shopify:\*\* Glacann an t-ardán ríomhthráchtála móréilimh seo a fheidhmíonn mar ardán do ghnólachtaí óstála freisin le híocaíochtaí ar earraí agus seirbhísí a úsáideann Ethereum. +- **Sotheby's:** Déanann an eagraíocht seo trádáil mínealaíona agus maisiúla, seodra agus earraí inbhailithe agus ceadaíonn sí íocaíochtaí trí úsáid a bhaint as Ethereum agus criptea-airgeadraí eile. -Countries like El Salvador and the Central African Republic have even adopted cryptocurrencies as legal tender, paving the way for wider acceptance of Ethereum payments in everyday transactions. +Ghlac tíortha cosúil le El Salvador agus Poblacht na hAfraice Láir fiú criptea-airgeadraí mar airgead dlíthairge, ag réiteach an bhealaigh le haghaidh glacadh níos leithne le híocaíochtaí Ethereum in idirbhearta laethúla. -In countries where their means of payment have been disconnected from the rest of the world, crypto-integrated payment solutions have been a huge relief. Payments of subscriptions for platforms like Netflix, Spotify, and educational courses have now been made easy through crypto payment platforms like Gnosis Pay and Paypal. +I dtíortha ina bhfuil a gcuid modhanna íocaíochta dícheangailte ón gcuid eile den domhan, bhí réitigh íocaíochta criptithe-chomhtháite ina faoiseamh ollmhór. Tá sé éasca anois síntiúis a íoc le haghaidh ardáin mar Netflix, Spotify, agus cúrsaí oideachais trí ardáin íocaíochta criptea mar Gnosis Pay agus Paypal. -
Create your Ethereum account with a wallet app today.
+
Cruthaigh do chuntas Ethereum le aip sparán inniu.
- Get started + Cuir tús leis
-## Salary Payments {#salary-payments} +## Íocaíochtaí Tuarastail {#salary-payments} -Many forward-thinking companies are now offering employees the option to receive their salaries, or a portion of them, in cryptocurrencies like ether (ETH): +Tá go leor comhlachtaí atá ag smaoineamh chun cinn ag tairiscint an rogha d’fhostaithe anois a dtuarastail, nó cuid díobh, a fháil in criptea-airgeadraí mar éitear (ETH): -- **Gipsybee:** is an organisation that deals in electronics, robotics, game creation and other services. They give employees the option to get paid in Ethereum. -- **SC5:** This Finnish company was one of the first to offer salaries in Bitcoin, paving the way for similar arrangements with Ethereum. -- **Blockchain startups:** Many companies in the blockchain space naturally offer cryptocurrency salary options to their employees. -- **DAOs:** Due to the peculiarity and diversity of contributors to DAOs, most contributions and salaries are rewarded in cryptocurrency. +- Is eagraíocht é **Gipsybee:** a dhéileálann le leictreonaic, róbataic, cruthú cluichí agus seirbhísí eile. Tugann siad rogha d’fhostaithe íocaíocht a fháil in Ethereum. +- **SC5:** Bhí an comhlacht Fionlannach seo ar cheann de na chéad chomhlachtaí a thairg tuarastail i Bitcoin, rud a réitigh an bealach le haghaidh socruithe comhchosúla le Ethereum. +- \*\* Gnólachtaí nuathionscanta Blocshlabhra:\*\* Go nádúrtha cuireann go leor comhlachtaí sa spás blocshlabhra roghanna tuarastail criptea-airgeadra ar fáil dá bhfostaithe. +- **DAOs:** Mar gheall ar shainiúlacht agus éagsúlacht na rannpháirtithe le DAO, bronntar an chuid is mó de ranníocaíochtaí agus tuarastail in airgead criptea-airgeadra. -This trend particularly appeals to remote workers and digital nomads who can benefit from borderless payments and potentially favorable exchange rates. +Taitníonn an treocht seo go háirithe le hoibrithe iargúlta agus le fánaithe digiteacha ar féidir leo leas a bhaint as íocaíochtaí gan teorainn agus rátaí malairte a d’fhéadfadh a bheith fabhrach. -## Global relief efforts {#global-relief-efforts} +## Iarrachtaí faoisimh dhomhanda {#global-relief-efforts} -In February 2023, when devastating earthquakes struck Turkey and Syria, the global crypto community sprang into action. Various campaigns were launched to collect funds for relief efforts, showcasing the power of Ethereum in times of crisis. Despite crypto [not being a recognized form](https://www.reuters.com/technology/no-more-kebabs-bitcoins-turkeys-crypto-payment-ban-looms-2021-04-28/) of payment in Turkey, authorities made [exceptions](https://x.com/haluklevent/status/1622913175409623041) for some organizations to collect donations. Some examples are: +I mí Feabhra 2023, nuair a bhuail creathanna talún millteach an Tuirc agus an tSiria, chuaigh an pobal criptea domhanda i mbun gnímh. Seoladh feachtais éagsúla chun cistí a bhailiú le haghaidh iarrachtaí faoisimh, ag taispeáint cumhacht Ethereum in aimsir ghéarchéime. In ainneoin criptea [nach foirm aitheanta é](https://www.reuters.com/technology/no-more-kebabs-bitcoins-turkeys-crypto-payment-ban-looms-2021-04-28/) íocaíochta sa Tuirc, rinne údaráis [eisceachtaí] (https://x.com/haluklevent/status/1622913175409623041) roinnt eagraíochtaí tabhartais a bhailiú. Seo a leanas roinnt samplaí: -- [Refik Anadol](https://x.com/refikanadol/status/1622623521104089090): is a renowned digital artist who initiated a fundraising campaign. -- DAO Power: [Anka Relief DAO](https://ankarelief.org/) and [Bankless DAO](https://x.com/banklessDAO) joined forces with [Giveth](https://x.com/Giveth/status/1623493672149843969) to raise funds. -- [Pak](https://cause.quest/), a prominent NFT artist, also contributed to the cause. -- Even Ethereum co-founder [Vitalik Buterin](https://cointelegraph.com/news/vitalik-buterin-donates-227k-to-help-earthquake-victims-in-turkey-syria) made personal donations to multiple campaigns. - The result of this? Over $6 million was raised in a matter of days, as tracked by a [Dune](https://dune.com/davy42/turkiye-earthquake-donations) Analytics dashboard. +- [Refik Anadol](https://x.com/refikanadol/status/1622623521104089090): is ealaíontóir digiteach clúiteach é a chuir tús le feachtas tiomsaithe airgid. +- DAO Power: Chuaigh [Anka Relief DAO](https://ankarelief.org/) agus [Bankless DAO](https://x.com/banklessDAO) i gcomhar le [Giveth](https://x.com/Giveth/status/1623493672149843969) chun airgead a chruinniú. +- Chuir [Pak](https://cause.quest/), ealaíontóir suntasach NFT, leis an gcúis freisin. +- Thug fiú comhbhunaitheoir Ethereum [Vitalik Buterin](https://cointelegraph.com/news/vitalik-buterin-donates-227k-to-help-earthquake-victims-in-turkey-syria) síntiúis phearsanta d'ilfheachtais. + An toradh ar seo? Bailíodh os cionn $6 milliún i gceann cúpla lá, arna rianú ag painéal anailíse [Dune](https://dune.com/davy42/turkiye-earthquake-donations). -There were also similar response times for tragedies that happened in India and Ukraine. This rapid response highlights a crucial advantage of Ethereum payments, which is the ability to quickly mobilize global support without the hurdles of currency conversion, lengthy bank transfers, or exorbitant fees. +Bhí amanna freagartha comhchosúla ann freisin do thragóidí a tharla san India agus san Úcráin. Leagann an freagra tapa seo béim ar bhuntáiste ríthábhachtach a bhaineann le híocaíochtaí Ethereum, is é sin an cumas tacaíocht dhomhanda a shlógadh go tapa gan na constaicí a bhaineann le comhshó airgeadra, aistrithe bainc fada, nó táillí iomarcach.
-![Ethereum Robot Image](./eth_robot.png) +![Íomhá an robot Ethereum](./eth_robot.png)
## Ethereum vs fiat {#ethereum-vs-fiat} -To truly appreciate the impact of Ethereum payments, it's worth comparing them to traditional fiat currencies: +Le fírinne, chun tionchar íocaíochtaí Ethereum a thuiscint, is fiú iad a chur i gcomparáid le hairgeadraí fiat traidisiúnta: -| | **Ethereum** | **Traditional banks** | -| --------------------- | ----------------------- | ------------------------------------------------------------ | -| **Speed** | Seconds to minutes | Hours to days | -| **Global Reach** | Borderless, 24/7 | Subject to international banking restrictions and work hours | -| **Transparency** | Fully transparent | Varies by institution | -| **Programmability** | Smart contracts enabled | Limited to basic transactions | -| **Inflation Control** | Predictable issuance | Subject to central bank policies | -| **Inrochtaineacht** | Anyone with internet | Subject to national and international restrictions | +| | **Ethereum** | **Bainc traidisiúnta** | +| -------------------------- | ------------------------------- | ------------------------------------------------------------------- | +| **Luas** | Soicind go nóiméid | Uaireanta a chloig go laethanta | +| **Rochtain Dhomhanda** | Gan teorainn, 24/7 | Faoi réir srianta baincéireachta idirnáisiúnta agus uaireanta oibre | +| **Trédhearcacht** | Go hiomlán trédhearcach | Athraíonn de réir institiúide | +| **In-ríomhchláraitheacht** | Conarthaí cliste cumasaithe | Teoranta go hidirbhearta bunúsacha | +| **Rialú Boilscithe** | Eisiúint intuartha | Faoi réir bheartais an bhainc cheannais | +| **Inrochtaineacht** | Aon duine a bhfuil idirlíon acu | Faoi réir srianta náisiúnta agus idirnáisiúnta | -At its core, Ethereum is a decentralized platform that allows for secure, fast, and transparent transactions. However, many components set it apart from traditional payment methods. Let's dive into the benefits that make Ethereum payments a game-changer: +Ag a chroílár, is ardán díláraithe é Ethereum a cheadaíonn idirbhearta slán, tapa agus trédhearcach. Mar sin féin, leagann go leor comhpháirteanna amach é ó mhodhanna íocaíochta traidisiúnta. Léimimis isteach ar na buntáistí a fhágann gur rud claochlaitheach iad íocaíochtaí Ethereum: -### Programmability {#programmability} +### In-ríomhchláraitheacht {#programmability} -One of Ethereum's unique features is its ability to support smart contracts. Smart contracts are self-executing agreements with the terms directly written into code. This opens up a world of possibilities for automated, condition-based payments that can greatly improve transactions like: +Ceann de na gnéithe uathúla atá ag Ethereum ná a chumas tacú le conarthaí cliste. Is comhaontuithe féin-fhorghníomhaithe iad conarthaí cliste leis na téarmaí atá scríofa go díreach isteach sa chód. Osclaíonn sé seo saol ina bhfuil féidearthachtaí maidir le híocaíochtaí uathoibrithe, bunaithe ar choinníoll, ar féidir leo feabhas mór a chur ar idirbhearta mar: -- Escrow services -- Recurring payments -- Performance-based compensation +- Seirbhísí eascró +- Íocaíochtaí a tharlaíonn arís agus arís +- Cúiteamh bunaithe ar fheidhmíocht -### Speed {#speed} +### Luas {#speed} -Do you remember the last time you waited days for an international bank transfer to clear? The long queue? And the multiple forms you had to fill? With Ethereum, those days are long gone. Transactions on the Ethereum network settle in minutes, regardless of where the sender and recipient are located. Due to Ethereum being permissionless, there is no regulatory bureaucracy when sending money. This speed is particularly crucial in time-sensitive situations, such as emergency relief efforts. +An cuimhin leat an uair dheireanach a d’fhan tú laethanta le haistriú bainc idirnáisiúnta a ghlanadh? An scuaine fada? Agus na foirmeacha iolracha a bhí le líonadh agat? Le Ethereum, tá na laethanta sin imithe le fada. Socraíonn idirbhearta ar líonra Ethereum i nóiméid, beag beann ar an áit a bhfuil an seoltóir agus an faighteoir suite. Toisc go bhfuil Ethereum gan chead, níl aon mhaorlathas rialála ann nuair a bhíonn airgead á sheoladh. Tá an luas seo ríthábhachtach go háirithe i gcásanna atá íogair ó thaobh ama de, amhail iarrachtaí faoisimh éigeandála. -### Lower Fees {#lower-fees} +### Táillí Níos Ísle {#lower-fees} -Traditional international money transfers fees sometimes eat up a significant portion of the amount sent, especially when dealing with transactions in the hundreds of dollars. Ethereum transactions, while not free, often come with lower fees. This means more of your money goes where you intend it to, rather than lining the pockets of intermediaries. +Uaireanta itheann táillí aistrithe airgid traidisiúnta idirnáisiúnta cuid shuntasach den mhéid a sheoltar, go háirithe agus iad ag déileáil le hidirbhearta sna céadta dollar. Is minic a thagann idirbhearta Ethereum, cé nach bhfuil siad saor in aisce, le táillí níos ísle. Ciallaíonn sé seo go dtéann níos mó de do chuid airgid san áit a bhfuil sé beartaithe agat é a dhéanamh, seachas pócaí na n-idirghabhálaithe a líneáil. -### Transparency {#transparency} +### Trédhearcacht {#transparency} -Every transaction on the Ethereum blockchain is recorded on a public ledger. This means anyone can verify the movement of funds, making it an excellent tool for: +Déantar gach idirbheart ar an Ethereum blocshlabhra a thaifeadadh ar mhórleabhar poiblí. Ciallaíonn sé seo gur féidir le duine ar bith gluaiseacht cistí a fhíorú, rud a fhágann gur uirlis iontach é le haghaidh: -- Charitable organizations to demonstrate how donations are used -- Businesses to prove payments to suppliers or employees -- Individuals to keep track of their financial activities +- Eagraíochtaí carthanacha a léiriú conas a úsáidtear síntiúis +- Gnólachtaí chun íocaíochtaí le soláthraithe nó fostaithe a chruthú +- Daoine aonair súil a choinneáil ar a gcuid gníomhaíochtaí airgeadais -With Ethereum, everyone can see how money moves and how costs are implemented, unlike traditional organisations where most of these remain unknown. +Le Ethereum, is féidir le gach duine a fheiceáil conas a ghluaiseann airgead agus conas a chuirtear costais i bhfeidhm, murab ionann agus eagraíochtaí traidisiúnta ina bhfuil an chuid is mó díobh seo fós anaithnid.
-![walking image](./walking.png) +![íomhá ag siúl](./walking.png)
-While fiat currencies have the advantage of widespread acceptance and stability, Ethereum offers unique benefits that make it an attractive option for certain types of transactions. +Cé go bhfuil buntáiste ag airgeadraí fiat go bhfuil glactha go forleathan agus cobhsaíocht, cuireann Ethereum buntáistí uathúla a fhágann go bhfuil sé ina rogha tarraingteach do chineálacha áirithe idirbheart. -From facilitating rapid disaster relief to empowering global workers, Ethereum payments are writing a new chapter in the long history of money. While challenges remain, the unique advantages offered by this technology make it an attractive option for a wide range of use cases. +Ó fhaoiseamh tubaiste tapa a éascú chun oibrithe domhanda a chumhachtú, tá íocaíochtaí Ethereum ag cur tús le ré nua i stair fhada an airgid. Cé go bhfuil dúshláin fós ann, de bharr buntáistí uathúla na teicneolaíochta seo is rogha tarraingteach é do raon leathan cásanna úsáide. -
Time to get your own Ethereum account.
+
Tá sé in am agat do chuntas Ethereum féin a fháil.
- Get started + Cuir tús leis
\ No newline at end of file diff --git a/public/content/translations/ga/social-networks/index.md b/public/content/translations/ga/social-networks/index.md index 39d27f1ae65..9b97b85620a 100644 --- a/public/content/translations/ga/social-networks/index.md +++ b/public/content/translations/ga/social-networks/index.md @@ -74,33 +74,31 @@ Tá [MINDS](https://www.minds.com/) ar cheann de na líonraí sóisialta dílár ## Web2 líonraí sóisialta ar Ethereum {#web2-social-networks-and-ethereum} -Ní hiad [Web3](/glossary/#web3) ardáin shóisialta dhúchasacha iad na cinn amháin atá ag iarraidh teicneolaíocht bhlocshlabhra a ionchorprú sna meáin shóisialta. Tá go leor ardán láraithe ag pleanáil chun Ethereum a chomhtháthú ina mbonneagar: +Ní hiad [Web3](/glossary/#web3) ardáin shóisialta dhúchasacha iad na cinn amháin atá ag iarraidh teicneolaíocht bhlocshlabhra a ionchorprú sna meáin shóisialta. Tá go leor ardáin láraithe ag fiosrú nó ag déanamh turgnamh le Ethereum a chomhtháthú ina mbonneagar freisin: ### Reddit {#reddit} -Tá [Pointí Pobail molta ag Reddit](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), is iad sin comharthaí ERC-20 ar féidir le húsáideoirí a thuilleamh trí ábhar ardchaighdeáin a phostáil agus cur le pobail ar líne (subreddits). Is féidir leat na comharthaí seo a fhuascailt laistigh de subreddit chun pribhléidí agus buntáistí eisiacha a fháil. Don tionscadal seo, tá Reddit ag obair le hArbitrum, líonra [chiseal 2](/glossary/#layer-2) atá deartha chun idirbhearta Ethereum a scálú. - -Tá an clár beo cheana féin, agus subreddit dar teideal r/CryptoCurrency [ag rith a leagain de Community Points ar a dtugtar "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). De réir na tuairisce oifigiúla, cúitíonn Moons "lucht scríofa postálacha, tráchtairí agus modhnóirí as a gcuid rannchuidithe don subreddit." Toisc go bhfuil na comharthaí seo ar an mblocshlabhra (faigheann úsáideoirí iad i sparáin), tá siad neamhspleách ar Reddit agus ní féidir iad a bhaint. - -Chomh maith le Pointí Pobail a úsáid chun gnéithe speisialta a dhíghlasáil, is féidir le húsáideoirí iad a thrádáil freisin le haghaidh fiat ar mhalartáin. Chomh maith leis sin, mar thoradh ar an méid Pointí Comhphobail atá ar úinéireacht ag úsáideoir cinntear a dtionchar ar an bpróiseas cinnteoireachta laistigh den phobal. +- Rinne Reddit turgnamh roimhe seo le **Pointí Pobail**, ar comharthaí ERC-20 iad a d’fhéadfadh úsáideoirí a thuilleamh trí ábhar ardchaighdeáin a phostáil agus trí rannchuidiú le pobail shonracha ar líne (subreddits). D’fhéadfadh úsáideoirí na comharthaí seo a fhuascailt laistigh de subreddit le haghaidh buntáistí eisiacha nó iad a thrádáil. Don tionscadal seo, bhain Reddit úsáid as Arbitrum Nova, líonra [sraith 2](/glossary/#layer-2) atá deartha chun idirbhearta Ethereum a scála. +- Bhí an clár gníomhach go háirithe i subreddit r/CryptoCurrency lena "Moons" agus i subreddit r/FortNiteBR lena "Bricks". Ós rud é go raibh na comharthaí seo ar an mblocshlabhra, bhí siad neamhspleách ar Reddit a luaithe a éilíodh iad i [sparán](/glossary/#wallet) úsáideora. +- Mar sin féin, chuaigh **Reddit [an clár Pointí Comhphobail](https://www.reddit.com/r/CryptoCurrency/comments/17a33ql/reddit_is_officially_deprecating_community_points/) síos go déanach in 2023, **agus dúshláin scálaithe á lua. Cé go bhfuil na comharthaí fós ann ar an mblocshlabhra, ní thacaíonn Reddit go gníomhach leo ná ní chomhtháthaíonn sé iad ina ghnéithe ardáin a thuilleadh. ## Tuilleadh léitheoireachta {#further-reading} ### Ailt {#articles} -- [ Na meáin shóisialta a dhílárú: treoir do chruach sóisialta Web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [Is iad Líonraí Sóisialta an Chéad Deis Díláraithe Mór Eile](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Tá geallúint ag Web3 maidir le líonraí díláraithe sóisialta faoi thiomáint phobail](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [Forbhreathnú ar Thírdhreach Blocshlabhra sna Meáin Shóisialta](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [Conas is Féidir le Blocshlabhra Príobháideacht a Réiteach sna Meáin Shóisialta](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) - _Prableen Bajpai_ -- [Dílárú Dóthanach do Líonraí Sóisialta](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ +- [Dílárú na meán sóisialta: treoir don chruach shóisialta web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Is iad na Líonraí Sóisialta an chéad Deis Mhór Díláraithe eile](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Tá gealltanas líonraí sóisialta díláraithe, faoi thiomáint ag an bpobal, ag Web3](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Forbhreathnú ar Thírdhreach na Meán Sóisialta Blocshlabhra](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Conas is Féidir le Blocshlabhra Príobháideacht na Meán Sóisialta a Réiteach](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Dílárú Leordhóthanach do Líonraí Sóisialta](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ ### Físeáin {#videos} -- [Meáin Shóisialta Díláraithe arna Míniú](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [Tá DeSo Blockchain ag iarraidh na Meáin Shóisialta a Dhílárú](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Teicneolaíocht Bloomberg_ -- [Todhchaí na Meán Sóisialta Díláraithe w/ Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — *ETHGlobal* +- [Míniú ar na Meáin Shóisialta Díláraithe](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [Ba mhaith le Blocshlabhra DeSo na Meáin Shóisialta a Dhílárú](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Teicneolaíocht Bloomberg_ +- [Todhchaí na Meán Sóisialta Díláraithe le Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ ### Pobail {#communities} -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) \ No newline at end of file diff --git a/public/content/translations/ga/staking/withdrawals/index.md b/public/content/translations/ga/staking/withdrawals/index.md index fbd50874c90..a65b375d755 100644 --- a/public/content/translations/ga/staking/withdrawals/index.md +++ b/public/content/translations/ga/staking/withdrawals/index.md @@ -72,7 +72,7 @@ Mar gheall ar uasghrádú Shanghai/Capella bhíothas in ann ETH a bhí i ngeall Is é staid chuntas an bhailíochtóra féin a chinneann an bhfuil bailíochtóir áirithe incháilithe le haghaidh aistarraingthe nó nach bhfuil. Níl aon ionchur úsáideora ag teastáil ag aon am ar leith le cinneadh cé acu ar cheart nó nár cheart go dtionscnófaí aistarraingt cuntais – déantar an próiseas iomlán go huathoibríoch trí chiseal comhthola ar lúb leanúnach. -### An bhfuil tú níos mó d’fhoghlaimeoir amhairc? {#visual-learner} +### An foghlaimeoir amhairc den chuid is mó tú? {#visual-learner} Breathnaigh ar an míniú seo ar aistarraingtí geallchuir Ethereum ag Finematics: diff --git a/public/content/translations/hu/bridges/index.md b/public/content/translations/hu/bridges/index.md index 4882abb8401..0d29a91f088 100644 --- a/public/content/translations/hu/bridges/index.md +++ b/public/content/translations/hu/bridges/index.md @@ -24,7 +24,7 @@ De mit csináljunk, ha egy ilyen átváltást két különböző [blokkláncon]( Minden blokkláncnak megvannak a maga korlátai. Az Ethereum skálázásához és hogy ki bírja szolgálni a keresletet, [tranzakcióösszegzőkre (rollup)](/glossary/#rollups) van szüksége. Más L1 blokkláncok, mint a Solana és az Avalanche, másképpen vannak összerakva, így magasabb tranzakcióátvitelt bírnak, de a decentralizációt áldozzák fel cserébe. -Ugyanakkor minden blokkláncot elkülönült környezetben fejlesztenek, más szabályok és más [konszenzusmechanizmus](/glossary/#consensus) alapján. Emiatt maguktól nem tudnak egymással kommunikálni, a tokeneket pedig nem lehet szabadon átvinni az egyikről a másikra. +Ugyanakkor minden blokkláncot elkülönült környezetben fejlesztenek, más szabályok és más [konszenzusos](/glossary/#consensus) mechanizmus alapján. Emiatt maguktól nem tudnak egymással kommunikálni, a tokeneket pedig nem lehet szabadon átvinni az egyikről a másikra. A hidak kötik össze a blokkláncokat, lehetővé téve az információ és a tokenek áramlását közöttük. @@ -49,7 +49,7 @@ Tegyük fel, hogy Ön rendelkezik ETH-szel az Ethereum főhálózatán, de olcs ### Decentralizált alkalmazások (dapp) más blokkláncokon {#dapps-other-chains} -Tegyük fel, hogy Ön az Aave alkalmazást használja az Ethereum főhálózatán arra, hogy USDT-t kölcsönözzön, de a Polygonon ugyanez az alkalmazás magasabb kamatot ad. +Tegyük fel, hogy Ön az Aave alkalmazást használja az Ethereum főhálózatán arra, hogy USDT-t biztosítson, de a Polygonon ugyanez az alkalmazás magasabb kamatot ad. ### A blokklánc-ökoszisztémák felfedezése {#explore-ecosystems} @@ -95,7 +95,7 @@ Számos hidat biztosító megoldás e két modell közötti módszert alakít ki -## Híd használata {#use-bridge} +## A hidak használata {#use-bridge} A hidak segítségével a felhasználók különböző blokkláncok között tudnak eszközöket mozgatni. Íme néhány forrás, amelyek hasznosak lehetnek a hidak megtalálásához és használatához: @@ -131,7 +131,9 @@ A hidak elengedhetetlenek az Ethereum L2 használatához, illetve ha a felhaszn ## További olvasnivaló {#further-reading} +- [EIP-5164: Láncok közötti műveletek végrehajtása](https://ethereum-magicians.org/t/eip-5164-cross-chain-execution/9658) – _2022. június 18. – Brendan Asselstine_ +- [L2 hidak kockázati keretrendszere](https://gov.l2beat.com/t/l2bridge-risk-framework/31) – _2022. július 5. – Bartek Kiepuszewski_ +- [Miért inkább többláncú a jövő, mintsem láncok közötti](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) – _2022. január 8. – Vitalik Buterin_ +- [A közös biztonság kihasználása a biztonságos láncközi interoperabilitás érdekében: Lagrange státuszbizottságok és további megoldások](https://research.2077.xyz/harnessing-shared-security-for-secure-blockchain-interoperability) – _2024. június 12. – Emmanuel Awosika_ +- [Az összevont tranzakciók interoperabilitási megoldásainak státusza](https://research.2077.xyz/the-state-of-rollup-interoperability) – _2024. június 20. – Alex Hook_ -- [EIP-5164: Láncok közötti műveletek végrehajtása](https://ethereum-magicians.org/t/eip-5164-cross-chain-execution/9658) _2022. június 18. – Brendan Asselstine_ -- [L2 hidak kockázati keretrendszere](https://gov.l2beat.com/t/l2bridge-risk-framework/31) _2022. július 5. – Bartek Kiepuszewski_ -- [A jövő miért inkább többláncú, mint láncok közötti](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) _2022. január 8. – Vitalik Buterin_ diff --git a/public/content/translations/hu/community/events/index.md b/public/content/translations/hu/community/events/index.md index 0b564281725..0c6b04f1640 100644 --- a/public/content/translations/hu/community/events/index.md +++ b/public/content/translations/hu/community/events/index.md @@ -1,6 +1,6 @@ --- title: Ethereum események -description: Hogyan lehet bekapcsolódni az Ethereum közösségébe. +description: Hogyan kapcsolódhat be az Ethereum közösségébe? lang: hu hideEditButton: true --- @@ -13,12 +13,14 @@ hideEditButton: true A lista nem teljeskörű, a közösség tagjai frissítik. Tudomása van egy tervezett Ethereum-eseményről? [Kérjük, adja hozzá](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + ## Ethereum-találkozók {#meetups} -Nem talál olyan eseményt, amely jó lenne Önnek? Próbáljon meg elmenni egy találkozóra. Ezek kisebb események, melyeket az Ethereum-rajongók szerveznek, hogy az Ethereum iránt érdeklődők összegyűljenek, beszélgessenek az Ethereumról, megismerjék az új fejlesztéseket. +Nem talál olyan eseményt, amely megfelelő lenne Önnek? Érdemes lehet elmennie egy találkozóra. Ezek kisebb események, melyeket az Ethereum-rajongók szerveznek, hogy az Ethereum iránt érdeklődők összegyűljenek, beszélgessenek az Ethereumról és megismerjék az új fejlesztéseket. -Saját találkozót szeretne szervezni? Nézze meg a [BUIDL Network-öt](https://consensys.net/developers/buidlnetwork/), ami a ConsesSys kezdeményezése, hogy támogassa az Ethereum találkozókat. +Saját találkozót szeretne szervezni? Nézze meg a ConsesSys által létrehozott, az Ethereum-közösségi találkozók szervezését segítő [BUIDL Network](https://consensys.net/developers/buidlnetwork/) hálózatot. -Ez a lista nem teljeskörű, a közösség tagjai írják. [Több Ethereum találkozót](https://www.meetup.com/topics/ethereum/) találhat itt. Ismer olyan találkozót szervező csoportot, amelyik nincs a listán? [Kérjük, adja hozzá!](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json) +Ez a lista nem teljes körű, a közösség tagjai írják. [Több Ethereum-találkozót találhat itt](https://www.meetup.com/topics/ethereum/). Ismer olyan találkozót szervező csoportot, amely nincs a listán? [Kérjük, adja hozzá](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/hu/community/get-involved/index.md b/public/content/translations/hu/community/get-involved/index.md index 577a957a598..538ac9e0597 100644 --- a/public/content/translations/hu/community/get-involved/index.md +++ b/public/content/translations/hu/community/get-involved/index.md @@ -1,6 +1,6 @@ --- title: Hogyan lehet részt venni? -description: Hogyan lehet bekapcsolódni az Ethereum közösségébe. +description: Hogyan kapcsolódhat be az Ethereum közösségébe? lang: hu --- diff --git a/public/content/translations/hu/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/hu/developers/docs/nodes-and-clients/archive-nodes/index.md index fc35e615c7d..340c7f0c8e0 100644 --- a/public/content/translations/hu/developers/docs/nodes-and-clients/archive-nodes/index.md +++ b/public/content/translations/hu/developers/docs/nodes-and-clients/archive-nodes/index.md @@ -62,7 +62,7 @@ Azon túl, amit általános [javaslatként megfogalmaznak a csomópont futtatás Mindig ellenőrizze az egy adott csomópontra vonatkozó hardverigényeket a kliens dokumentációjában. Az archív csomópontok legnagyobb igénye a tárhely. A klienstől függően ez 3 és 12 TB között változhat. A HDD jobb lenne a nagymennyiségű adatok tárolásához, de a szinkronizálás és a lánc elejének állandó frissítése SSD-meghajtókat igényel. A [SATA](https://www.cleverfiles.com/help/sata-hard-drive.html) meghajtók elég jók, de abból is a megbízható minőségű javasolt, vagyis legalább a [TLC](https://blog.synology.com/tlc-vs-qlc-ssds-what-are-the-differences). A lemezek elég lemezhellyel rendelkező asztali gépbe vagy szerverbe is behelyezhetők. Ezek a dedikált eszközök ideálisak egy ilyen, szinte állandóan aktív csomópont futtatásához. Laptopon is futtatható, de a hordozhatóság több költséggel jár. -Az összes adatnak egy köteten el kell férnie, ezért a lemezeket össze kell kapcsolni, pl. a [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) vagy a LVM által. Érdemes lehet megfontolni a [ZFS](https://en.wikipedia.org/wiki/ZFS) használatát is, mert ez támogatja az írásra másolás (copy-on-write) funkciót, amivel az adat biztosabban, alacsony szintű hiba nélkül íródik a lemezre. +Az összes adatnak egy köteten el kell férnie, ezért a lemezeket össze kell kapcsolni, pl. [RAID0](https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_0) vagy LVM által. Érdemes lehet megfontolni a [ZFS](https://en.wikipedia.org/wiki/ZFS) használatát is, mert ez támogatja az írásra másolás (copy-on-write) funkciót, amivel az adat biztosabban, alacsony szintű hiba nélkül íródik a lemezre. A nagyobb stabilitás érdekében és a véletlen adatbázis-meghibásodás megelőzésére, főleg a professzionális összeállításban, érdemes [ECC-memóriát](https://en.wikipedia.org/wiki/ECC_memory) használni, ha azt a rendszer is támogatja. A RAM méretének általában akkorának kell lennie, mint egy teljes csomópont esetében, de az ennél több RAM csak segíthet a szinkronizálás gyorsításában. 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 5d4aefd9826..0f95a7f6f76 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 @@ -79,6 +79,8 @@ A kliensdiverzitás eléréséhez nem elég, hogy az egyéni felhasználók kise [Prysm](https://docs.prylabs.network/docs/getting-started) +[Grandine](https://docs.grandine.io/) + A technikailag képzett felhasználók segíthetik ezt a folyamatot azzal is, hogy több útmutatót és dokumentációt készítenek a kisebbségi kliensekről, és arra bátorítják a társaikat, hogy a domináns kliens helyett mást használjanak. A kisebbségi konszenzusos kliensre való áttérésről itt talál útmutatókat: [clientdiversity.org](https://clientdiversity.org/). ## Kliensdiverzitási irányítópultok {#client-diversity-dashboards} diff --git a/public/content/translations/hu/developers/docs/nodes-and-clients/index.md b/public/content/translations/hu/developers/docs/nodes-and-clients/index.md index 96cae2ec293..75e122c78c1 100644 --- a/public/content/translations/hu/developers/docs/nodes-and-clients/index.md +++ b/public/content/translations/hu/developers/docs/nodes-and-clients/index.md @@ -191,14 +191,14 @@ Tudjon meg többet erről a [dokumentációból](https://github.com/ethereumjs/e Többféle konszenzusos kliens (korábbi nevén „Eth2” kliens) is létezik, amely támogatja a [ konszenzusfrissítéseket](/roadmap/beacon-chain/). Ezek felelnek az összes konszenzushoz kapcsolódó logikáért, beleértve az elágazásalgoritmust, a tanúsítások feldolgozását, valamint a [proof-of-stake](/developers/docs/consensus-mechanisms/pos) jutalmak és büntetések kezelését. -| Kliens | Nyelv | Operációs rendszerek | Hálózatok | -| ------------------------------------------------------------- | ---------- | --------------------- | ------------------------------------------------------------ | -| [Lighthouse](https://lighthouse.sigmaprime.io/) | Rust | Linux, Windows, macOS | Beacon Chain, Goerli, Pyrmont, Sepolia, Ropsten stb. | -| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Beacon Chain, Goerli, Sepolia, Ropsten stb. | -| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Beacon Chain, Goerli, Sepolia, Ropsten stb. | -| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Beacon Chain, Gnosis, Goerli, Pyrmont, Sepolia, Ropsten stb. | -| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | Java | Linux, Windows, macOS | Beacon Chain, Gnosis, Goerli, Sepolia, Ropsten stb. | -| [Grandine](https://docs.grandine.io/) (béta) | Rust | Linux, Windows, macOS | Beacon Chain, Goerli, Sepolia és mások | +| Kliens | Nyelv | Operációs rendszerek | Hálózatok | +| ------------------------------------------------------------- | ---------- | --------------------- | --------------------------------------------------- | +| [Lighthouse](https://lighthouse.sigmaprime.io/) | Rust | Linux, Windows, macOS | Beacon lánc, Holesky, Pyrmont, Sepolia stb. | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Beacon lánc, Holesky, Sepolia stb. | +| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Beacon lánc, Holesky, Sepolia stb. | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Beacon lánc, Gnosis, Holesky, Pyrmont, Sepolia stb. | +| [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) | Java | Linux, Windows, macOS | Beacon lánc, Gnosis, Holesky, Sepolia stb. | +| [Grandine](https://docs.grandine.io/) | Rust | Linux, Windows, macOS | Beacon lánc, Holesky, Sepolia stb. | ### Lighthouse {#lighthouse} diff --git a/public/content/translations/hu/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/hu/developers/docs/nodes-and-clients/node-architecture/index.md index ebe15f5ec10..779a7783110 100644 --- a/public/content/translations/hu/developers/docs/nodes-and-clients/node-architecture/index.md +++ b/public/content/translations/hu/developers/docs/nodes-and-clients/node-architecture/index.md @@ -4,19 +4,21 @@ description: Bevezetés az Ethereum-csomópontok szerveződésébe. lang: hu --- -Egy Ethereum-csomópont két kliensből áll: egy [végrehajtási kliensből](/developers/docs/nodes-and-clients/#execution-clients) és egy [konszenzusos kliensből](/developers/docs/nodes-and-clients/#consensus-clients). +Egy Ethereum-csomópont két kliensből áll: egy [végrehajtási kliensből](/developers/docs/nodes-and-clients/#execution-clients) és egy [konszenzusos kliensből](/developers/docs/nodes-and-clients/#consensus-clients). Ahhoz, hogy egy csomópont új blokkot javasolhasson, egy [validátorklienst](#validators) is futtatnia kell. -Amikor az Ethereum a [proof-of-work (munkaigazolás)](/developers/docs/consensus-mechanisms/pow/) mechanizmusát használta, akkor a végrehajtási kliens elegendő volt egy teljes Ethereum-csomópont futtatásához. A [proof-of-stake (letétigazolás)](/developers/docs/consensus-mechanisms/pow/) mechanizmusának bevezetésétől a végrehajtási kliens egy másik szoftverrel együtt kell működtetni, amely a [konszenzusos kliens](/developers/docs/nodes-and-clients/#consensus-clients). +Amikor az Ethereum a [proof-of-work (munkaigazolás)](/developers/docs/consensus-mechanisms/pow/) mechanizmusát használta, akkor a végrehajtási kliens elegendő volt egy teljes Ethereum-csomópont futtatásához. A [proof-of-stake](/developers/docs/consensus-mechanisms/pow/) mechanizmusának bevezetésétől a végrehajtási klienst egy másik szoftverrel együtt kell működtetni, amelyet [konszenzusos kliensnek](/developers/docs/nodes-and-clients/#consensus-clients) neveznek. Ez az ábra a két Ethereum-kliens kapcsolatát mutatja. A két kliens a saját megfelelő peer-to-peer (P2P), azaz társak közötti hálózatához kapcsolódik. Külön P2P hálózatra van szükségük, mert a végrehajtási kliens a saját hálózatán terjeszti a „pletykát” a tranzakciókról, hogy azok a kliensek helyi tranzakciógyűjtőjébe kerülhessenek, miközben a konszenzusos kliens a saját hálózatán a blokkokról „pletykál”, mellyel konszenzust és láncnövekedést ér el. ![](node-architecture-text-background.png) -Ahhoz, hogy ez a két kliensből álló struktúra működni tudjon, a konszenzusos klienseknek tranzakciókötegeket kell átadni a végrehajtási kliensnek. Ahogy a kliens ezeket a tranzakciókat lokálisan végrehajtja, le tudja ellenőrizni, hogy nem sértenek-e semmilyen Ethereum szabályt, illetve a javasolt Ethereum státusz korrekt-e. Ehhez hasonlóan, amikor az adott csomópont válik a blokképítővé, akkor a konszenzusos kliensnek tranzakciókötegeket kell kérnie a Geth-től, hogy azokat az új blokkba betegye és végrehajtsa, hogy frissíteni tudja a globális státuszt. Ez a kliensek közötti kommunikáció egy helyi RPC-kapcsolaton keresztül megy végbe az [motor API-t](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) használva. +_A végrehajtási kliensre több lehetőség is van, köztük az Erigon, a Nethermind és a Besu_. + +Ahhoz, hogy ez a két kliensből álló struktúra működni tudjon, a konszenzusos klienseknek tranzakciókötegeket kell átadni a végrehajtási kliensnek. A végrehajtási kliens a tranzakciókat lokálisan hajtja végre annak ellenőrzésére, nem sértenek-e semmilyen Ethereum-szabályt, illetve a javasolt Ethereum-státusz helyes-e. Amikor egy csomópont blokképítővé válik, akkor a konszenzusos kliensnek tranzakciókötegeket kell kérnie a végrehajtási klienstől, hogy azokat az új blokkba belefoglalja és végrehajtsa, hogy frissíteni tudja a globális státuszt. A konszentusos kliens egy helyi RPC-kapcsolaton keresztül vezérli a végrehajtási klienst a [motor API-t](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) használva. ## Mit csinál a végrehajtási kliens? {#execution-client} -A végrehajtási kliens feladata a tranzakciók kezelése, a tranzakciókról való pletykálás, a státusz kezelése és az Ethereum virtuális gép ([EVM](/developers/docs/evm/)) támogatása. Ugyanakkor **nem** felel a blokképítésért, a blokkról való pletykáért vagy a konszenzuslogika kezeléséért. Ezek a konszenzusos kliens feladatai. +A végrehajtási kliens feladata a tranzakciók validálása, kezelése és a tranzakciókról való pletykálás, továbbá a státusz kezelése és az Ethereum virtuális gép ([EVM](/developers/docs/evm/)) támogatása. **Nem** felel a blokképítésért, a blokkról való pletykálásért vagy a konszenzuslogika kezeléséért. Ezek a konszenzusos kliens feladatai. A végrehajtási kliens végrehajtási csomagokat készít, melynek része a tranzakciók listája, a frissített státuszfa és más végrehajtással kapcsolatos adatok. A konszenzusos kliens a végrehajtási csomagot teszi bele a blokkba. A végrehajtási kliens azért is felel, hogy az új blokkok tranzakcióit újrafuttatva biztosítsa azok érvényességét. A tranzakciók újrafuttatása a végrehajtási kliens beépített számítógépén történik, melyet [Ethereum virtuális gépként (EVM)](/developers/docs/evm) ismerünk. @@ -35,7 +37,7 @@ A konszenzusos kliens nem vesz részt a tanúsításban vagy a blokkelőterjeszt ## Validátorok {#validators} -A csomópont működtetői hozzáadhatnak egy validátort a konszenzusos klienseikhez azzal, hogy 32 ETH-t letétbe helyeznek a letéti szerződésben. A validátorkliens a konszenzusos klienssel van összecsomagolva, és bármikor hozzá lehet adni egy csomóponthoz. A validátor kezeli a tanúsításokat és a blokkelőterjesztéseket. Lehetővé teszik, hogy a csomópont jutalmakat szerezzen vagy ETH-t veszítsen a büntetések és kizárások révén. A validátorszoftver futtatása megengedi, hogy a csomópont új blokkot is javasolhasson. +A letétbe helyezés és a validátorszoftver futtatása megengedi, hogy a csomópont új blokkot is javasolhasson. A csomópont működtetői hozzáadhatnak egy validátort a konszenzusos klienseikhez azzal, hogy 32 ETH-t letétbe helyeznek a letéti szerződésben. A validátorkliens a konszenzusos klienssel van összecsomagolva, és bármikor hozzá lehet adni egy csomóponthoz. A validátor kezeli a tanúsításokat és a blokkelőterjesztéseket. Lehetővé teszi, hogy a csomópont jutalmakat szerezzen vagy ETH-t veszítsen a büntetések és kizárások révén. [Bővebben a letétbe helyezésről](/staking/). diff --git a/public/content/translations/hu/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/hu/developers/docs/nodes-and-clients/nodes-as-a-service/index.md index 299af6a2d47..36dc6bac164 100644 --- a/public/content/translations/hu/developers/docs/nodes-and-clients/nodes-as-a-service/index.md +++ b/public/content/translations/hu/developers/docs/nodes-and-clients/nodes-as-a-service/index.md @@ -226,7 +226,7 @@ Az alábbiak a legnépszerűbb Ethereum-csomópontszolgáltatók – ha ismer ol - Több mint 500 adminisztratív és szolgáltatói API - RESTful-interfész az Ethereum-tranzakciók beküldésére (Apache Kafka támogatott) - Kimenő adatfolyamok esemény-végrehajtáshoz (Apache Kafka támogatott) - - Kimerítő láncon kívüli adatok és kiegészítő szolgáltatások (pl. kétoldalú titkosított üzentátadás) + - Kimerítő láncon kívüli adatok és kiegészítő szolgáltatások (pl. kétoldalú titkosított üzenetátadás) - Egyértelmű becsatlakozás a hálózatba irányítással és szerepkör szerinti hozzáféréskontroll - Szofisztikált felhasználókezelés az adminisztrátorok és a végfelhasználók felé is - Nagy mértékben skálázható, rugalmas, vállalati szintű infrastruktúra diff --git a/public/content/translations/hu/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/hu/developers/docs/nodes-and-clients/run-a-node/index.md index d3161ec3889..52b944e63c6 100644 --- a/public/content/translations/hu/developers/docs/nodes-and-clients/run-a-node/index.md +++ b/public/content/translations/hu/developers/docs/nodes-and-clients/run-a-node/index.md @@ -311,7 +311,7 @@ reth node \ --authrpc.port 8551 ``` -Tekintse meg a [Reth konfigurálást](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth), hogy többet megtudjon az alapértelmezett adatkönyvtárakról. [A Reth dokumentációja](https://reth.rs/run/mainnet.html) további opciókat és konfigurációs részleteket tartalmaz. +Tekintse meg a [Reth konfigurálását](https://reth.rs/run/config.html?highlight=data%20directory#configuring-reth), hogy többet megtudjon az alapértelmezett adatkönyvtárakról. [A Reth dokumentációja](https://reth.rs/run/mainnet.html) további opciókat és konfigurációs részleteket tartalmaz. #### A konszenzusos kliens elindítása {#starting-the-consensus-client} diff --git a/public/content/translations/hu/developers/docs/smart-contracts/index.md b/public/content/translations/hu/developers/docs/smart-contracts/index.md index dfcac198f89..d6dd64469cc 100644 --- a/public/content/translations/hu/developers/docs/smart-contracts/index.md +++ b/public/content/translations/hu/developers/docs/smart-contracts/index.md @@ -88,7 +88,7 @@ Tudjon meg többet az [okosszerződések összeilleszthetőségről](/developers Az okosszerződések önmagukban nem képesek információt lekérni a „külvilági” eseményekről, mivel nem tudnak adatot szerezni a láncon kívüli forrásokból. Tehát nem tudnak válaszolni a világ történéseire. Ez a tervezett logikájuk. A külső információkra való támaszkodás veszélyeztetheti a biztonság és a decentralizáció szempontjából fontos konszenzust. -Ugyanakkor fontos a blokklánchoz tartozó alkalmazásoknak, hogy láncon kívüli adatokat használhassanak. A megoldás az [orákulum](/developers/docs/oracles/), amely egy olyan eszköz, ami láncon kívüli adatokat kap fel és tesz elérhetővé az okosszerződések számára. +Ugyanakkor fontos a blokklánchoz tartozó alkalmazásoknak, hogy láncon kívüli adatokat használhassanak. A megoldás az [orákulum](/developers/docs/oracles/), amely láncon kívüli adatokat kér le és tesz elérhetővé az okosszerződések számára. Az okosszerződések másik korlátja a maximális méret. Legfeljebb 24 KB méretű lehet egy okosszerződés, különben nem lesz elegendő gáz a működéséhez. Ezt meg lehet kerülni a [gyémántminta](https://eips.ethereum.org/EIPS/eip-2535) használatával. diff --git a/public/content/translations/hu/developers/docs/smart-contracts/security/index.md b/public/content/translations/hu/developers/docs/smart-contracts/security/index.md index 997b5bc2b71..d9f8d59749c 100644 --- a/public/content/translations/hu/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/hu/developers/docs/smart-contracts/security/index.md @@ -99,7 +99,7 @@ Mindazonáltal fontos megjegyezni, hogy az audit nem old meg minden problémát. Egy másik megoldás lehet a hibavadászat-program felállítása, amellyel külsődleges kódvizsgálatot lehet végezni. A hibavadászat pénzügyi jutalommal jár olyan egyéneknek (általában fehérkalapos hackereknek), akik sebezhető pontokat fedeznek fel az alkalmazásban. -Ez a jutalom a hibavadászatért, ha megfelelően használják, kellő motivációt jelenthet a hackerközösség bizonyos tagjai számára, hogy átnézzék az Ön kódját is kritikus hibákat keresve. Valós példa lehet a „végtelen mennyiségű pénz hiba”, ami egy támadónak lehetővé teszi, hogy határtalan mennyiségű ethert hozzon létre az [Optimism-mal](https://www.optimism.io/), egy [második blokkláncréteg (L2)](/layer-2/) protokollal az Ethereumon. Szerencsére egy fehérkalapos hacker [felfedezte a hibát](https://www.saurik.com/optimism.html) és értesítette a csapatot, [amelyet jelentős pénzösszeggel jutalmaztak](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). +Ez a jutalom a hibavadászatért, ha megfelelően használják, kellő motivációt jelenthet a hackerközösség bizonyos tagjai számára, hogy átnézzék az Ön kódját is kritikus hibákat keresve. Valós példa lehet a „végtelen mennyiségű pénz hiba”, ami a támadóknak lehetővé teszi, hogy határtalan mennyiségű ethert hozzanak létre az [Optimism](https://www.optimism.io/), vagyis egy [második blokkláncréteges (L2)](/layer-2/) protokollal az Ethereumon. Szerencsére egy fehérkalapos hacker [felfedezte a hibát](https://www.saurik.com/optimism.html) és értesítette a csapatot, [amelyet jelentős pénzösszeggel jutalmaztak](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). Hasznos stratégia lehet, ha a kifizetés összegét arányosan kezelik a hiba által veszélybe kerülő pénzeszközök értékével. Ezt „[skálázódó hibavadászatnak](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7)” is nevezhetjük, ami pénzügyi motivációt ad az egyéneknek, hogy inkább feltárják a gyenge pontokat és ne kihasználják azokat. @@ -205,17 +205,17 @@ A vészleállítási lehetőség egy hatásos hézagpótlás ahhoz, hogy a fejle Az [események](https://docs.soliditylang.org/en/v0.8.15/contracts.html#events) lehetővé teszik az okosszerződéshez érkező hívások trekkelését és az állapotváltozók változásának felügyeletét. Bevált gyakorlatnak számít, ha az okosszerződés mindig kiad eseményt, amikor valaki egy biztonságkritikus tevékenységet végez (például kiveszi a pénzeszközöket). -Az események naplózása és felügyelete láncon kívül betekintést enged a szerződés működésébe, valamint az ártalmas tetteket hamarabb fel lehet fedezni általuk. Így a csapat gyorsabban tud reagálni a hackelésre, és azonnal cselekedni tud, hogy a felhasználókat ez ne érintse negatívan, például leállíthatják a függvényeket vagy frissítést indíthatnak el. +Az események láncon kívüli naplózása és felügyelete betekintést enged a szerződés működésébe, valamint az ártalmas műveleteket hamarabb fel lehet ismerni általuk. Így a csapat gyorsabban tud reagálni a hackelésre, és azonnal cselekedni tud, hogy a felhasználókat ez ne érintse negatívan, például leállíthatják a függvényeket vagy frissítést indíthatnak el. Választhat egy előre összeállított felügyeleti eszközt, amely automatikusan figyelmeztetéseket küld, amikor valaki interakcióba lép az Ön szerződéseivel. Ezek az eszközök segítenek személyre szabott figyelmeztetéseket is létrehozni különféle paraméterek alapján, mint amilyen a tranzakciómennyiség, a függvénymeghívások gyakorisága vagy az érintett függvények. Például beállíthat egy figyelmeztetést, ha a kivett pénzmennyiség egy tranzakcióban egy bizonyos határ felett van. ### 7. Tervezzen biztonságos irányítási rendszert {#design-secure-governance-systems} -Talán szeretné, hogy az alkalmazása decentralizált legyen, így a központi okosszerződések kontrollját a közösségi tagoknak adná. Ebben az esetben az okosszerződés rendszere felölel egy irányítási modult is – egy olyan mechanizmust, amellyel a közösségi tagok jóváhagyhatnak adminisztratív változásokat egy láncon belüli irányítási rendszer segítségével. Például azt a javaslatot, hogy a proxyszerződést egy új verzióra frissítsék, megszavaztathatja a tokennel rendelkező felhasználókkal. +Talán szeretné, hogy az alkalmazása decentralizált legyen, így a központi okosszerződések kontrollját a közösségi tagoknak adná. Ebben az esetben az okosszerződéses rendszer felölel egy irányítási modult is – egy olyan mechanizmust, amellyel a közösségi tagok jóváhagyhatnak adminisztratív változásokat egy láncon belüli irányítási rendszer segítségével. Például azt a javaslatot, hogy a proxyszerződést egy új verzióra frissítsék, megszavaztathatja a tokennel rendelkező felhasználókkal. A decentralizált irányítás előnyös lehet, főleg mivel összeegyezteti a fejlesztők és a felhasználók érdekeit. Mindazonáltal az okosszerződés irányításimechanizmusa új kockázatokat is jelenthet, ha nem megfelelően vezetik be. Kézenfekvő probléma, ha egy támadó nagyon magas szavazatierőt szerez (amit az általa birtokolt tokenek száma ad) azáltal, hogy [villámhitelt](/defi/#flash-loans) vesz fel, majd egy ártó változásra tesz javaslatot. -A láncon működő irányítási modell problémáit meg lehet oldani az [időzár használatával](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/) is. Az időzár megakadályozza, hogy az okosszerződés végrehajtson bizonyos műveleteket addig, amíg nem telt el egy adott idő. Más stratégia lehet a tokenekhez rendelt „szavazati súly” az alapján, hogy azt mennyi időre kötötték le, vagy egy adott cím szavazati erejét hosszabb periódusra is nézhetik (például 2–3 korábbi blokkra) a jelenlegi blokk helyett. Ezek csökkentik a lehetőségét annak, hogy valaki gyorsan jelentős szavazati erőre tegyen szert, hogy a láncon zajló szavazást eltérítse. +A láncon működő irányítási modell problémáit [időzár használatával](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/) is meg lehet oldani. Az időzár megakadályozza, hogy az okosszerződés végrehajtson bizonyos műveleteket addig, amíg nem telt el egy adott idő. Más stratégia lehet a tokenekhez rendelt „szavazati súly” az alapján, hogy azt mennyi időre kötötték le, vagy egy adott cím szavazati erejét hosszabb periódusra is nézhetik (például 2–3 korábbi blokkra) a jelenlegi blokk helyett. Ezek csökkentik a lehetőségét annak, hogy valaki gyorsan jelentős szavazati erőre tegyen szert, hogy a láncon zajló szavazást eltérítse. Többet megtudhat a [biztonságos kormányzási rendszerek tervezéséről](https://blog.openzeppelin.com/smart-contract-security-guidelines-4-strategies-for-safer-governance-systems/), a [különböző szavazási mechanizmusokról a DAO-kban](https://hackernoon.com/governance-is-the-holy-grail-for-daos) és [a DeFi-t kihasználó gyakori DAO támadási vektorokról](https://dacian.me/dao-governance-defi-attacks) a megosztott linkeken. @@ -346,7 +346,7 @@ contract MutexPattern { require(balances[msg.sender] >= _amount, "No balance to withdraw."); balances[msg.sender] -= _amount; - bool (success, ) = msg.sender.call{value: _amount}(""); + (bool success, ) = msg.sender.call{value: _amount}(""); require(success); return true; @@ -439,7 +439,7 @@ A 0.8.0 verzió szerint a Solidity átfordító elutasítja azokat a kódokat, a #### Orákulum manipulációja {#oracle-manipulation} -Az [orákulumok](/developers/docs/oracles/) láncon kívüli információkat gyűjtenek és beküldik azokat a láncra, hogy az okosszerződések használhassák. Az orákulumok révén Ön olyan okosszerződéseket tervezhet, amelyek együtt tudnak működni láncon kívüli rendszerekkel, mint a tőkepiacok, ezzel nagy mértékben kiterjesztve az alkalmazási körüket. +Az [orákulumok](/developers/docs/oracles/) láncon kívüli információkat gyűjtenek és beküldik azokat a láncra, hogy az okosszerződések használhassák azokat. Az orákulumok révén Ön olyan okosszerződéseket tervezhet, amelyek együtt tudnak működni láncon kívüli rendszerekkel, mint a tőkepiacok, ezzel nagy mértékben kiterjesztve az alkalmazási körüket. Ha viszont az orákulum korrupttá válik és nem helyes információkat küld a láncra, az okosszerződések hibás bejövő adatok alapján fognak működni, ez pedig problémákat okoz. Ez az „orákulumprobléma” alapja, amely miatt biztosítani kell, hogy a blokklánc-orákulum által adott információ pontos, friss és időben elérhető legyen. @@ -563,7 +563,7 @@ Ha Ön azt tervezi, hogy egy láncon lévő orákulumot kérdez le eszközárak - **[Smart Contract Security Verification Standard](https://github.com/securing/SCSVS)** – _Egy tizennégy részes ellenőrző lista fejlesztők, architektúrával foglalkozók, biztonság-ellenőrzők és beszállítók számára az okosszerződések biztonságának szabványosításához._ -- **[Az okosszerződések biztonságának és auditálásának elsajátítása](https://updraft.cyfrin.io/courses/security) – _Az okosszerződések biztonságát és auditálását oktató tanfolyamot olyan fejlesztőknek hozták létre, akik a legjobb biztonsági gyakorlatok mentén szeretnének fejleszteni és biztonsági kutatókká válni._ +- **[Az okosszerződések biztonságának és auditálásának elsajátítása](https://updraft.cyfrin.io/courses/security)** – _Az okosszerződések biztonságát és auditálását oktató tanfolyamot olyan fejlesztőknek hozták létre, akik a legjobb biztonsági gyakorlatok szerint szeretnének fejleszteni és biztonsági kutatókká válni._ ### Útmutatók az okosszerződés-biztonságról {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/hu/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/hu/developers/docs/standards/tokens/erc-1155/index.md index 68404126db9..cfce7ee062c 100644 --- a/public/content/translations/hu/developers/docs/standards/tokens/erc-1155/index.md +++ b/public/content/translations/hu/developers/docs/standards/tokens/erc-1155/index.md @@ -141,6 +141,6 @@ _Megjegyzés_: Minden csoportos funkció, beleértve a hook-ot is, egyéni vált ## További olvasnivaló {#further-reading} - [ERC-1155: Multitoken szabvány](https://eips.ethereum.org/EIPS/eip-1155) -- [ERC-1155: Openzeppelin-dokumentációk](https://docs.openzeppelin.com/contracts/3.x/erc1155) +- [ERC-1155: Openzeppelin-dokumentációk](https://docs.openzeppelin.com/contracts/5.x/erc1155) - [ERC-1155: GitHub mappa](https://github.com/enjin/erc-1155) - [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/public/content/translations/hu/governance/index.md b/public/content/translations/hu/governance/index.md index dc047fa5bf4..2d5ac155ae2 100644 --- a/public/content/translations/hu/governance/index.md +++ b/public/content/translations/hu/governance/index.md @@ -22,13 +22,13 @@ Az Ethereum protokollt nem birtokolja vagy kontrollálja senki, ugyanakkor a vá Az Ethereum irányítása (governance) az a folyamat, amely által a protokoll megváltoztatható. Fontos kiemelni, hogy ez nem kapcsolódik ahhoz, hogy az emberek és az alkalmazások hogyan használják a protokollt, mert az Ethereum egy engedélymentes hálózat. A világon bárki bárhonnan részt vehet a láncon zajló tevékenységekben. Nincsenek olyan szabályok, hogy ki csinálhat vagy nem csinálhat alkalmazást vagy indíthat tranzakciókat. Ugyanakkor van egy folyamat, mellyel változásokat lehet kezdeményezni a protokollban, amelyre a decentralizált alkalmazások épülnek. Mivel sok ember függ az Ethereum stabilitásától, ezért a kulcsváltozások koordinációs küszöbe nagyon magas, beleértve a közösségi és technikai folyamatokét is, hogy az Ethereum módosítása biztonságos és a közösség által széles körben támogatott legyen. -### A láncon belüli és kívüli irányítás összehasonlítása {#on-chain-vs-off-chain} +### A láncon belüli és kívüli irányítás összehasonlítása {#onchain-vs-offchain} -A blokklánc-technológiával új irányítási képességek jelentek meg, mint amilyen a láncon belüli irányítás is. A láncon belüli irányítás az, amikor a javasolt protokollváltoztatásokat az érdekeltek megszavazzák, általában egy irányítási token birtokában, a szavazás pedig a láncon zajlik. A láncon belüli irányítás néhány esetében a javasolt változások már bele vannak írva a kódba és automatikusan végrehajtásra kerülnek, ha az érdekeltek jóváhagyják azt, aláírva a tranzakciót. +A blokklánc-technológiával új irányítási képességek jelentek meg, mint amilyen a láncon belüli irányítás is. A láncon belüli irányítás az, amikor a javasolt protokollváltoztatásokat az érdekeltek megszavazzák, általában egy irányítási token birtokában, a szavazás pedig a láncon zajlik. A láncon belüli irányítás néhány esetében a javasolt változások már bele vannak írva a kódba és automatikusan végrehajtásra kerülnek, ha az érdekeltek az aláírásukkal jóváhagyják a tranzakciót. -A másik megközelítés, a láncon kívüli irányítás az, amikor a protokoll változtatásait egy közösségi megvitatás informális folyamata vezérli, amit ha jóváhagynak, akkor teszik bele a kódba. +A másik megközelítés a láncon kívüli irányítás, amikor a protokoll változtatásait a közösségi megvitatás informális folyamata vezérli, amely csak a jóváhagyást követően kerül bele a kódba. -**Az Ethereum-irányítás láncon kívül történik** az érdekeltek széles körét bevonva. +**Az Ethereum-irányítás a láncon kívül történik** az érdekeltek széles körét bevonva a folyamatba. _Miközben a protokollszintű Ethereum-irányítás láncon kívül zajlik, addig számos alkalmazási területe van a láncon belüli irányításnak, mint például a decentralizált autonóm szervezetek (DAO) működése._ @@ -180,3 +180,5 @@ Az Ethereumban az irányítás nincs szigorúan definiálva. A közösség kül - [Kik az az Ethereum protokollfejlesztői?](https://hudsonjameson.com/2020-06-22-what-is-an-ethereum-core-developer/) – _Hudson Jameson_ - [Irányítás, 2. rész: A plutokrácia még mindig rossz](https://vitalik.eth.limo/general/2018/03/28/plutocracy.html) – _Vitalik Buterin_ - [Túl az érmealapú szavazásra épülő irányításon](https://vitalik.eth.limo/general/2021/08/16/voting3.html) – _Vitalik Buterin_ +- [A blokklánc irányítás megértése](https://research.2077.xyz/understanding-blockchain-governance) - _2077 Research_ +- [Az Ethereum irányítása](https://www.galaxy.com/insights/research/ethereum-governance/) - _Christine Kim_ diff --git a/public/content/translations/id/community/events/index.md b/public/content/translations/id/community/events/index.md index 6aced63ea22..41afcffab39 100644 --- a/public/content/translations/id/community/events/index.md +++ b/public/content/translations/id/community/events/index.md @@ -1,8 +1,8 @@ --- title: Aksi Ethereum description: Cara terlibat di dalam komunitas Ethereum. -hideEditButton: true lang: id +hideEditButton: true --- # Aksi mendatang {#events} @@ -11,7 +11,9 @@ lang: id -Ini adalah daftar tidak lengkap yang dipelihara oleh komunitas kami. Tahu aksi Ethereum mendatang untuk ditambahkan ke daftar ini? [Silahkan tambahkan](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! +Ini adalah daftar tidak lengkap yang dipelihara oleh komunitas kami. Tahu aksi Ethereum mendatang untuk ditambahkan ke daftar ini? [Silakan tambahkan](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + ## Pertemuan Ethereum {#meetups} @@ -21,4 +23,4 @@ Tidak melihat aksi yang cocok untuk Anda? Cobalah menghadiri sebuah pertemuan. P Anda tertarik dengan memulai pertemuan Anda sendiri? Lihat [Jaringan BUIDL](https://consensys.net/developers/buidlnetwork/), suatu inisiatif oleh ConsenSys untuk membantu mendukung pertemuan Ethereum. -Ini adalah daftar tidak lengkap yang dibuat oleh komunitas kami. Anda dapat [menemukan lebih banyak pertemuan Ethereum di sini](https://www.meetup.com/topics/ethereum/). Tahu suatu grup pertemuan aktif untuk ditambahkan ke daftar ini? [Silahkan tambahkan](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! +Ini adalah daftar tidak lengkap yang dibuat oleh komunitas kami. Anda dapat [menemukan lebih banyak pertemuan Ethereum di sini](https://www.meetup.com/topics/ethereum/). Ada grup pertemuan aktif yang ingin Anda tambahkan ke daftar ini? [Silahkan tambahkan](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/id/contributing/adding-layer-2s/index.md b/public/content/translations/id/contributing/adding-layer-2s/index.md index 1c6bdb06006..787474e9088 100644 --- a/public/content/translations/id/contributing/adding-layer-2s/index.md +++ b/public/content/translations/id/contributing/adding-layer-2s/index.md @@ -1,10 +1,10 @@ --- -title: Menambahkan lapisan 2 +title: Menambahkan Layer 2 description: Kebijakan yang kami gunakan saat menambahkan lapisan ke-2 ke ethereum.org lang: id --- -# Menambahkan layer 2 {#adding-layer-2} +# Menambahkan Layer 2 {#adding-layer-2} Kami ingin memastikan bahwa kami telah mencantumkan sumber daya terbaik sehingga pengguna dapat mengarahkan ruang lapisan 2 secara aman dan percaya diri. diff --git a/public/content/translations/id/contributing/adding-staking-products/index.md b/public/content/translations/id/contributing/adding-staking-products/index.md index b0c6a02bebd..2b1c1e8cb2b 100644 --- a/public/content/translations/id/contributing/adding-staking-products/index.md +++ b/public/content/translations/id/contributing/adding-staking-products/index.md @@ -87,7 +87,7 @@ Untuk perangkat lunak atau kontrak pintar khusus yang terlibat: Untuk produk perangkat lunak yang terkait dengan pengaturan, manajemen, atau migrasi simpul atau klien: -**Klien lapisan konsensus mana (mis. Lighthouse, Teku, Nimbus, Prysm) yang didukung?** +**Klien lapisan konsensus mana (mis. Lighthouse, Teku, Nimbus, Prysm, Grandine) yang didukung?** - Klien mana yang didukung? Apakah pengguna dapat memilih? - Ini digunakan untuk menentukan skor "multi-client" produk. diff --git a/public/content/translations/id/contributing/design/index.md b/public/content/translations/id/contributing/design/index.md index 911d967ecfd..0ee473ae195 100644 --- a/public/content/translations/id/contributing/design/index.md +++ b/public/content/translations/id/contributing/design/index.md @@ -6,7 +6,7 @@ lang: id # Kontribusi desain untuk ethereum.org {#design-contributions} -Desain adalah komponen penting dari setiap proyek, dan dengan mendedikasikan waktu dan keterampilan desain Anda untuk Ethereum.org, Anda dapat membantu meningkatkan pengalaman pengguna bagi pengunjung kami. Berkontribusi pada proyek open-source memberikan kesempatan untuk mendapatkan pengalaman yang relevan dan mengembangkan keterampilan Anda dalam lingkungan yang kolaboratif. Anda akan memiliki kesempatan untuk bekerja dengan desainer, pengembang, dan anggota komunitas lainnya, yang semuanya memiliki perspektif dan wawasan yang unik. +Desain adalah komponen penting dari proyek apa pun, dan dengan mendedikasikan waktu dan keterampilan desain Anda untuk ethereum.org, Anda dapat membantu meningkatkan pengalaman pengguna untuk pengunjung kami. Berkontribusi pada proyek open-source memberikan kesempatan untuk mendapatkan pengalaman yang relevan dan mengembangkan keterampilan Anda dalam lingkungan yang kolaboratif. Anda akan memiliki kesempatan untuk bekerja dengan desainer, pengembang, dan anggota komunitas lainnya, yang semuanya memiliki perspektif dan wawasan yang unik. Pada akhirnya, ini adalah cara yang bagus untuk membangun portofolio yang beragam dan mengesankan yang menampilkan keterampilan desain Anda. @@ -30,7 +30,7 @@ Berikan umpan balik di situs web kami dengan: ###  Temukan masalah terkait desain di situs web dan laporkan {#report-design-issues} -Ethereum.org adalah situs web yang berkembang pesat dengan banyak fitur dan konten. Beberapa UI dapat dengan mudah menjadi ketinggalan zaman atau dapat ditingkatkan. Jika Anda menemukan kasus seperti itu, harap laporkan agar menjadi perhatian kami. +ethereum.org adalah situs web yang berkembang pesat dengan banyak fitur dan konten. Beberapa UI dapat dengan mudah menjadi ketinggalan zaman atau dapat ditingkatkan. Jika Anda menemukan kasus seperti itu, harap laporkan agar menjadi perhatian kami. 1. Kunjungi situs web dan perhatikan desainnya. 2. Ambil tangkapan layar dan catat jika Anda melihat masalah visual atau UX. @@ -51,10 +51,10 @@ Sistem desain kami membuat mendesain ethereum.org menjadi menyenangkan dan mudah 1. Pilih isu yang akan dikerjakan dari [papan sistem desain](https://github.com/ethereum/ethereum-org-website/labels/design%20system) di GitHub atau buat yang baru. 2. Minta isu yang dipilih untuk ditugaskan kepada Anda. -3. Mulailah mendesain komponen yang diminta di figma. +3. Mulailah mendesain komponen yang diminta di Figma. 4. Bagikan dengan tim desain di GitHub saat Anda membutuhkan tinjauan atau panduan. 5. Tim desain akan meninjau. -6. Tim Desain akan memasukan perubahan ke dalam file utama dan mempublikasikan file ke komunitas. +6. Tim desain akan memasukkan perubahan dalam file utama dan memublikasikan file tersebut ke komunitas. ###  Tulis konten terkait desain di situs web {#write-design-articles} @@ -64,7 +64,7 @@ Komunitas pengembang Ethereum sangat kuat, tetapi komunitas desain sedikit terti 2. Buka repositori GitHub kami dan [ajukan isu](https://github.com/ethereum/ethereum-org-website/issues/new) saat mengusulkan topik (jangan menulis konten terlebih dahulu). 3. Tunggu hingga tim desain menyetujuinya. 4. Setelah disetujui, tulislah kontennya. -5. Kirimkan di masalah GH yang sesuai. +5. Kirimkan tulisan Anda di edisi GitHub yang sesuai. ###  Gambar ilustrasi baru {#prepare-illustrations} diff --git a/public/content/translations/id/contributing/index.md b/public/content/translations/id/contributing/index.md index 6667b8e3e7a..90611991d16 100644 --- a/public/content/translations/id/contributing/index.md +++ b/public/content/translations/id/contributing/index.md @@ -19,13 +19,12 @@ Kami adalah komunitas yang ramah yang akan membantu Anda berkembang dan belajar - [Bekerja pada masalah terbuka](https://github.com/ethereum/ethereum-org-website/issues) – Pekerjaan yang telah kami identifikasi dan perlu dilakukan **Desain** -- [Bantu desain situs web](/contributing/design/) Desainer dari semua tingkat dapat berkontribusi untuk meningkatkan situs web +- [Bantu kami mendesain situs web](/contributing/design/) - Desainer dari semua tingkat dapat berkontribusi meningkatkan situs web **Konten** - [Buat/edit konten](/contributing/#how-to-update-content) – Usulkan halaman baru atau lakukan perubahan pada apa yang sudah ada di sini - [Tambahkan sumber daya komunitas](/contributing/content-resources/) – Tambahkan artikel atau sumber daya yang berguna ke halaman yang relevan - [Tambahkan sumber daya komunitas](/contributing/design/adding-design-resources/) – Tambahkan artikel atau sumber daya yang bermanfaat ke halaman yang relevan -- [Tambahkan istilah glosarium](/contributing/adding-glossary-terms/) – Bantu kami terus memperluas Ethereum [glossary](/glossary/) - [Kuiz](/contributing/quizzes/) – Tambahkan, perbarui, dan hapus bank soal kuis untuk halaman yang relevan **Ide fitur** @@ -68,7 +67,7 @@ Sebelum berkontribusi, pastikan Anda memahami: - [panduan gaya](/contributing/style-guide/) kami - kode etik [kami](/community/code-of-conduct) - + ## Bagaiman keputusan tentang situs dibuat {#how-decisions-about-the-site-are-made} @@ -90,11 +89,11 @@ Kami menerapkan pembatasan tidak ketat untuk isu tertulis di repositori GitHub k Jika kontribusi Anda digabungkan ke ethereum.org, Anda akan memiliki kesempatan untuk mengeklaim lencana khusus di [Galxe](https://app.galxe.com/quest/ethereumorg). Token Prestasi Onchain (OAT) adalah bukti bahwa Anda telah membantu membuat ekosistem menjadi sedikit lebih hebat. -[Selengkapnya tentang OAT](https://help.galxe.com/en/articles/7067290-galxe-oats-reward-and-celebrate-achievements) +[Selengkapnya tentang OAT](https://help.galxe.com/en/articles/9645630-create-quest-rewards#h_1c5d63ba03) ### Cara mengklaim 1. Bergabunglah dalam [server Discord](https://discord.gg/ethereum-org) kami. -2. Tempelkan tautan ke kontribusi Anda di saluran `#🥇 | bukti kontribusi` +2. Tempelkan tautan ke kontribusi Anda di saluran `#🥇 | bukti kontribusi`. 3. Tunggu hingga anggota tim kami mengirimkan tautan ke OAT Anda. 4. Klaim OAT Anda! diff --git a/public/content/translations/id/contributing/translation-program/how-to-translate/index.md b/public/content/translations/id/contributing/translation-program/how-to-translate/index.md index 01c75325725..e8601b852b7 100644 --- a/public/content/translations/id/contributing/translation-program/how-to-translate/index.md +++ b/public/content/translations/id/contributing/translation-program/how-to-translate/index.md @@ -18,7 +18,7 @@ Bagi yang lebih suka belajar secara visual, tonton Luka menjelaskan langkah-lang Anda harus masuk ke akun Crowdin atau mendaftar jika belum memiliki akun. Yang diperlukan untuk mendaftar hanyalah akun email dan kata sandi. - + Bergabung dengan proyek @@ -82,7 +82,7 @@ Setelah Anda menyelesaikan terjemahan (yaitu, semua file untuk satu kelompok kon ### Hubungi kami {#get-in-touch} -Ada pertanyaan? Atau ingin kolaborasi dengan tim kami atau penerjemah lainnya? Silakan posting di kanal #translations dari server [Discord ethereum.org](/discord/) kami +Ada pertanyaan? Atau ingin berkolaborasi dengan tim kami atau penerjemah lainnya? Silakan posting di kanal #translations dari server [Discord ethereum.org](/discord/) kami Anda juga dapat menghubungi kami di translations@ethereum.org diff --git a/public/content/translations/id/contributing/translation-program/index.md b/public/content/translations/id/contributing/translation-program/index.md index e90d35d93e2..bda4e8856d9 100644 --- a/public/content/translations/id/contributing/translation-program/index.md +++ b/public/content/translations/id/contributing/translation-program/index.md @@ -36,9 +36,9 @@ Bacaan lanjutan mengenai Program Penerjemahan ethereum.org [visi dan misi](/cont ### Kemajuan kami sejauh ini {#our-progress} -- [**6.000+** penerjemah](/contributing/translation-program/contributors/) -- **62** bahasa ada di situs -- [**3 juta** kata telah diterjemahkan di 2023](/contributing/translation-program/acknowledgements/) +- [**6.900+** penerjemah](/contributing/translation-program/contributors/) +- **68** bahasa ada di situs +- [**2.89 juta** kata telah diterjemahkan di 2024](/contributing/translation-program/acknowledgements/) diff --git a/public/content/translations/id/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/id/developers/tutorials/calling-a-smart-contract-from-javascript/index.md index a17dff93df5..976dec1f8c5 100644 --- a/public/content/translations/id/developers/tutorials/calling-a-smart-contract-from-javascript/index.md +++ b/public/content/translations/id/developers/tutorials/calling-a-smart-contract-from-javascript/index.md @@ -105,7 +105,7 @@ Anda dapat mengakses metode kontrak pintar beserta instancenya yang untuknya And ```js daiToken.methods.balanceOf(senderAddress).call(function (err, res) { if (err) { - console.log("An error occured", err) + console.log("An error occurred", err) return } console.log("The balance is: ", res) @@ -123,7 +123,7 @@ daiToken.methods .transfer(receiverAddress, "100000000000000000000") .send({ from: senderAddress }, function (err, res) { if (err) { - console.log("An error occured", err) + console.log("An error occurred", err) return } console.log("Hash of the transaction: " + res) diff --git a/public/content/translations/id/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/id/guides/how-to-create-an-ethereum-account/index.md index 2f5f50ba81a..35d2c36210a 100644 --- a/public/content/translations/id/guides/how-to-create-an-ethereum-account/index.md +++ b/public/content/translations/id/guides/how-to-create-an-ethereum-account/index.md @@ -6,21 +6,22 @@ lang: id # Cara membuat akun Ethereum -Siapa pun dapat membuat akun Ethereum kapan saja, secara gratis. Ada beberapa cara, tetapi cara yang paling mudah dan umum adalah dengan menggunakan aplikasi yang dikenal sebagai dompet. Dompet menciptakan dan mengamankan kunci yang memungkinkan Anda menggunakan Ethereum. Anda dapat menggunakan dompet untuk mengirim transaksi, memeriksa saldo token, dan terhubung ke aplikasi yang dibangun di atas Ethereum, seperti pertukaran token, game, pasar NFT, dan lainnya. Beberapa aplikasi "web2" sekarang juga memungkinkan Anda masuk dengan menggunakan Ethereum. +Siapa pun dapat membuat akun Ethereum secara gratis. Anda hanya perlu memasang aplikasi dompet kripto. Dompet membuat dan mengelola akun Ethereum Anda. Mereka dapat mengirim transaksi, memeriksa saldo, dan menghubungkan Anda ke aplikasi lain yang dibangun di Ethereum. -Berbeda dengan membuka akun baru dengan perusahaan, membuat akun Ethereum dilakukan secara bebas, pribadi, dan tanpa memerlukan izin. Akun dikontrol menggunakan kunci dari perangkat lunak dompet yang Anda buat, tidak dikeluarkan oleh pihak ketiga atau disimpan secara terpusat. +Dengan dompet kamu juga dapat masuk ke Bursa token, permainan, [NFT](/glossary/#nft) marketplace secara instan. Tidak perlu registrasi individual, satu akun digunakan untuk semua aplikasi yang dibangun di Ethereum. ## Langkah 1: Pilih dompet -Dompet adalah aplikasi yang membantu Anda mengelola akun Ethereum Anda. Dompet menggunakan kunci Anda untuk mengirim dan menerima transaksi serta masuk ke aplikasi. Ada banyak jenis dompet yang dapat dipilih - seluler, desktop, atau ekstensi browser. +Dompet adalah aplikasi yang membantu Anda mengelola akun Ethereum Anda. Ada berbagai dompet berbeda untuk dipilih: seluler, desktop, atau bahkan ekstensi browser. + - Temukan dompet + Daftar dompet Jika Anda baru, Anda dapat memilih filter "Baru dalam kripto" pada halaman "cari dompet" untuk mengidentifikasi dompet yang seharusnya mencakup semua fitur yang diperlukan dan cocok untuk pemula. -![pemilihan filter di halaman 'cari dompet'](./wallet-box.png) +![Pemilihan filter pada halaman 'temukan dompet'](./wallet-box.png) Ada juga filter profil lain untuk memenuhi kebutuhan Anda. Ini contoh-contoh dompet yang sering digunakan - Anda sebaiknya melakukan penelitian sendiri sebelum mempercayai perangkat lunak apa pun. @@ -28,45 +29,45 @@ Ada juga filter profil lain untuk memenuhi kebutuhan Anda. Ini contoh-contoh dom Setelah Anda memilih dompet, buka situs web resmi mereka atau app store kemudian unduh dan instal. Semuanya gratis. -## Langkah 3: Buka aplikasi dan buat atau impor akun Ethereum Anda +## Langkah 3: Buka aplikasi dan buat akun Ethereum Anda -Ketika pertama kali membuka aplikasi dompet yang baru, Anda akan diminta untuk memilih membuat akun baru atau mengimpor akun yang sudah ada. Klik pembuatan akun baru. +Ketika pertama kali membuka aplikasi dompet yang baru, Anda akan diminta untuk memilih membuat akun baru atau mengimpor akun yang sudah ada. Klik pembuatan akun baru. Ini adalah langkah saat perangkat lunak dompet membuat akun Ethereum Anda. ## Langkah 4: Simpan frasa pemulihan Anda -Beberapa aplikasi akan meminta Anda untuk menyimpan 'frase benih' rahasia (Anda juga mungkin melihat ini disebut sebagai "frasa pemulihan" atau "mnemonik"). Menjaga frase benih ini tetap aman sangat penting! Frase benih digunakan untuk menghasilkan kunci rahasia untuk sebuah akun yang dapat digunakan untuk menandatangani dan mengirim transaksi. Setiap orang yang mengetahui frase benih dapat mengambil alih kendali atas semua akun yang dihasilkannya. Jangan pernah berbagi frase benih dengan siapa pun. Frase benih harus terdiri dari 12 hingga 24 kata yang dihasilkan secara acak (urutan kata-kata penting). - -Setelah Anda menyimpan frase benih, Anda seharusnya dapat melihat dasbor dompet beserta saldo Anda. Lihat panduan kami: [cara menggunakan dompet.](/guides/how-to-use-a-wallet) +Beberapa aplikasi akan meminta Anda untuk menyimpan frasa pemulihan rahasia "frase benih" (kadang-kadang disebut juga "frasa benih" atau "mnemonic"). Menjaga frasa ini tetap aman sangat penting! Ini digunakan untuk menghasilkan akun Ethereum Anda dan dapat digunakan untuk mengirimkan transaksi. -
+**Siapa pun yang mengetahui frasa tersebut dapat mengendalikan semua dana.**Jangan pernah membagikannya kepada siapa pun. Kata kunci ini memuat 12 sampai 24 kata-kata acak (urutan kata-kata ini sangat penting). +
-
Ingin mempelajari selengkapnya?
- - Lihat panduan lainnya +
Dompet sudah terinstal??
Pelajari cara menggunakannya.
+ + Cara menggunakan dompet
+
+ +Tertarik dengan panduan lainnya? Lihatlah dokumen kami: [Panduan langkah demi langkah](/guides/) ## Pertanyaan yang sering diajukan ### Apakah dompet dan akun Ethereum saya itu sama? -Tidak. Dompet adalah alat pengelolaan yang membantu Anda mengelola akun. Satu dompet mungkin memberikan akses ke beberapa akun, dan satu akun dapat diakses oleh beberapa dompet. Frase benih digunakan untuk membuat akun yang kemudian dikendalikan oleh dompet. - -Anda dapat menganggap akun-akun itu seperti daun-daun pada pohon yang semuanya 'tumbuh' dari satu frase benih. Setiap frasa benih unik akan menumbuhkan pohon akun yang benar-benar berbeda. +Tidak. Dompet adalah alat pengelolaan yang membantu Anda mengelola akun. Satu dompet bisa mengakses beberapa akun, dan satu akun bisa diakses oleh beberapa dompet. Frasa pemulihan digunakan untuk membuat akun dan memberikan izin kepada aplikasi dompet untuk mengelola aset. ### Apakah saya bisa mengirimkan bitcoin ke alamat Ethereum, atau ether ke alamat Bitcoin? -Tidak, Anda tidak bisa. Bitcoin dan ether ada di dua jaringan terpisah (yaitu, rantai blok yang berbeda), masing-masing dengan model pencatatan dan format alamatnya sendiri. Telah ada berbagai upaya untuk menghubungkan kedua jaringan yang berbeda tersebut, di antaranya yang paling aktif saat ini adalah [Wrapped Bitcoin atau WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Ini bukan merupakan dukungan, karena WBTC adalah solusi kustodial (berarti sekelompok orang mengendalikan beberapa fungsi kritis) dan disediakan di sini hanya untuk tujuan informasi. +Tidak, Anda tidak bisa. Bitcoin dan ether ada di dua jaringan terpisah (yaitu, rantai blok yang berbeda), masing-masing dengan format pencatatan dan alamat mereka sendiri. Telah ada berbagai upaya untuk menghubungkan dua jaringan yang berbeda tersebut, di antaranya yang paling aktif saat ini yakni [Wrapped Bitcoin atau WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Ini bukan merupakan dukungan, karena WBTC adalah solusi kustodial (berarti sekelompok orang mengendalikan beberapa fungsi kritis) dan disediakan di sini hanya untuk tujuan informasi. ### Jika saya memiliki alamat ETH, apakah akan sama di rantai blok yang lain? -Anda dapat menggunakan alamat yang sama di semua rantai blok yang menggunakan perangkat lunak dasar yang serupa dengan Ethereum (dikenal sebagai 'kompatibel dengan EVM'). [Daftar](https://chainlist.org/) berikut ini memperlihatkan bagaimana cara menggunakan rantai blok dengan alamat yang sama. Beberapa rantai blok seperti Bitcoin, menerapkan peraturan pada jaringan yang terpisah dan Anda akan membutuhkan alamat yang berbeda dengan format yang berbeda pula. Jika Anda memiliki dompet kontrak pintar, maka Anda dapat melihat situs web produknya untuk mendapatkan informasi lebih lanjut mengenai rantai blok yang didukung olehnya. +Kamu bisa menggunakan yang [alamat](/glossary/#address) yang sama pada semua rantai blok yang menggunakan perangkat lunak dasar yang serupa dengan Ethereum (dikenal sebagai 'kompatibel dengan EVM'). [Daftar](https://chainlist.org/) berikut ini memperlihatkan bagaimana cara menggunakan rantai blok dengan alamat yang sama. Beberapa rantai blok seperti Bitcoin, menerapkan peraturan pada jaringan yang terpisah dan Anda akan membutuhkan alamat yang berbeda dengan format yang berbeda pula. Jika memiliki dompet kontrak pintar, kamu sebaiknya memeriksa situs web produk untuk informasi lebih lanjut tentang rantai blok mana yang didukung, karena biasanya dompet tersebut memiliki jangkauan yang terbatas namun lebih aman. ### Apakah memiliki dompet sendiri lebih aman dibandingkan dengan menyimpan dana di bursa? -Mempunyai dompet sendiri berarti Anda bertanggung jawab atas keamanan aset Anda. Sayangnya, ada banyak contoh bursa yang gagal dan kehilangan uang pelanggan mereka. Memiliki dompet (dengan frase benih) menghilangkan risiko yang terkait dengan mempercayai entitas tertentu untuk menyimpan aset Anda. Namun, Anda harus mengamankan kunci Anda sendiri dan menghindari penipuan phishing, secara tidak sengaja menyetujui transaksi atau mengungkapkan kunci, berinteraksi dengan situs web palsu, dan risiko penyimpanan sendiri lainnya. Risiko dan manfaatnya berbeda. +Mempunyai dompet sendiri berarti Anda bertanggung jawab atas keamanan aset Anda. Sayangnya, ada banyak contoh bursa yang gagal dan kehilangan uang pelanggan mereka. Memiliki dompet (dengan frasa pemulihan) menghilangkan risiko yang terkait dengan mempercayai suatu kelompok untuk menyimpan aset Anda. Namun, Anda harus mengamankannya sendiri dan menghindari penipuan terencana, menyetujui transaksi secara tidak sengaja atau mengungkap frasa pemulihan, berinteraksi dengan situs web palsu, dan risiko penyimpanan mandiri lainnya. Risiko dan manfaatnya berbeda. ### Jika saya kehilangan dompet seluler/perangkat keras, apakah saya perlu menggunakan aplikasi dompet yang sama lagi untuk memulihkan akun yang hilang? -Tidak, Anda dapat menggunakan dompet yang berbeda. Selama memiliki frase benih, Anda dapat memasukkannya ke sebagian besar dompet dan mereka akan mengembalikan akun Anda. Berhati-hatilah jika Anda perlu melakukannya: yang terbaik adalah memastikan Anda tidak terhubung ke internet saat memulihkan dompet agar frase benih Anda tidak bocor secara tidak sengaja. Sering kali tidak mungkin memulihkan dana yang hilang tanpa frase benih. +Tidak, Anda dapat menggunakan dompet yang berbeda. Selama memiliki frase benih, Anda dapat memasukkannya ke sebagian besar dompet dan mereka akan mengembalikan akun Anda. Berhati-hatilah jika Anda perlu melakukannya: yang terbaik adalah memastikan Anda tidak terhubung ke internet saat memulihkan dompet agar frase benih Anda tidak bocor secara tidak sengaja. Seringkali tidak mungkin untuk memulihkan dana yang hilang tanpa frasa pemulihan. diff --git a/public/content/translations/it/community/events/index.md b/public/content/translations/it/community/events/index.md index 36ed56dfbc9..245bce6c421 100644 --- a/public/content/translations/it/community/events/index.md +++ b/public/content/translations/it/community/events/index.md @@ -13,12 +13,14 @@ hideEditButton: true Questa è una lista non esaustiva mantenuta dalla nostra community. Conosci un evento Ethereum imminente da aggiungere a questa lista? [Sei pregato di aggiungerlo](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + ## Incontri di Ethereum {#meetups} -Non vedi un evento ti si addice? Prova ad unirti a un incontro. Gli incontri sono eventi più piccoli tenuti da gruppi di appassionati di Ethereum - una possibilità per le persone che hanno interesse in Ethereum di riunirsi, parlare di Ethereum e conoscere i recenti sviluppi. +Non vedi un evento che ti interessa? Prova a unirti a un incontro. Gli incontri sono eventi più piccoli tenuti da gruppi di appassionati di Ethereum; un'opportunità per chi è interessato a Ethereum di riunirsi, parlare di Ethereum e scoprire i recenti sviluppi. -Sei interessato a iniziare il tuo incontro? Scopri la [Rete BUIDL](https://consensys.net/developers/buidlnetwork/), un'iniziativa di ConsenSys per aiutare a supportare le community di incontri di Ethereum. +Sei interessato a iniziare il tuo incontro? Scopri la [Rete BUIDL](https://consensys.net/developers/buidlnetwork/), un'iniziativa di ConsenSys per supportare le community di incontri di Ethereum. -Questo è un elenco non esaustivo creato dalla nostra community. Puoi [trovare altri incontri Ethereum qui](https://www.meetup.com/topics/ethereum/). Conosci un gruppo di incontri attivo da aggiungere a questo elenco? [Sei pregato di aggiungerlo](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! +Questo è un elenco non esaustivo creato dalla nostra community. Puoi [trovare altri incontri Ethereum qui](https://www.meetup.com/topics/ethereum/). Conosci un gruppo di incontri attivo da aggiungere a questo elenco? [Aggiungilo](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/it/contributing/index.md b/public/content/translations/it/contributing/index.md index 7a4e2e79925..e3d88d79fe2 100644 --- a/public/content/translations/it/contributing/index.md +++ b/public/content/translations/it/contributing/index.md @@ -25,7 +25,6 @@ Siamo un'accogliente community che ti aiuterà a crescere e a istruirti nell'eco - [Crea/modifica i contenuti](/contributing/#how-to-update-content): suggerisci nuove pagine o apporta modifiche a ciò che esiste già - [Aggiungi risorse della community](/contributing/content-resources/): aggiungi un articolo o una risorsa utili a una pagina rilevante - [Suggerisci una risorsa di progettazione](/contributing/design/adding-design-resources/): aggiungi, aggiorna (ed elimina) le risorse di progettazione utili -- [Aggiungi un termine del glossario](/contributing/adding-glossary-terms/): aiutaci a continuare a espandere il [glossario](/glossary/) di Ethereum - [Quiz](/contributing/quizzes/): aggiungi, aggiorna (ed elimina) le banche di domande dei quiz per un pagina rilevante **Idee di funzionalità** @@ -90,7 +89,7 @@ Abbiamo una bassa barriera per l'inserimento di ticket sul nostro repository di Se il tuo contributo viene aggiunto a ethereum.org, avrai una possibilità di rivendicare un distintivo speciale su [Galxe](https://app.galxe.com/quest/ethereumorg). Un token di traguardo su catena (OAT) è la dimostrazione che tu abbia contribuito a rendere l'ecosistema un po' più fantastico. -[Maggiori informazioni sui OAT](https://help.galxe.com/en/articles/7067290-galxe-oats-reward-and-celebrate-achievements) +[Maggiori informazioni sui OAT](https://help.galxe.com/en/articles/9645630-create-quest-rewards#h_1c5d63ba03) ### Come reclamare 1. Unisciti al nostro [server Discord](https://discord.gg/ethereum-org). diff --git a/public/content/translations/it/contributing/translation-program/how-to-translate/index.md b/public/content/translations/it/contributing/translation-program/how-to-translate/index.md index d95e1670b96..3affacaa886 100644 --- a/public/content/translations/it/contributing/translation-program/how-to-translate/index.md +++ b/public/content/translations/it/contributing/translation-program/how-to-translate/index.md @@ -82,7 +82,7 @@ Una volta completata la traduzione (cioè, tutti i file per una categoria di con ### Contattaci {#get-in-touch} -Hai domande? O desideri collaborare con il nostro team e altri traduttori? Ti invitiamo a pubblicare nel canale #translations del nostro [server Discord ethereum.org](/discord/) +Hai delle domande? O desideri collaborare con il nostro team e altri traduttori? Ti invitiamo a pubblicare nel canale #translations del nostro [server Discord ethereum.org](/discord/) Puoi anche contattarci all'indirizzo translations@ethereum.org diff --git a/public/content/translations/it/contributing/translation-program/index.md b/public/content/translations/it/contributing/translation-program/index.md index 82de6034e2a..185798db2a6 100644 --- a/public/content/translations/it/contributing/translation-program/index.md +++ b/public/content/translations/it/contributing/translation-program/index.md @@ -36,9 +36,9 @@ Leggi di più sulla [missione e visione](/contributing/translation-program/missi ### I nostri progressi finora {#our-progress} -- [**Oltre 6.000** traduttori](/contributing/translation-program/contributors/) -- **62** lingue sul sito -- [**3 milioni** di parole tradotte nel 2023](/contributing/translation-program/acknowledgements/) +- [**Oltre 6.900** traduttori](/contributing/translation-program/contributors/) +- **68** lingue sul sito +- [**2,89 milioni** di parole tradotte nel 2024](/contributing/translation-program/acknowledgements/) diff --git a/public/content/translations/it/contributing/translation-program/resources/index.md b/public/content/translations/it/contributing/translation-program/resources/index.md index e36462c4803..d06fc2d3a43 100644 --- a/public/content/translations/it/contributing/translation-program/resources/index.md +++ b/public/content/translations/it/contributing/translation-program/resources/index.md @@ -11,7 +11,7 @@ Puoi trovare utili guide e strumenti per i traduttori di ethereum.org, nonché l ## Guide {#guides} - [Guida allo stile di traduzione](/contributing/translation-program/translators-guide/): _istruzioni e consigli per i traduttori di ethereum.org_ -- [FAQ sulle traduzioni](/contributing/translation-program/faq/) _– domande e risposte frequenti sul programma di traduzione di ethereum.org_ +- [FAQ sulle traduzioni](/contributing/translation-program/faq/) _– domande e risposte frequenti sul Programma di traduzione di ethereum.org_ - [Guida all'editor online di Crowdin](https://support.crowdin.com/online-editor/) _– una guida approfondita all'uso dell'editor online di Crowdin e di alcune funzionalità avanzate di Crowdin_ - [Categorie di contenuti](/contributing/translation-program/content-buckets/) _– quali pagine sono incluse in ogni categoria di contenuti di ethereum.org_ diff --git a/public/content/translations/it/web3/index.md b/public/content/translations/it/web3/index.md index 4ed3f8c9ebf..65ee0598db7 100644 --- a/public/content/translations/it/web3/index.md +++ b/public/content/translations/it/web3/index.md @@ -6,6 +6,10 @@ lang: it # Introduzione a Web3 {#introduction} +
+ +
+ La centralizzazione ha aiutato a integrare miliardi di persone nel World Wide Web e ha creato l'infrastruttura stabile e robusta su cui esso risiede. Allo stesso tempo, molte entità centralizzate esercitano una forte presa su grandi aree del World Wide Web, decidendo unilateralmente cosa dovrebbe e non dovrebbe esser consentito. Web3 è la risposta a questo dilemma. Invece di un Web monopolizzato dalle grandi aziende tecnologiche, il Web3 adotta la decentralizzazione ed è in costruzione, operato e posseduto dai suoi utenti. Web3 mette il potere nelle mani degli individui piuttosto che delle grandi aziende. Prima di parlare di Web3, vediamo come siamo arrivati qui. diff --git a/public/content/translations/ms/community/events/index.md b/public/content/translations/ms/community/events/index.md new file mode 100644 index 00000000000..aaeb51069e6 --- /dev/null +++ b/public/content/translations/ms/community/events/index.md @@ -0,0 +1,26 @@ +--- +title: Acara Ethereum +description: Bagaimana untuk terlibat dalam komuniti Ethereum. +lang: ms +hideEditButton: true +--- + +# Acara akan datang {#events} + +** Setiap bulan, terdapat acara Ethereum utama di seluruh dunia. ** Cuba hadiri acara berhampiran anda untuk bertemu lebih ramai orang dalam komuniti ini, mengetahui tentang peluang pekerjaan dan membangunkan kemahiran baru. + + + +Ini merupakan senarai tidak menyeluruh yang dikekalkan oleh masyarakat kita. Ketahui acara Ethereum akan datang untuk ditambah ke dalam senarai ini? [Sila tambah](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + + +## Perjumpaan Ethereum {#meetups} + +Tidak melihat acara yang sesuai untuk anda? Cuba sertai perjumpaan. Perjumpaan ialah acara lebih kecil yang diadakan oleh kumpulan peminat Ethereum - peluang bagi orang yang berminat terhadap Ethereum untuk berkumpul, berbual tentang Ethereum dan mengikuti perkembangan terkini. + + + +Berminat untuk memulakan perjumpaan anda sendiri? Semak [Rangkaian BUIDL](https://consensys.net/developers/buidlnetwork/), inisiatif oleh ConsenSys untuk membantu menyokong komuniti perjumpaan Ethereum. + +Ini merupakan senarai tidak menyeluruh yang dibina oleh komuniti kita. Anda boleh [mencari lebih banyak perjumpaan Ethereum di sini ](https://www.meetup.com/topics/ethereum/). Tahu kumpulan perjumpaan aktif untuk ditambahkan pada senarai ini? [Sila tambah](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/ms/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/ms/guides/how-to-create-an-ethereum-account/index.md index 93d1a2af4b2..a674cfdaf55 100644 --- a/public/content/translations/ms/guides/how-to-create-an-ethereum-account/index.md +++ b/public/content/translations/ms/guides/how-to-create-an-ethereum-account/index.md @@ -6,21 +6,22 @@ lang: ms # Cara untuk mencipta akaun Ethereum -Semua orang boleh mencipta akaun Ethereum pada bila-bila masa, secara percuma. Terdapat beberapa cara, tetapi cara yang paling mudah dan biasa adalah dengan menggunakan aplikasi yang dikenali sebagai dompet. Dompet mencipta dan melindungi kunci-kunci yang membolehkan anda menggunakan Ethereum. Anda boleh menggunakan dompet anda untuk menghantar transaksi, memeriksa baki token anda, dan menyambung ke aplikasi-aplikasi yang dibina di Ethereum, seperti pertukaran token, permainan, pasaran NFT, dan banyak lagi. Beberapa aplikasi "web2" kini membenarkan anda untuk mendaftar masuk dengan menggunakan Ethereum juga. +**Sesiapa sahaja boleh mencipta akaun Ethereum secara percuma.** Anda hanya perlu memasang apl dompet kripto. Dompet mencipta dan mengurus akaun Ethereum anda. Dompet tersebut boleh menghantar transaksi, menyemak baki anda dan menghubungkan anda dengan apl lain yang dibina atas Ethereum. -Berbeza daripada membuka akaun baharu dengan syarikat, penciptaan akaun Ethereum dilakukan secara bebas, secara peribadi dan tanpa memerlukan kebenaran. Akaun dikawal oleh kunci-kunci yang perisian dompet anda bantu anda ciptakan, dan tidak dikeluarkan oleh pihak ketiga, atau disimpan dalam daftaran pusat. +Dengan dompet, anda juga boleh log masuk ke mana-mana pertukaran token, permainan, [pasaran NFT](/glossary/#nft) serta-merta. Tiada keperluan untuk pendaftaran individu, satu akaun dikongsi untuk semua apl yang dibina atas Ethereum. ## Langkah 1: Pilih dompet -Dompet ialah aplikasi yang membantu anda mengurus akaun Ethereum anda. Ia menggunakan kunci anda untuk menghantar dan menerima transaksi serta mendaftar masuk ke aplikasi. Terdapat beberapa dozen jenis dompet yang boleh dipilih—mudah alih, desktop, atau malah sambungan pelayar. +Dompet ialah aplikasi yang membantu anda mengurus akaun Ethereum anda. Terdapat pelbagai dompet yang boleh dipilih: mudah alih, desktop, atau sambungan pelayar. + - Cari dompet + Senarai dompet Jika anda baharu, anda boleh memilih penapis "Baharu dalam kripto" pada halaman "cari dompet" untuk mengenal pasti dompet yang sepatutnya mempunyai semua ciri yang diperlukan dan sesuai untuk pemula. -![pemilihan penapis di halaman 'cari dompet'](./wallet-box.png) +![Pemilihan penapis di halaman 'cari dompet'](./wallet-box.png) Terdapat juga penapis profil lain untuk memenuhi keperluan anda. Ini ialah contoh-contoh dompet yang biasa digunakan - anda sepatutnya melakukan penyelidikan sendiri sebelum mempercayai sebarang perisian. @@ -28,45 +29,45 @@ Terdapat juga penapis profil lain untuk memenuhi keperluan anda. Ini ialah conto Setelah anda membuat keputusan mengenai dompet yang tertentu, lawati laman web rasmi mereka atau kedai aplikasi, muat turun dan pasang aplikasi tersebut. Semua daripadanya sepatutnya percuma. -## Langkah 3: Buka aplikasi dan cipta atau import akaun Ethereum anda +## Langkah 3: Buka apl dan cipta akaun Ethereum anda -Pertama kali anda membuka dompet baharu anda, anda mungkin akan diminta untuk memilih antara mencipta akaun baharu atau mengimport akaun yang sedia ada. Klik pada penciptaan akaun baharu. +Pertama kali anda membuka dompet baharu anda, anda mungkin akan diminta untuk memilih antara mencipta akaun baharu atau mengimport akaun yang sedia ada. Klik pada penciptaan akaun baharu. **Ini ialah langkah di mana perisian dompet menjana akaun Ethereum anda.** ## Langkah 4: Simpan frasa pemulihan anda -Sesetengah aplikasi akan meminta anda untuk menyimpan 'frasa benih' rahsia (anda juga mungkin melihat ini dirujuk sebagai "frasa pemulihan" atau "mnemonik"). Memastikan frasa benih ini selamat adalah sangat penting! Frasa benih digunakan untuk menjana kunci rahsia bagi akaun yang boleh digunakan untuk menandatangani dan menghantar transaksi. Mana-mana individu yang mengetahui frasa benih boleh mengambil kawalan ke atas semua akaun yang dijana olehnya. Jangan sekali-kali berkongsi frasa benih dengan sesiapa. Frasa benih sepatutnya mengandungi 12 hingga 24 perkataan yang dijana secara rawak (susunan perkataan adalah penting). - -Setelah anda menyimpan frasa benih anda, anda sepatutnya melihat papan pemuka dompet anda dengan baki anda. Sila rujuk panduan kami: [cara menggunakan dompet.](/guides/how-to-use-a-wallet) +Sesetengah apl akan meminta anda untuk menyimpan "frasa pemulihan" (kadangkala dipanggil sebagai "frasa benih" atau "mnemonik"). Frasa ini sangat penting untuk dijaga dengan selamat! Ini digunakan untuk menghasilkan akaun Ethereum anda dan boleh digunakan untuk menghantar transaksi. -
+**Sesiapa sahaja yang mengetahui frasa ini boleh mengawal semua dana.** Jangan sesekali kongsikan frasa ini dengan sesiapa. Frasa ini sepatutnya mengandungi 12 hingga 24 perkataan yang dijanakan secara warak (susunan perkataan adalah penting). +
-
Mahu belajar lebih lanjut?
- - Lihat panduan-panduan lain kami +
Dompet telah dipasang?
Pelajari cara untuk menggunakanannya.
+ + Cara menggunakan dompet
+
-## Soalan yang kerap ditanya +Berminat dengan panduan lain? Lihat panduan kami: [Panduan langkah demi langkah](/guides/) -### Adakah dompet saya dan akaun Ethereum saya sama? +## Soalan lazim -Tidak. Dompet ialah alat pengurusan yang membantu anda mengurus akaun. Satu dompet mungkin memberikan akses kepada beberapa akaun, dan satu akaun boleh diakses oleh beberapa dompet. Frasa benih digunakan untuk mencipta akaun yang kemudian dikawal oleh dompet. +### Adakah dompet saya dan akaun Ethereum saya sama? -Anda boleh memikirkan akaun-akaun itu seperti daun-daun pada sepohon pokok yang semuanya 'tumbuh' dari satu frasa benih. Daripada setiap biji benih yang unik akan tumbuh satu pokok akaun yang sama sekali berbeza. +Tidak. Dompet ialah alat pengurusan yang membantu anda mengurus akaun. Satu dompet mungkin memberikan akses kepada beberapa akaun, dan satu akaun boleh diakses oleh beberapa dompet. Frasa pemulihan digunakan unutk mencipta akaun dan memberi kebenaran kepada apl dompet to mengurus aset. ### Bolehkah saya menghantar bitcoin ke alamat Ethereum, atau Ether ke alamat Bitcoin? -Tidak, anda tidak boleh. Bitcoin dan Ether wujud dalam dua rangkaian yang berbeza (iaitu, blok rantai yang berbeza), masing-masing dengan model perakaunan dan format alamat yang unik. Terdapat pelbagai percubaan untuk menghubungkan dua rangkaian yang berbeza ini, di antaranya yang paling aktif pada masa ini ialah [Wrapped Bitcoin atau WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Ini bukan satu sokongan, kerana WBTC ialah penyelesaian jagaan (bermakna sekumpulan individu mengawal fungsi penting tertentu) dan disediakan di sini untuk tujuan maklumat sahaja. +Tidak, anda tidak boleh. Bitcoin dan Ether wujud di dua rangkaian yang berbeza (iaitu, blok rantai yang berbeza), masing-masing dengan sistem perakaunan dan format alamat yang tersendiri. Terdapat pelbagai percubaan untuk menghubungkan dua rangkaian yang berbeza ini, antara yang paling aktif adalah [Wrapped Bitcoin atau WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Ini bukan satu sokongan, kerana WBTC ialah penyelesaian jagaan (bermakna sekumpulan individu mengawal fungsi penting tertentu) dan disediakan di sini untuk tujuan maklumat sahaja. ### Jika saya memiliki alamat ETH, adakah saya memiliki alamat yang sama di blok rantai lain? -Anda boleh menggunakan alamat yang sama pada semua blok rantai yang menggunakan perisian asas yang serupa dengan Ethereum (dikenali sebagai 'serasi-EVM'). [Senarai](https://chainlist.org/) ini akan menunjukkan kepada anda blok rantai yang boleh anda gunakan dengan alamat yang sama. Beberapa blok rantai, seperti Bitcoin, melaksanakan set peraturan rangkaian yang benar-benar berbeza dan anda akan memerlukan alamat yang berbeza dengan format yang berbeza. Jika anda mempunyai dompet kontrak pintar, anda perlu menyemak laman web produknya untuk maklumat lanjut mengenai blok rantai yang disokong. +Anda boleh menggunakan [alamat](/glossary/#address) yang sama di semua blok rantai yang menggunakan perisian asas yang serupa dengan Ethereum (dikenali sebagai 'serasi-EVM'). [Senarai](https://chainlist.org/) ini akan menunjukkan kepada anda blok rantai yang boleh anda gunakan dengan alamat yang sama. Beberapa blok rantai, seperti Bitcoin, melaksanakan set peraturan rangkaian yang benar-benar berbeza dan anda akan memerlukan alamat yang berbeza dengan format yang berbeza. Jika and mempunyai dompet kontrak pintar, anda perlu menyemak laman web produk untuk mendapatkan maklumat lanjut mengenai blok rantai yang disokong kerana kebiasaannya dompet tersebut mempunyai skop yang terhad tetapi lebih selamat. ### Adakah memiliki dompet sendiri lebih selamat daripada menyimpan dana anda di bursa? -Memiliki dompet sendiri bermakna anda bertanggungjawab terhadap keselamatan aset anda. Sayangnya, terdapat banyak contoh bursa yang gagal sehingga kehilangan wang pelanggan mereka. Memiliki dompet (dengan frasa benih) menghapuskan risiko yang berkaitan dengan mempercayai entiti tertentu untuk memegang aset anda. Walau bagaimanapun, anda perlu melindungi kunci anda sendiri dan mengelakkan daripada menjadi mangsa penipuan pemancingan data, secara tidak sengaja meluluskan transaksi atau mendedahkan kunci, berinteraksi dengan laman web palsu dan risiko penjagaan diri yang lain. Risiko dan manfaatnya berbeza. +Memiliki dompet sendiri bermakna anda bertanggungjawab terhadap keselamatan aset anda. Sayangnya, terdapat banyak contoh bursa yang gagal sehingga kehilangan wang pelanggan mereka. Memilik dompet (dengan frasa pemulihan) mengelakkan daripada risiko yang berkaitan dengan mempercayai entiti tertentu untuk memegang aset anda. Walau bagaimanpun, anda perlu melindunginya sendiri dan mengelakkan daripada menjadi mangsa penipuan pemancingan data, secara tidak sengaja meluluskan transaksi atau mendedahkan frasa pemulihan, berinteraksi dengan laman web palsu dan risiko penjagaan diri yang lain. Risiko dan manfaatnya berbeza. ### Jika saya kehilangan telefon/dompet perkakasan saya, adakah saya perlu menggunakan aplikasi dompet yang sama lagi untuk memulihkan dana yang hilang? -Tidak perlu, anda boleh menggunakan dompet yang berbeza. Selagi anda mempunyai frasa benih, anda boleh memasukkannya dalam kebanyakan dompet dan ia akan memulihkan akaun anda. Berhati-hati jika anda perlu melakukan ini: paling baik ialah memastikan anda tidak bersambung ke Internet semasa memulihkan dompet anda supaya frasa benih anda tidak bocor secara tidak sengaja. Selalunya mustahil untuk memulihkan dana yang hilang tanpa frasa benih. +Tidak perlu, anda boleh menggunakan dompet yang berbeza. Selagi anda mempunyai frasa benih, anda boleh memasukkannya dalam kebanyakan dompet dan ia akan memulihkan akaun anda. Berhati-hati jika anda perlu melakukan ini: paling baik ialah memastikan anda tidak bersambung ke Internet semasa memulihkan dompet anda supaya frasa benih anda tidak bocor secara tidak sengaja. Selalunya mustahil untuk memulihkan dana yang hilang tanpa frasa pemulihan. diff --git a/public/content/translations/ms/web3/index.md b/public/content/translations/ms/web3/index.md index a0371b4fb0c..b2d0ae4a809 100644 --- a/public/content/translations/ms/web3/index.md +++ b/public/content/translations/ms/web3/index.md @@ -6,6 +6,10 @@ lang: ms # Pengenalan kepada Web3 {#introduction} +
+ +
+ Pemusatan telah membantu membawa berbilion orang ke Web Seluruh Dunia dan mencipta infrastruktur yang stabil dan teguh di mana ia hidup. Pada masa yang sama, segelintir entiti berpusat mempunyai kubu kuat di kawasan besar Web Seluruh Dunia, secara unilateral memutuskan perkara yang patut dan tidak patut dibenarkan. Web3 ialah jawapan kepada dilema ini. Daripada Web yang dimonopoli oleh syarikat teknologi besar, Web3 merangkumi pengagihan dan sedang dibina, dikendalikan dan dimiliki oleh penggunanya. Web3 meletakkan kuasa di tangan individu dan bukannya syarikat. Sebelum kita bercakap tentang Web3, mari kita terokai bagaimana kita sampai di sini. @@ -78,7 +82,7 @@ Di Web3, data anda hidup dalam blok rantai. Apabila anda memutuskan untuk mening Web 2.0 memerlukan pencipta kandungan untuk mempercayai platform untuk tidak mengubah peraturan, tetapi rintangan penapisan ialah ciri asli platform Web3. -#### Decentralized autonomous organizations (DAOs) {#daos} +#### Organisasi bebas terdesentralisasi (DAO) {#daos} Selain memiliki data anda dalam Web3, anda boleh memiliki platform sebagai kolektif, menggunakan token yang bertindak seperti saham dalam syarikat. DAO membolehkan anda menyelaraskan pemilikan teragih ke atas platform dan membuat keputusan tentang masa depannya. @@ -89,7 +93,7 @@ Walau bagaimanapun, orang mentakrifkan banyak komuniti Web3 sebagai DAO. Komunit
Ketahui lebih lanjut mengenai DAO
- Lebih kepada DAOs + Lagi tentang DAO
@@ -145,7 +149,7 @@ Kami hanya pada permulaan mencipta Web yang lebih baik dengan Web3, tetapi sambi ## Bacaan lanjut {#further-reading} -Web3 tidak ditakrifkan secara tegar. Pelbagai peserta komuniti mempunyai perspektif yang berbeza mengenainya. Berikut adalah beberapa daripada mereka: +Web3 tidak ditakrifkan secara tegar. Pelbagai peserta komuniti mempunyai perspektif yang berbeza mengenainya. Berikut adalah antaranya: - [Apakah Web3? Internet Teragih Masa Depan Dijelaskan](https://www.freecodecamp.org/news/what-is-web3/) – _Nader Dabit_ - [Memahami Web 3](https://medium.com/l4-media/making-sense-of-web-3-c1a9e74dcae) – _ Josh Stark_ diff --git a/public/content/translations/pt-br/community/events/index.md b/public/content/translations/pt-br/community/events/index.md index 3c9525a51ed..0f27e452c9b 100644 --- a/public/content/translations/pt-br/community/events/index.md +++ b/public/content/translations/pt-br/community/events/index.md @@ -11,14 +11,16 @@ hideEditButton: true -Essa é uma lista não exaustiva mantida pela nossa comunidade. Conhece um evento por vir da Ethereum? [Vá em frente e o adicione a lista](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! +Essa é uma lista não exaustiva mantida pela nossa comunidade. Conhece um evento por vir da Ethereum? [Adicione-o à lista](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! -## Encontros da Ethereum {#meetups} + -Nenhum dos eventos serve para você? Tente ir a um encontro. Os encontros são eventos menores realizados por grupos de entusiastas da Ethereum. e uma oportunidade para pessoas com um interesse em comum em Ethereum se reunirem, conversarem sobre o projeto e conhecer mais sobre os desenvolvimentos recentes. +## Encontros do Ethereum {#meetups} + +Nenhum dos eventos serve para você? Tente participar de um encontro. Os encontros são eventos menores realizados por grupos de entusiastas da Ethereum e são uma oportunidade para pessoas interessadas em Ethereum se reunirem, conversarem sobre ela e saber mais sobre os desenvolvimentos recentes. Interessado em organizar o seu próprio encontro? Confira a [BUIDL Network](https://consensys.net/developers/buidlnetwork/), uma iniciativa da ConsenSys para oferecer suporte às comunidades de encontros da Ethereum. -Essa é uma lista não exaustiva mantida pela nossa comunidade. Você pode [ver mais encontros da Ethereum aqui](https://www.meetup.com/topics/ethereum/). Conhece algum grupo ativo de encontros? [Adicione-o a lista](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! +Essa é uma lista não exaustiva mantida pela nossa comunidade. Você pode [ver mais encontros da Ethereum aqui](https://www.meetup.com/topics/ethereum/). Conhece algum grupo ativo de encontros para adicionar à lista? [Adicione-o à lista](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json)! diff --git a/public/content/translations/pt-br/developers/docs/smart-contracts/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/index.md index 9060856ab8f..4c1715fd383 100644 --- a/public/content/translations/pt-br/developers/docs/smart-contracts/index.md +++ b/public/content/translations/pt-br/developers/docs/smart-contracts/index.md @@ -87,7 +87,7 @@ Saiba mais sobre a [composição do contrato inteligente](/developers/docs/smart Os contratos inteligentes sozinhos não podem obter informações sobre eventos do "mundo real", porque não podem recuperar dados de fontes off-chain. Isso significa que eles não podem responder a eventos no mundo real. Isto é, por concepção. A sua concepção é a de que as informações externas podem pôr em causa o consenso, que é importante para a segurança e a descentralização. -No entanto, é importante que aplicações blockchain possam usar dados off-chain. A solução são os [oráculos](/developers/docs/oracles/), que são instrumentos que ingerem dados off-chain e os disponibilizam para contratos inteligentes. +No entanto, é importante que aplicações blockchain possam usar dados off-chain. A solução são os [oráculos](/developers/docs/oracles/), instrumentos que ingerem dados off-chain e os disponibilizam para contratos inteligentes. Outra limitação de contratos inteligentes é o tamanho máximo do contrato. Um contrato inteligente pode ser um máximo de 24KB ou ficará sem gás. Isso pode ser contornado usando [O Padrão de Diamante](https://eips.ethereum.org/EIPS/eip-2535). diff --git a/public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md index b8c7e1a9947..0ee015aa0d4 100644 --- a/public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md @@ -99,7 +99,7 @@ Com isto em mente, há que evitar tratar as auditorias como uma bala de prata. A A criação de um programa de recompensas por bugs é outra abordagem para implementar revisões de código externas. Uma recompensa por bugs é uma recompensa financeira dada a indivíduos (geralmente hackers de chapéu branco) que descobrem vulnerabilidades em um aplicativo. -Quando usadas corretamente, as recompensas por bugs dão aos membros da comunidade hacker incentivo para inspecionar seu código em busca de falhas críticas. Um exemplo da vida real é o “bug do dinheiro infinito” que teria deixado um invasor criar uma quantidade ilimitada de Ether no [Optimism](https://www.optimism.io/), um protocolo da [Camada 2](/layer-2/) em execução na Ethereum. Felizmente, um hacker de chapéu branco [descobriu a falha](https://www.saurik.com/optimism.html) e notificou a equipe, [ganhando um grande pagamento no processo](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). +Quando usadas corretamente, as recompensas por bugs dão aos membros da comunidade hacker incentivo para inspecionar seu código em busca de falhas críticas. Um exemplo real é o “bug do dinheiro infinito” que teria deixado um invasor criar uma quantidade ilimitada de Ether no [Optimism](https://www.optimism.io/), um protocolo da [Camada 2](/layer-2/) em execução na Ethereum. Felizmente, um hacker de chapéu branco [descobriu a falha](https://www.saurik.com/optimism.html) e notificou a equipe, [ganhando um grande pagamento no processo](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/). Uma estratégia útil é definir o pagamento de um programa de recompensas por bugs proporcionalmente à quantidade de fundos em jogo. Descrita como a “[recompensa por bugs que escala](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7)”, essa abordagem fornece incentivos financeiros para que os indivíduos revelem vulnerabilidades de forma responsável em vez de explorá-las. @@ -199,7 +199,7 @@ Este exemplo mostra as características básicas das interrupções de emergênc `onlyWhenStopped` é usado para funções que devem ser chamadas durante uma emergência (por exemplo, `emergencyWithdraw()`). Essas funções podem ajudar a resolver a situação, daí a sua exclusão da lista de “funções restritas”. -Usar uma funcionalidade de interrupção de emergência fornece um paliativo eficaz para lidar com vulnerabilidades graves em seu contrato inteligente. No entanto, aumenta a necessidade dos usuários confiarem nos desenvolvedores para não ativá-lo por razões egoístas. Para este fim, descentralizar o controle da interrupção de emergência sujeitando-o a um mecanismo de votação on-chain, timelock (bloqueio de tempo para transações) ou aprovação de uma carteira de assinatura múltipla são soluções possíveis. +Usar uma funcionalidade de interrupção de emergência fornece um paliativo eficaz para lidar com vulnerabilidades graves em seu contrato inteligente. No entanto, aumenta a necessidade dos usuários confiarem nos desenvolvedores para não ativá-lo por razões egoístas. Para este fim, descentralizar o controle da interrupção de emergência sujeitando-o a um mecanismo de votação on-chain, como o timelock (bloqueio de tempo para transações) ou a aprovação de uma carteira de assinatura múltipla são soluções possíveis. #### Monitoramento de eventos {#event-monitoring} @@ -211,11 +211,11 @@ Você também pode optar por uma ferramenta de monitoramento pronta para uso, qu ### 7. Projete sistemas de governança seguros {#design-secure-governance-systems} -Você pode querer descentralizar sua aplicação, transferindo o controle dos principais contratos inteligentes para os membros da comunidade. Nesse caso, o sistema de contrato inteligente incluirá um módulo de governança - um mecanismo que permite que os membros da comunidade aprovem ações administrativas, por meio de um sistema de governança on-chain. Por exemplo, uma proposta para atualizar um contrato de proxy para uma nova implementação, que pode ser votada pelos detentores do token. +Você pode querer descentralizar sua aplicação, transferindo o controle dos principais contratos inteligentes para os membros da comunidade. Neste caso, o sistema de contrato inteligente incluirá um módulo de governança — um mecanismo que permite que os membros da comunidade aprovem ações administrativas, por meio de um sistema de governança on-chain. Por exemplo, uma proposta para atualizar um contrato de proxy para uma nova implementação, que pode ser votada pelos detentores do token. A governança descentralizada pode ser benéfica, especialmente porque alinha os interesses dos desenvolvedores e usuários finais. No entanto, os mecanismos de governança de contratos inteligentes podem apresentar novos riscos se implementados incorretamente. Um cenário plausível é se um invasor adquirir um enorme poder de voto (medido em número de tokens mantidos) ao fazer um [empréstimo imediato](/defi/#flash-loans) e enviar uma proposta maliciosa. -Uma maneira de evitar problemas relacionados à governança on-chain é [usar um timelock](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/). Um timelock impede que um contrato inteligente execute certas ações até que um período específico passe. Outras estratégias incluem atribuir um “peso de voto” a cada token com base em quanto tempo ele foi bloqueado ou medir o poder de voto de um endereço em um período histórico (por exemplo, 2-3 blocos no passado) em vez do bloco atual. Ambos os métodos reduzem a possibilidade de acumular rapidamente o poder de voto para oscilar os votos on-chain. +Uma maneira de evitar problemas relacionados à governança on-chain é [usar um timelock](https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/). Um timelock impede que um contrato inteligente execute certas ações até que um período específico passe. Outras estratégias incluem atribuir um “peso de voto” a cada token com base em quanto tempo ele foi bloqueado ou medir o poder de voto de um endereço em um período histórico (por exemplo, 2-3 blocos no passado) em vez do bloco atual. Ambos os métodos reduzem a possibilidade de acumular rapidamente o poder de voto para influenciar os votos on-chain. Mais sobre [como projetar sistemas de governança seguros](https://blog.openzeppelin.com/smart-contract-security-guidelines-4-strategies-for-safer-governance-systems/), [diferentes mecanismos de votação em DAOs](https://hackernoon.com/governance-is-the-holy-grail-for-daos) e [os vetores comuns de ataque de DAO que usam DeFi](https://dacian.me/dao-governance-defi-attacks) nos links compartilhados. @@ -235,7 +235,7 @@ A EVM (Ethereum Virtual Machine) não permite concorrência (paralelismo), o que Embora a maioria seja inofensiva, a transferência de fluxo de controle para contratos não confiáveis pode causar problemas, tais como a reentrância. Um ataque de reentrância ocorre quando um contrato malicioso volta a chamar um contrato vulnerável antes que a invocação da função original ser completa. Este tipo de ataque é melhor explicado com um exemplo. -Considere um contrato inteligente simples ('Vítima') que permite que qualquer pessoa depositar e retirar Ether: +Considere um contrato inteligente ("vítima") que permite que qualquer pessoa deposite e saque Ether: ```solidity // This contract is vulnerable. Do not use in production @@ -346,7 +346,7 @@ contract MutexPattern { require(balances[msg.sender] >= _amount, "No balance to withdraw."); balances[msg.sender] -= _amount; - bool (success, ) = msg.sender.call{value: _amount}(""); + (bool success, ) = msg.sender.call{value: _amount}(""); require(success); return true; @@ -439,9 +439,9 @@ A partir da versão 0.8.0, o compilador Solidity rejeita código que resulta em #### Manipulação de oráculos {#oracle-manipulation} -Os [Oráculos](/developers/docs/oracles/) fornecem informações off-chain (fora da blockchain) e as enviam on-chain (dentro da blockchain) para uso em contratos inteligentes. Com oráculos, você pode conceber contratos inteligentes que interoperam com sistemas off-chain, como mercados de capitais, expandindo muito sua aplicação. +Os [oráculos](/developers/docs/oracles/) fornecem informações off-chain e as enviam on-chain para que os contratos inteligentes possam usá-las. Com oráculos, você pode criar contratos inteligentes que interagem com sistemas off-chain, como mercados capitais, expandindo muito sua aplicação. -Mas se o oráculo estiver corrompido e enviar informações incorretas on-chain, contratos inteligentes serão executados com base em entradas erradas, o que pode causar problemas. Essa é a base do “problema do oráculo” (paradoxo), que diz respeito à tarefa de garantir que as informações de um oráculo da blockchain sejam precisas, atualizadas e pontuais. +Mas se o oráculo estiver corrompido e enviar informações incorretas on-chain, os contratos inteligentes serão executados com base em entradas erradas, o que pode causar problemas. Essa é a base do “problema do oráculo” (paradoxo), que diz respeito à tarefa de garantir que as informações de um oráculo da blockchain sejam precisas, atualizadas e pontuais. Uma preocupação de segurança relacionada está usando um oráculo on-chain, como uma troca descentralizada, para obter o preço de ponto por um ativo. Plataformas de empréstimos no setor de [finanças descentralizadas (DeFi)](/defi/) frequentemente fazem isso para determinar o valor da garantia de um usuário para determinar quanto eles podem emprestar. @@ -453,7 +453,7 @@ Por exemplo, um invasor pode explodir artificialmente o preço de um ativo fazen O requisito mínimo para [evitar a manipulação de oráculos](https://www.cyfrin.io/blog/price-oracle-manipultion-attacks-with-examples) é usar uma rede de oráculos descentralizada que consulte informações de várias fontes para evitar pontos únicos de falha. Na maioria dos casos, oráculos descentralizados tem incentivos criptoeconômicos incorporados para incentivar nós oráculos a relatar informações corretas, tornando-os mais seguros do que os oráculos centralizados. -Se você planeja consultar um oráculo on-chain para preços de ativos, considere usar um que implemente um mecanismo de preço médio ponderado por tempo (TWAP). Um [TWAP oracle](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) consulta o preço de um ativo em dois pontos diferentes em tempo (que você pode modificar) e calcula o preço de ponto com base na média obtida. Escolher períodos mais longos protege seu protocolo contra a manipulação de preços uma vez que grandes ordens executadas recentemente não podem afetar os preços dos ativos. +Se você planeja consultar um oráculo on-chain sobre preços de ativos, considere usar um que implemente um mecanismo de preço médio ponderado por tempo (TWAP). Um [TWAP oracle](https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles) consulta o preço de um ativo em dois pontos diferentes em tempo (que você pode modificar) e calcula o preço de ponto com base na média obtida. Escolher períodos mais longos protege seu protocolo contra a manipulação de preços uma vez que grandes ordens executadas recentemente não podem afetar os preços dos ativos. ## Recursos de segurança de contrato inteligente para desenvolvedores {#smart-contract-security-resources-for-developers} @@ -563,7 +563,7 @@ Se você planeja consultar um oráculo on-chain para preços de ativos, consider - **[Padrão de Verificação de Segurança de Contrato Inteligente](https://github.com/securing/SCSVS)** - _Lista de verificação de quatorze partes criadas para padronizar a segurança de contratos inteligentes para desenvolvedores, arquitetos, revisores de segurança e fornecedores._ -- **[Aprenda sobre segurança e auditoria de contratos inteligentes](https://updraft.cyfrin.io/courses/security) - _Curso definitivo de segurança e auditoria de contratos inteligentes, criado para desenvolvedores de contratos inteligentes que desejam melhorar suas práticas recomendadas de segurança e se tornar pesquisadores de segurança._ +- **[Aprenda sobre segurança e auditoria de contratos inteligentes](https://updraft.cyfrin.io/courses/security)** — _Curso definitivo de segurança e auditoria de contratos inteligentes, criado para desenvolvedores de contratos inteligentes que desejam melhorar suas práticas recomendadas de segurança e se tornar pesquisadores de segurança._ ### Tutoriais sobre segurança de contratos inteligentes {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/pt-br/developers/docs/smart-contracts/testing/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/testing/index.md index 51b9be26a36..fa409657f8b 100644 --- a/public/content/translations/pt-br/developers/docs/smart-contracts/testing/index.md +++ b/public/content/translations/pt-br/developers/docs/smart-contracts/testing/index.md @@ -130,7 +130,7 @@ Muitos frameworks de teste unitário permitem você criar afirmações - simples ##### 3. Medida de cobertura do código -[Cobertura de código](https://en.m.wikipedia.org/wiki/Code_coverage) é uma métrica de teste que rastreia o número de ramificações, linhas e comandos no seu código executados durante os testes. Testes devem ter boa cobertura de código, caso contrário você pode ter "falsos negativos" que acontecem quando um contrato passa todos os testes, mas vulnerabilidades ainda existem no código. Obtendo alta cobertura de código, entretanto, dá a segurança que todos os comandos/funções em um contrato inteligente foram suficientemente testados por exatidão. +[Cobertura de código](https://en.m.wikipedia.org/wiki/Code_coverage) é uma métrica de teste que rastreia o número de ramificações, linhas e comandos no seu código executados durante os testes. Os testes devem contar com uma boa cobertura de código para minimizar o risco de vulnerabilidades não testadas. Sem cobertura suficiente, você pode presumir erroneamente que seu contrato é seguro porque todos os testes foram aprovados, embora ainda existam vulnerabilidades em caminhos de código não testados. Obtendo alta cobertura de código, entretanto, dá a segurança que todos os comandos/funções em um contrato inteligente foram suficientemente testados por exatidão. ##### 4. Use frameworks de teste bem desenvolvidos @@ -150,7 +150,7 @@ Frameworks de teste unitário para contratos inteligentes em Solidity vêm em di Enquanto o teste unitário depura funções de contrato isoladamente, testes integrados avaliam os componentes de um contrato inteligente como um todo. Teste de integração pode detectar defeitos vindos de chamadas entre contratos ou interações entre diferentes funções no mesmo contrato inteligente. Por exemplo, testes de integração podem ajudar a checar se coisas como [herança](https://docs.soliditylang.org/en/v0.8.12/contracts.html#inheritance) e injeção de dependência funcionam devidamente. -Teste de integração é útil se o seu contrato adota uma arquitetura modular ou interfaces com outros contratos on-chain durante a execução. Uma maneira de executar testes de integração é [fazer um fork da blockchain](/glossary/#fork) a uma altura específica (usando uma ferramenta como [Forge](https://book.getfoundry.sh/forge/fork-testing) ou [Hardhat](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks) e simular interações entre seu contrato e contratos implantados. +Os testes de integração são úteis se o seu contrato adota uma arquitetura modular ou interfaces com outros contratos on-chain durante a execução. Uma maneira de executar testes de integração é [fazer um fork da blockchain](/glossary/#fork) a uma altura específica (usando uma ferramenta como [Forge](https://book.getfoundry.sh/forge/fork-testing) ou [Hardhat](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks) e simular interações entre seu contrato e contratos implantados. O blockchain que sofreu fork irá se comportar similarmente à Mainnet e ter contas com estados e saldos associados. Mas ele age somente como um ambiente de área local de desenvolvimento restrita, significando que você não precisará de ETH real para transações, por exemplo, nem suas modificações irão afetar o protocolo Ethereum real. @@ -207,13 +207,13 @@ Enquanto testes automatizados realizados em um ambiente local de desenvolvimento Testar seu contrato em um blockchain local (também conhecido como uma [rede de desenvolvimento](/developers/docs/development-networks/)) é uma alternativa recomendada em relação a testar na Mainnet. Um blockchain local é uma cópia do blockchain Ethereum rodando localmente no seu computador que simula o comportamento da camada de execução do Ethereum. Como tal, você pode programar transações para interagir com um contrato sem incorrer em custo significante. -Rodar contratos em blockchain local pode ser útil como forma de teste de integração manual. [Contratos inteligentes são altamente combináveis](/developers/docs/smart-contracts/composability/), permitindo você integrar com protocolos existentes - mais você ainda precisará garantir que interações on-chain assim tão complexas produzam os resultados corretos. +Rodar contratos em blockchain local pode ser útil como forma de teste de integração manual. [Os contratos inteligentes são altamente combináveis](/developers/docs/smart-contracts/composability/), o que permite integrá-los com protocolos existentes — mas você ainda precisará garantir que interações on-chain complexas como essas produzam os resultados corretos. [Mais sobre redes de desenvolvimento.](/developers/docs/development-networks/) ### Testando contratos nas redes de teste {#testing-contracts-on-testnets} -Uma rede de teste ou testnet funciona exatamente como o Ethereum Mainnet, exceto que ela usa Ether (ETH) sem valor no mundo real. Implantar seu contrato em uma [testnet](/developers/docs/networks/#ethereum-testnets) significa que qualquer um pode interagir com ele (por exemplo, via o front-end do dapp) sem colocar fundos em risco. +Uma rede de teste ou testnet funciona exatamente como o Ethereum Mainnet, exceto pelo fato de usar Ether (ETH) sem valor no mundo real. Implantar seu contrato em uma [testnet](/developers/docs/networks/#ethereum-testnets) significa que qualquer um pode interagir com ele (por exemplo, via o front-end do dapp) sem colocar fundos em risco. Esta forma de teste manual é útil para avaliação do fluxo fim-a-fim da sua aplicação do ponto de vista do usuário. Aqui, testadores beta podem também realizar execuções experimentais e reportar qualquer problema com a lógica de negócios do contrato e funcionalidade geral. @@ -259,7 +259,7 @@ A maior diferença é que programas de recompensa por bug são abertos a uma mai - **[Framework de teste de unidade do Brownie](https://eth-brownie.readthedocs.io/en/v1.0.0_a/tests.html)** - _Brownie utiliza Pytest, uma estrutura de teste rica em recursos que permite que você escreva pequenos testes com o mínimo de código, escala bem para grandes projetos e é altamente extensível._ -- **[Froundry Testes](https://github.com/foundry-rs/foundry/tree/master/forge)** - _Foundry oferece o Forge, um framework de teste no Ethereum rápido e flexível, capaz de executar testes de unidade simples, verificações de otimização de gás e mutações (fuzzing) em contratos._ +- **[Testes Foundry](https://github.com/foundry-rs/foundry/tree/master/crates/forge)** — _Foundry oferece o Forge, uma estrutura de testes no Ethereum rápida e flexível, capaz de executar testes de unidade simples, verificações de otimização de gás e mutações (fuzzing) em contratos._ - **[Hardhat Testes](https://hardhat.org/hardhat-runner/docs/guides/test-contracts)** - _Framework para testar contratos inteligentes com base no ethers.js, Mocha e Chai._ diff --git a/public/content/translations/pt-br/developers/docs/smart-contracts/verifying/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/verifying/index.md index 8b31d38fcef..e2de46ba098 100644 --- a/public/content/translations/pt-br/developers/docs/smart-contracts/verifying/index.md +++ b/public/content/translations/pt-br/developers/docs/smart-contracts/verifying/index.md @@ -76,7 +76,7 @@ O Etherscan permite que você recompile o bytecode do contrato a partir do paylo Uma vez verificado, o código-fonte do seu contrato recebe um rótulo "Verificado" e é publicado no Etherscan, para que outros auditem. Ele também é adicionado à seção [Contratos Verificados](https://etherscan.io/contractsVerified/) - um repositório de contratos inteligentes com códigos-fonte verificados. -Etherscan é a ferramenta mais usada para verificação de contratos. No entanto, a verificação de contrato do Etherscan tem uma desvantagem: ele falha ao comparar o **hash de metadados** do bytecode on-chain e o bytecode recompilado. Portanto, as correspondências no Etherscan são correspondências parciais. +Etherscan é a ferramenta mais usada para verificação de contratos. No entanto, a verificação de contrato do Etherscan tem uma desvantagem: ele falha ao comparar o **hash de metadados** do bytecode on-chain e do bytecode recompilado. Portanto, as correspondências no Etherscan são correspondências parciais. [Mais sobre a verificação de contratos no Etherscan](https://medium.com/etherscan-blog/verifying-contracts-on-etherscan-f995ab772327). diff --git a/public/content/translations/pt-br/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/pt-br/guides/how-to-create-an-ethereum-account/index.md index 0b20bc2cb9d..ba33dc0a5b3 100644 --- a/public/content/translations/pt-br/guides/how-to-create-an-ethereum-account/index.md +++ b/public/content/translations/pt-br/guides/how-to-create-an-ethereum-account/index.md @@ -6,21 +6,22 @@ lang: pt-br # Como criar uma conta Ethereum -Qualquer pessoa pode criar uma conta Ethereum, a qualquer momento, gratuitamente. Há diversas maneiras, mas a mais fácil e comum é utilizar um aplicativo, conhecido como "carteira". As carteiras criam e protegem as chaves que permite a utilização do Ethereum. Você pode usar a sua carteira para enviar transações, verificar seu saldo de tokens e conectar a apps desenvolvidos no Ethereum, como corretoras de tokens, jogos, mercados de NFT e mais. Alguns aplicativos "web2" agora também permitem fazer login com o Ethereum. +**Qualquer pessoa pode criar uma conta Ethereum de graça.** Você só precisa instalar um aplicativo de carteira de criptomoedas. As carteiras criam e gerenciam sua conta Ethereum. Elas permitem enviar transações, verificar seus saldos e conectá-lo a outros aplicativos desenvolvidos em Ethereum. -Ao contrário de abrir uma nova conta em uma empresa, a criação de uma conta Ethereum é feita de maneira livre, privada e sem a necessidade de permissão. As contas são controladas por chaves que seu software de carteira ajuda a criar. Estas contas não são emitidas por terceiros, nem armazenadas em um registro central. +Com uma carteira, você também pode fazer login em qualquer exchange de tokens, jogos e mercados [NFT](/glossary/#nft) de forma imediata. Não há necessidade de inscrição individual. Uma única conta é compartilhada por todos os aplicativos criados com base em Ethereum. ## Etapa 1: Escolha uma carteira -Uma carteira é um aplicativo que ajuda você controlar a sua conta Ethereum. Ela usa as suas chaves para enviar e receber transações e se conectar em aplicativos. Existem dezenas de carteiras diferentes para escolher: carteira para celular, carteira desktop ou ainda como extensão do navegador. +Uma carteira é um aplicativo que ajuda você controlar a sua conta Ethereum. Existem dezenas de carteiras diferentes para escolher: móveis, de desktop ou até mesmo extensões de navegador. + - Encontre uma carteira + Lista de carteiras Se for iniciante, poderá selecionar o filtro "New to crypto" (Novo em cripto) na página "find a wallet" (encontrar uma carteira) para identificar carteiras que incluam todos os recursos necessários e adequados para iniciantes. -![seleção de filtro na página 'find a wallet' (encontrar uma carteira)](./wallet-box.png) +![Seleção de filtros na página "encontrar uma carteira"](./wallet-box.png) Também existem outros filtros de perfil para atender às suas necessidades. Esses são exemplos de carteiras utilizadas normalmente. Você deve fazer a sua própria pesquisa antes de confiar em qualquer software. @@ -28,45 +29,45 @@ Também existem outros filtros de perfil para atender às suas necessidades. Ess Após escolher sua carteira, visite o site oficial ou a loja de aplicativos, baixe e instale-a. Todas elas são gratuitas. -## Etapa 3: Abrir o aplicativo e gerar ou importar a conta existente do Ethereum +## Etapa 3: Abra o aplicativo e crie sua conta Ethereum -Ao abrir uma nova carteira pela primeira vez, será necessário escolher entre criar uma nova conta ou importar uma já existente. Clique em criação de nova conta. +Ao abrir uma nova carteira pela primeira vez, será necessário escolher entre criar uma nova conta ou importar uma já existente. Clique em criação de nova conta. **Esta é a etapa durante a qual o software da carteira gera sua conta Ethereum.** ## Etapa 4: Salvar a frase de recuperação -Alguns aplicativos solicitarão que você salve uma "frase semente" secreta (também pode ser chamado de "frase de recuperação" ou "mnemônico"). Proteger essa frase semente é extremamente importante! A frase semente é utilizada para gerar uma chave secreta para uma conta que pode ser utilizada para assinar e enviar transações. Qualquer pessoa que conheça a frase semente pode assumir o controle de todas as contas geradas por ela. Nunca compartilhe a frase semente com terceiros. A frase semente deve conter de 12 a 24 palavras geradas aleatoriamente (a ordem das palavras é importante). - -Após salvar a frase semente, você verá o painel da carteira com o saldo. Confira nosso guia: [como usar uma carteira.](/guides/how-to-use-a-wallet) +Alguns aplicativos vão te pedir para salvar uma "chave de recuperação" secreta (algumas vezes chamada de "frase semente" ou de "mnemônico"). Manter essa frase a salvo é extremamente importante! Ela é usada para gerar sua conta Ethereum e pode ser usada para fazer transações. -
+**Qualquer pessoa que conheça essa frase pode tomar o controle de todos os seus fundos.** Nunca compartilhe ela com ninguém. Essa frase deve conter entre 12 e 24 palavras geradas aleatoriamente (a ordem das palavras importa). +
-
Quer saber mais?
- - Veja nossos outros guias +
Carteira instalada?
Aprenda como usá-la.
+ + Como usar uma carteira
+
+ +Tem interesse em outros guias? Verifique os nossos: [Guias passo a passo](/guides/) ## Perguntas frequentes ### Uma carteira e uma conta Ethereum são o mesmo? -Não. A carteira é uma ferramenta de gerenciamento que ajuda você a gerenciar contas. Uma única carteira pode dar acesso a diversas contas, e uma única conta pode ser acessada por diversas carteiras. A frase semente é utilizada para criar contas que são controladas pela carteira. - -Você pode pensar em contas como folhas de uma árvore que "crescem" a partir de uma única frase semente. Cada semente única dará origem a uma árvore de contas totalmente diferente. +Não. A carteira é uma ferramenta de gerenciamento que ajuda você a gerenciar contas. Uma única carteira pode acessar várias contas, e uma única conta pode ser acessada por várias carteiras. A frase de recuperação é usada para criar contas e dá permissão ao aplicativo de carteira para gerenciar ativos. ### Posso enviar bitcoins para uma conta/endereço Ethereum ou enviar ethers para uma conta/endereço Bitcoin? -Não, não é possível. Bitcoin e ether existem em duas redes separadas (ou seja, blockchains diferentes), cada uma com seus próprios modelos de contabilidade e formatos de endereço. Houve várias tentativas de conectar as duas redes diferentes, das quais a mais ativa é atualmente o [Bitcoin envelopado ou WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Isso não é uma recomendação, pois o WBTC é uma solução de custódia (ou seja, um único grupo de pessoas controla determinadas funções críticas) e é fornecido aqui apenas a título informativo. +Não, não é possível. O Bitcoin e o ether existem em duas redes separadas (ou seja, blockchains diferentes), cada uma com seus próprios formatos de contabilidade e endereço. Houve várias tentativas de unir as duas redes diferentes, das quais a mais ativa atualmente é a [Wrapped Bitcoin ou WBTC](https://www.bitcoin.com/get-started/what-is-wbtc/). Isso não é uma recomendação, pois o WBTC é uma solução de custódia (ou seja, um único grupo de pessoas controla determinadas funções críticas) e é fornecido aqui apenas a título informativo. ### Se eu tenho um endereço de ETH, o endereço é o mesmo para outras blockchains? -Você pode utilizar o mesmo endereço em todos os blockchains que usam software subjacente semelhante ao Ethereum (conhecido como "compatível com EVM"). Esta [lista](https://chainlist.org/) mostra quais blockchains você pode usar com o mesmo endereço. Algumas blockchains, como o Bitcoin, implementam um conjunto completamente separado de regras de rede e você precisará de um endereço diferente com um formato diferente. Se você tem uma carteira de contrato inteligente, você deve verificar o site do produto para mais informações sobre quais blockchains são suportadas. +Você pode usar o mesmo [endereço](/glossary/#address) em todas as blockchains que usam software subjacente semelhante ao Ethereum (conhecido como "compatível com EVM"). Esta [lista](https://chainlist.org/) mostra quais blockchains você pode usar com o mesmo endereço. Algumas blockchains, como o Bitcoin, implementam um conjunto completamente separado de regras de rede e você precisará de um endereço diferente com um formato diferente. Se você tem uma carteira de contrato inteligente então deve verificar o site do produto para ver mais informações sobre quais blockchains são permitidas porque geralmente elas têm uma abrangência limitada, porém mais segura. ### Ter a minha própria carteira é mais seguro do que manter os meus fundos em uma corretora? -Ter a sua própria carteira significa que você assume a responsabilidade pela segurança dos seus ativos. Infelizmente, há muitos exemplos de corretoras que cometeram erros e perderam o dinheiro dos clientes. Ser titular de uma carteira (com uma frase semente) elimina o risco associado a confiar em uma entidade para manter os seus ativos. Entretanto, você precisa proteger as suas chaves e evitar golpes de phishing, aprovação acidental de transações ou exposição de chaves, interação com sites falsos e outros riscos de autocustódia. Os riscos e benefícios são diferentes. +Ter a sua própria carteira significa que você assume a responsabilidade pela segurança dos seus ativos. Infelizmente, há muitos exemplos de corretoras que cometeram erros e perderam o dinheiro dos clientes. Possuir uma carteira (com uma frase de recuperação) elimina o risco associado à confiança em alguma entidade para manter seus ativos. No entanto, você precisa protegê-la por conta própria e evitar golpes de phishing, aprovação acidental de transações ou exposição da frase de recuperação, interação com sites falsos e outros riscos de autocustódia. Os riscos e benefícios são diferentes. ### Se eu perder minha carteira de celular/hardware, eu preciso usar o mesmo aplicativo de carteira novamente para recuperar os fundos perdidos? -Não, você pode utilizar outra carteira. Desde que você tenha a frase semente, poderá inseri-la na maioria das carteiras e a sua conta será restaurada. Tenha cuidado se precisar fazer isso: é melhor certificar-se de que você não está conectado à Internet ao recuperar a sua carteira para não vazar a sua frase semente acidentalmente. Muitas vezes, é impossível recuperar os fundos perdidos sem a frase semente. +Não, você pode utilizar outra carteira. Desde que você tenha a frase semente, poderá inseri-la na maioria das carteiras e a sua conta será restaurada. Tenha cuidado se precisar fazer isso: é melhor certificar-se de que você não está conectado à Internet ao recuperar a sua carteira para não vazar a sua frase semente acidentalmente. Muitas vezes, é impossível recuperar fundos perdidos sem a frase de recuperação. diff --git a/public/content/translations/pt-br/guides/index.md b/public/content/translations/pt-br/guides/index.md index 9dc981a64b2..e0df4c2195f 100644 --- a/public/content/translations/pt-br/guides/index.md +++ b/public/content/translations/pt-br/guides/index.md @@ -12,7 +12,7 @@ Quer iniciar a sua jornada no Ethereum? Os nossos guias práticos oferecem orien 1. [Como "criar" uma conta Ethereum](/guides/how-to-create-an-ethereum-account/) - Qualquer pessoa pode criar uma carteira, gratuitamente. Este guia mostrará por onde começar. -2. [Como usar uma carteira](/guides/how-to-use-a-wallet/) — Uma introdução aos recursos básicos de qualquer carteira e como usá-los. +2. [Como usar uma carteira](/guides/how-to-use-a-wallet/) – Aprenda como enviar e receber tokens em sua carteira e como conectar a carteira a projetos. ## Noções básicas de segurança diff --git a/public/content/translations/pt-br/roadmap/index.md b/public/content/translations/pt-br/roadmap/index.md index 8f07ffe422a..45447032b6f 100644 --- a/public/content/translations/pt-br/roadmap/index.md +++ b/public/content/translations/pt-br/roadmap/index.md @@ -109,6 +109,7 @@ A fragmentação divide a blockchain do Ethereum de modo que subconjuntos de [va ## Procurando por melhorias técnicas específicas? {#looking-for-specific-technical-upgrades} +- [Pectra](/roadmap/pectra) — Hard fork Praga/Eletra, que traz uma nova abordagem para abstração de contas, melhora a escalabilidade e muito mais. - [Danksharding](/roadmap/danksharding) - o Danksharding torna os rollups da camada 2 muito mais baratos para os usuários ao adicionar "blobs" de dados aos blocos Ethereum. - [Saques de participação](/staking/withdrawals) - a melhoria Shanghai/Capella habilitou saques de participação no Ethereum, permitindo que as pessoas desbloqueassem seus ETHs participados. - [Finalidade de um único espaço](/roadmap/single-slot-finality) - em vez de esperar quinze minutos, os blocos poderiam ser propostos e finalizados no mesmo espaço. Isso é mais conveniente para os aplicativos e muito mais difícil de atacar. diff --git a/public/content/translations/tr/community/events/index.md b/public/content/translations/tr/community/events/index.md index a52881a7e73..509f0f2e00f 100644 --- a/public/content/translations/tr/community/events/index.md +++ b/public/content/translations/tr/community/events/index.md @@ -13,6 +13,8 @@ hideEditButton: true Bu, topluluğumuz tarafından sağlanan kapsamlı olmayan bir listedir. Bu listeye eklenecek yaklaşan bir Ethereum etkinliğini biliyor musunuz? [Lütfen ekleyin](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + ## Ethereum buluşmaları {#meetups} İşinize yarayan bir etkinlik görmüyor musunuz? Bir buluşmaya katılmayı deneyin. Buluşmalar, Ethereum meraklılarından oluşan gruplar tarafından düzenlenen daha küçük etkinliklerdir. Ethereum ile ilgilenen kişilerin bir araya gelme, Ethereum hakkında konuşma ve son gelişmeler hakkında bilgi edinme şansı olur. diff --git a/public/content/translations/tr/contributing/design/index.md b/public/content/translations/tr/contributing/design/index.md index e1d246b3ea1..14ad706362c 100644 --- a/public/content/translations/tr/contributing/design/index.md +++ b/public/content/translations/tr/contributing/design/index.md @@ -6,7 +6,7 @@ lang: tr # Ethereum.org için tasarım katkısı {#design-contributions} -Tasarım, herhangi bir projenin kritik bir bileşenidir; zamanınızı ve tasarım yeteneklerinizi Ethereum.org'a ayırarak ziyaretçilerimiz için kullanıcı deneyimini iyileştirmeye yardımcı olabilirsiniz. Açık kaynaklı bir projeye katkıda bulunmak, size iş birliğine dayalı bir ortamda konuyla alakalı deneyim kazanma ve becerilerinizi geliştirme fırsatı sunar. Her biri eşsiz perspektif ve bilgilere sahip tasarımcılar, geliştiriciler ve topluluk üyeleri ile çalışma şansına sahip olacaksınız. +Tasarım, her projenin kritik bir parçasıdır. Siz de zamanınızı ve tasarım yeteneklerinizi ethereum.org'a ayırarak ziyaretçilerimizin kullanıcı deneyimini artırmamıza yardımcı olabilirsiniz. Açık kaynaklı bir projeye katkıda bulunmak, size iş birliğine dayalı bir ortamda konuyla alakalı deneyim kazanma ve becerilerinizi geliştirme fırsatı sunar. Her biri eşsiz perspektif ve bilgilere sahip tasarımcılar, geliştiriciler ve topluluk üyeleri ile çalışma şansına sahip olacaksınız. Sonuç olarak bu, tasarım becerilerinizi sergileyeceğiniz çeşit çeşit ve etkileyici bir portföy inşa etmenizin harika bir yoludur. @@ -30,7 +30,7 @@ Web sitemiz hakkında geribildirim sağlayın: ###  Web sitesindeki tasarımla ilgili sorunları bulun ve bildirin {#report-design-issues} -Ethereum.org, birçok içeriğe ve özelliğe sahip, hızla büyüyen bir web sitesidir. Bazı kullanıcı arayüzleri, kolayca güncelliğini yitirebilir ya da geliştirilebilir. Böyle bir durumla karşılaşırsanız, dikkate almamız için lütfen bize bildirin. +ethereum.org, birçok özelliğe ve içeriğe sahip, hızla büyüyen bir web sitesidir. Bazı kullanıcı arayüzleri, kolayca güncelliğini yitirebilir ya da geliştirilebilir. Böyle bir durumla karşılaşırsanız, dikkate almamız için lütfen bize bildirin. 1. Web sitesine gidin ve tasarımları dikkatle inceleyin. 2. Herhangi bir görsel sorun ya da kullanıcı deneyimi sorunu görürseniz, ekran görüntüsü ve notlar alın. @@ -51,10 +51,10 @@ Tasarım sistemimiz, ethereum.org'u tasarlamayı eğlenceli ve kolay hale getiri 1. GitHub'da [tasarım sistemi panosundan](https://github.com/ethereum/ethereum-org-website/labels/design%20system), üzerinde çalışmak üzere bir konu seçin ya da yeni bir tane oluşturun. 2. Seçtiğiniz konunun size atanmasını talep edin. -3. İstediğiniz bileşeni figma'da tasarlamaya başlayın. +3. Talep edilen bileşeni Figma'da tasarlamaya başlayın. 4. Değerlendirmeye ya da rehberliğe ihtiyaç duyarsanız GitHub üzerinden tasarım ekibi ile paylaşın. 5. Tasarım ekibi inceleyecektir. -6. Tasarım ekibi, değişiklikleri ana dosyada toplayacak ve bu dosyayı topluluk ile paylaşacaktır. +6. Tasarım ekibi, değişiklikleri ana dosyada toplayacak ve dosyayı toplulukla paylaşacaktır. ###  Web sitesinde tasarımla ilgili içerik yazın {#write-design-articles} @@ -64,7 +64,7 @@ Ethereum geliştirici topluluğu güçlü olsa da, tasarım topluluğu biraz dah 2. GitHub depomuza gidin ve konu başlığı önererek [bir konu açın](https://github.com/ethereum/ethereum-org-website/issues/new) (henüz içeriği yazmayın). 3. Onaylaması için tasarım ekibini bekleyin. 4. Onaylandıktan sonra içeriği yazın. -5. İlgili GH konusunda sunun. +5. İlgili GitHub sorununa yükleyin. ###  Yeni illüstrasyonlar çizin {#prepare-illustrations} diff --git a/public/content/translations/tr/contributing/index.md b/public/content/translations/tr/contributing/index.md index 1f28140fb9b..d9f5c8d5dcb 100644 --- a/public/content/translations/tr/contributing/index.md +++ b/public/content/translations/tr/contributing/index.md @@ -19,13 +19,12 @@ Ethereum ekosisteminde büyümenize ve eğitim almanıza yardımcı olurken anla - [Açık bir konu üzerinde çalışın](https://github.com/ethereum/ethereum-org-website/issues) – Yapılması gerektiğini tespit ettiğimiz işler **Tasarım** -- [Web sitesinin tasarlanmasına yardımcı olun](/contributing/design/) Her seviyeden tasarımcı, web sitesini geliştirmek için katkıda bulunabilir +- [Web sitesinin tasarlanmasına yardımcı olun](/contributing/design/) – Her seviyeden tasarımcı, web sitesini geliştirmek için katkıda bulunabilir **İçerik** - [İçerik oluşturun/düzenleyin](/contributing/#how-to-update-content) – Yeni sayfalar önerin veya zaten burada olanlar üzerinde değişiklikler yapın - [Topluluk kaynakları ekleyin](/contributing/content-resources/) – Alakalı bir sayfaya faydalı bir makale veya kaynak ekleyin - [Bir tasarım kaynağı önerin](/contributing/design/adding-design-resources/) – Yararlı tasarım kaynaklarını ekleyin, güncelleyin ve silin -- [Bir sözlük terimi ekleyin](/contributing/adding-glossary-terms/) – Ethereum [sözlüğünü](/glossary/) genişletmeye devam etmemize yardımcı olun - [Testler](/contributing/quizzes/) – İlgili bir sayfa için test soru bankaları ekleyin, güncelleyin ve silin **Özellik fikirleri** @@ -68,7 +67,7 @@ Katkıda bulunmadan önce şunlara aşina olduğunuzdan emin olun: - [stil rehberimiz](/contributing/style-guide/) - [davranış kurallarımız](/community/code-of-conduct) - + ## Siteyle ilgili kararlar nasıl alınır {#how-decisions-about-the-site-are-made} @@ -90,11 +89,11 @@ GitHub depomuzda, özellikle açık kaynak konusunda acemi olan geliştiriciler Katkınızın ethereum.org ile birleştirilmesi halinde [Galxe](https://app.galxe.com/quest/ethereumorg)'de özel bir rozet talep etme şansınız olacak. Bir Zincir Üstünde Başarı Jetonu (OAT), ekosistemin biraz daha mükemmel hale getirilmesine katkıda bulunduğunuzun kanıtıdır. -[OAT'ler hakkında daha fazla bilgi](https://help.galxe.com/en/articles/7067290-galxe-oats-reward-and-celebrate-achievements) +[OAT'ler hakkında daha fazla bilgi](https://help.galxe.com/en/articles/9645630-create-quest-rewards#h_1c5d63ba03) ### Nasıl talep edilir? 1. [Discord sunucumuza](https://discord.gg/ethereum-org) katılın. -2. Yaptığınız katkının bağlantısını `#🥇 | proof-of-contribution` kanalına yapıştırın +2. Yaptığınız katkının bağlantısını `#🥇 | proof-of-contribution` kanalına yapıştırın. 3. Ekip üyelerimizden birinin size OAT bağlantınızı göndermesini bekleyin. 4. OAT'nizi talep edin! diff --git a/public/content/translations/tr/contributing/translation-program/how-to-translate/index.md b/public/content/translations/tr/contributing/translation-program/how-to-translate/index.md index 3dec8a74267..d0332a48d7e 100644 --- a/public/content/translations/tr/contributing/translation-program/how-to-translate/index.md +++ b/public/content/translations/tr/contributing/translation-program/how-to-translate/index.md @@ -18,7 +18,7 @@ Görsel olarak daha kolay öğrenenler için Luka'nın Crowdin'in kurulumunu anl Crowdin hesabınızda oturum açmanız veya henüz hesabınız yoksa Crowdin hesabı oluşturmanız gerekecektir. Kaydolmak için gerekli olan tek şey bir e-posta hesabı ve şifredir. - + Projeye katılın @@ -84,6 +84,6 @@ Daha fazlasını mı öğrenmek istiyorsunuz? [Crowdin çevrimiçi düzenleyiciy Sormak istediğiniz bir şey mi var? Ekibimizle ve diğer çevirmenlerle iş birliği yapmak mı istiyorsunuz? Lütfen [ethereum.org Discord sunucumuzun](/discord/) #translations kanalına yazın -Ayrıca bize translations@ethereum.org adresinden de ulaşabilirsiniz +Bize translations@ethereum.org adresinden de ulaşabilirsiniz Ethereum.org Çeviri Programına katıldığınız için teşekkür ederiz! diff --git a/public/content/translations/tr/contributing/translation-program/index.md b/public/content/translations/tr/contributing/translation-program/index.md index 1bca476af89..bfc96cb7dde 100644 --- a/public/content/translations/tr/contributing/translation-program/index.md +++ b/public/content/translations/tr/contributing/translation-program/index.md @@ -36,9 +36,9 @@ Ethereum.org Çeviri Programının [misyon ve vizyonu](/contributing/translation ### Şimdiye kadarki ilerleme durumumuz {#our-progress} -- [**6.000'in üzerinde** çevirmen](/contributing/translation-program/contributors/) -- **62** sitenin yayında olduğu dil sayısı -- [**3 milyon** 2023'de çevrilen kelime sayısı](/contributing/translation-program/acknowledgements/) +- [**6.900'ün üzerinde** çevirmen](/contributing/translation-program/contributors/) +- **68** dilde yayınlanan site içeriği +- [2024'te **2,89 milyon** kelime çevirisi](/contributing/translation-program/acknowledgements/) diff --git a/public/content/translations/zh/bridges/index.md b/public/content/translations/zh/bridges/index.md index 1d19d49a344..92b5dfe3bf8 100644 --- a/public/content/translations/zh/bridges/index.md +++ b/public/content/translations/zh/bridges/index.md @@ -49,7 +49,7 @@ _Web3 已经发展成为一个由一层网络区块链和二层网络扩展解 ### 其他区块链上的去中心化应用程序 {#dapps-other-chains} -如果你一直在以太坊主网上使用 Aave 借出泰达币,但在 Polygon 上使用 Aave 借出泰达币的利率更高。 +如果你一直在以太坊主网上使用 Aave 提供 USDT,但在 Polygon 上使用 Aave 提供 USDT 的利率可能更高。 ### 探索区块链生态系统 {#explore-ecosystems} @@ -65,7 +65,7 @@ _Web3 已经发展成为一个由一层网络区块链和二层网络扩展解 -## 桥梁类型 {#types-of-bridge} +## 桥的类型 {#types-of-bridge} 桥梁具有各种设计和复杂程度。 一般来说,桥梁分为两类:需信任桥梁和去信任桥梁。 @@ -131,7 +131,9 @@ _Web3 已经发展成为一个由一层网络区块链和二层网络扩展解 ## 延伸阅读 {#further-reading} +- [EIP-5164:跨链执行](https://ethereum-magicians.org/t/eip-5164-cross-chain-execution/9658) - _2022 年 6 月 18 日 - Brendan Asselstine_ +- [二层网络桥梁风险框架](https://gov.l2beat.com/t/l2bridge-risk-framework/31) - _2022 年 7 月 5日 - Bartek Kiepuszewski_ +- [“为什么未来将出现多链,而不会是跨链。”](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) - _2022 年 1 月 8 日 - Vitalik Buterin_ +- [利用共享安全实现安全的跨链互操作性:Lagrange 状态委员会及其扩展](https://research.2077.xyz/harnessing-shared-security-for-secure-blockchain-interoperability) - _2024 年 6 月 12 日 - Emmanuel Awosika_ +- [Rollup 互操作性解决方案的现状](https://research.2077.xyz/the-state-of-rollup-interoperability) - _2024 年 6 月 20 日 - Alex Hook_ -- [EIP-5164:跨链执行](https://ethereum-magicians.org/t/eip-5164-cross-chain-execution/9658)_2022 年 6 月 18 日 - Brendan Asselstine_ -- [二层网络桥梁风险框架](https://gov.l2beat.com/t/l2bridge-risk-framework/31) _2022 年 7 月 5日 - Bartek Kiepuszewski_ -- [“为什么未来将出现多链,而不会是跨链。”](https://old.reddit.com/r/ethereum/comments/rwojtk/ama_we_are_the_efs_research_team_pt_7_07_january/hrngyk8/) _2022 年 1 月 8 日 - Vitalik Buterin_ diff --git a/public/content/translations/zh/community/events/index.md b/public/content/translations/zh/community/events/index.md index 79260f8b713..783d50e7e6e 100644 --- a/public/content/translations/zh/community/events/index.md +++ b/public/content/translations/zh/community/events/index.md @@ -13,6 +13,8 @@ hideEditButton: true 这是一个由我们社区维护的不完整列表。 想要将了解到的即将举行的以太坊活动添加到此列表? [请添加](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + ## 以太坊聚会 {#meetups} 找不到适合你的活动? 尝试加入一个聚会。 聚会是指由各个以太坊爱好者团体举办的小型活动——这是对以太坊感兴趣的人们聚集在一起的机会,他们可以一起谈论并了解以太坊的最新发展。 diff --git a/public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md index 5a2096aae15..642a316f529 100644 --- a/public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md +++ b/public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md @@ -70,7 +70,7 @@ lang: zh ### 霍尔式属性 {#hoare-style-properties} -[霍尔逻辑](https://en.wikipedia.org/wiki/Hoare_logic)提供了一套形式化规则来推理程序(包括智能合约)的正确性。 霍尔式属性使用霍尔三元组 `{P}c{Q}` 表示,其中 `c` 代表程序,`P` 和 `Q` 是 `c`(即程序)状态的谓词,它们正式描述成_前置条件_和_后置条件_。 +[霍尔逻辑](https://en.wikipedia.org/wiki/Hoare_logic)提供了一套形式化规则来推理程序(包括智能合约)的正确性。 霍尔式属性使用霍尔三元组 \{_P_}_c_\{_Q_} 表示,其中 _c_ 代表程序,_P_ 和 _Q_ 是 _c_(即程序)状态的谓词,它们正式描述成_前置条件_和_后置条件_。 前置条件是描述函数正确执行所需条件的谓词;用户调用合约必须满足该要求。 后置条件是描述函数在正确执行时所达成条件的谓词;用户在调用函数后可以期待该条件为真。 在霍尔逻辑中,_不变量_是一个在函数执行时保留的谓词(即它不改变)。 diff --git a/public/content/translations/zh/developers/docs/smart-contracts/security/index.md b/public/content/translations/zh/developers/docs/smart-contracts/security/index.md index b815d2c4255..16f67aec544 100644 --- a/public/content/translations/zh/developers/docs/smart-contracts/security/index.md +++ b/public/content/translations/zh/developers/docs/smart-contracts/security/index.md @@ -346,7 +346,7 @@ contract MutexPattern { require(balances[msg.sender] >= _amount, "No balance to withdraw."); balances[msg.sender] -= _amount; - bool (success, ) = msg.sender.call{value: _amount}(""); + (bool success, ) = msg.sender.call{value: _amount}(""); require(success); return true; @@ -439,13 +439,13 @@ contract Attack { #### 预言机操纵 {#oracle-manipulation} -[预言机](/developers/docs/oracles/)获取链下信息并将这些信息发送到链上供智能合约使用。 通过预言机,你可以设计出和链下系统(资本市场)交互的智能合约,极大地拓展它们的应用。 +[预言机](/developers/docs/oracles/)获取链下信息并将这些信息发送到链上供智能合约使用。 通过预言机,你可以设计出和链下系统(例如资本市场)交互的智能合约,极大地拓展它们的应用。 但如果预言机损坏并向链上发送错误信息,智能合约将基于错误的输入执行,这会造成问题。 这就是“预言机问题”的根源,它涉及确保区块链预言机提供准确、最新、即时的信息。 相关的安全问题就是利用链上预言机(例如去中心化交易所)获取一种资产的现货价格。 [去中心化金融 (DeFi)](/defi/) 行业中的借贷平台经常利用这种方法确定用户抵押品的价值,进而确定他们能借入多少。 -去中心化交易所 (DEX) 的价格往往是准确的,很大程度上源于套利者的套利行为帮助市场恢复平价。 然而,去中心化交易所的价格容易受到操纵,尤其当链上预言机根据历史交易模式计算资产价格时(通常是这种情况)。 +去中心化交易所 (DEX) 的价格往往是准确的,很大程度上源于套利者的套利行为帮助市场恢复平价。 然而,这样容易受到操纵,尤其当链上预言机根据历史交易模式计算资产价格时(通常是这种情况)。 例如,攻击者可以在与你的借贷合约交互前,通过获得闪电贷人为拉高资产的现货价格。 在向去中心化交易所 (DEX) 查询资产价格时,将返回一个高于正常水平的值(由于攻击者对大宗“买入订单”影响了资产的需求),这样攻击者就可以借来比原本更多的资金。 这种“闪电贷攻击”一直在利用对去中心化金融应用程序之间的价格预言机的依赖,使许多协议遭受了数百万美元的资金损失。 @@ -563,7 +563,7 @@ contract Attack { - **[智能合约安全验证标准](https://github.com/securing/SCSVS)** - _旨在确立智能合约安全性标准的第十四部分检查清单,面向开发者、架构师、安全审核者和供应商。_ -- **[学习智能合约安全与审计](https://updraft.cyfrin.io/courses/security) - _智能合约安全与审计终极课程,专为寻求提升其安全性最佳做法和希望成为安全研究者的智能合约开发者而创建。_ +- **[学习智能合约安全与审计](https://updraft.cyfrin.io/courses/security)** - _智能合约安全与审计终极课程,专为寻求提升其安全性最佳做法和希望成为安全研究者的智能合约开发者创建。_ ### 智能合约安全性教程 {#tutorials-on-smart-contract-security} diff --git a/public/content/translations/zh/developers/docs/smart-contracts/testing/index.md b/public/content/translations/zh/developers/docs/smart-contracts/testing/index.md index c91d3eea0fd..ca885c19008 100644 --- a/public/content/translations/zh/developers/docs/smart-contracts/testing/index.md +++ b/public/content/translations/zh/developers/docs/smart-contracts/testing/index.md @@ -150,7 +150,7 @@ function auctionEnd() external { 虽然单元测试可以独立调试合约函数,但集成测试会将智能合约的各个组件作为一个整体进行评估。 集成测试可以检测到跨合约调用或同一智能合约中不同函数之间的交互引起的问题。 例如,集成测试可以帮助检查诸如[继承](https://docs.soliditylang.org/en/v0.8.12/contracts.html#inheritance)和依赖注入等功能是否正常工作。 -如果合约采用模块化架构或在执行过程中与其他链上合约进行接口交互,集成测试非常有用。 一种运行集成测试的方法是在特定的高度[让区块链分叉](/glossary/#fork)(使用 [Forge](https://book.getfoundry.sh/forge/fork-testing) 或[安全帽](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks)等工具),并模拟你的合约与已部署合约之间的交互。 +如果合约采用模块化架构或在执行过程中与其他链上合约进行接口交互,集成测试将非常有用。 一种运行集成测试的方法是在特定的高度[让区块链分叉](/glossary/#fork)(使用 [Forge](https://book.getfoundry.sh/forge/fork-testing) 或[安全帽](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks)等工具),并模拟你的合约与已部署合约之间的交互。 分叉的区块链将与主网的行为类似,其帐户具有关联的状态和余额。 但是它只是一个沙盒式的本地开发环境,举例来说这意味着你不需要真正的以太币进行交易,同时你的更改也不会影响真实的以太坊协议。 @@ -259,7 +259,7 @@ function auctionEnd() external { - **[Brownie 单元测试框架](https://eth-brownie.readthedocs.io/en/v1.0.0_a/tests.html)** - _Brownie 采用了 Pytest,这是一个功能丰富的测试框架,让你只需使用最少的代码即可编写小型测试,并能有效地扩展以用于大型项目,而且具有很强的可扩展性。_ -- **[Foundry 测试](https://github.com/foundry-rs/foundry/tree/master/forge)** - _Foundry 提供了 Forge,这是一个快速灵活的以太坊测试框架,能够执行简单的单元测试、燃料优化检查和合约模糊测试。_ +- **[Foundry 测试](https://github.com/foundry-rs/foundry/tree/master/crates/forge)** - _Foundry 提供了 Forge,这是一个快速灵活的以太坊测试框架,能够执行简单的单元测试、燃料优化检查和合约模糊测试。_ - **[Hardhat 测试](https://hardhat.org/hardhat-runner/docs/guides/test-contracts)** - _基于 ethers.js、Mocha 和 Chai 的智能合约测试框架。_ diff --git a/public/content/translations/zh/governance/index.md b/public/content/translations/zh/governance/index.md index aee313e8ff1..f14d1a70748 100644 --- a/public/content/translations/zh/governance/index.md +++ b/public/content/translations/zh/governance/index.md @@ -20,9 +20,9 @@ _如果没有人拥有以太坊,那么关于以太坊过去和未来变化的 ## 以太坊治理 {#ethereum-governance} -以太坊治理是指进行协议更改的流程。 需要特别指出的是,这个流程与人们和应用程序如何使用该协议无关 - 以太坊无需许可。 世界上任何人都可以在任意地方参与链上活动。 没有规定谁可以或者不可以构建应用程序或者发送交易。 然而,需要有一个流程来提议针对核心协议的修改,去中心化应用程序正是在核心协议上运行的。 由于非常多的人都依赖以太坊的稳定性,因此对包括社会和技术流程在内的核心修改进行协调的门槛非常高,需要确保对以太坊进行的任何修改都是安全的并得到社区的广泛支持。 +以太坊治理是指进行协议更改的流程。 需要特别指出的是,这个流程与人们和应用程序如何使用该协议无关 - 以太坊无需许可。 世界上任何人都可以在任何地方参与链上活动。 没有规定谁可以或者不可以构建应用程序或者发送交易。 然而,需要有一个流程来提议针对核心协议的修改,去中心化应用程序正是在核心协议上运行的。 由于非常多的人都依赖以太坊的稳定性,因此对包括社会和技术流程在内的核心修改进行协调的门槛非常高,需要确保对以太坊进行的任何修改都是安全的并得到社区的广泛支持。 -### 链上治理与链下治理 {#on-chain-vs-off-chain} +### 链上治理与链下治理 {#onchain-vs-offchain} 区块链技术支持新治理功能,称为“链上治理”。 链上治理是指拟定的协议修改由利益相关方投票决定。通常由区块链上治理代币的持有者进行投票。 对于某些链上治理形式,拟定的协议更改已经写入代码,如果利益相关方通过签署交易批准更改,则变更会自动执行。 @@ -30,7 +30,7 @@ _如果没有人拥有以太坊,那么关于以太坊过去和未来变化的 **以太坊的链下治理**吸引了非常广泛的利益相关方参与该流程。 -_虽然在协议层上,以太坊的治理在链下进行,但许多基于以太坊构建的使用案例(例如 DAO)采用链上治理。_ +_虽然在协议层面上以太坊的治理在链下进行,但许多基于以太坊的使用案例,例如 DAO 会采用链上治理。_ 关于去中心化自治组织的更多信息 @@ -180,3 +180,5 @@ _注:任何个人都可以属于多个组(如:协议开发者可以支持 - [什么是以太坊核心开发者?](https://hudsonjameson.com/2020-06-22-what-is-an-ethereum-core-developer/)- _Hudson Jameson_ - [治理,第 2 部分:财阀统治仍非好事](https://vitalik.eth.limo/general/2018/03/28/plutocracy.html) - _Vitalik Buterin_ - [超越代币投票的治理方式](https://vitalik.eth.limo/general/2021/08/16/voting3.html) - _Vitalik Buterin_ +- [了解区块链治理](https://research.2077.xyz/understanding-blockchain-governance) - _2077 研究_ +- [以太坊治理机制](https://www.galaxy.com/insights/research/ethereum-governance/) - _Christine Kim_ diff --git a/public/content/translations/zh/security/index.md b/public/content/translations/zh/security/index.md index 58f254d63ce..301a1a50c6b 100644 --- a/public/content/translations/zh/security/index.md +++ b/public/content/translations/zh/security/index.md @@ -1,48 +1,295 @@ --- -title: 更安全的以太坊 -description: 以太坊是现有的最安全和去中心化的智能合约平台。 不过,我们仍有改进空间,从而确保以太坊能够抵御未来任何程度的攻击。 +title: 以太坊安全和预防欺诈措施 +description: 在以太坊上保持安全 lang: zh -image: /images/roadmap/roadmap-security.png -alt: "以太坊路线图" -template: roadmap --- -**以太坊已经是一个非常安全的**去中心化[智能合约](/glossary/#smart-contract)平台。 然而,我们仍可以进行一些改进,以确保以太坊能够抵御未来各种攻击。 这些改进包括对[以太坊客户端](/glossary/#consensus-client)处理竞争[区块](/glossary/#block)的方式进行微调,以及提高网络认为区块[“最终确定”](/developers/docs/consensus-mechanisms/pos/#finality)(这意味着在不对攻击者造成巨大经济损失的情况下无法改变区块)的速度。 +# 以太坊安全和预防欺诈措施 {#introduction} -此外,还可以进行一些改进,使审查交易变得更加困难,比如对区块提议者隐藏区块的实际内容,或者采用新的方法来识别客户端何时在审查。 这些改进将共同升级[权益证明](/glossary/#pos)协议,使从个人到企业在内的所有用户都对他们在以太坊上的应用程序、数据和资产随即产生信心。 +随着人们对加密货币的兴趣日益浓厚,黑客和骗子带来的风险也随之增加。 本文罗列了一些降低此类风险的最佳做法。 -## 质押提款 {#staking-withdrawals} +**请记住:ethereum.org 的人员永远不会主动联系你。 请不要回复声称来自以太坊官方支持的任何电子邮件。** -从[工作量证明](/glossary/#pow)升级到权益证明的过程始于以太坊的先驱们在存款合约中“质押”以太币。 这些以太币用于保护网络。 2023 年 4 月 12 日进行了第二次更新,允许提取质押的以太币。 自那时起,验证者可以自由地质押或提取以太币。 + -阅读关于提款的信息 +## 加密货币安全 101 {#crypto-security} -## 防御攻击 {#defending-against-attacks} +### 提升你的知识水平 {#level-up-your-knowledge} -可以对以太坊的权益证明协议进行一些改进。 其中一项称为[视图合并](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - 这是一种更安全的[分叉](/glossary/#fork)选择算法,可以增加实施某些复杂攻击的难度。 +对加密货币运作方式的误解可能会造成重大过失。 例如,如果有人冒充客服人员,声称可以归还你损失的以太币以换取你的私钥,他们是在试图利用人们不了解以太坊是一个去中心化网络,并不具备此类功能这一事实。 了解以太坊如何运作是一项值得的投资。 -减少以太坊[最终确定](/glossary/#finality)区块所需的时间可以改善用户体验,并防止复杂的“重组”攻击,即攻击者试图重组最近的区块以获取利润或审查特定交易。 [**单时隙最终确定性 (SSF)**](/roadmap/single-slot-finality/) 是一种**尽可能减少最终确定延迟的方式**。 现在,攻击者理论上可以说服其他验证者重新配置 15 分钟的区块。 采用单时隙确定性后,该数值为 0。 从个人到应用程序和交易所,所有用户都可以从中受益,快速确保他们的交易不会被撤销,而网络也可以从中受益,防范一整类攻击。 + + 什么是以太坊? + -了解单时隙确定性 + + 什么是以太币? + + -## 防范审查 {#defending-against-censorship} +## 钱包安全 {#wallet-security} -去中心化可以防止个人或一小部分[验证者](/glossary/#validator)的影响力过大。 新型质押技术有助于确保以太坊的验证者尽可能保持去中心化,同时还能防范硬件、软件和网络故障。 其中包括将验证者责任分散到多个[节点](/glossary/#node)的软件。 这被称为**分布式验证者技术 (DVT)**。 由于分布式验证者技术允许多台计算机共同参与验证,从而增加了冗余和容错性,因此我们鼓励[质押池](/glossary/#staking-pool)使用分布式验证者技术。 它还能将验证者密钥分散到多个系统中,而不是由一个运营商运行多个验证者。 这增加了不诚实运营商协调对以太坊的攻击的难度。 总之,它的想法是由_社区_而非个人运行验证者,从而提高安全性。 +### 切勿泄漏你的私钥 {#protect-private-keys} -了解分布式验证者技术 +**无论何种原因,切勿与他人分享你的私钥!** -实施**提议者-构建者器分离 (PBS)** 将大大提高以太坊对审查的固有防范能力。 提议者-构建者器分离可以让一个验证者创建区块,另一个验证者在以太坊网络中广播区块。 这可以确保在整个网络中更加公平地分享利润最大化的区块构建算法带来的收益,**防止质押随着时间的推移集中到表现最好的机构质押人**。 区块提议者可以从区块建造商市场中选择收益最高的区块。 要进行审查,区块提议者往往需要选择收益较低的区块,这**在经济上不合理,而且很容易被网络上的其他验证者发现**。 +钱包私钥就是你的以太坊钱包的密码。 这是阻止知道你的钱包地址的人榨干你帐户中所有资产的唯一方法。 -提议者-构建者器分离还有一些潜在的附件功能,如加密交易和纳入清单,可以进一步提高以太坊的抗审查性。 这使得区块构建者和提议者无法看到其区块中包含的实际交易。 + + 什么是以太坊钱包? + -了解提议者-构建者分离 +#### 不要将你的助记词/私钥截图 {#screenshot-private-keys} -## 保护验证者 {#protecting-validators} +如果将你的助记词或私钥截图,就有可能将它们同步到云端数据提供商,这意味着它们可能会被黑客获取。 从云端获取私钥是常见的黑客攻击向量。 -老练的攻击者有可能识别出即将到来的验证者,并向它们发送垃圾邮件,以阻止它们提议区块。这被称为**拒绝服务 (DoS)**攻击。 实施[**秘密领袖选举 (SLE)**](/roadmap/secret-leader-election)可防止预先知道区块提议者,从而防范此类攻击。 其工作原理是对代表候选区块提议者的加密承诺进行不断混洗,并利用它们的顺序来决定选择哪个验证者,从而使验证者自己才能事先知道它们的顺序。 +### 使用硬件钱包 {#use-hardware-wallet} -了解秘密领袖选举 +硬件钱包为私钥提供离线存储。 它们被认为是用来存储私钥的最安全的钱包选项:私钥永远不能放到互联网上,它们只能完全保存在本地设备中。 -## 当前进展 {#current-progress} +即使黑客控制了你的电脑,将私钥保持在离线状态,可以大大降低被黑客攻击的风险。 -**路线图上的安全升级已进入高级研究阶段**,但预计在一段时间内不会实现。 视图合并、提议者-构建者器分离、单时隙确定性和秘密领袖选举的下一步工作是最终确定规范并开始构建原型。 +#### 尝试以下硬件钱包: {#try-hardware-wallet} + +- [Ledger](https://www.ledger.com/) +- [Trezor](https://trezor.io/) + +### 发送交易前仔细检查 {#double-check-transactions} + +不小心将加密货币发送到错误的钱包地址是一个常见的错误。 **在以太坊上发送的交易是不可逆的。**除非你认识地址所有者并能说服他们把你的资金退回来,否则你将无法找回你的资金。 + +在发送交易之前,请务必确保你发送的地址与接收人的地址完全匹配。 当你与智能合约进行交互时,在签名之前检查交易信息是一种好习惯。 + +### 设置智能合约的支出限额 {#spend-limits} + +与智能合约进行交互时,不得允许无限制支出限额。 无支出限额可以让智能合约掏空你的钱包。 相反,只将支出限额设置为交易所需金额。 + +许多以太坊钱包提供限额保护,以防止帐户被掏空。 + +[如何撤销智能合约访问你的加密资金](/guides/how-to-revoke-token-access/) + + + +## 常见的骗术 {#common-scams} + +完全阻止诈骗是不可能的,但如果我们了解骗子最常用的伎俩,就可以降低他们的成功率。 虽然骗术层出不穷,但是他们的本质相同。 最重要的是,请记住: + +- 始终保持怀疑态度 +- 没有人会给你免费或打折的以太币 +- 没有人需要获取你的私钥或个人信息 + +### 推特广告钓鱼 {#ad-phishing} + +![推特链接钓鱼](./twitterPhishingScam.png) + +有一种仿冒推特(也被称为 X)链接预览功能(展开)的方法,可能会让用户误以为他们正在访问一个合法网站。 这种技术利用了推特为推文中分享的 URL 生成预览的机制,并显示诸如_来自 ethereum.org_ 的预览(如上所示),但实际上用户却被重定向到了一个恶意网站。 + +务必检查你是否处于正确的域,尤其是在点击链接以后。 + +[点击此处了解更多信息](https://harrydenley.com/faking-twitter-unfurling)。 + +### 赠品诈骗 {#giveaway} + +加密货币中最常见的骗局之一是赠品诈骗。 赠品诈骗有多种形式,但总体思路是:如果你把以太币发送到指定的钱包地址,你将会收到双倍的以太币。 *因此,它也称为“买一送一”诈骗。* + +这些骗局往往规定领取赠品的时间有限,制造出一种虚假的紧迫感。 + +### 社交媒体黑客攻击 {#social-media-hacks} + +最出名的一次发生在 2020 年 7 月,当时很多知名人士和组织的 Twitter 帐户被黑。 黑客使用被盗的帐户发布了一个比特币赠送活动。 尽管这些欺骗性的推文很快就被发现并删除,但黑客们还是成功骗走了 11 个比特币(截至 2021年 9 月,这些比特币价值 50 万美元)。 + +![Twitter 上的诈骗案例](./appleTwitterScam.png) + +### 名人的赠品 {#celebrity-giveaway} + +名人的赠品是赠品诈骗的另一种常见形式。 骗子会录制名人的视频采访或会议演讲,并在 YouTube 上进行直播 - 看起来好像名人正在接受直播视频采访,为加密货币赠送活动背书。 + +除最常使用的 Vitalik Buterin 以外,此类骗局也使用了加密货币圈内许多其他知名人士(例如 Elon Musk 或 Charles Hoskinson)。 在直播中加入一位知名人士会让骗局看起来有一种合法性(这看起来有点牵强,但 Vitalik 参与其中,所以肯定没问题!)。 + +**赠品活动通常是骗局。 如果你把钱转到这些帐户,你将永远失去它们。** + +![YouTube 上的诈骗案例](./youtubeScam.png) + +### 技术支持诈骗 {#support-scams} + +加密货币是一种相对年轻且常被误解的技术。 利用这一点的一种常见的骗局是技术支持诈骗,骗子会冒充受欢迎的加密货币钱包、交易所或区块链的支持人员。 + +很多关于以太坊的讨论都发生在 Discord 上。 骗子通常会通过在公开的 Discord 频道中搜索寻求支持的问题,以此找到诈骗对象,然后冒充支持人员向询问者发送私人信息以提供技术支持。 通过建立信任,冒充支持人员的骗子试图诱使你透露私钥或将资金发送到他们的钱包。 + +![Discord 上的技术支持诈骗案例](./discordScam.png) + +一般来说,员工永远不会通过私人的非官方渠道与你交流。 在处理支持问题时,要牢记一些简单的事情: + +- 永远不要分享你的私钥、助记词或密码 +- 绝不允许任何人远程访问你的电脑 +- 切勿通过官方指定以外的渠道沟通 + + +
+ 请注意:尽管支持类型的骗局通常发生在 Discord 上,但它们也在任何讨论加密货币聊天应用程序(包括电子邮件)上普遍存在。 +
+
+ +### “以太坊 2”代币骗局 {#eth2-token-scam} + +在[合并](/roadmap/merge/)的准备阶段,骗子利用“以太坊 2”这一术语的含糊不清,试图让用户将他们的以太币兑换成“以太坊 2”代币。 实际上合并并没有产生任何“以太坊 2”代币,或者任何其它合法代币。 你在合并之前拥有的以太币与现在是同一个以太币。 **从工作量证明切换到权益证明时,无需对帐户采取任何与以太币有关的操作**。 + +骗子可能会以“技术支持”的面貌出现,告诉你如果存入以太币,将收到“以太坊 2”代币。 实际上,并没有[官方的以太坊技术支持](/community/support/),也没有新代币。 永远不要与任何人分享你的钱包助记词。 + +_注意:有一些衍生的代币/票据可能代表了被质押的以太币(比如:Rocket Pool 的 rETH,Lido 的 stETH,Coinbase 的 ETH2),但这些都不需要“迁移过去”。_ + +### 网络钓鱼诈骗 {#phishing-scams} + +网络钓鱼诈骗是另一种越来越常见的诈骗手段,骗子利用这种手段试图窃取你钱包中的资金。 + +一些网络钓鱼电子邮件要求用户点击链接,将其重新定向到仿冒网站,并要求用户输入助记词、重置密码或发送以太币。 还有一些可能会让你在不知情的情况下安装恶意软件以便感染你的电脑,并让骗子能够访问你的电脑文件。 + +如果你收到一封来历不明的电子邮件,请记住: + +- 永远不要打开你不认识的电子邮件地址中的链接或附件 +- 切勿将你的个人信息或密码泄露给任何人 +- 删除来历不明的电子邮件 + +[更多关于避免网络钓鱼骗局的信息](https://support.mycrypto.com/staying-safe/mycrypto-protips-how-not-to-get-scammed-during-ico) + +### 加密货币交易经纪人诈骗 {#broker-scams} + +在加密货币交易经纪人骗局中,骗子自称是专业的加密货币经纪人,会拿着你的钱帮你进行投资。 骗子收到你的钱后,他们可能会诱骗你,让你拿出更多资金,这样你就不会错过更高的投资收益,或者他们也可能就完全消失了。 + +这些骗子往往利用 YouTube 上的虚假帐户,进行看似自然的有关“经纪人”的对话,以此来寻找他们的目标。 这些对话通常会收到很多点赞,以增加真实性,但这些“赞”都是来自机器人帐户。 + +**不要相信互联网上的陌生人,让他们代你投资。 你将失去你的加密货币。** + +![YouTube 上的交易经纪人诈骗案例](./brokerScam.png) + +### 加密货币矿池骗局 {#mining-pool-scams} + +自 2022 年 9 月起,在以太坊上挖矿已不再可能。 但是,矿池骗局仍然存在。 在矿池骗局中会有人主动联系你,并声称你可以通过加入以太坊矿池获得丰厚回报。 骗子会提出要求,并一直与你保持联系。 本质上讲,骗子会试图让你相信,在加入一个以太坊矿池后,你的加密货币将用于创建以太币,而且你将获得以太币红利。 然后你会发现你的加密货币正在赚取微薄的回报。 这只是为了引诱你投入更多的资金。 最终,你的所有资金将被发送到一个未知地址,骗子要么消失,要么在某些情况下会继续保持联系,就像最近发生的一个案例一样。 + +底线是,提防那些在社交媒体上与你联系并要求你加入矿池的人。 一旦你失去你的加密货币,它就永远回不来了。 + +有些事情要记住: + +- 警惕任何与你联系,告诉你如何使用加密货币赚钱的人 +- 做好关于赌注、流动性池或其他加密货币投资方式的调研 +- 这种计划即使有,也很少是合法的。 如果是的话,它们会成为主流,你会听说过它们。 + +[有人在矿池骗局中损失了 20 万美元](https://www.reddit.com/r/CoinBase/comments/r0qe0e/scam_or_possible_incredible_payout/) + +### 空投骗局 {#airdrop-scams} + +空投骗局通常是先构建一个诈骗项目,并向你的钱包空投一种资产(非同质化代币、其他代币),给你发送一个诈骗网站,让你领取这些空投的资产。 当你试图领取资产时,网站会要求你使用自己的以太坊钱包登录,并“批准”一笔交易。 实际上,这个交易会将你帐户的公钥私钥都发给骗子。 这种骗局的另一种方式是让你确认一笔可以把资金转移到骗子帐户的交易。 + +[更多关于空投骗局的信息](https://www.youtube.com/watch?v=LLL_nQp1lGk) + + + +## 网络安全 101 {#web-security} + +### 使用强密码 {#use-strong-passwords} + +[超过 80% 的帐户被黑客攻击是由于密码薄弱或被盗造成的](https://cloudnine.com/ediscoverydaily/electronic-discovery/80-percent-hacking-related-breaches-related-password-issues-cybersecurity-trends/)。 一串很长的字符、数字和符号组合可帮助保护你的帐户安全。 + +一种常见错误是使用一些常见的、有关联的单词组合。 像这样的密码是不安全的,因为它们很容易被称为字典攻击的简单黑客技术攻击。 + +```md +弱密码示例:CuteFluffyKittens! + +强密码示例:ymv\*azu.EAC8eyp8umf +``` + +另一种常见错误是使用容易通过[社会工程学](https://wikipedia.org/wiki/Social_engineering_(security))猜出或发现的密码。 在密码中加入母亲的婚前姓氏、孩子或宠物的名字或出生日期,会增加密码被黑客攻击的风险。 + +#### 强密码设置方法: {#good-password-practices} + +- 在密码生成器或你所填写的表格允许的范围内,将密码设得越长越好 +- 混合使用大写字母、小写字母、数字和符号 +- 不要在密码中使用个人详细资料,如姓氏 +- 避免使用常见的单词 + +[关于创建强密码的更多内容](https://terranovasecurity.com/how-to-create-a-strong-password-in-7-easy-steps/) + +### 使用独立的密码 {#use-unique-passwords} + +数据泄露中外泄的强密码不再是强密码。 你可以在 [Have I Been Pwned](https://haveibeenpwned.com) 网站上检查你的帐户是否在任何公共数据泄露中被泄露。 如果是,**请立即更改被泄露的密码**。 为每个帐户设置独立的密码,可以在你的一个密码被破解时降低黑客访问你所有帐户的风险。 + +### 使用密码管理器 {#use-password-manager} + + +
+ 使用密码管理器可以创建唯一的强密码并记住它们! 我们强烈推荐使用它,而且它们大部分是免费的。 +
+
+ +记住为每个帐户设置的唯一强密码并不现实。 密码管理器为你的所有密码提供了一个安全、加密的存储空间,你可以通过一个强主密码进行访问。 他们还在注册新服务时生成建议使用的强密码,这样你就不必自行创建密码了。 许多密码管理器也会告诉你是否涉及数据泄露,让你在任何恶意攻击之前更改密码。 + +![密码管理器使用示例](./passwordManager.png) + +#### 尝试一个密码管理器: {#try-password-manager} + +- [Bitwarden](https://bitwarden.com/) +- [KeePass](https://keepass.info/) +- [1Password](https://1password.com/) +- 或查看其他[推荐的密码管理器](https://www.privacytools.io/secure-password-manager) + +### 2FA(双重身份验证) {#two-factor-authentication} + +有时可能会要求你通过提供特有的证明来验证你的身份。 这些证明称为**因素**。 下面是三类重要因素: + +- 你知道的信息(例如密码或安全问题) +- 生理特征(如指纹或虹膜/面部识别) +- 你私有的(安全密钥或你手机上的认证程序) + +使用**双重身份验证 (2FA) **将为你的在线帐户提供一个额外的*安全因素*。 双重身份验证确保仅仅有你的密码还不足以访问你的帐户。 最常见的是,双重验证是一个随机的6位数代码,被称为**基于时间的一次性密码(TOTP)**,你可以通过身份验证程序应用程序(如Google authenticator或Authy)生成。 这是一种“你私有的”,因为生成随机时间密码的种子文件存储在你的设备上。 + + +
+ 注意:使用基于短信的双重身份验证很容易遭受 SIM 卡盗用,并不安全。 为了获得最佳安全性,请使用诸如 Google 身份验证器Authy 之类的服务。 +
+
+ +#### 安全密钥 {#security-keys} + +安全密匙是一种更高级、更安全的双重身份验证。 安全密钥是物理硬件身份验证设备,其工作方式与身份验证程序应用程序相似。 使用安全密钥是最安全的 2FA 使用方式。 这些密钥中有许多采用了 FIDO 通用第二因素 (U2F) 标准。 [了解更多关于 FIDO U2F](https://www.yubico.com/authentication-standards/fido-u2f/) 的信息。 + +观看以下视频,了解更多关于双重身份验证的信息: + + + +### 卸载浏览器扩展程序 {#uninstall-browser-extensions} + +Chrome 扩展程序或 Firefox 插件等浏览器扩展程序可以增强浏览器的功能,但它们也会带来风险。 大多数浏览器扩展程序默认请求获得“读取和更改网站数据”的权限,几乎允许它们对你的数据做任何事情。 Chrome 扩展程序总是自动更新,因此旧版本安全的扩展程序可能会在更新后被加入恶意代码。 大多数浏览器扩展程序都不会试图窃取你的数据,但你应该知道它们可以。 + +#### 通过以下方式保持安全: {#browser-extension-safety} + +- 只安装来自受信任来源的浏览器扩展程序 +- 删除不使用的浏览器扩展程序 +- 在本地安装 Chrome 扩展程序以停止自动更新(高级) + +[更多关于浏览器扩展程序的风险](https://www.kaspersky.co.uk/blog/browser-extensions-security/12750/) + + + +## 延伸阅读 {#further-reading} + +### 网络安全 {#reading-web-security} + +- [多达 300 万台设备被带有恶意软件的 Chrome 和 Edge 插件感染](https://arstechnica.com/information-technology/2020/12/up-to-3-million-devices-infected-by-malware-laced-chrome-and-edge-add-ons/) - _Dan Goodin_ +- [如何创建一个不会忘记的强密码](https://www.avg.com/en/signal/how-to-create-a-strong-password-that-you-wont-forget) - _AVG_ +- [什么是安全密钥?](https://help.coinbase.com/en/coinbase/getting-started/verify-my-account/security-keys-faq) - _Coinbase_ + +### 加密货币安全 {#reading-crypto-security} + +- [保护自己和资金](https://support.mycrypto.com/staying-safe/protecting-yourself-and-your-funds) - _MyCrypto_ +- [常见加密通信软件中的安全问题](https://docs.salusec.io/untitled/web3-penetration-test/risks-in-social-media) - _Salus_ +- [任何人都适用的安全指南](https://medium.com/mycrypto/mycryptos-security-guide-for-dummies-and-smart-people-too-ab178299c82e) - _MyCrypto_ +- [加密货币安全:密码和身份验证](https://www.youtube.com/watch?v=m8jlnZuV1i4) - _Andreas M. Antonopoulos_ + +### 防诈骗指南 {#reading-scam-education} + +- [指南:如何识别诈骗代币](/guides/how-to-id-scam-tokens/) +- [保持安全:常见骗局](https://support.mycrypto.com/staying-safe/common-scams) - _MyCrypto_ +- [避免骗局](https://bitcoin.org/en/scams) - _Bitcoin.org_ +- [关于常见加密货币网络钓鱼电子邮件和消息的 Twitter 线程](https://twitter.com/tayvano_/status/1516225457640787969) - _Taylor Monahan_ + + diff --git a/public/content/translations/zh/whitepaper/index.md b/public/content/translations/zh/whitepaper/index.md index 4e28ab499a7..1ab791f46c7 100644 --- a/public/content/translations/zh/whitepaper/index.md +++ b/public/content/translations/zh/whitepaper/index.md @@ -91,7 +91,7 @@ APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR 本质上,区块中的每笔交易都必须提供一个有效的状态转换,从交易执行前的规范状态转换到某个新状态。 注意,状态并未编码到区块。它纯粹只是校验节点记住的抽象概念,只能被任意区块从创世状态开始,按顺序加上每一个区块的每一笔交易,(安全地)计算出当前状态。 另外,需要注意矿工将交易收录进区块的顺序。如果一个区块中有A、B两笔交易,B花费的是A创建的UTXO,如果A在B之前,这个区块是有效的,否则,这个区块无效。 -“工作量证明”是出现在上表而其他系统没有的验证条件。 具体验证方法为,对每个区块进行两次SHA256哈希处理,得到一个256位的数值,该数值必须小于不断动态调整的目标数值,本文写作时目标数值大约是2187。 工作量证明的目的是使创建区块有算力困难,从而阻止女巫攻击者恶意重新生成区块链。 因为SHA256是完全不可预测的伪随机函数,创建有效区块的唯一方法就是简单地不断试错,不断地增加随机数的数值,查看新的哈希数是否小于目标值。 +“工作量证明”是出现在上表而其他系统没有的验证条件。 具体验证方法为,对每个区块进行两次SHA256哈希处理,得到一个256位的数值,该数值必须小于不断动态调整的目标数值,本文写作时目标数值大约是2187。 工作量证明的目的是使创建区块有算力困难,从而阻止女巫攻击者恶意重新生成区块链。 因为 SHA256 被设计为完全不可预测的伪随机函数,所以创建有效区块的唯一方法就是反复试验,反复增加随机数并查看新哈希值是否匹配。 当前的目标数值是\~2187,网络必须平均尝试 \~269次才能生成有效的区块。一般而言,比特币网络每隔2016个区块重新设定目标数值,从而保证网络中的节点平均每十分钟生成一个区块。 为了对矿工的计算工作进行激励,每一个成功生成区块的矿工有权在区块中包含一笔凭空发给他们自己12.5 BTC的交易。 另外,如果交易的输入额大于输出,差额部分就作为“交易费”付给矿工。 顺便提一下,这也是比特币发行的唯一机制,创世状态中并没有比特币。 diff --git a/public/images/dapps/sparkfi.png b/public/images/dapps/sparkfi.png new file mode 100644 index 00000000000..8a1ddfce213 Binary files /dev/null and b/public/images/dapps/sparkfi.png differ diff --git a/public/images/stablecoins/compound.png b/public/images/stablecoins/compound.png index 00c5194dc12..59a8026da85 100644 Binary files a/public/images/stablecoins/compound.png and b/public/images/stablecoins/compound.png differ diff --git a/public/images/stablecoins/dai-large.png b/public/images/stablecoins/dai-large.png index 859d80105e5..295dabb1695 100644 Binary files a/public/images/stablecoins/dai-large.png and b/public/images/stablecoins/dai-large.png differ diff --git a/public/images/stablecoins/dai.png b/public/images/stablecoins/dai.png index 99d3267eb60..cec2ff16591 100644 Binary files a/public/images/stablecoins/dai.png and b/public/images/stablecoins/dai.png differ diff --git a/public/images/stablecoins/gho-large.png b/public/images/stablecoins/gho-large.png new file mode 100644 index 00000000000..772d59487cb Binary files /dev/null and b/public/images/stablecoins/gho-large.png differ diff --git a/public/images/stablecoins/gho.png b/public/images/stablecoins/gho.png new file mode 100644 index 00000000000..1a29fab9978 Binary files /dev/null and b/public/images/stablecoins/gho.png differ diff --git a/public/images/stablecoins/glo-large.png b/public/images/stablecoins/glo-large.png new file mode 100644 index 00000000000..304bc9753b3 Binary files /dev/null and b/public/images/stablecoins/glo-large.png differ diff --git a/public/images/stablecoins/glo.png b/public/images/stablecoins/glo.png new file mode 100644 index 00000000000..e3603f43107 Binary files /dev/null and b/public/images/stablecoins/glo.png differ diff --git a/public/images/stablecoins/hero.png b/public/images/stablecoins/hero.png index 6e3d882814a..6d3cbff6ae0 100644 Binary files a/public/images/stablecoins/hero.png and b/public/images/stablecoins/hero.png differ diff --git a/public/images/stablecoins/tether-large.png b/public/images/stablecoins/tether-large.png new file mode 100644 index 00000000000..d2ee0adb3d6 Binary files /dev/null and b/public/images/stablecoins/tether-large.png differ diff --git a/public/images/stablecoins/tether.png b/public/images/stablecoins/tether.png index 92966904180..8c648987051 100644 Binary files a/public/images/stablecoins/tether.png and b/public/images/stablecoins/tether.png differ diff --git a/public/images/stablecoins/tools/dune.png b/public/images/stablecoins/tools/dune.png new file mode 100644 index 00000000000..e6188e9352d Binary files /dev/null and b/public/images/stablecoins/tools/dune.png differ diff --git a/public/images/stablecoins/tools/stable-pulse.png b/public/images/stablecoins/tools/stable-pulse.png new file mode 100644 index 00000000000..e0da17aa5a2 Binary files /dev/null and b/public/images/stablecoins/tools/stable-pulse.png differ diff --git a/public/images/stablecoins/tools/stables-info.png b/public/images/stablecoins/tools/stables-info.png new file mode 100644 index 00000000000..fe8fe5584b4 Binary files /dev/null and b/public/images/stablecoins/tools/stables-info.png differ diff --git a/public/images/stablecoins/tools/stables-wars.png b/public/images/stablecoins/tools/stables-wars.png new file mode 100644 index 00000000000..c25a62e1200 Binary files /dev/null and b/public/images/stablecoins/tools/stables-wars.png differ diff --git a/public/images/stablecoins/tools/visa.png b/public/images/stablecoins/tools/visa.png new file mode 100644 index 00000000000..e890d89d2ed Binary files /dev/null and b/public/images/stablecoins/tools/visa.png differ diff --git a/public/images/stablecoins/usdc-large.png b/public/images/stablecoins/usdc-large.png index 8c0caee6f7b..d37b54fddc3 100644 Binary files a/public/images/stablecoins/usdc-large.png and b/public/images/stablecoins/usdc-large.png differ diff --git a/public/images/stablecoins/usdc.png b/public/images/stablecoins/usdc.png index 0db8d540e5f..68f4df4d0e9 100644 Binary files a/public/images/stablecoins/usdc.png and b/public/images/stablecoins/usdc.png differ diff --git a/public/images/stablecoins/usds-large.png b/public/images/stablecoins/usds-large.png new file mode 100644 index 00000000000..d5e4f452845 Binary files /dev/null and b/public/images/stablecoins/usds-large.png differ diff --git a/src/components/StatsBoxGrid/useStatsBoxGrid.tsx b/src/components/ActivityStats/getActivity.tsx similarity index 88% rename from src/components/StatsBoxGrid/useStatsBoxGrid.tsx rename to src/components/ActivityStats/getActivity.tsx index aaaf3ed1727..0fbe1026c20 100644 --- a/src/components/StatsBoxGrid/useStatsBoxGrid.tsx +++ b/src/components/ActivityStats/getActivity.tsx @@ -2,14 +2,13 @@ * TODO: Update metric for new homepage: * - [ ] Replace TVL DeFi with "Total value held on Ethereum" */ -import { useLocale } from "next-intl" + +import { getTranslations } from "next-intl/server" import type { AllMetricData, Lang, StatsBoxMetric } from "@/lib/types" import { getLocaleForNumberFormat } from "@/lib/utils/translations" -import { useTranslation } from "@/hooks/useTranslation" - const formatLargeUSD = (value: number, locale: string): string => { return new Intl.NumberFormat(locale, { style: "currency", @@ -38,17 +37,19 @@ const formatLargeNumber = (value: number, locale: string): string => { }).format(value) } -export const useStatsBoxGrid = ({ - totalEthStaked, - totalValueLocked, - txCount, - txCostsMedianUsd, - ethPrice, -}: AllMetricData): StatsBoxMetric[] => { - const { t } = useTranslation("page-index") - const locale = useLocale() +export const getActivity = async ( + { + totalEthStaked, + totalValueLocked, + txCount, + txCostsMedianUsd, + ethPrice, + }: AllMetricData, + locale: Lang +): Promise => { + const t = await getTranslations("page-index") - const localeForNumberFormat = getLocaleForNumberFormat(locale! as Lang) + const localeForNumberFormat = getLocaleForNumberFormat(locale) const hasEthStakerAndPriceData = "value" in totalEthStaked && "value" in ethPrice diff --git a/src/components/StatsBoxGrid/index.tsx b/src/components/ActivityStats/index.tsx similarity index 71% rename from src/components/StatsBoxGrid/index.tsx rename to src/components/ActivityStats/index.tsx index 7b85bdd7372..405b1f62ed7 100644 --- a/src/components/StatsBoxGrid/index.tsx +++ b/src/components/ActivityStats/index.tsx @@ -1,15 +1,11 @@ -import type { AllMetricData } from "@/lib/types" +import type { StatsBoxMetric } from "@/lib/types" import BigNumber from "../BigNumber" -import { useStatsBoxGrid } from "./useStatsBoxGrid" - -type StatsBoxGridProps = { - metricResults: AllMetricData +type ActivityStatsProps = { + metrics: StatsBoxMetric[] } -const StatsBoxGrid = ({ metricResults }: StatsBoxGridProps) => { - const metrics = useStatsBoxGrid(metricResults) - +const ActivityStats = async ({ metrics }: ActivityStatsProps) => { const gridBorderClasses = [ "border-b border-body-light xl:border-e xl:pe-8", "border-b border-body-light xl:ps-8", @@ -34,4 +30,4 @@ const StatsBoxGrid = ({ metricResults }: StatsBoxGridProps) => { ) } -export default StatsBoxGrid +export default ActivityStats diff --git a/src/components/BannerGrid/BannerGrid.stories.tsx b/src/components/BannerGrid/BannerGrid.stories.tsx new file mode 100644 index 00000000000..7b19ebb6637 --- /dev/null +++ b/src/components/BannerGrid/BannerGrid.stories.tsx @@ -0,0 +1,181 @@ +import { useTranslations } from "next-intl" +import { MdInfoOutline } from "react-icons/md" +import { Meta, StoryObj } from "@storybook/react" + +import { ChildOnlyProp } from "@/lib/types" + +import { Image } from "@/components/Image" +import Tooltip from "@/components/Tooltip" +import InlineLink from "@/components/ui/Link" + +import { langViewportModes } from "../../../.storybook/modes" +import { ContentContainer } from "../MdComponents" + +import { + Banner as BannerComponent, + BannerBody as BannerBodyComponent, + BannerGrid as BannerGridComponent, + BannerGridCell as BannerGridCellComponent, + BannerImage as BannerImageComponent, +} from "." + +import stats from "@/public/images/upgrades/newrings.png" + +const meta = { + title: "Molecules / Display Content / Banner Grid", + component: BannerComponent, + parameters: { + layout: "fullscreen", + chromatic: { + modes: { + ...langViewportModes, + }, + }, + }, + decorators: [ + (Story) => ( +
+ + + +
+ ), + ], +} satisfies Meta + +export default meta + +type Story = StoryObj + +const PAGE_WHAT_IS_ETH = "page-what-is-ethereum" + +const tooltipContent = ({ apiUrl, apiProvider, ariaLabel }) => { + const t = useTranslations("common") + + return ( +
+ {t("data-provided-by")}{" "} + + {apiProvider} + +
+ ) +} + +const StatPrimary = (props: ChildOnlyProp) => ( +
+) + +const StatDescription = (props: ChildOnlyProp) => ( +
+) + +export const Banner: Story = { + render: () => { + return ( + +
Banner
+
+ ) + }, +} + +export const BannerBody: Story = { + render: () => { + return ( + + +
+ Banner Body +
+
+
+ ) + }, +} + +export const BannerImage: Story = { + render: () => { + return ( + + + + + + ) + }, +} + +export const BannerGridCell: Story = { + render: () => { + const t = useTranslations(PAGE_WHAT_IS_ETH) + + return ( + + + + 4k+ + + {t("page-what-is-ethereum-ethereum-in-numbers-stat-1-desc")} + +   + + + + + + + + + + + ) + }, +} + +export const BannerGrid: Story = { + render: () => { + const t = useTranslations(PAGE_WHAT_IS_ETH) + + return ( + + + + {Array.from({ length: 6 }, (_, i) => i + 1).map((item) => ( + + {item}k+ + + {t("page-what-is-ethereum-ethereum-in-numbers-stat-1-desc")} + +   + + + + + + + + + ))} + + + + + + + ) + }, +} diff --git a/src/components/Callout.tsx b/src/components/Callout.tsx index 503aae8bfae..43bd517ebb1 100644 --- a/src/components/Callout.tsx +++ b/src/components/Callout.tsx @@ -1,93 +1,23 @@ -import type { TranslationKey } from "@/lib/types" +"use client" -import Emoji from "@/components/Emoji" -import { Image, type ImageProps } from "@/components/Image" +import type { TranslationKey } from "@/lib/types" -import { cn } from "@/lib/utils/cn" +import CalloutSSR, { CalloutBaseProps } from "./CalloutSSR" import { useTranslation } from "@/hooks/useTranslation" -export type CalloutProps = { - children?: React.ReactNode - image?: ImageProps["src"] - emoji?: string - alt?: string +export type CalloutProps = CalloutBaseProps & { titleKey?: TranslationKey descriptionKey?: TranslationKey - title?: string - description?: string - className?: string - headerClassName?: string } -const Callout = ({ - image, - emoji, - alt, - titleKey, - descriptionKey, - title, - description, - children, - className, - headerClassName, -}: CalloutProps) => { +const Callout = ({ titleKey, descriptionKey, ...props }: CalloutProps) => { const { t } = useTranslation("common") - return ( - - ) + const title = titleKey ? t(titleKey) : undefined + const description = descriptionKey ? t(descriptionKey) : undefined + + return } export default Callout diff --git a/src/components/CalloutBannerSSR.tsx b/src/components/CalloutBannerSSR.tsx new file mode 100644 index 00000000000..dc07d064ab0 --- /dev/null +++ b/src/components/CalloutBannerSSR.tsx @@ -0,0 +1,48 @@ +import { Image, type ImageProps } from "@/components/Image" + +import { cn } from "@/lib/utils/cn" + +export type CalloutBannerProps = React.HTMLAttributes & { + image: ImageProps["src"] + imageWidth?: number + title: string + description: string + alt: string +} + +const CalloutBannerSSR = ({ + image, + imageWidth, + title, + description, + alt, + children, + className, + ...props +}: CalloutBannerProps) => ( + +) + +export default CalloutBannerSSR diff --git a/src/components/CalloutSSR.tsx b/src/components/CalloutSSR.tsx new file mode 100644 index 00000000000..7d31d3fe529 --- /dev/null +++ b/src/components/CalloutSSR.tsx @@ -0,0 +1,71 @@ +import Emoji from "@/components/Emoji" +import { Image, type ImageProps } from "@/components/Image" + +import { cn } from "@/lib/utils/cn" + +export type CalloutBaseProps = { + children?: React.ReactNode + image?: ImageProps["src"] + emoji?: string + alt?: string + className?: string + headerClassName?: string +} + +type CalloutSSRProps = CalloutBaseProps & { + title?: string + description?: string +} + +const CalloutSSR = ({ + image, + emoji, + alt, + title, + description, + children, + className, + headerClassName, +}: CalloutSSRProps) => { + return ( + + ) +} + +export default CalloutSSR diff --git a/src/components/CopyToClipboard.tsx b/src/components/CopyToClipboard.tsx index 93c8e9a6053..9bfe0d5ec0c 100644 --- a/src/components/CopyToClipboard.tsx +++ b/src/components/CopyToClipboard.tsx @@ -1,29 +1,49 @@ "use client" +import { BsCopy } from "react-icons/bs" +import { FaRegCheckCircle } from "react-icons/fa" + import { cn } from "@/lib/utils/cn" +import { Button, type ButtonProps } from "./ui/buttons/Button" + import { useClipboard } from "@/hooks/useClipboard" export type CopyToClipboardProps = { text: string inline?: boolean children: (isCopied: boolean) => React.ReactNode + className?: string } const CopyToClipboard = ({ children, text, inline = false, + className, }: CopyToClipboardProps) => { const { onCopy, hasCopied } = useClipboard({ timeout: 1500 }) return ( -
onCopy(text)} > {children(hasCopied)} -
+ + ) +} + +type CopyButtonProps = ButtonProps & { + message: string +} + +export const CopyButton = ({ message, ...props }: CopyButtonProps) => { + const { onCopy, hasCopied } = useClipboard({ timeout: 1500 }) + return ( + ) } diff --git a/src/components/DataProductCard.tsx b/src/components/DataProductCard.tsx index b9ccaad34fd..a40ee746e88 100644 --- a/src/components/DataProductCard.tsx +++ b/src/components/DataProductCard.tsx @@ -4,6 +4,8 @@ import { StaticImageData } from "next/image" import { Image } from "@/components/Image" import { Flex } from "@/components/ui/flex" +import { cn } from "@/lib/utils/cn" + import InlineLink from "./ui/Link" import { LinkBox, LinkOverlay } from "./ui/link-box" @@ -15,32 +17,37 @@ export interface DataRow { export type DataProductCardProps = { url: string - background: string image: StaticImageData imgWidth: number alt?: string name: string description?: string data?: Array + className?: string } const DataProductCard = ({ url, - background, image, imgWidth, alt, name, description, data, + className, }: DataProductCardProps) => { return ( - + {alt = ({
{imageUrl ? ( - // eslint-disable-next-line @next/next/no-img-element - {title} { - e.currentTarget.onerror = null - e.currentTarget.src = EventFallback.src - }} className="max-h-[224px] w-full object-cover xl:h-[124px]" /> ) : ( diff --git a/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx b/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx index f8cc36ba2f3..b6255ebcca4 100644 --- a/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx +++ b/src/components/FindWalletProductTable/hooks/useWalletFilters.tsx @@ -972,7 +972,7 @@ export const useWalletFilters = (): FilterOption[] => { filterLabel: "New to crypto", description: "", inputState: false, - input: (_) => { + input: () => { return <> }, options: [], diff --git a/src/components/Hero/HomeHero/index.tsx b/src/components/Hero/HomeHero/index.tsx index b80e6e6649a..d84354946f1 100644 --- a/src/components/Hero/HomeHero/index.tsx +++ b/src/components/Hero/HomeHero/index.tsx @@ -1,7 +1,7 @@ import type { ClassNameProp, CommonHeroProps } from "@/lib/types" +import LanguageMorpher from "@/components/Homepage/LanguageMorpher" import { Image } from "@/components/Image" -import Morpher from "@/components/Morpher" import useTranslation from "@/hooks/useTranslation" @@ -23,7 +23,7 @@ const HomeHero = ({ heroImg, className }: HomeHeroProps) => { />
- +

{t("page-index:page-index-title")}

diff --git a/src/components/Homepage/BentoCardSwiper.tsx b/src/components/Homepage/BentoCardSwiper.tsx new file mode 100644 index 00000000000..521cfc3ad5b --- /dev/null +++ b/src/components/Homepage/BentoCardSwiper.tsx @@ -0,0 +1,58 @@ +"use client" + +import { SwiperSlide } from "swiper/react" + +import { cn } from "@/lib/utils/cn" +import { trackCustomEvent } from "@/lib/utils/matomo" + +import { Swiper, SwiperContainer, SwiperNavigation } from "../ui/swiper" + +import BentoCard from "./BentoCard" +import { BentoItem } from "./utils" + +type BentoCardSwiperProps = { + bentoItems: BentoItem[] + eventCategory: string +} + +const BentoCardSwiper = ({ + bentoItems, + eventCategory, +}: BentoCardSwiperProps) => ( + + { + trackCustomEvent({ + eventCategory, + eventAction: "mobile use cases", + eventName: `swipe to card ${activeIndex + 1}`, + }) + }} + > + {bentoItems.map(({ className, ...item }) => ( + + + + ))} + + + +) + +BentoCardSwiper.displayName = "BentoCardSwiper" + +export default BentoCardSwiper diff --git a/src/components/Homepage/CodeExamples.tsx b/src/components/Homepage/CodeExamples.tsx new file mode 100644 index 00000000000..8e606500b43 --- /dev/null +++ b/src/components/Homepage/CodeExamples.tsx @@ -0,0 +1,132 @@ +"use client" + +import { Suspense, useState } from "react" +import { useLocale } from "next-intl" +import { IoMdCopy } from "react-icons/io" +import { MdCheck } from "react-icons/md" + +import type { CodeExample } from "@/lib/interfaces" + +import AngleBrackets from "@/components/icons/angle-brackets.svg" +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@/components/ui/accordion" + +import { cn } from "@/lib/utils/cn" +import { trackCustomEvent } from "@/lib/utils/matomo" + +import Codeblock from "../Codeblock" +import CodeModal from "../CodeModal" +import CopyToClipboard from "../CopyToClipboard" +import { SkeletonLines } from "../ui/skeleton" +import WindowBox from "../WindowBox" + +type CodeExamplesProps = { + codeExamples: CodeExample[] + title: string + eventCategory: string +} + +const CodeExamples = ({ title, codeExamples }: CodeExamplesProps) => { + const locale = useLocale() + + const [isModalOpen, setModalOpen] = useState(false) + const [activeCode, setActiveCode] = useState(0) + + const eventCategory = `Homepage - ${locale}` + + const toggleCodeExample = (id: number): void => { + setActiveCode(id) + setModalOpen(true) + } + + return ( +

+ + {/* Desktop */} + {codeExamples.map(({ title, description, eventName }, idx) => ( + + ))} + {/* Mobile */} + + {codeExamples.map(({ title, description, code, codeLanguage }) => ( + + +
+

+ {title} +

+

+ {description} +

+
+
+ + }> +
+ + {code} + + + {(hasCopied) => (hasCopied ? : )} + +
+
+
+
+ ))} +
+
+ {isModalOpen && ( + + }> + + {codeExamples[activeCode].code} + + + + )} +
+ ) +} + +CodeExamples.displayName = "CodeExamples" + +export default CodeExamples diff --git a/src/components/Homepage/LanguageMorpher.tsx b/src/components/Homepage/LanguageMorpher.tsx new file mode 100644 index 00000000000..12e91344664 --- /dev/null +++ b/src/components/Homepage/LanguageMorpher.tsx @@ -0,0 +1,74 @@ +"use client" + +import Morpher from "@/components/Morpher" +import { Button } from "@/components/ui/buttons/Button" + +import { screens } from "@/lib/utils/screen" + +import { + DESKTOP_LANGUAGE_BUTTON_NAME, + HAMBURGER_BUTTON_ID, + MOBILE_LANGUAGE_BUTTON_NAME, +} from "@/lib/constants" + +import { useMediaQuery } from "@/hooks/useMediaQuery" + +const LanguageMorpher = () => { + const handleMobileClick = () => { + ;(document.getElementById(HAMBURGER_BUTTON_ID) as HTMLButtonElement).click() + setTimeout( + () => + ( + document.querySelector( + `button[name="${MOBILE_LANGUAGE_BUTTON_NAME}"` + ) as HTMLButtonElement + ).click(), + 1 + ) + } + const handleDesktopClick = () => { + ;( + document.querySelector( + `button[name="${DESKTOP_LANGUAGE_BUTTON_NAME}"` + ) as HTMLButtonElement + ).click() + } + + const [isLarge] = useMediaQuery([`(min-width: ${screens.md})`]) + + return ( + + ) +} + +LanguageMorpher.displayName = "LanguageMorpher" + +export default LanguageMorpher diff --git a/src/components/Homepage/RecentPostsSwiper.tsx b/src/components/Homepage/RecentPostsSwiper.tsx new file mode 100644 index 00000000000..9c578d54a69 --- /dev/null +++ b/src/components/Homepage/RecentPostsSwiper.tsx @@ -0,0 +1,79 @@ +"use client" + +import type { RSSItem } from "@/lib/types" + +import { isValidDate } from "@/lib/utils/date" +import { breakpointAsNumber } from "@/lib/utils/screen" + +import CardImage from "../Image/CardImage" +import { + Card, + CardBanner, + CardContent, + CardHighlight, + CardSubTitle, + CardTitle, +} from "../ui/card" +import { + Swiper, + SwiperContainer, + SwiperNavigation, + SwiperSlide, +} from "../ui/swiper" + +type RecentPostsSwiperProps = { + rssItems: RSSItem[] + eventCategory: string + className?: string +} + +const RecentPostsSwiper = ({ + rssItems, + eventCategory, + className, +}: RecentPostsSwiperProps) => ( + + + {rssItems.map(({ pubDate, title, source, link, imgSrc }) => ( + + + + + + + {title} + {isValidDate(pubDate) && {pubDate}} + {source} + + + + ))} + + + +) + +RecentPostsSwiper.displayName = "RecentPostsSwiper" + +export default RecentPostsSwiper diff --git a/src/components/Homepage/ValuesMarquee/Fallback.tsx b/src/components/Homepage/ValuesMarquee/Fallback.tsx new file mode 100644 index 00000000000..8d1543d7341 --- /dev/null +++ b/src/components/Homepage/ValuesMarquee/Fallback.tsx @@ -0,0 +1,35 @@ +import { Fragment } from "react" + +import { Skeleton } from "@/components/ui/skeleton" +import { Spinner } from "@/components/ui/spinner" + +const ValuesMarqueeFallback = () => ( +
+ +
+ {Array.from({ length: 10 }).map((_, i) => ( + + + + + ))} +
+
+ +
+ {Array.from({ length: 10 }).map((_, i) => ( + + + + + ))} +
+ + +
+
+) + +ValuesMarqueeFallback.displayName = "ValuesMarqueeFallback" + +export default ValuesMarqueeFallback diff --git a/src/components/Homepage/ValuesMarquee.tsx b/src/components/Homepage/ValuesMarquee/index.tsx similarity index 59% rename from src/components/Homepage/ValuesMarquee.tsx rename to src/components/Homepage/ValuesMarquee/index.tsx index abcd3ae66ec..5918aef5a6c 100644 --- a/src/components/Homepage/ValuesMarquee.tsx +++ b/src/components/Homepage/ValuesMarquee/index.tsx @@ -1,7 +1,11 @@ +"use client" + import { forwardRef, useEffect, useRef, useState } from "react" import { FaCheck } from "react-icons/fa" import { MdClose } from "react-icons/md" +import type { ValuesPairing } from "@/lib/types" + import EthGlyphSolid from "@/components/icons/eth-glyph-solid.svg" import Tooltip from "@/components/Tooltip" @@ -9,20 +13,13 @@ import { cn } from "@/lib/utils/cn" import { isMobile } from "@/lib/utils/isMobile" import { trackCustomEvent } from "@/lib/utils/matomo" -import { type Pairing, useValuesMarquee } from "../Homepage/useValuesMarquee" -import { Stack } from "../ui/flex" -import { - Section, - SectionContent, - SectionHeader, - SectionTag, -} from "../ui/section" +import { Stack } from "../../ui/flex" import { usePrefersReducedMotion } from "@/hooks/usePrefersReducedMotion" import { useRtlFlip } from "@/hooks/useRtlFlip" type ItemProps = React.HTMLAttributes & { - pairing: Pairing + pairing: ValuesPairing separatorClass: string container?: HTMLElement | null label: string @@ -147,8 +144,20 @@ const Row = forwardRef( ) Row.displayName = "MarqueeRow" -const ValuesMarquee = () => { - const { t, pairings, eventCategory } = useValuesMarquee() +type ValuesMarqueeProps = { + pairings: ValuesPairing[] + eventCategory: string + categoryLabels: { + ethereum: string + legacy: string + } +} + +const ValuesMarquee = ({ + pairings, + eventCategory, + categoryLabels, +}: ValuesMarqueeProps) => { const containerFirstRef = useRef(null) const containerSecondRef = useRef(null) @@ -171,85 +180,70 @@ const ValuesMarquee = () => { const { direction, isRtl, twFlipForRtl } = useRtlFlip() return ( -
- - {t("page-index:page-index-values-tag")} - - {t("page-index:page-index-values-header")} - -

- {t("page-index:page-index-values-description")} +

+ + {pairings.map((pairing) => ( + + + {pairing.ethereum.label} + + ))} + + + {pairings.map((pairing) => ( + + {pairing.legacy.label} + + ))} + +
+

+ {categoryLabels.legacy}

- -
- - {pairings.map((pairing) => ( - - - {pairing.ethereum.label} - - ))} - - - - {pairings.map((pairing) => ( - - {pairing.legacy.label} - - ))} - -
-

- {t("page-index-values-legacy")} -

- -
- -

- {t("common:ethereum")} -

-
+ /> +

+ {categoryLabels.ethereum} +

-
+
) } ValuesMarquee.displayName = "ValuesMarquee" diff --git a/src/components/Homepage/useHome.ts b/src/components/Homepage/useHome.ts deleted file mode 100644 index 8786d1bbc83..00000000000 --- a/src/components/Homepage/useHome.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { useState } from "react" -import { useLocale } from "next-intl" -import { FaDiscord, FaGithub, FaXTwitter } from "react-icons/fa6" - -import type { EventCardProps } from "@/lib/types" -import type { CodeExample } from "@/lib/interfaces" - -import { useBentoBox } from "@/components/Homepage/useBentoBox" -import BlockHeap from "@/components/icons/block-heap.svg" -import BuildAppsIcon from "@/components/icons/build-apps.svg" -import EthGlyphIcon from "@/components/icons/eth-glyph.svg" -import EthTokenIcon from "@/components/icons/eth-token.svg" -import PickWalletIcon from "@/components/icons/eth-wallet.svg" -import TryAppsIcon from "@/components/icons/phone-homescreen.svg" -import RoadmapSign from "@/components/icons/roadmap-sign.svg" -import Whitepaper from "@/components/icons/whitepaper.svg" - -import { cn } from "@/lib/utils/cn" -import { isValidDate } from "@/lib/utils/date" - -import events from "@/data/community-events.json" -import CreateWalletContent from "@/data/CreateWallet" - -import { GITHUB_REPO_URL } from "@/lib/constants" - -import SimpleDomainRegistryContent from "!!raw-loader!@/data/SimpleDomainRegistry.sol" -import SimpleTokenContent from "!!raw-loader!@/data/SimpleToken.sol" -import SimpleWalletContent from "!!raw-loader!@/data/SimpleWallet.sol" -import { useRtlFlip } from "@/hooks/useRtlFlip" -import useTranslation from "@/hooks/useTranslation" - -export const useHome = () => { - const { t } = useTranslation(["common", "page-index"]) - const locale = useLocale() - - const [isModalOpen, setModalOpen] = useState(false) - const [activeCode, setActiveCode] = useState(0) - - const bentoItems = useBentoBox() - - const { direction, isRtl } = useRtlFlip() - - const eventCategory = `Homepage - ${locale}` - - const toggleCodeExample = (id: number): void => { - setActiveCode(id) - setModalOpen(true) - } - - const codeExamples: CodeExample[] = [ - { - title: t("page-index:page-index-developers-code-example-title-0"), - description: t( - "page-index:page-index-developers-code-example-description-0" - ), - codeLanguage: "language-solidity", - code: SimpleWalletContent, - eventName: "bank", - }, - { - title: t("page-index:page-index-developers-code-example-title-1"), - description: t( - "page-index:page-index-developers-code-example-description-1" - ), - codeLanguage: "language-solidity", - code: SimpleTokenContent, - eventName: "token", - }, - { - title: t("page-index:page-index-developers-code-example-title-2"), - description: t( - "page-index:page-index-developers-code-example-description-2" - ), - codeLanguage: "language-javascript", - code: CreateWalletContent, - eventName: "wallet", - }, - { - title: t("page-index:page-index-developers-code-example-title-3"), - description: t( - "page-index:page-index-developers-code-example-description-3" - ), - codeLanguage: "language-solidity", - code: SimpleDomainRegistryContent, - eventName: "dns", - }, - ] - - const subHeroCTAs = [ - { - label: t("page-index:page-index-cta-wallet-label"), - description: t("page-index:page-index-cta-wallet-description"), - href: "/wallets/find-wallet/", - Svg: PickWalletIcon, - className: "text-primary hover:text-primary-hover", - eventName: "find wallet", - }, - { - label: t("page-index:page-index-cta-get-eth-label"), - description: t("page-index:page-index-cta-get-eth-description"), - href: "/get-eth/", - Svg: EthTokenIcon, - className: "text-accent-a hover:text-accent-a-hover", - eventName: "get eth", - }, - { - label: t("page-index:page-index-cta-dapps-label"), - description: t("page-index:page-index-cta-dapps-description"), - href: "/dapps/", - Svg: TryAppsIcon, - className: cn( - "text-accent-c hover:text-accent-c-hover", - isRtl && "[&_svg]:-scale-x-100" - ), - eventName: "dapps", - }, - { - label: t("page-index:page-index-cta-build-apps-label"), - description: t("page-index:page-index-cta-build-apps-description"), - href: "/developers/", - Svg: BuildAppsIcon, - className: "text-accent-b hover:text-accent-b-hover", - eventName: "build apps", - }, - ] - - const popularTopics = [ - { - label: t("page-index:page-index-popular-topics-ethereum"), - Svg: EthTokenIcon, - href: "/what-is-ethereum/", - eventName: "ethereum", - }, - { - label: t("page-index:page-index-popular-topics-wallets"), - Svg: PickWalletIcon, - href: "/wallets/", - eventName: "wallets", - }, - { - label: t("page-index:page-index-popular-topics-start"), - Svg: BlockHeap, - href: "/guides/", - eventName: "start guides", - }, - { - label: t("page-index:page-index-popular-topics-whitepaper"), - Svg: Whitepaper, - className: cn(isRtl && "[&_div_div:has(svg)]:-scale-x-100"), - href: "/whitepaper/", - eventName: "whitepaper", - }, - { - label: t("page-index:page-index-popular-topics-roadmap"), - Svg: RoadmapSign, - className: cn(isRtl && "[&_div_div:has(svg)]:-scale-x-100 "), - href: "/roadmap/", - eventName: "roadmap", - }, - ] - - const upcomingEvents = events - .filter((event) => { - const isValid = isValidDate(event.endDate) - const beginningOfEndDate = new Date(event.endDate).getTime() - const endOfEndDate = beginningOfEndDate + 24 * 60 * 60 * 1000 - const isUpcoming = endOfEndDate >= new Date().getTime() - return isValid && isUpcoming - }) - .sort( - (a, b) => new Date(a.endDate).getTime() - new Date(b.endDate).getTime() - ) - .slice(0, 3) as EventCardProps[] // Show 3 events ending soonest - - const joinActions = [ - { - Svg: EthGlyphIcon, - label: t("page-index:page-index-join-action-contribute-label"), - href: "/contributing/", - className: "text-accent-c hover:text-accent-c-hover", - description: t( - "page-index:page-index-join-action-contribute-description" - ), - eventName: "contribute", - }, - { - Svg: FaGithub, - label: "GitHub", - href: GITHUB_REPO_URL, - className: "text-accent-a hover:text-accent-a-hover", - description: t("page-index:page-index-join-action-github-description"), - eventName: "GitHub", - }, - { - Svg: FaDiscord, - label: "Discord", - href: "/discord/", - className: "text-primary hover:text-primary-hover", - description: t("page-index:page-index-join-action-discord-description"), - eventName: "Discord", - }, - { - Svg: FaXTwitter, - label: "X", - href: "https://x.com/EthDotOrg", - className: "text-accent-b hover:text-accent-b-hover", - description: t("page-index:page-index-join-action-twitter-description"), - eventName: "Twitter", - }, - ] - - return { - t, - locale, - dir: direction, - isModalOpen, - setModalOpen, - activeCode, - toggleCodeExample, - codeExamples, - subHeroCTAs, - popularTopics, - upcomingEvents, - joinActions, - bentoItems, - eventCategory, - } -} diff --git a/src/components/Homepage/useValuesMarquee.ts b/src/components/Homepage/useValuesMarquee.ts deleted file mode 100644 index fd09e13b7a7..00000000000 --- a/src/components/Homepage/useValuesMarquee.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { useLocale } from "next-intl" - -import useTranslation from "@/hooks/useTranslation" - -type Item = { - label: string - content: string[] -} - -export type Pairing = { - legacy: Item - ethereum: Item -} - -export const useValuesMarquee = () => { - const { t } = useTranslation("page-index") - const locale = useLocale() - const pairings: Pairing[] = [ - { - legacy: { - label: t("page-index-values-ownership-legacy-label"), - content: [ - t("page-index-values-ownership-legacy-content-0"), - t("page-index-values-ownership-legacy-content-1"), - ], - }, - ethereum: { - label: t("page-index-values-ownership-ethereum-label"), - content: [t("page-index-values-ownership-ethereum-content-0")], - }, - }, - { - legacy: { - label: t("page-index-values-fairness-legacy-label"), - content: [t("page-index-values-fairness-legacy-content-0")], - }, - ethereum: { - label: t("page-index-values-fairness-ethereum-label"), - content: [t("page-index-values-fairness-ethereum-content-0")], - }, - }, - { - legacy: { - label: t("page-index-values-privacy-legacy-label"), - content: [ - t("page-index-values-privacy-legacy-content-0"), - t("page-index-values-privacy-legacy-content-1"), - ], - }, - ethereum: { - label: t("page-index-values-privacy-ethereum-label"), - content: [t("page-index-values-privacy-ethereum-content-0")], - }, - }, - { - legacy: { - label: t("page-index-values-integration-legacy-label"), - content: [t("page-index-values-integration-legacy-content-0")], - }, - ethereum: { - label: t("page-index-values-integration-ethereum-label"), - content: [t("page-index-values-integration-ethereum-content-0")], - }, - }, - { - legacy: { - label: t("page-index-values-decentralization-legacy-label"), - content: [t("page-index-values-decentralization-legacy-content-0")], - }, - ethereum: { - label: t("page-index-values-decentralization-ethereum-label"), - content: [t("page-index-values-decentralization-ethereum-content-0")], - }, - }, - { - legacy: { - label: t("page-index-values-censorship-legacy-label"), - content: [t("page-index-values-censorship-legacy-content-0")], - }, - ethereum: { - label: t("page-index-values-censorship-ethereum-label"), - content: [ - t("page-index-values-censorship-ethereum-content-0"), - t("page-index-values-censorship-ethereum-content-1"), - ], - }, - }, - { - legacy: { - label: t("page-index-values-open-legacy-label"), - content: [t("page-index-values-open-legacy-content-0")], - }, - ethereum: { - label: t("page-index-values-open-ethereum-label"), - content: [t("page-index-values-open-ethereum-content-0")], - }, - }, - ] - - const eventCategory = `Homepage - ${locale}` - - return { t, pairings, eventCategory } -} diff --git a/src/components/Homepage/useBentoBox.ts b/src/components/Homepage/utils.ts similarity index 87% rename from src/components/Homepage/useBentoBox.ts rename to src/components/Homepage/utils.ts index 6be21b99857..ae7b819e64d 100644 --- a/src/components/Homepage/useBentoBox.ts +++ b/src/components/Homepage/utils.ts @@ -1,6 +1,10 @@ +import type { StaticImageData } from "next/image" +import { getTranslations } from "next-intl/server" + +import type { Lang } from "@/lib/types" + import { cn } from "@/lib/utils/cn" -import useTranslation from "@/hooks/useTranslation" import ImpactImage from "@/public/images/impact_transparent.png" import ManAndDogImage from "@/public/images/man-and-dog-playing.png" import ManBabyWomanImage from "@/public/images/man-baby-woman.png" @@ -18,6 +22,11 @@ type CopyDetails = { href: string eventName: Category } +export type BentoItem = CopyDetails & { + imgSrc: StaticImageData + imgWidth?: number + className: string +} const gradientStops = "from-20% to-60%" @@ -92,13 +101,13 @@ const getPosition = (position: number): string => stylesByPosition.xl[position] ) -export const useBentoBox = () => { - const { t } = useTranslation("page-index") +export const getBentoBoxItems = async (locale: Lang): Promise => { + const t = await getTranslations({ locale, namespace: "page-index" }) const getCopy = (category: Category, href: string): CopyDetails => ({ - title: t(`page-index:page-index-bento-${category}-title`), - children: t(`page-index:page-index-bento-${category}-content`), - action: t(`page-index:page-index-bento-${category}-action`), + title: t(`page-index-bento-${category}-title`), + children: t(`page-index-bento-${category}-content`), + action: t(`page-index-bento-${category}-action`), href, eventName: category, }) diff --git a/src/components/Image/CardImage.tsx b/src/components/Image/CardImage.tsx new file mode 100644 index 00000000000..38dddcfeecd --- /dev/null +++ b/src/components/Image/CardImage.tsx @@ -0,0 +1,28 @@ +"use client" + +import { ComponentProps } from "react" + +import EventFallback from "@/public/images/events/event-placeholder.png" + +type CardImageProps = ComponentProps<"img"> + +const CardImage = ({ src, className, ...props }: CardImageProps) => ( + // eslint-disable-next-line @next/next/no-img-element + { + e.currentTarget.onerror = null + e.currentTarget.src = EventFallback.src + }} + referrerPolicy="no-referrer" + crossOrigin="anonymous" + className={className} + {...props} + /> +) + +CardImage.displayName = "CardImage" + +export default CardImage diff --git a/src/components/MarkdownImage.tsx b/src/components/Image/MarkdownImage.tsx similarity index 96% rename from src/components/MarkdownImage.tsx rename to src/components/Image/MarkdownImage.tsx index 6d44ae121cb..65876a4beb5 100644 --- a/src/components/MarkdownImage.tsx +++ b/src/components/Image/MarkdownImage.tsx @@ -42,7 +42,7 @@ const MarkdownImage = ({ // display the wrapper as a `span` to avoid dom nesting warnings as mdx // sometimes wraps images in `p` tags - + {alt} { - const [state, setState] = useState({ - text: "Ethereum", - words: [ - "以太坊", - "イーサリアム", - "Etérium", - "이더리움", - "اتریوم", - "Αιθέριο", - "Eterijum", - "إثيريوم", - "อีเธอเรียม", - "Эфириум", - "इथीरियम", - "ಇಥೀರಿಯಮ್", - "אתריום", - "Ξ", - "ইথেরিয়াম", - "எதீரியம்", - "ఇథిరియూమ్", - ], - }) + +type MorpherProps = { + words: string[] + charSet?: string +} + +const Morpher = ({ + words, + charSet = "abcdefghijklmnopqrstuvwxyz", +}: MorpherProps) => { + const [state, setState] = useState({ text: words[0], words }) // loops over chars to morph a text to another const morpher = (start: string, end: string): void => { // array of chars to randomly morph the text between start and end - const chars = "abcdxyz01234567{}%$?!".split("") + const chars = charSet.split("") // duration of the global morph const duration = 3 // speed of the morph for each letter @@ -127,41 +105,7 @@ const Morpher = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []) - const isLarge = useMediaQuery("(min-width: 48rem)") // TW md breakpoint, 768px - - const handleMobileClick = () => { - if (!document) return - ;(document.getElementById(HAMBURGER_BUTTON_ID) as HTMLButtonElement).click() - setTimeout( - () => - ( - document.querySelector( - `button[name="${MOBILE_LANGUAGE_BUTTON_NAME}"` - ) as HTMLButtonElement - ).click(), - 1 - ) - } - const handleDesktopClick = () => { - if (!document) return - ;( - document.querySelector( - `button[name="${DESKTOP_LANGUAGE_BUTTON_NAME}"` - ) as HTMLButtonElement - ).click() - } - - return ( - <> - - - ) + return state.text } export default Morpher diff --git a/src/components/NotFoundPage/index.tsx b/src/components/NotFoundPage/index.tsx index a1b617035b1..baf3683de4e 100644 --- a/src/components/NotFoundPage/index.tsx +++ b/src/components/NotFoundPage/index.tsx @@ -1,23 +1,21 @@ +"use client" + import MainArticle from "../MainArticle" -import Translation from "../Translation" import InlineLink from "../ui/Link" +import useTranslation from "@/hooks/useTranslation" + function NotFoundPage() { + const { t } = useTranslation("common") + return ( -
- -

- -

-

- {" "} - - - - . -

-
-
+ +

{t("we-couldnt-find-that-page")}

+

+ {t("try-using-search")}{" "} + {t("return-home")}. +

+
) } diff --git a/src/components/ProductList.tsx b/src/components/ProductList.tsx index 949cf73ee4b..5c297e09774 100644 --- a/src/components/ProductList.tsx +++ b/src/components/ProductList.tsx @@ -16,6 +16,7 @@ type Content = { image?: ImageProps["src"] alt: string id?: string + className?: string } export type ProductListProps = { @@ -39,13 +40,26 @@ const ProductList = ({ actionLabel, content, category }: ProductListProps) => { )} {content.map( - ({ title, description, link, image, alt, id, contentItems }, idx) => ( + ( + { + title, + description, + link, + image, + alt, + id, + contentItems, + className, + }, + idx + ) => (
diff --git a/src/components/Quiz/QuizWidget/index.tsx b/src/components/Quiz/QuizWidget/index.tsx index cc1e707815d..0783ab2fe63 100644 --- a/src/components/Quiz/QuizWidget/index.tsx +++ b/src/components/Quiz/QuizWidget/index.tsx @@ -200,7 +200,7 @@ export default QuizWidget export const StandaloneQuizWidget = ( props: Pick ) => { - const [_, updateUserStats] = useLocalQuizData() + const [, updateUserStats] = useLocalQuizData() return (

diff --git a/src/components/StablecoinAccordion/index.tsx b/src/components/StablecoinAccordion/index.tsx index 892dc0dedd6..571f1ca2423 100644 --- a/src/components/StablecoinAccordion/index.tsx +++ b/src/components/StablecoinAccordion/index.tsx @@ -1,3 +1,5 @@ +"use client" + import { MdArrowForward } from "react-icons/md" import { ChildOnlyProp, TranslationKey } from "@/lib/types" diff --git a/src/components/StablecoinAccordion/useStablecoinAccordion.ts b/src/components/StablecoinAccordion/useStablecoinAccordion.ts index fd5a0999523..c095cd7c77a 100644 --- a/src/components/StablecoinAccordion/useStablecoinAccordion.ts +++ b/src/components/StablecoinAccordion/useStablecoinAccordion.ts @@ -5,7 +5,6 @@ import aaveImg from "@/public/images/dapps/aave.png" // -- borrow import compoundImg from "@/public/images/dapps/compound.png" // -- earn -import gitcoinImg from "@/public/images/dapps/gitcoin.png" import matchaImg from "@/public/images/dapps/matcha.png" import summerfiImg from "@/public/images/dapps/summerfi.png" // Static assets @@ -66,13 +65,6 @@ export const useStablecoinAccordion = () => { ] const earn: Array = [ - { - title: t("page-stablecoins-accordion-earn-project-bounties"), - image: gitcoinImg, - link: "https://gitcoin.co/explorer", - description: t("page-stablecoins-accordion-earn-project-1-description"), - alt: t("gitcoin-logo"), - }, { title: t("page-stablecoins-accordion-earn-project-bug-bounties"), image: ethImg, diff --git a/src/components/StablecoinBoxGrid.tsx b/src/components/StablecoinBoxGrid.tsx deleted file mode 100644 index 2ff712adcea..00000000000 --- a/src/components/StablecoinBoxGrid.tsx +++ /dev/null @@ -1,241 +0,0 @@ -import { useState } from "react" - -import { ChildOnlyProp } from "@/lib/types" - -import { Flex } from "@/components/ui/flex" -import InlineLink from "@/components/ui/Link" - -import { cn } from "@/lib/utils/cn" - -import { isMobile } from "../lib/utils/isMobile" - -import Emoji from "./Emoji" - -import { useTranslation } from "@/hooks/useTranslation" -import { useRouter } from "@/i18n/routing" - -// Represent string as 32-bit integer -const hashCode = (string: string): number => { - let hash = 0 - for (const char of string) { - const code = char.charCodeAt(0) - hash = (hash << 5) - hash + code - hash |= 0 - } - return Math.abs(hash) -} - -// Theme variables from Theme.js -const colors = [ - "bg-yellow-300", - "bg-blue-300", - "bg-green-300", - "bg-orange-100", - "bg-pink-300", - "bg-purple-300", -] - -interface ILink { - url: string - text: string -} - -type GridItemProps = { - description: string - emoji: string - index: number - title: string - isOpen: boolean - callback: (index: number) => void - color: string - pros?: Array - cons?: Array - links: Array -} - -const OpenTitle = ({ title }: { title: string }) => { - return

{title}

-} - -const Title = ({ title }: { title: string }) => { - return

{title}

-} - -const Subtitle = ({ children }: ChildOnlyProp) => { - return ( -

- {children} -

- ) -} - -const Body = ({ children }: ChildOnlyProp) => { - return
{children}
-} - -const StyledEmoji = ({ emoji }: { emoji: string }) => { - return ( - - ) -} - -const Row = ({ children }: ChildOnlyProp) => { - return ( - - {children} - - ) -} - -const Column = ({ children }: ChildOnlyProp) => { - return
{children}
-} - -const GridItem = ({ - description, - emoji, - index, - title, - isOpen, - callback, - color, - pros, - cons, - links, -}: GridItemProps) => { - const handleClick = (): void => { - callback(index) - } - const { t } = useTranslation("page-stablecoins") - - return ( - handleClick()} - className={cn( - "flex-col", - isOpen - ? `${color} col-start-1 row-start-1 row-end-[span_3] cursor-auto justify-start text-gray-600 transition sm:flex-col` - : "col-start-auto row-start-auto row-end-auto cursor-pointer justify-between bg-background transition-transform duration-500 hover:skew-x-[-5deg] hover:bg-background-highlight sm:flex-row", - "items-center border border-body p-6 hover:shadow-table-box lg:flex-col lg:items-start lg:justify-start" - )} - > - {isOpen ? ( - - ) : ( - <> - - - </> - )} - <div> - {isOpen && ( - <div> - <OpenTitle title={title} /> - <Body>{description}</Body> - <Row> - {pros && ( - <Column> - <Subtitle>{t("pros")}</Subtitle> - - <Body> - <ul> - {pros.map((pro, idx) => ( - <li key={idx}>{pro}</li> - ))} - </ul> - </Body> - </Column> - )} - {cons && ( - <Column> - <Subtitle>{t("cons")}</Subtitle> - <Body> - <ul> - {cons.map((con, idx) => ( - <li key={idx}>{con}</li> - ))} - </ul> - </Body> - </Column> - )} - </Row> - <div> - <Subtitle>{t("example-projects")}</Subtitle> - <Body> - <ul> - {links.map((link, idx) => ( - <li key={idx}> - <InlineLink - key={idx} - href={link.url} - className="text-gray-600 hover:text-gray-900" - > - {link.text} - </InlineLink> - </li> - ))} - </ul> - </Body> - </div> - </div> - )} - </div> - </Flex> - ) -} - -export interface IPropsBoxItem { - description: string - emoji: string - title: string - pros?: Array<string> - cons?: Array<string> - links: Array<ILink> -} - -export type StablecoinBoxGridProps = { - items: Array<IPropsBoxItem> -} - -const StablecoinBoxGrid = ({ items }: StablecoinBoxGridProps) => { - const [indexOpen, setOpenIndex] = useState<number>(0) - const router = useRouter() - - // TODO generalize - const handleSelect = (idx: number): void => { - setOpenIndex(idx) - if (isMobile()) { - router.push(`/stablecoins/#type-${idx}`) - } - } - - return ( - <div className="my-16 flex max-w-full flex-col rounded-sm lg:grid lg:grid-cols-[3fr_1fr] lg:grid-rows-[3fr_3fr]"> - {items.map((item, idx) => { - const colorIdx = hashCode(item.emoji) % colors.length - const color = colors[colorIdx] - return ( - <GridItem - key={idx} - title={item.title} - emoji={item.emoji} - description={item.description} - pros={item.pros} - cons={item.cons} - links={item.links} - index={idx} - isOpen={idx === indexOpen} - callback={handleSelect} - color={color} - /> - ) - })} - </div> - ) -} - -export default StablecoinBoxGrid diff --git a/src/components/StablecoinsTable.tsx b/src/components/StablecoinsTable.tsx index 9a578a9e62e..e034fce305f 100644 --- a/src/components/StablecoinsTable.tsx +++ b/src/components/StablecoinsTable.tsx @@ -1,7 +1,24 @@ +"use client" + +import { Suspense, useState } from "react" +import { MdOutlineFilterList } from "react-icons/md" + +import type { StablecoinType } from "@/lib/types" + +import { Image } from "@/components/Image" + import { cn } from "@/lib/utils/cn" +import { scrollIntoView } from "@/lib/utils/scrollIntoView" -import { ButtonLink } from "./ui/buttons/Button" +import { Button, ButtonLink } from "./ui/buttons/Button" +import { + DropdownMenu, + DropdownMenuCheckboxItem, + DropdownMenuContent, + DropdownMenuTrigger, +} from "./ui/dropdown-menu" import { Flex } from "./ui/flex" +import { Skeleton } from "./ui/skeleton" import { Table, TableBody, @@ -10,85 +27,369 @@ import { TableHeader, TableRow, } from "./ui/table" -import { Image } from "./Image" import { useRtlFlip } from "@/hooks/useRtlFlip" -import { useTranslation } from "@/hooks/useTranslation" +import useTranslation from "@/hooks/useTranslation" -export interface TableRow { +export type TableRow = { name: string marketCap: string image?: string type: string url?: string + symbol: string + peg: string } export type StablecoinsTableProps = { - columns: Array<string> content: Array<TableRow> hasError: boolean } -const StablecoinsTable = ({ - columns, - content, - hasError, -}: StablecoinsTableProps) => { - const { twFlipForRtl } = useRtlFlip() +const PAGE_SIZE = 10 + +const StablecoinsTable = ({ content, hasError }: StablecoinsTableProps) => { const { t } = useTranslation("page-stablecoins") - const stablecoinsType = { + const [visibleRows, setVisibleRows] = useState(PAGE_SIZE) + const [visibleTypes, setVisibleTypes] = useState< + Record<StablecoinType, boolean> + >({ + FIAT: true, + CRYPTO: true, + ASSET: true, + ALGORITHMIC: true, + }) + + const { twFlipForRtl } = useRtlFlip() + + const uniquePegsWithCount = Object.values(content).reduce( + (acc, { peg }) => { + const existingPeg = acc.find((item) => item.peg === peg) + if (existingPeg) { + existingPeg.count++ + } else { + acc.push({ peg, count: 1 }) + } + return acc + }, + [] as Array<{ peg: string; count: number }> + ) + + uniquePegsWithCount.sort((a, b) => b.count - a.count) + + const uniquePegs = uniquePegsWithCount.map((item) => item.peg) + + const [visiblePegs, setVisiblePegs] = useState<Record<string, boolean>>( + Object.fromEntries(uniquePegs.map((peg) => [peg, true])) + ) + + const filteredContent = content.filter( + (item) => visibleTypes[item.type] && visiblePegs[item.peg] + ) + + const hasMoreRows = filteredContent.length > visibleRows + const displayedContent = filteredContent.slice(0, visibleRows) + + const stablecoinsType: Record<StablecoinType, string> = { FIAT: t("page-stablecoins-stablecoins-table-type-fiat-backed"), CRYPTO: t("page-stablecoins-stablecoins-table-type-crypto-backed"), ASSET: t("page-stablecoins-stablecoins-table-type-precious-metals-backed"), ALGORITHMIC: t("page-stablecoins-algorithmic"), } - return ( - <Table className="my-8 min-w-[720px] bg-background"> - <TableHeader> - <TableRow> - {columns.map((column, idx) => ( - <TableHead key={idx}>{column}</TableHead> - ))} - - {content && content[0]?.url && ( - <TableHead className="text-right font-normal"> - <span className={cn("inline-block", twFlipForRtl)}>↗</span> - </TableHead> - )} - </TableRow> - </TableHeader> - <TableBody> - {hasError && ( - <TableRow className="p-4"> - <TableCell colSpan={4}> - {t("page-stablecoins-table-error")} - </TableCell> - </TableRow> + const typeFilters: { id: StablecoinType; label: string }[] = [ + { id: "FIAT", label: stablecoinsType.FIAT }, + { id: "CRYPTO", label: stablecoinsType.CRYPTO }, + { id: "ASSET", label: stablecoinsType.ASSET }, + { id: "ALGORITHMIC", label: stablecoinsType.ALGORITHMIC }, + ] + + // Peg filters sorted by most common (uniquePegsWithCount is already sorted) + const pegFilters = uniquePegsWithCount.map((item) => ({ + id: item.peg, + label: item.peg, + })) + + const noFiltersActive = Object.values(visibleTypes).every((value) => !value) + + const toggleType = (type: string) => { + setVisibleTypes((prev) => ({ + ...prev, + [type]: !prev[type], + })) + } + + const selectOnlyType = (type: string) => { + setVisibleTypes( + Object.fromEntries( + Object.keys(visibleTypes).map((k) => [k, k === type]) + ) as Record<StablecoinType, boolean> + ) + } + + const showAllTypes = () => { + setVisibleTypes( + Object.fromEntries( + Object.keys(visibleTypes).map((k) => [k, true]) + ) as Record<StablecoinType, boolean> + ) + } + + const togglePeg = (peg: string) => { + setVisiblePegs((prev) => ({ + ...prev, + [peg]: !prev[peg], + })) + } + + const selectOnlyPeg = (peg: string) => { + setVisiblePegs( + Object.fromEntries(Object.keys(visiblePegs).map((k) => [k, k === peg])) + ) + } + + const showAllPegs = () => { + setVisiblePegs( + Object.fromEntries(Object.keys(visiblePegs).map((k) => [k, true])) + ) + } + + const resetFilters = () => { + showAllTypes() + showAllPegs() + } + const resetState = () => { + setVisibleRows(PAGE_SIZE) + resetFilters() + scrollIntoView("#stablecoin-markets", { behavior: "instant" }) + } + + // Count active filters for type and peg + const activeTypeCount = Object.values(visibleTypes).filter(Boolean).length + const activePegCount = Object.values(visiblePegs).filter(Boolean).length + const totalTypeCount = Object.keys(visibleTypes).length + const totalPegCount = Object.keys(visiblePegs).length + const isTouched = + Object.values(visibleTypes).some((v) => !v) || + Object.values(visiblePegs).some((v) => !v) || + visibleRows > PAGE_SIZE + + const columns = [ + t("page-stablecoins-stablecoins-table-header-column-1"), + <div key="market-cap-header" className="text-end"> + {t("page-stablecoins-stablecoins-table-header-column-2")} + </div>, + <DropdownMenu key="type-filter"> + <DropdownMenuTrigger className="ms-auto flex items-center gap-2 text-end"> + {t("page-stablecoins-stablecoins-table-header-column-3")} + {activeTypeCount !== totalTypeCount && ( + <span className="self-baseline text-sm text-body-medium"> + ({activeTypeCount}) + </span> )} + <MdOutlineFilterList size={20} /> + </DropdownMenuTrigger> + <DropdownMenuContent align="start"> + {typeFilters.map((filter) => ( + <div + key={filter.id} + className="flex items-center justify-between pr-2" + > + <DropdownMenuCheckboxItem + checked={visibleTypes[filter.id]} + onCheckedChange={() => toggleType(filter.id)} + > + {filter.label} + </DropdownMenuCheckboxItem> + <Button + variant="link" + size="sm" + className="h-auto px-1 py-0 text-xs text-body-medium no-underline hover:underline" + onClick={(e) => { + e.preventDefault() + e.stopPropagation() + selectOnlyType(filter.id) + }} + > + (only) + </Button> + </div> + ))} + {Object.values(visibleTypes).some((v) => !v) && ( + <div className="mt-2 flex justify-center"> + <Button + variant="link" + size="sm" + className="text-xs text-body-medium no-underline hover:underline" + onClick={(e) => { + e.preventDefault() + e.stopPropagation() + showAllTypes() + }} + > + Show all + </Button> + </div> + )} + </DropdownMenuContent> + </DropdownMenu>, + <DropdownMenu key="peg-filter"> + <DropdownMenuTrigger className="ms-auto flex items-center gap-2 text-end"> + {t("page-stablecoins-stablecoins-table-header-column-4")} + {activePegCount !== totalPegCount && ( + <span className="text-xs text-body-medium">({activePegCount})</span> + )} + <MdOutlineFilterList size={20} /> + </DropdownMenuTrigger> + <DropdownMenuContent align="start"> + {pegFilters.map((filter) => ( + <div + key={filter.id} + className="flex items-center justify-between pr-2" + > + <DropdownMenuCheckboxItem + checked={visiblePegs[filter.id]} + onCheckedChange={() => togglePeg(filter.id)} + > + {filter.label} + </DropdownMenuCheckboxItem> + <Button + variant="link" + size="sm" + className="h-auto px-1 py-0 text-xs text-body-medium no-underline hover:underline" + onClick={(e) => { + e.preventDefault() + e.stopPropagation() + selectOnlyPeg(filter.id) + }} + > + (only) + </Button> + </div> + ))} + {Object.values(visiblePegs).some((v) => !v) && ( + <div className="mt-2 flex justify-center"> + <Button + variant="link" + size="sm" + className="text-xs text-body-medium no-underline hover:underline" + onClick={(e) => { + e.preventDefault() + e.stopPropagation() + showAllPegs() + }} + > + Show all + </Button> + </div> + )} + </DropdownMenuContent> + </DropdownMenu>, + ] - {content.map(({ name, marketCap, image, type, url }, idx) => ( - <TableRow key={idx}> - <TableCell> - <Flex> - {image && <Image src={image} alt="" className="me-4 h-6 w-6" />} - <>{name}</> - </Flex> - </TableCell> - <TableCell>{marketCap}</TableCell> - <TableCell>{stablecoinsType[type]}</TableCell> - {url && ( - <TableCell className="text-right"> - <ButtonLink href={url} size="sm"> - {t("page-stablecoins-go-to")} {name} - </ButtonLink> - </TableCell> + return ( + <div className="mx-auto w-full max-w-screen-xl overflow-x-auto px-8 py-4"> + <Table className="my-8 min-w-[720px] bg-background"> + <TableHeader> + <Suspense fallback={<Skeleton className="h-8 w-full" />}> + <TableRow> + {columns.map((column, idx) => ( + <TableHead key={idx}>{column}</TableHead> + ))} + {content && content[0]?.url && ( + <TableHead className="text-right font-normal"> + <span className={cn("inline-block", twFlipForRtl)}>↗</span> + </TableHead> + )} + </TableRow> + </Suspense> + </TableHeader> + <Suspense fallback={<Skeleton className="h-8 w-full" />}> + <TableBody> + {hasError && ( + <TableRow className="p-4"> + <TableCell colSpan={4}> + {t("page-stablecoins-table-error")} + </TableCell> + </TableRow> )} - </TableRow> - ))} - </TableBody> - </Table> + + {noFiltersActive && ( + <TableRow> + <TableCell colSpan={4} className="py-8 text-center"> + {t("page-stablecoins-no-results")} + </TableCell> + </TableRow> + )} + + {displayedContent.map( + ({ name, marketCap, image, type, url, symbol, peg }, idx) => ( + <TableRow key={idx}> + <TableCell> + <Flex> + {image && ( + <Image + src={image} + alt="" + className="me-4 h-6 w-6" + width={24} + height={24} + /> + )} + <span> + {name}{" "} + <span className="text-sm uppercase text-body-medium"> + {symbol} + </span> + </span> + </Flex> + </TableCell> + <TableCell className="text-end">{marketCap}</TableCell> + <TableCell className="text-end"> + {stablecoinsType[type]} + </TableCell> + <TableCell className="text-end">{peg}</TableCell> + {url && ( + <TableCell className="text-right"> + <ButtonLink href={url} size="sm" hideArrow> + {t("page-stablecoins-go-to")} {name} + </ButtonLink> + </TableCell> + )} + </TableRow> + ) + )} + </TableBody> + </Suspense> + </Table> + <div className="flex flex-wrap items-center justify-center gap-4"> + {hasMoreRows && ( + <div className="mt-4 flex justify-center"> + <Button onClick={() => setVisibleRows((prev) => prev + PAGE_SIZE)}> + {t("page-stablecoins-show-more")} + </Button> + </div> + )} + {isTouched && ( + <div className="mt-4 flex justify-center"> + <Button variant="outline" onClick={resetState}> + {t("page-stablecoins-reset-list")} + </Button> + </div> + )} + </div> + {displayedContent.length === 0 && !noFiltersActive && ( + <div className="flex flex-col items-center justify-center py-12"> + <p className="mb-4 text-lg text-body-medium"> + {t("page-stablecoins-no-results")} + </p> + <Button variant="outline" onClick={resetFilters}> + {t("page-stablecoins-reset-list")} + </Button> + </div> + )} + </div> ) } export default StablecoinsTable diff --git a/src/components/StartWithEthereumFlow/ShareModal.tsx b/src/components/StartWithEthereumFlow/ShareModal.tsx index 681a335cb7e..969aec34571 100644 --- a/src/components/StartWithEthereumFlow/ShareModal.tsx +++ b/src/components/StartWithEthereumFlow/ShareModal.tsx @@ -1,3 +1,5 @@ +"use client" + import { useState } from "react" import { FaLink, FaXTwitter } from "react-icons/fa6" import { MdCheck } from "react-icons/md" diff --git a/src/components/StartWithEthereumFlow/index.tsx b/src/components/StartWithEthereumFlow/index.tsx index e703b85b743..3ab7fdf29f7 100644 --- a/src/components/StartWithEthereumFlow/index.tsx +++ b/src/components/StartWithEthereumFlow/index.tsx @@ -1,7 +1,11 @@ -import { useRef, useState } from "react" +"use client" + +import { useEffect, useRef, useState } from "react" +import dynamic from "next/dynamic" import type { SwiperRef } from "swiper/react" +import { QueryClient, QueryClientProvider } from "@tanstack/react-query" -import { Wallet } from "@/lib/types" +import type { Wallet } from "@/lib/types" import ConnectYourWallet from "@/components/StartWithEthereumFlow/ConnectYourWallet" import DownloadAWallet from "@/components/StartWithEthereumFlow/DownloadAWallet" @@ -10,16 +14,44 @@ import { Swiper, SwiperContainer, SwiperSlide } from "@/components/ui/swiper" import { cn } from "@/lib/utils/cn" +import { Skeleton, SkeletonLines } from "../ui/skeleton" + +// Dynamically import Wagmi/RainbowKit components +const WalletProviders = dynamic(() => import("@/components/WalletProviders"), { + ssr: false, + loading: () => ( + <Skeleton className="grid h-[32rem] grid-cols-1 rounded-2xl bg-primary/20 p-12 md:grid-cols-2"> + <div className=""> + <SkeletonLines + noOfLines={5} + className="flex h-full flex-col justify-center opacity-20" + /> + </div> + <Skeleton className="h-full rounded-2xl bg-background" /> + </Skeleton> + ), +}) + +const queryClient = new QueryClient() + const StartWithEthereumFlow = ({ newToCryptoWallets, + locale, }: { newToCryptoWallets: Wallet[] + locale: string }) => { const swiperRef = useRef<SwiperRef>(null) const containerRef = useRef<HTMLDivElement>(null) const [activeIndex, setActiveIndex] = useState(1) const [totalSlides, setTotalSlides] = useState(0) - const [slideHeights, setSlideHeights] = useState<number[]>([]) + const [slideHeights, setSlideHeights] = useState<number[]>([0, 0, 0]) // Default values matching your slide count + + useEffect(() => { + if (swiperRef.current?.swiper) { + updateSlideHeights(swiperRef.current.swiper) + } + }, [activeIndex]) // Re-check heights when active slide changes const handleInit = (swiper) => { setTotalSlides(swiper.slides.length) @@ -61,87 +93,87 @@ const StartWithEthereumFlow = ({ } } + const getStyleFromIndex = (index: number) => { + const maxHeight = `calc(${slideHeights[activeIndex - 1]}px - ${activeIndex - 1 === index ? 0 : 100}px)` + return { maxHeight } + } + return ( - <SwiperContainer - ref={containerRef} - className={cn( - "-mx-8", - "w-screen", - "max-w-screen-2xl", - "px-4 sm:px-8", - "[&_.swiper-slide]:overflow-visible [&_.swiper-slide]:rounded-2xl", - "[&_.swiper-slide]:min-h-[386px]", - "[&_.swiper-slide-shadow]:!bg-transparent", - "[&_.swiper]:mt-4 [&_.swiper]:!flex [&_.swiper]:h-fit [&_.swiper]:w-full [&_.swiper]:flex-col [&_.swiper]:items-center" - )} - > - <Swiper - ref={swiperRef} - effect="cards" - cardsEffect={{ - perSlideOffset: 6, - perSlideRotate: 2, - slideShadows: false, - }} - allowTouchMove={false} - simulateTouch={false} - preventInteractionOnTransition={true} - onInit={handleInit} - onSlideChange={handleSlideChange} - > - <SwiperSlide - className={cn( - "from-[#f4effe] to-[#faf6fe] dark:from-[#0f0a19] dark:to-[#0a0811]", - "border border-[#ebe0fd] bg-gradient-to-r p-4 sm:p-12 dark:border-[#1c112f]" - )} - > - <div - style={{ - maxHeight: `calc(${slideHeights[activeIndex - 1]}px - ${activeIndex - 1 === 0 ? 0 : 100}px)`, - }} - > - <DownloadAWallet - handleNext={handleNext} - stepIndex={activeIndex} - totalSteps={totalSlides} - newToCryptoWallets={newToCryptoWallets} - /> - </div> - </SwiperSlide> - <SwiperSlide - className={cn( - "from-[#f4fbfa] to-[#e8f6f5] dark:from-[#02100f] dark:to-[#000908]", - "border border-[#b2e2de] bg-gradient-to-b p-4 sm:p-12 dark:border-[#083935] dark:bg-gradient-to-t" - )} - > - <div - style={{ - maxHeight: `calc(${slideHeights[activeIndex - 1]}px - ${activeIndex - 1 === 1 ? 0 : 100}px)`, - }} - > - <ConnectYourWallet - handleNext={handleNext} - stepIndex={activeIndex} - totalSteps={totalSlides} - /> - </div> - </SwiperSlide> - <SwiperSlide + <QueryClientProvider client={queryClient}> + <WalletProviders locale={locale}> + <SwiperContainer + ref={containerRef} className={cn( - "from-[#ecf1fd] to-[#f6f8fe] dark:from-[#070c18] dark:to-[#02060f]", - "border border-[#d7e1fc] bg-gradient-to-b p-4 sm:p-12 dark:border-[#192853] dark:bg-gradient-to-t" + "-mx-8", + "w-screen", + "max-w-screen-2xl", + "px-4 sm:px-8", + "[&_.swiper-slide]:overflow-visible [&_.swiper-slide]:rounded-2xl", + "[&_.swiper-slide]:min-h-[386px]", + "[&_.swiper-slide-shadow]:!bg-transparent", + "[&_.swiper]:mt-4 [&_.swiper]:!flex [&_.swiper]:h-fit [&_.swiper]:w-full [&_.swiper]:flex-col [&_.swiper]:items-center" )} > - <div - style={{ - maxHeight: `calc(${slideHeights[activeIndex - 1]}px - ${activeIndex - 1 === 2 ? 0 : 100}px)`, + <Swiper + ref={swiperRef} + effect="cards" + cardsEffect={{ + perSlideOffset: 6, + perSlideRotate: 2, + slideShadows: false, }} + allowTouchMove={false} + simulateTouch={false} + preventInteractionOnTransition={true} + onInit={handleInit} + onSlideChange={handleSlideChange} > - <LetUseSomeApps stepIndex={activeIndex} totalSteps={totalSlides} /> - </div> - </SwiperSlide> - </Swiper> - </SwiperContainer> + <SwiperSlide + className={cn( + "from-[#f4effe] to-[#faf6fe] dark:from-[#0f0a19] dark:to-[#0a0811]", + "border border-[#ebe0fd] bg-gradient-to-r p-4 sm:p-12 dark:border-[#1c112f]" + )} + > + <div style={getStyleFromIndex(0)}> + <DownloadAWallet + handleNext={handleNext} + stepIndex={activeIndex} + totalSteps={totalSlides} + newToCryptoWallets={newToCryptoWallets} + /> + </div> + </SwiperSlide> + <SwiperSlide + className={cn( + "from-[#f4fbfa] to-[#e8f6f5] dark:from-[#02100f] dark:to-[#000908]", + "border border-[#b2e2de] bg-gradient-to-b p-4 sm:p-12 dark:border-[#083935] dark:bg-gradient-to-t" + )} + > + <div style={getStyleFromIndex(1)}> + <ConnectYourWallet + handleNext={handleNext} + stepIndex={activeIndex} + totalSteps={totalSlides} + /> + </div> + </SwiperSlide> + <SwiperSlide + className={cn( + "from-[#ecf1fd] to-[#f6f8fe] dark:from-[#070c18] dark:to-[#02060f]", + "border border-[#d7e1fc] bg-gradient-to-b p-4 sm:p-12 dark:border-[#192853] dark:bg-gradient-to-t" + )} + > + <div style={getStyleFromIndex(2)}> + <LetUseSomeApps + stepIndex={activeIndex} + totalSteps={totalSlides} + /> + </div> + </SwiperSlide> + </Swiper> + </SwiperContainer> + </WalletProviders> + </QueryClientProvider> ) } diff --git a/src/components/icons/refresh-cw.svg b/src/components/icons/refresh-cw.svg new file mode 100644 index 00000000000..37551e54b83 --- /dev/null +++ b/src/components/icons/refresh-cw.svg @@ -0,0 +1,4 @@ +<svg width="1em" height="1em" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M20.335 7.8619C18.8068 4.97348 15.7287 3 12.1804 3C7.11019 3 3 7.02944 3 12C3 16.9706 7.11019 21 12.1804 21C15.3079 21 18.0701 19.4668 19.7277 17.1253" stroke="currentColor" stroke-width="2" stroke-linecap="round"/> +<path d="M21 3V8H16" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> +</svg> diff --git a/src/components/ui/Link.tsx b/src/components/ui/Link.tsx index e99df1ea7c7..c7e1d087820 100644 --- a/src/components/ui/Link.tsx +++ b/src/components/ui/Link.tsx @@ -88,7 +88,7 @@ export const BaseLink = forwardRef<HTMLAnchorElement, LinkProps>(function Link( return ( <a target="_blank" - rel="noopener" + rel="noopener noreferrer" onClick={() => trackCustomEvent( customEventOptions ?? { @@ -119,7 +119,7 @@ export const BaseLink = forwardRef<HTMLAnchorElement, LinkProps>(function Link( return ( <NextLink target="_blank" - rel="noopener" + rel="noopener noreferrer" onClick={() => trackCustomEvent( customEventOptions ?? { diff --git a/src/components/ui/chart.tsx b/src/components/ui/chart.tsx index 18b60a29a11..7f2cba02c5e 100644 --- a/src/components/ui/chart.tsx +++ b/src/components/ui/chart.tsx @@ -67,7 +67,7 @@ ChartContainer.displayName = "Chart" const ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => { const colorConfig = Object.entries(config).filter( - ([_, config]) => config.theme || config.color + ([, config]) => config.theme || config.color ) if (!colorConfig.length) { diff --git a/src/components/ui/skeleton.tsx b/src/components/ui/skeleton.tsx index 5df3a54f6d5..b8d4a83b358 100644 --- a/src/components/ui/skeleton.tsx +++ b/src/components/ui/skeleton.tsx @@ -1,5 +1,7 @@ import { cn } from "@/lib/utils/cn" +import { Card, CardBanner, CardContent } from "../ui/card" + // Pseudo-random list of skeleton widths for multiple lines const widths = [ "w-1/3", @@ -26,7 +28,7 @@ const Skeleton = ({ }: React.HTMLAttributes<HTMLDivElement>) => { return ( <div - className={cn("h-4 animate-pulse rounded bg-disabled", className)} + className={cn("h-4 animate-pulse rounded bg-disabled/20", className)} {...props} /> ) @@ -56,4 +58,31 @@ const SkeletonLines = ({ </div> ) -export { Skeleton, SkeletonLines } +type SkeletonCardProps = { + className?: string +} + +const SkeletonCard = ({ className }: SkeletonCardProps) => ( + <Card className={cn("cursor-default", className)}> + <CardBanner /> + <CardContent className="space-y-3"> + <Skeleton className="h-6 w-3/4" /> + <Skeleton className="h-4 w-1/2" /> + <Skeleton className="h-4 w-1/3" /> + </CardContent> + </Card> +) + +type SkeletonCardGridProps = { + className?: string +} + +const SkeletonCardGrid = ({ className }: SkeletonCardGridProps) => ( + <div className={`${className} grid gap-8 sm:grid-cols-2 lg:grid-cols-3`}> + <SkeletonCard /> + <SkeletonCard className="hidden sm:block" /> + <SkeletonCard className="hidden lg:block" /> + </div> +) + +export { Skeleton, SkeletonCardGrid, SkeletonLines } diff --git a/src/components/ui/spinner.tsx b/src/components/ui/spinner.tsx index 33690b4ca76..64b861542ab 100644 --- a/src/components/ui/spinner.tsx +++ b/src/components/ui/spinner.tsx @@ -6,7 +6,7 @@ const Spinner = React.forwardRef< React.HTMLAttributes<HTMLDivElement> >(({ className, ...props }, ref) => ( <div ref={ref} className={className} {...props}> - <CgSpinner className="animate-spin" /> + <CgSpinner className="motion-safe:animate-spin motion-reduce:animate-pulse" /> </div> )) Spinner.displayName = "Spinner" diff --git a/src/components/ui/swiper.tsx b/src/components/ui/swiper.tsx index e74bcac005c..28a1585d14f 100644 --- a/src/components/ui/swiper.tsx +++ b/src/components/ui/swiper.tsx @@ -1,10 +1,12 @@ +"use client" + import * as React from "react" import { cva, VariantProps } from "class-variance-authority" import { EffectCards, Keyboard, Navigation, Pagination } from "swiper/modules" import { Swiper as SwiperReact, type SwiperProps as SwiperReactProps, - SwiperRef, + type SwiperRef, SwiperSlide, } from "swiper/react" @@ -149,7 +151,6 @@ const Swiper = React.forwardRef<SwiperRef, SwiperProps>( slidesPerView={1} slidesPerGroup={1} lazyPreloadPrevNext={0} - slideClass="swiper-slide" className={cn(variants({ navigationPlacement, className }))} {...props} > diff --git a/src/data/community-events.json b/src/data/community-events.json index 15346ef096c..56c5494124b 100644 --- a/src/data/community-events.json +++ b/src/data/community-events.json @@ -1,31 +1,4 @@ [ - { - "title": "ETHDenver", - "startDate": "2025-02-23", - "endDate": "2025-03-02", - "href": "https://www.ethdenver.com/", - "location": "Denver, USA", - "description": "ETHDenver 2025 #BUIDLathon + Community Innovation Festival", - "imageUrl": "https://cdn.prod.website-files.com/6509ee7744afed1c907f8f97/66916c73fade30407dbf07b4_ETHDEN2025_SEOImage_website.jpg" - }, - { - "title": "ETH Bucharest", - "startDate": "2025-04-02", - "endDate": "2025-04-05", - "href": "https://www.ethbucharest.xyz/", - "location": "Bucharest, Romania", - "description": "Join ETH Bucharest 2025: Hackathon (2-5 April) & Conference (4-5 April). Be part of the second edition driving Ethereum innovation in Eastern Europe!", - "imageUrl": "https://ethbucharest.ro/images/og-image.png" - }, - { - "title": "ETHDublin 2025", - "startDate": "2025-05-23", - "endDate": "2025-05-25", - "href": "https://lu.ma/hkl5jcre", - "location": "Dublin, IRE", - "description": "", - "imageUrl": "https://social-images.lu.ma/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=800,height=419/api/event-one?calendar_avatar=https%3A%2F%2Fimages.lumacdn.com%2Fcalendars%2Fkx%2F61284be8-5aa6-4d0a-b57d-4df3ef8c59ea&calendar_name=ETH%20Ireland&color0=%23ffffff&color1=%230b693b&color2=%237bad94&color3=%23ee9e61&host_avatar=https%3A%2F%2Fimages.lumacdn.com%2Favatars%2Fsl%2Fdec7e3f9-9b6c-4b7c-a455-a96fc844eeb4&host_name=Caol%C3%A1n%20Walsh&img=https%3A%2F%2Fimages.lumacdn.com%2Fevent-covers%2F7x%2F6df8a419-4fa2-4ee7-81cb-76295cb6fa0c&name=ETHDublin%202025" - }, { "title": "ETHKyiv", "startDate": "2025-06-13", @@ -71,15 +44,6 @@ "description": "Join us for a technical conference dedicated to exploring the edges of modular blockchain technology. This one-day event, held on May 30, 2024 brings together…", "imageUrl": "https://social-images.lu.ma/cdn-cgi/image/format=auto,fit=cover,dpr=1,background=white,quality=75,width=800,height=419/api/event-one?calendar_avatar=https%3A%2F%2Fimages.lumacdn.com%2Fcalendars%2Fgb%2F04e6c14a-bef9-4690-a55e-58dbab9f8aca&calendar_name=ProtoLayers%20Builder%20Conference&color0=%23ffffff&color1=%23010101&color2=%238b8a8a&color3=%23ff3503&host_avatar=https%3A%2F%2Fimages.lumacdn.com%2Favatars%2Fwx%2Fd64d0bac-aec7-4589-840e-4d4111ce4988&host_name=ProtoLayers&img=https%3A%2F%2Fimages.lumacdn.com%2Fevent-covers%2Fr7%2Fa289e9d1-9744-4ccc-a812-e6ac947d09cf&name=ProtoLayers%20Conference" }, - { - "title": "ETHPrague", - "startDate": "2025-05-27", - "endDate": "2025-05-29", - "href": "https://ethprague.com/", - "location": "Prague, CZE", - "description": "ETHPrague", - "imageUrl": "https://ethprague.com/ETHPrague_soc_share-2025.png" - }, { "title": "ETH Belgrade", "startDate": "2025-06-03", @@ -98,194 +62,14 @@ "description": "ETHCluj 2025 - Ethereum for everyone conference ", "imageUrl": "https://framerusercontent.com/images/rHUxnoTTgyhaJqvDh9ZbOPH2Dd0.jpg" }, - { - "title": "BUIDL Europe", - "startDate": "2025-01-09", - "endDate": "2025-01-10", - "href": "https://buidleurope.com", - "location": "Lisbon, POR", - "description": "", - "imageUrl": "" - }, - { - "title": "ETHiopia", - "startDate": "2025-01-21", - "endDate": "2025-02-21", - "href": "https://eth-iopia.xyz", - "location": "Addis Ababa, ETH", - "description": "", - "imageUrl": "https://eth-iopia.xyz/logo.jpg" - }, - { - "title": "EthereumZuri.ch", - "startDate": "2025-01-30", - "endDate": "2025-01-31", - "href": "https://ethereumzuri.ch/", - "location": "Zurich, CHE", - "description": "", - "imageUrl": "https://ethereumzuri.ch/ez-soc.jpg" - }, - { - "title": "NFT Paris*", - "startDate": "2025-02-13", - "endDate": "2025-02-14", - "href": "https://nftparis.xyz ", - "location": "Paris, FR", - "description": "NFT Paris Conference | February 13-14, 2025", - "imageUrl": "https://cdn.prod.website-files.com/62b386503a338d13fadcadf5/62b6138a5d1d73074b8826df_cam07%20(1).jpg" - }, - { - "title": "RWA Paris Summit*", - "startDate": "2025-02-13", - "endDate": "2025-02-14", - "href": "https://rwaparis.xyz", - "location": "Paris, FR", - "description": "RWA Paris Summit | Feburary 13-14, 2025", - "imageUrl": "https://cdn.prod.website-files.com/664217a6af4422924626be6c/666c48b47d2b5659149732ef_rwarwa.png" - }, - { - "title": "Consensus HK*", - "startDate": "2025-02-18", - "endDate": "2025-02-20", - "href": "https://consensus-hongkong2025.coindesk.com/", - "location": "Hong Kong, HKG", - "description": "Consensus is CoinDesk’s longest-running and most influential crypto event that brings together all sides of DeFi, blockchain, Web3 and the metaverse.", - "imageUrl": "https://consensus-hongkong2025.coindesk.com/site/consensushongkong202/images/userfiles/metadata/hk-25/HK25-Generic.png" - }, - { - "title": "ZKDay", - "startDate": "2025-02-20", - "endDate": "2025-02-20", - "href": "https://zklab.systems/zk-village", - "location": "Denver, USA", - "description": "", - "imageUrl": "" - }, - { - "title": "Pragma Denver", - "startDate": "2025-02-25", - "endDate": "2025-02-25", - "href": "https://ethglobal.com/events/pragma-denver2025", - "location": "Denver, USA", - "description": "Bringing developers onchain to build the future of the internet.", - "imageUrl": "https://ethglobal.com/og.png" - }, - { - "title": "Modular Carnival", - "startDate": "2025-02-25", - "endDate": "2025-03-01", - "href": "https://modularcarnival.xyz", - "location": "Belo Horizonte, BRA", - "description": "", - "imageUrl": "https://static.wixstatic.com/media/94db02_460ea9b1478f4d939a2d8d0640bfde31~mv2.png/v1/fill/w_320,h_179,al_c,q_95,enc_avif,quality_auto/94db02_460ea9b1478f4d939a2d8d0640bfde31~mv2.png" - }, - { - "title": "ETH Pondy", - "startDate": "2025-03-28", - "endDate": "2025-03-30", - "href": "https://ethpondy.xyz ", - "location": "Pondicherry, IND", - "description": "Shaping the future of Blockchain", - "imageUrl": "" - }, - { - "title": "ETHTaipei", - "startDate": "2025-04-01", - "endDate": "2025-04-02", - "href": "https://ethtaipei.org ", - "location": "Taipei, TW", - "description": "Welcome to the ETHTaipei 2025 event held in Taiwan. With a thriving Ethereum and developer community in Taiwan, ETHTaipei 2025 has brought together teams from around the world to participate in a 3-day hackathon and 2-day conference focusing on the application and technology of Ethereum.", - "imageUrl": "https://ethtaipei.org/images/ethtaipei-meta-image.jpg" - }, - { - "title": "Pragma Taipei", - "startDate": "2025-04-03", - "endDate": "2025-04-03", - "href": "https://ethglobal.com/events/pragma-taipei", - "location": "Taipei, TWN", - "description": "Bringing developers onchain to build the future of the internet.", - "imageUrl": "https://ethglobal.com/og.png" - }, - { - "title": "ETHGlobal Taipei", - "startDate": "2025-04-04", - "endDate": "2025-04-06", - "href": "https://ethglobal.com/events/taipei", - "location": "Taipei, TWN", - "description": "Bringing developers onchain to build the future of the internet.", - "imageUrl": "https://ethglobal.com/og.png" - }, - { - "title": "zkHack", - "startDate": "2025-04-11", - "endDate": "2025-04-13", - "href": "https://zkhack.dev", - "location": "Seoul, KR", - "description": "", - "imageUrl": "" - }, - { - "title": "BUIDL Asia", - "startDate": "2025-04-15", - "endDate": "2025-04-16", - "href": "https://www.buidl.asia/", - "location": "Seoul, KR", - "description": "", - "imageUrl": "" - }, - { - "title": "Staking Summit*", - "startDate": "2025-04-28", - "endDate": "2025-04-29", - "href": "https://stakingsummit.com", - "location": "Dubai, UAE", - "description": "The premier staking event. The Staking Summit Dubai brings together the top protocols, validators and investors for a two-day, in-person event.", - "imageUrl": "https://framerusercontent.com/assets/jMgdXFlxexhLiYYWPd8Kgep6mhk.png" - }, - { - "title": "TOKEN2049 Dubai*", - "startDate": "2025-04-30", - "endDate": "2025-05-01", - "href": "https://token2049.com ", - "location": "Dubai, UAE", - "description": "We bring together the leading voices in crypto. TOKEN2049 is a global conference series, where decision-makers in the global crypto ecosystem connect to exchange ideas, network, and shape the industry. ", - "imageUrl": "https://static.wixstatic.com/media/df5f7a_8ec2fa25938e484a8cc2dc11ef6ed2f7~mv2.png/v1/fill/w_2500,h_1352,al_c/df5f7a_8ec2fa25938e484a8cc2dc11ef6ed2f7~mv2.png" - }, - { - "title": "FarCon", - "startDate": "2025-05-01", - "endDate": "2025-05-04", - "href": "https://farcon.nyc", - "location": "New York, NYC, USA", - "description": "NYC's coziest corner.", - "imageUrl": "https://framerusercontent.com/images/h11bkB3NvpEYvJPJWdaaBBpz4rU.png" - }, - { - "title": "ETH Lisbon", - "startDate": "2025-05-09", - "endDate": "2025-05-11", - "href": "https://ethlisbon.org ", - "location": "Lisbon, POR", - "description": "ETHLisbon brings the top builders and industry leaders to Portugal to tackle real-world challenges around themes like privacy, identity, and more.", - "imageUrl": "https://framerusercontent.com/assets/k3t9FtPBibQBemLXMzCGQo0.gif" - }, - { - "title": "Consensus Toronto*", - "startDate": "2025-05-14", - "endDate": "2025-05-16", - "href": "https://consensus2025.coindesk.com/", - "location": "Hong Kong, HKG", - "description": "Consensus is CoinDesk’s longest-running and most influential crypto event that brings together all sides of DeFi, blockchain, Web3 and the metaverse.", - "imageUrl": "https://consensus2025.coindesk.com/site/consensus2025/images/userfiles/metadata/2025/C25-Generic.png" - }, { "title": "Edge Esmeralda", "startDate": "2025-05-24", "endDate": "2025-06-21", - "href": "https://edgeesmeralda.com", + "href": "https://www.edgeesmeralda.com/", "location": "Healdsburg, CA, USA", "description": "Edge Esmeralda 2025", - "imageUrl": "" + "imageUrl": "https://cdn.prod.website-files.com/65e8d8e39d148666896efd73/6756f792af297ff60a535793_lineart-grassy-hill%202.webp" }, { "title": "ETHGlobal Prague", @@ -296,15 +80,6 @@ "description": "Bringing developers onchain to build the future of the internet.", "imageUrl": "https://ethglobal.com/og.png" }, - { - "title": "Pragma Prague", - "startDate": "2025-05-29", - "endDate": "2025-05-29", - "href": "https://ethglobal.com/events/pragma-prague", - "location": "Prague, CZE", - "description": "Bringing developers onchain to build the future of the internet.", - "imageUrl": "https://ethglobal.com/og.png" - }, { "title": "Non Fungible Conference*", "startDate": "2025-06-04", @@ -312,16 +87,16 @@ "href": "https://nonfungibleconference.com", "location": "Lisbon, PRT", "description": "NFC", - "imageUrl": "" + "imageUrl": "https://cdn.prod.website-files.com/667d843c349d4113343c986f/66c74ec4543c8bd11d952391_Screenshot%202024-08-22%20at%2016.44.10.png" }, { "title": "Offscript", "startDate": "2025-06-11", "endDate": "2025-06-15", - "href": "https://offscript.web3creatives.com/", + "href": "https://toktimes.com/events/offscript-2025/", "location": "San Miguel de Allende, MX", "description": "Offscript | The event for creatives in web3", - "imageUrl": "" + "imageUrl": "https://toktimes.com/wp-content/uploads/2025/05/Offscript.jpg" }, { "title": "ProtocolBerg", @@ -338,7 +113,7 @@ "endDate": "2025-06-25", "href": "https://nft.nyc", "location": "NYC, USA", - "description": ""The Super Bowl of NFTs" - Register now for NFT.NYC's 8th annual event. 50,000+ Alumni, the leading speakers and the best projects in the NFT ecosystem.", + "description": "'The Super Bowl of NFTs' - Register now for NFT.NYC's 8th annual event. 50,000+ Alumni, the leading speakers and the best projects in the NFT ecosystem.", "imageUrl": "https://www.nft.nyc/hubfs/nftnyc2021-eventbrite-header.png" }, { @@ -379,12 +154,12 @@ }, { "title": "NapulETH", - "startDate": "2025-07-16", + "startDate": "2025-06-01", "endDate": "2025-07-19", "href": "https://napuleth.org/", "location": "Naples, ITA", "description": "NapulETH - Biggest Web3 Event In Southern Italy", - "imageUrl": "" + "imageUrl": "https://cdn.moongate.id/events/59f82809-1766-4dd4-a641-7bf10bb007df/featured-image-1732163941338.svg" }, { "title": "SBC (The Science of Blockchain Conference 2025)", @@ -392,7 +167,7 @@ "endDate": "2025-08-06", "href": "https://www.sbc-conference.com/2025/", "location": "Berkeley, USA", - "description": "", + "description": "The conference focuses on technical innovations in the blockchain ecosystem, and brings together researchers and practioners working in the space. ", "imageUrl": "" }, { @@ -420,7 +195,7 @@ "href": "https://event.web3bridge.com ", "location": "Lagos, NGA", "description": "We are Building a Sustainable web3 community in Africa", - "imageUrl": "" + "imageUrl": "https://event.web3bridge.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flekki.d4f13308.png&w=1920&q=75" }, { "title": "ETHWarsaw", @@ -429,7 +204,7 @@ "href": "https://ethwarsaw.dev", "location": "Warsaw, POL", "description": "EthWarsaw 2025", - "imageUrl": "" + "imageUrl": "https://cdn.prod.website-files.com/649014d99c5194ad73558cd3/649af7b1f1fdaa7868890166_ThumbnailPicture.png" }, { "title": "Pragma New Delhi", @@ -467,113 +242,14 @@ "description": "We’re thrilled to return to London for another round of innovation and hands-on building! This year, we’re bringing you an exceptional dual-track event,…", "imageUrl": "https://social-images.lu.ma/cdn-cgi/image/format=auto,fit=cover,dpr=1,anim=false,background=white,quality=75,width=800,height=419/api/event-one?calendar_avatar=https%3A%2F%2Fimages.lumacdn.com%2Fcalendars%2F0o%2F4cff6d5a-741b-4917-a568-c6767d9cd91b&calendar_name=Encode%20Club&color0=%231a1716&color1=%23725f47&color2=%23d3c9b3&color3=%237e9a39&host_avatar=https%3A%2F%2Fimages.lumacdn.com%2Favatars%2Fxn%2F04392226-d605-4c28-a6b9-2631bfcfd80e&host_name=Encode%20Club&img=https%3A%2F%2Fimages.lumacdn.com%2Fevent-covers%2Ff3%2Fc10c60fc-7220-4141-aad7-d33e8894f967&name=Encode%20London%20Research%20Conference%20and%20Hackathon" }, - { - "title": "Zugrama India", - "startDate": "2025-01-05", - "endDate": "2025-02-16", - "href": "https://zugrama.org/", - "location": "Thiruvananthapuram, Kerala, IND", - "description": "A pop-village experiment in India exploring technology in a co-living setup. ", - "imageUrl": "https://framerusercontent.com/images/wJDirYhhSH8znG0hz0hyH3wqOlE.png" - }, - { - "title": "EthOxford", - "startDate": "2025-02-07", - "endDate": "2025-02-09", - "href": "https://ethoxford.io/", - "location": "Oxford, UK", - "description": "Join the best builders for a 3 day hackathon hosted at Oxford University.", - "imageUrl": "https://ethoxford.io/assets/images/share.jpg?v=7e796eda" - }, - { - "title": "ETHDam III", - "href": "https://www.ethdam.com", - "location": "Amsterdam, Netherlands", - "description": "Conference and hackathon gathering the best Privacy and Security builders", - "startDate": "2025-05-09", - "endDate": "2025-05-11", - "imageUrl": "https://drive.google.com/file/d/12IW8m1LdF4AU95LskDle9ei_J09M3jz-/preview" - }, { "title": "ETHMilan", "startDate": "2025-06-24", "endDate": "2025-06-24", "href": "https://ethmilan.xyz", "location": "Milan, ITALY", - "description": "ETHMilan 2025 – Italy's Largest ETH & Web3 Conference", - "imageUrl": "" - }, - { - "title": "Crecimiento", - "startDate": "2025-03-05", - "endDate": "2025-03-28", - "href": "https://aleph.crecimiento.build/", - "location": "Buenos Aires, Argentina", - "description": "The Crecimiento Pop-Up City is a moment-in-time for these visionaries to come together with renowned experts, and transform Argentina into a world-leading startup & innovation hub.", - "imageUrl": "https://cdn.prod.website-files.com/6661b1a3c1bce60cd61fc966/669e83df3c3a7535a9cc05fa_1200xlogo.png" - }, - { - "title": "EthereumSF", - "startDate": "2025-03-10", - "endDate": "2025-03-16", - "href": "https://ethereumsf.org/", - "location": "San Francisco, US", - "description": "ETHSF'25 is a decentralized, week-long event series across the Bay Area, featuring events focused on d/acc, blockchain, AI and beyond.", - "imageUrl": "https://static.wixstatic.com/media/4ae173_bcefbce48625440083d62f9dc78450b6%7Emv2.png/v1/fit/w_2500,h_1330,al_c/4ae173_bcefbce48625440083d62f9dc78450b6%7Emv2.png" - }, - { - "title": "Building Blocks", - "startDate": "2025-03-25", - "endDate": "2025-03-29", - "href": "https://buildingblockstlv.com/", - "location": "Tel Aviv, IL", - "description": "Building Blocks - Scaling Crypto Startups", - "imageUrl": "" - }, - { - "title": "Paris P2P Festival", - "startDate": "2025-04-04", - "endDate": "2025-04-11", - "href": "https://www.p2p.paris", - "location": "Paris, FR", - "description": "The Parisian community interested in P2P, Security & Cryptography technologies", - "imageUrl": "https://p2p.paris/images/paris-p2p-thumbnail.jpg" - }, - { - "title": "Appcon", - "startDate": "2025-04-07", - "endDate": "2025-04-13", - "href": "https://appcon.org", - "location": "Milan, ITA", - "description": "Discover Ethereum apps at Appcon in Milan. Explore an interactive public showcase, connect through the exclusive Builders’ Program, and experience real-world demos—bridging new adopters, developers, and investors in one vibrant setting.", - "imageUrl": "https://appcon.org/opengraph-image.png?1ef56b7e20f7b364" - }, - { - "title": "ETHRome Hackathon", - "startDate": "2025-04-11", - "endDate": "2025-04-13", - "href": "https://ethrome.org", - "location": "Rome, ITA", - "description": "The hackathon for builders by builders", - "imageUrl": "https://www.ethrome.org/opengraph-image.png" - }, - { - "title": "ETHDubai", - "startDate": "2025-04-28", - "endDate": "2025-04-29", - "href": "https://www.ethdubaiconf.org/", - "location": "Dubai, UAE", - "description": "The Ethereum Dev Conference for everything DeFi, Web3, Smart Contracts, AVS, AI agents, scaling, privacy, decentralization - April 28-29, 2025 in Dubai UAE", - "imageUrl": "https://www.ethdubaiconf.org/ethdubaicard1.png" - }, - { - "title": "ETHBratislava", - "startDate": "2025-05-23", - "endDate": "2025-05-24", - "href": "https://ethbratislava.com/", - "location": "Bratislava, SVK", - "description": "Two-day conference and hackathon focused on sharing knowledge and sparking innovative ideas aimed at energizing the entire ethereum ecosystem.", - "imageUrl": "https://framerusercontent.com/assets/IBAFZwu44FpNo95n3OoOapeFUyw.png" + "description": "ETHMilan 2025 – Italy's Largest ETH & Web3 Conference", + "imageUrl": "https://cdn.prod.website-files.com/677e49dfe7df51bec6e5ba71/67b58ffe31d5fe8d4e54880e__DSC0914.jpeg" }, { "title": "EthAccra", @@ -593,42 +269,6 @@ "description": "View and subscribe to events from ETHTokyo on Luma. ETHTokyo", "imageUrl": "https://images.lumacdn.com/calendar-cover-images/rv/316a4b25-a9fb-4ff0-ab1a-d7f23a2ba0e0" }, - { - "title": "Edge City Austin", - "startDate": "2025-03-02", - "endDate": "2025-03-07", - "href": "https://www.edgecity.live/austin", - "location": "Austin, USA", - "description": "Edge City Austin", - "imageUrl": "https://cdn.prod.website-files.com/65b2cb5abdecf7cd7747e170/67aba5d16f625f40658dde92_edge-sxsw-10.png" - }, - { - "title": "Edge Expedition South Africa", - "startDate": "2025-04-03", - "endDate": "2025-04-12", - "href": "https://www.edgecity.live/southafrica", - "location": "Capetown, ZA", - "description": "Edge Expedition | South Africa", - "imageUrl": "https://cdn.prod.website-files.com/65b2cb5abdecf7cd7747e170/67802a19fb53c877dd9f5eb0_og-southafricaexpedition%20(1).png" - }, - { - "title": "ETH Seoul", - "startDate": "2025-04-14", - "endDate": "2025-04-14", - "href": "https://ethseoul.org", - "location": "Seoul, KR", - "description": "", - "imageUrl": "https://www.ethseoul.org/img/website-logo.png" - }, - { - "title": "ETH Cinco de Mayo", - "startDate": "2025-05-01", - "endDate": "2025-05-04", - "href": "https://ethcdm.com/", - "location": "Mexico, MX", - "description": "ETH Cinco de Mayo Hackathon, Feb. 2nd-4th 2024, Puebla, Mexico. A perfect combination of competition, workshops, networking, entrepreneurship and culture!", - "imageUrl": "https://ethcdm.com/assets/images/og-918.jpg" - }, { "title": "World Expo on Blockchain*", "startDate": "2025-05-10", @@ -638,15 +278,6 @@ "description": "A future without financial inclusion, digital trust, data privacy and security is no future at all. Blockchain isn’t just relevant—it’s essential.", "imageUrl": "https://framerusercontent.com/images/Ivp1oWg8CFUDERZIoey9dadW7E.png" }, - { - "title": "Code Africa Conference", - "startDate": "2025-05-19", - "endDate": "2025-05-23", - "href": "https://codeafrica.io", - "location": "Nairobi, Kenya", - "description": "", - "imageUrl": "" - }, { "title": "ETHSafari", "startDate": "2025-09-07", @@ -654,16 +285,7 @@ "href": "https://ethsafari.xyz/", "location": "Nairobi, Kenya", "description": "ETHSafari 2025 - web3 builders conference East Africa Kenya", - "imageUrl": "" - }, - { - "title": "ETH Canal", - "startDate": "2025-04-22", - "endDate": "2025-04-25", - "href": "https://ethcanal.xyz", - "location": "Panama City, PAN", - "description": "Join us at ETH Canal, in Panama, the pivotal blockchain conference series for Ethereum business & blockchain enthusiasts and developers. Discover real-world applications of Ethereum technology, engage with top-tier talent, and explore partnership opportunities in a crypto-friendly environment.", - "imageUrl": "https://www.ethcanal.xyz/web/image/2180-32d6b8d6/StockCake-Cryptocurrency%2520Enthusiast%2520Smiling_1713136212.svg" + "imageUrl": "https://ethsafari.xyz/_next/image?url=%2FHackathon.png&w=640&q=75" }, { "title": "ETHVietnam 2025", @@ -671,18 +293,9 @@ "endDate": "2025-08-10", "href": "https://eth-vietnam.com", "location": "HCMC, VNM", - "description": "", + "description": "Vietnam Web3 Hub for Ethereum and Blockchain enthusiasts, designers and developers.", "imageUrl": "http://static1.squarespace.com/static/629856e64f44db3799f8e3f6/t/6761041c2c3aab15bfbb0ec1/1734411300379/Group+2612.png?format=1500w" }, - { - "title": "EthAsia", - "startDate": "2025-04-09", - "endDate": "2025-04-09", - "href": "https://www.ethasia.org/", - "location": "Hong Kong, HKG", - "description": "A commmunity gathering festival: Make ETHEREUM Asia Great Again", - "imageUrl": "https://www.ethasia.org/_next/image?url=%2FBG.png&w=3840&q=75" - }, { "title": "EthereumBrasil", "startDate": "2025-06-09", @@ -719,33 +332,6 @@ "description": "Pop-up dev city #1 - Ethereum | Zero Knowledge | Artificial Inteligence | Cybersecurity", "imageUrl": "https://cdn.prod.website-files.com/6695a56b501ba1fda80ae466/67851f884a16785150e18e2c_Group%20116.svg" }, - { - "title": "Crecimiento", - "startDate": "2025-04-18", - "endDate": "2025-03-28", - "href": "https://crecimientoar", - "location": "TBD, ARG", - "description": "", - "imageUrl": "" - }, - { - "title": "ETHVietnam 2025", - "startDate": "2025-05-24", - "endDate": "2025-05-25", - "href": "https://eth-vietnam.com", - "location": "HCMC, VNM", - "description": "", - "imageUrl": "http://static1.squarespace.com/static/629856e64f44db3799f8e3f6/t/6761041c2c3aab15bfbb0ec1/1734411300379/Group+2612.png?format=1500w" - }, - { - "title": "ETHBratislava", - "startDate": "2025-05-23", - "endDate": "2025-05-25", - "href": "https://ethbratislava.com/", - "location": "Bratislava, SVK", - "description": "Two-day conference and hackathon focused on sharing knowledge and sparking innovative ideas aimed at energizing the entire ethereum ecosystem.", - "imageUrl": "https://framerusercontent.com/assets/IBAFZwu44FpNo95n3OoOapeFUyw.png" - }, { "title": "Boston Blockchain Week", "startDate": "2025-09-08", @@ -753,7 +339,7 @@ "href": "https://bostonblockchainweek.com/", "location": "Quincy, Massachusetts, USA", "description": "Boston Blockchain Week is the preeminent annual event celebrating the global blockchain and Web3 hub that is Greater Boston.", - "imageUrl": "" + "imageUrl": "https://bostonblockchainweek.com/wp-content/uploads/2025/02/Vector.png" }, { "title": "DevConnect", diff --git a/src/data/execution-bounty-hunters.json b/src/data/execution-bounty-hunters.json index 8f6683c55ad..573a97195fb 100644 --- a/src/data/execution-bounty-hunters.json +++ b/src/data/execution-bounty-hunters.json @@ -247,7 +247,7 @@ { "username": "0xalpharush", "name": "alpharush", - "score": 1000 + "score": 2000 }, { "username": "cybermong", diff --git a/src/data/published.json b/src/data/published.json index 81352578110..3a80c1e58fe 100644 --- a/src/data/published.json +++ b/src/data/published.json @@ -1 +1 @@ -{"date":"2025-06-03"} +{"date":"2025-06-12"} diff --git a/src/data/translationProgress.json b/src/data/translationProgress.json index f5c0b2166f5..fe1abc2f3c3 100644 --- a/src/data/translationProgress.json +++ b/src/data/translationProgress.json @@ -114,7 +114,7 @@ { "languageId": "el", "words": { - "approved": 268889, + "approved": 280914, "total": 280914 } }, @@ -184,7 +184,7 @@ { "languageId": "ga-IE", "words": { - "approved": 199875, + "approved": 218126, "total": 280976 } }, diff --git a/src/hooks/useClipboard.ts b/src/hooks/useClipboard.ts index 86d02146635..9a17ee2c125 100644 --- a/src/hooks/useClipboard.ts +++ b/src/hooks/useClipboard.ts @@ -10,7 +10,7 @@ export type UseClipboardOptions = { export const useClipboard = ({ timeout = 1500 }: UseClipboardOptions = {}) => { const [hasCopied, setHasCopied] = useState(false) - const [_, copy] = useCopyToClipboard() + const [, copy] = useCopyToClipboard() const onCopy = async (value: string) => { try { diff --git a/src/hooks/useRefWidth.ts b/src/hooks/useRefWidth.ts index 62720b5fce0..4ec7f469340 100644 --- a/src/hooks/useRefWidth.ts +++ b/src/hooks/useRefWidth.ts @@ -1,6 +1,6 @@ "use client" -import { type RefObject, useEffect, useState } from "react" +import { type RefObject, useCallback, useEffect, useState } from "react" import { useEventListener } from "./useEventListener" @@ -10,12 +10,12 @@ export const useRefWidth = ( ): number => { const [width, setWidth] = useState(0) - const updateWidth = () => { + const updateWidth = useCallback(() => { if (ref.current) { const rect = ref.current.getBoundingClientRect() setWidth(Math.max(0, rect.width - padding)) } - } + }, [ref, padding]) // Use the internal useEventListener for window resize useEventListener("resize", updateWidth) @@ -33,7 +33,7 @@ export const useRefWidth = ( return () => { resizeObserver.disconnect() } - }, [ref, padding]) + }, [ref, padding, updateWidth]) return width } diff --git a/src/intl/am/common.json b/src/intl/am/common.json index dda759bfee6..620859e0b7f 100644 --- a/src/intl/am/common.json +++ b/src/intl/am/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "የቤት ሃርድዌርን ያሂዱ እና በግል የ Ethereum አውታረ መረብን ደህንነት እና ያልተማከለ ሁኔታ ላይ ይጨምሩ", "nav-staking-solo-label": "የብቻ ስታኪንግ", "nav-start-building-description": "ለአዲስ መጪዎች ጠቃሚ መረጃ", + "nav-start-with-crypto-title": "እዚህ መጀመር", + "nav-start-with-crypto-description": "የእርስዎ መጀመሪያ እርምጃዎች በEthereum", "nav-translation-program-description": "ethereum.org ወደ ሁሉም ቋንቋዎች ለመተርጎም የትብብር ጥረት", "nav-tutorials-description": "የተመረጡ የማህበረሰብ አጋዥ ስልጠናዎች ዝርዝር", "nav-use-cases-description": "ለEthereum አጠቃቀም የተለያዩ ሀሳቦችን ያግኙ", diff --git a/src/intl/am/page-index.json b/src/intl/am/page-index.json index 6b8f8565e96..5ed8e03ec10 100644 --- a/src/intl/am/page-index.json +++ b/src/intl/am/page-index.json @@ -81,6 +81,7 @@ "page-index-posts-header": "የቅርብ ጊዜ ልጥፎች", "page-index-posts-subtitle": "ከማኅበረሰቡ የተገኙ የቅርብ ጊዜ የብሎግ ልጥፎች እና ዝመናዎች", "page-index-title": "ወደ Ethereum እንኳን ደህና መጡ", + "page-index-use-cases-tag": "ጉዳዮችን ተጠቀም", "page-index-values-description": "የዲጂታል አብዮቱ አካል ይሁኑ", "page-index-values-header": "በይነመረብ እየተቀየረ ነው", "page-index-values-legacy": "ትሩፋት", diff --git a/src/intl/ar/common.json b/src/intl/ar/common.json index e73770af451..43c70451655 100644 --- a/src/intl/ar/common.json +++ b/src/intl/ar/common.json @@ -323,6 +323,8 @@ "nav-staking-solo-description": "يمكنك التشغيل على جهازك المنزلي، وتعزيز أمان ولامركزية شبكة إيثريوم بشكلٍ شخصي", "nav-staking-solo-label": "تجميد العملات الفردي", "nav-start-building-description": "معلومات مفيدة للمستجدين", + "nav-start-with-crypto-title": "ابدأ من هنا", + "nav-start-with-crypto-description": "خطواتك الأولى باستخدام إثريوم", "nav-translation-program-description": "جهد تعاوني لترجمة موقع ethereum.org إلى جميع اللغات", "nav-tutorials-description": "قائمة منسقة من تعليمات الاستخدام المجتمعية", "nav-use-cases-description": "اكتشف أفكارًا مختلفة لاستخدام إيثريوم", diff --git a/src/intl/ar/page-index.json b/src/intl/ar/page-index.json index 166534f9208..8a107b0dce1 100644 --- a/src/intl/ar/page-index.json +++ b/src/intl/ar/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "أحدث المنشورات", "page-index-posts-subtitle": "أحدث منشورات المدونة والتحديثات من المجتمع", "page-index-title": "مرحبًا بكم في إيثريوم", + "page-index-use-cases-tag": "حالات الاستخدام", "page-index-values-description": "كن جزءًا من الثورة الرقمية", "page-index-values-header": "الانترنت آخذ في التغير", "page-index-values-legacy": "أثرية", diff --git a/src/intl/az/common.json b/src/intl/az/common.json index 5d42caab3ca..2db04d38469 100644 --- a/src/intl/az/common.json +++ b/src/intl/az/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Ev avadanlıqlarını işə salın və Ethereum şəbəkəsinin təhlükəsizliyinə və mərkəzsizləşdirilməsinə şəxsən əlavə edin", "nav-staking-solo-label": "Solo payçılıq", "nav-start-building-description": "Yeni başlayanlar üçün faydalı məlumat", + "nav-start-with-crypto-title": "Buradan başlayın", + "nav-start-with-crypto-description": "Ethereum ilə ilk addımlarınız", "nav-translation-program-description": "ethereum.org saytının bütün dillərə tərcümə edilməsi üçün birgə səy", "nav-tutorials-description": "İcma təlimatlarının seçilmiş siyahısı", "nav-use-cases-description": "Ethereum-un istifadəsi üçün fərqli ideyalar kəşf edin", diff --git a/src/intl/az/page-index.json b/src/intl/az/page-index.json index e36c2e93b00..7b635566c38 100644 --- a/src/intl/az/page-index.json +++ b/src/intl/az/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Ən son paylaşımlar", "page-index-posts-subtitle": "Ən son bloq yazıları və icma ilə bağlı yeniləmələr", "page-index-title": "Ethereum-a xoş gəldiniz", + "page-index-use-cases-tag": "İstifadə halları", "page-index-values-description": "Rəqəmsal inqilabın iştirakçısı olun", "page-index-values-header": "İnternet dəyişir", "page-index-values-legacy": "Varislik", diff --git a/src/intl/be/common.json b/src/intl/be/common.json index 9c5a3fc826b..9dca7b3e5a7 100644 --- a/src/intl/be/common.json +++ b/src/intl/be/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Запусціце хатняе абсталяванне і асабіста палепшыце бяспеку і дэцэнтралізацыю сеткі Ethereum", "nav-staking-solo-label": "Адзіночны стэйкінг", "nav-start-building-description": "Карысная інфармацыя для тых, хто пачынае", + "nav-start-with-crypto-title": "Пачніце тут", + "nav-start-with-crypto-description": "Вашы першыя крокі з Ethereum", "nav-translation-program-description": "Сумесныя намаганні па перакладу ethereum.org на ўсе мовы", "nav-tutorials-description": "Куратарскі спіс навучальных матэрыялаў супольніцтва", "nav-use-cases-description": "Пазнаёмцеся з рознымі ідэямі выкарыстання Ethereum", diff --git a/src/intl/be/page-index.json b/src/intl/be/page-index.json index e5867d7ba6d..248ccd22c52 100644 --- a/src/intl/be/page-index.json +++ b/src/intl/be/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Нядаўнія публікацыі", "page-index-posts-subtitle": "Апошнія публікацыі ў блогу і абнаўленні ад супольнасці", "page-index-title": "Сардэчна запрашаем у свет Ethereum", + "page-index-use-cases-tag": "Варыянты выкарыстання", "page-index-values-description": "Станьце часткай лічбавай рэвалюцыі", "page-index-values-header": "Інтэрнэт перажывае змены", "page-index-values-legacy": "Спадчына", diff --git a/src/intl/bg/common.json b/src/intl/bg/common.json index 39d0643d161..bc4b57a43e3 100644 --- a/src/intl/bg/common.json +++ b/src/intl/bg/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Работете с домашен хардуер и лично допринасяйте за сигурността и децентрализацията на мрежата Етереум", "nav-staking-solo-label": "Самостоятелно залагане", "nav-start-building-description": "Полезна информация за начинаещи", + "nav-start-with-crypto-title": "Започнете тук", + "nav-start-with-crypto-description": "Вашите първи стъпки с Ethereum", "nav-translation-program-description": "Доброволно сътрудничество за превеждане на ethereum.org на всички езици", "nav-tutorials-description": "Списък на общността с подбрани обучения", "nav-use-cases-description": "Открийте различни идеи за използване на Eтереум", diff --git a/src/intl/bg/page-index.json b/src/intl/bg/page-index.json index 092ee0e7a2d..a5f32335eaa 100644 --- a/src/intl/bg/page-index.json +++ b/src/intl/bg/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Последни публикации", "page-index-posts-subtitle": "Най-новите публикации в блогове и актуализации от общността", "page-index-title": "Добре дошли в Eтереум", + "page-index-use-cases-tag": "Случаи на употреба", "page-index-values-description": "Бъдете част от дигиталната революция", "page-index-values-header": "Интернет се променя", "page-index-values-legacy": "Наследство", diff --git a/src/intl/bn/common.json b/src/intl/bn/common.json index aae8de313f5..9ffc21d2f7c 100644 --- a/src/intl/bn/common.json +++ b/src/intl/bn/common.json @@ -323,6 +323,8 @@ "nav-staking-solo-description": "হোম হার্ডওয়্যার চালান এবং ব্যক্তিগতভাবে ইথেরিয়াম নেটওয়ার্কের নিরাপত্তা এবং বিকেন্দ্রীকরণ যোগ করুন", "nav-staking-solo-label": "স্বতন্ত্র স্টেকিং", "nav-start-building-description": "নতুনদের সাহায্যের জন্য তথ্য", + "nav-start-with-crypto-title": "এখান থেকে শুরু করুন", + "nav-start-with-crypto-description": "Ethereum ব্যবহারের আপনার প্রথম ধাপ", "nav-translation-program-description": "ethereum.org ওয়েবসাইটকে সমস্ত ভাষায় অনুবাদ করার জন্য সকলে মিলে করা এক প্রয়াস", "nav-tutorials-description": "কমিউনিটির টিউটোরিয়ালের একত্রিত করা তালিকা", "nav-use-cases-description": "ইথেরিয়াম ব্যবহারের বিভিন্ন আইডিয়া খুঁজে নিন", diff --git a/src/intl/bn/page-index.json b/src/intl/bn/page-index.json index 7b32f716e02..8c88543d530 100644 --- a/src/intl/bn/page-index.json +++ b/src/intl/bn/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "সাম্প্রতিক পোস্টগুলি", "page-index-posts-subtitle": "কমিউনিটি থেকে সাম্প্রতিক ব্লগ পোস্ট এবং আপডেটসমুহ", "page-index-title": "ইথেরিয়ামের জগতে আপনাকে স্বাগত জানাই", + "page-index-use-cases-tag": "ব্যবহার", "page-index-values-description": "ডিজিটাল বিপ্লবের অংশ হন", "page-index-values-header": "ইন্টারনেট পরিবর্তিত হচ্ছে", "page-index-values-legacy": "উত্তরাধিকার", diff --git a/src/intl/bs/common.json b/src/intl/bs/common.json index c4afbbb807d..faf18d73f07 100644 --- a/src/intl/bs/common.json +++ b/src/intl/bs/common.json @@ -319,6 +319,8 @@ "nav-staking-solo-description": "Pokrenite kućni hardver i lično dodajte sigurnost i decentralizaciju Ethereum mreže", "nav-staking-solo-label": "Samostalno ulaganje", "nav-start-building-description": "Korisne informacije za novake", + "nav-start-with-crypto-title": "Počnite ovdje", + "nav-start-with-crypto-description": "Vaši prvi koraci koristeći Ethereum", "nav-translation-program-description": "Zajednički trud da se ethereum.org prevede na sve jezike", "nav-tutorials-description": "Prilagođena lista tutorijala za zajednicu", "nav-use-cases-description": "Otkrijte različite ideje upotrebe Ethereuma", diff --git a/src/intl/bs/page-index.json b/src/intl/bs/page-index.json index 1d16bfa829f..2425fda3d57 100644 --- a/src/intl/bs/page-index.json +++ b/src/intl/bs/page-index.json @@ -80,6 +80,7 @@ "page-index-posts-header": "Nedavne objave", "page-index-posts-subtitle": "Najnovije objave na blogu i novosti iz zajednice", "page-index-title": "Dobro došli u Ethereum", + "page-index-use-cases-tag": "Slučajevi upotrebe", "page-index-values-description": "Budite dio digitalne revolucije", "page-index-values-header": "Internet se mijenja", "page-index-values-legacy": "Naslijeđe", diff --git a/src/intl/ca/common.json b/src/intl/ca/common.json index b8efc12f48a..5747d184e6b 100644 --- a/src/intl/ca/common.json +++ b/src/intl/ca/common.json @@ -333,6 +333,8 @@ "nav-staking-solo-description": "Executeu el maquinari domèstic i afegiu personalment la seguretat i la descentralització de la xarxa Ethereum", "nav-staking-solo-label": "Apilament en solitari", "nav-start-building-description": "Informació útil per als nouvinguts", + "nav-start-with-crypto-title": "Comença aquí", + "nav-start-with-crypto-description": "Els vostres primers passos amb Ethereum", "nav-translation-program-description": "Un esforç de col·laboració per a traduir ethereum.org a tots els idiomes", "nav-tutorials-description": "Llista verificada de tutorials de la comunitat", "nav-use-cases-description": "Descobriu diferents idees per a l'ús de Ethereum", diff --git a/src/intl/ca/page-index.json b/src/intl/ca/page-index.json index 66c632d1d96..93b906514e8 100644 --- a/src/intl/ca/page-index.json +++ b/src/intl/ca/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Publicacions recents", "page-index-posts-subtitle": "Les últimes publicacions de blog i actualitzacions de la comunitat", "page-index-title": "Et donem la benvinguda a Ethereum", + "page-index-use-cases-tag": "Casos d'ús", "page-index-values-description": "Forma part de la revolució digital", "page-index-values-header": "Internet està canviant", "page-index-values-legacy": "Llegat", diff --git a/src/intl/ca/page-wallets-find-wallet.json b/src/intl/ca/page-wallets-find-wallet.json index 2b638f7c514..f17addef539 100644 --- a/src/intl/ca/page-wallets-find-wallet.json +++ b/src/intl/ca/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Primera vegada que l'usuari busca una cartera per a principiants.", "page-find-wallet-nfts-title": "Els NFT", "page-find-wallet-nfts-desc": "Carteres amb enfocament en suport NFT.", - "page-find-wallet-hodler-title": "Inversió a llarg termini", + "page-find-wallet-hodler-title": "Hardware", "page-find-wallet-hodler-desc": "Manteniment passiu de testimonis amb carteres de maquinari.", "page-find-wallet-finance-title": "Finances", "page-find-wallet-finance-desc": "Carteres focalitzades en l'ús freqüent d'aplicacions DeFi.", diff --git a/src/intl/cs/common.json b/src/intl/cs/common.json index 6bb6f811212..7aef5ebda9e 100644 --- a/src/intl/cs/common.json +++ b/src/intl/cs/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Spusťte domácí hardware a osobně přidejte k zabezpečení a decentralizaci sítě Ethereum", "nav-staking-solo-label": "Samostatné uzamčení", "nav-start-building-description": "Užitečné informace pro nováčky", + "nav-start-with-crypto-title": "Začněte zde", + "nav-start-with-crypto-description": "Vaše první kroky s Ethereum", "nav-translation-program-description": "Společné úsilí o překlad ethereum.org do všech jazyků", "nav-tutorials-description": "Seznam vybraných komunitních výukových programů", "nav-use-cases-description": "Objevte různé nápady na využití Etherea", diff --git a/src/intl/cs/page-index.json b/src/intl/cs/page-index.json index ae0d379b6f8..3b4e7a27eb3 100644 --- a/src/intl/cs/page-index.json +++ b/src/intl/cs/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Nedávné příspěvky", "page-index-posts-subtitle": "Poslední blogové příspěvky a aktuální informace z komunity", "page-index-title": "Vítejte v Ethereu", + "page-index-use-cases-tag": "Případy použití", "page-index-values-description": "Staňte se součástí digitální revoluce", "page-index-values-header": "Internet se mění", "page-index-values-legacy": "Dědictví", diff --git a/src/intl/da/common.json b/src/intl/da/common.json index 89814af8e6a..7cff3f973e7 100644 --- a/src/intl/da/common.json +++ b/src/intl/da/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Kør hjemmehardware og tilføj personligt til sikkerheden og decentraliseringen af Ethereum-netværket.", "nav-staking-solo-label": "Solo-staking", "nav-start-building-description": "Nyttig information for nytilkomne", + "nav-start-with-crypto-title": "Start her", + "nav-start-with-crypto-description": "Dine første skridt med Ethereum", "nav-translation-program-description": "Et samarbejde om at oversætte ethereum.org til alle sprog", "nav-tutorials-description": "Organiseret liste over fællesskabsvejledning", "nav-use-cases-description": "Se forskellige ideer til brug af Ethereum", diff --git a/src/intl/da/page-index.json b/src/intl/da/page-index.json index 742e984857c..d30f9604667 100644 --- a/src/intl/da/page-index.json +++ b/src/intl/da/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Seneste poster", "page-index-posts-subtitle": "De seneste blogindlæg og opdateringer fra fællesskabet", "page-index-title": "Velkommen til Ethereum", + "page-index-use-cases-tag": "Brugseksempler", "page-index-values-description": "Bliv del af en digital revolution", "page-index-values-header": "Internettet ændrer sig", "page-index-values-legacy": "Politik", diff --git a/src/intl/de/common.json b/src/intl/de/common.json index 2215650c7ae..f73f6a46784 100644 --- a/src/intl/de/common.json +++ b/src/intl/de/common.json @@ -333,6 +333,8 @@ "nav-staking-solo-description": "Benutzen Sie Hardware zu Hause und tragen Sie persönlich zur Sicherheit und Dezentralisierung des Ethereum-Netzwerks bei", "nav-staking-solo-label": "Solo-Staking", "nav-start-building-description": "Hilfreiche Informationen für neue Mitglieder", + "nav-start-with-crypto-title": "Hier starten", + "nav-start-with-crypto-description": "Ihre ersten Schritte mit Ethereum", "nav-translation-program-description": "Eine gemeinsame Bemühung, ethereum.org in alle Sprachen zu übersetzen", "nav-tutorials-description": "Verwaltete Liste mit Community-Tutorials", "nav-use-cases-description": "Entdecken Sie verschiedene Ideen zur Nutzung von Ethereum", diff --git a/src/intl/de/page-index.json b/src/intl/de/page-index.json index 2428939eb87..5303ce45ac2 100644 --- a/src/intl/de/page-index.json +++ b/src/intl/de/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Neue Beiträge", "page-index-posts-subtitle": "Die neuesten Blogbeiträge und Updates aus der Community", "page-index-title": "Willkommen bei Ethereum", + "page-index-use-cases-tag": "Anwendungsfälle", "page-index-values-description": "Werde Teil der digitalen Revolution", "page-index-values-header": "Das Internet verändert sich", "page-index-values-legacy": "Legacy", diff --git a/src/intl/de/page-wallets-find-wallet.json b/src/intl/de/page-wallets-find-wallet.json index beb832fed8c..b62596c1017 100644 --- a/src/intl/de/page-wallets-find-wallet.json +++ b/src/intl/de/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Erstbenutzer auf der Suche nach einer Einsteiger-Wallet.", "page-find-wallet-nfts-title": "NFTs", "page-find-wallet-nfts-desc": "Wallets mit Fokus auf NFT-Unterstützung.", - "page-find-wallet-hodler-title": "Langfristig", + "page-find-wallet-hodler-title": "Hardware", "page-find-wallet-hodler-desc": "Passives Halten von Token mit Hardware-Wallets.", "page-find-wallet-finance-title": "Finanzen", "page-find-wallet-finance-desc": "Wallets, die sich auf die häufige Nutzung von DeFi-Anwendungen konzentrieren.", diff --git a/src/intl/el/common.json b/src/intl/el/common.json index f9fe59d778d..a83ca4a012b 100644 --- a/src/intl/el/common.json +++ b/src/intl/el/common.json @@ -295,6 +295,7 @@ "nav-overview-label": "Επισκόπηση", "nav-participate-overview-description": "Επισκόπηση του τρόπου συμμετοχής", "nav-payments-description": "Οι πληρωμές Ethereum αλλάζουν τον τρόπο αποστολής και λήψης χρημάτων", + "nav-prediction-markets-description": "Οι αγορές πρόβλεψης είναι ένας τρόπος για να στοιχηματίσετε στο μέλλον", "nav-primary": "Κύριο", "nav-quizzes-description": "Μάθετε πόσο καλά κατανοείτε το Ethereum και τα κρυπτονομίσματα", "nav-quizzes-label": "Δοκιμάστε τις γνώσεις σας", @@ -334,6 +335,8 @@ "nav-staking-solo-description": "Εκτελέστε την οικιακή σας συσκευή και επιληφθείτε προσωπικά για την ασφάλεια και την αποκέντρωση του δικτύου Ethereum", "nav-staking-solo-label": "Ατομική αποθήκευση κεφαλαίου", "nav-start-building-description": "Χρήσιμες πληροφορίες για νεοαφιχθέντες", + "nav-start-with-crypto-title": "Ξεκινήστε από εδώ", + "nav-start-with-crypto-description": "Τα πρώτα σας βήματα χρησιμοποιώντας το Ethereum", "nav-translation-program-description": "Συλλογική προσπάθεια μετάφρασης του ethereum.org σε όλες τις γλώσσες", "nav-tutorials-description": "Επιμελημένος κατάλογος της κοινότητας με οδηγούς εκμάθησης", "nav-use-cases-description": "Ανακαλύψτε διαφορετικές ιδέες για τη χρήση του Ethereum", @@ -369,6 +372,7 @@ "payments-page": "Πληρωμές", "pbs": "Διαχωρισμός προτείνοντος - κατασκευαστή", "pools": "Αποθήκευση κεφαλαίου σε δεξαμενή", + "prediction-markets": "Αγορές προβλέψεων", "privacy-policy": "Πολιτική απορρήτου", "private-ethereum": "Ιδιωτικό Ethereum", "product-disclaimer": "Τα προϊόντα και υπηρεσίες αναφέρονται για εξυπηρέτηση της κοινότητας του Ethereum. Η συμπερίληψη ενός προϊόντος ή μιας υπηρεσίας <strong>δεν αφορά την έγκρισή τους</strong> από την ομάδα του ιστότοπου ethereum.org ή το Ίδρυμα Ethereum.", @@ -434,6 +438,9 @@ "verkle-trees": "Verkle trees", "wallets": "Πορτοφόλια", "we-couldnt-find-that-page": "Δεν μπορέσαμε να βρούμε αυτή τη σελίδα", + "error-page-title": "Ωχ! Κάτι πήγε στραβά", + "error-page-description": "Μπορείτε να μας βοηθήσετε να βελτιωθούμε αναφέροντας αυτό το πρόβλημα στην ιστοσελίδα μας <a href='https://github.com/ethereum/ethereum-org-website/issues/new?label%3A%22bug%20%F0%9F%90%9B%22&template=bug_report.yaml'>GitHub repository</a>.", + "error-page-home-link": "Επιστροφή στην αρχική σελίδα", "web3": "Τι είναι το Web3;", "web3-title": "Web3", "website-last-updated": "Τελευταία ενημέρωση της ιστοσελίδας", diff --git a/src/intl/el/glossary.json b/src/intl/el/glossary.json index 566a28f7d3c..3506e604574 100644 --- a/src/intl/el/glossary.json +++ b/src/intl/el/glossary.json @@ -391,6 +391,8 @@ "web3-definition": "Το Web3 είναι το νέο διαδίκτυο με blockchain, όπου είναι οι χρήστες αυτοί που ελέγχουν τα δεδομένα και τις συναλλαγές τους, όχι οι εταιρείες. Δεν χρειάζεται να μοιραστείτε προσωπικά στοιχεία. <a href=\"/web3/\">Περισσότερα για το web3</a>.", "wei-term": "Wei", "wei-definition": "Η μικρότερη υποδιαίρεση του ether. 10<sup>18</sup> wei = 1 ether.", + "wrapped-token-term": "Wrapped token", + "wrapped-token-definition": "Ένα ψηφιακό στοιχείο που βασίζεται σε κρυπτοαλυσίδα και αντιπροσωπεύει ένα άλλο κρυπτονόμισμα ή περιουσιακό στοιχείο σε διαφορετικό δίκτυο. Για παράδειγμα, το <a href=\"/wrapped-eth/#intro-to-weth\">Wrapped Ether (WETH)</a> αντιπροσωπεύει το Ether (ETH) σε μορφή που συμμορφώνεται με το πρότυπο κρυπτονομίσματος <a href=\"/glossary/#erc-20\">ERC-20</a> του Ethereum. Το αρχικό περιουσιακό στοιχείο κλειδώνεται με ασφάλεια από ένα <a href=\"/glossary/#smart-contract\">έξυπνο συμβόλαιο</a> και δημιουργείται ένα ισοδύναμο ψηφιακό στοιχείο. Αυτός ο μηχανισμός επιτρέπει τη διαλειτουργικότητα εντός και μεταξύ της κρυπτοαλυσίδας, επιτρέποντας σε περιουσιακά στοιχεία όπως το ETH να χρησιμοποιούνται απρόσκοπτα σε αποκεντρωμένες εφαρμογές διατηρώντας παράλληλα την αξία τους.", "zero-address-term": "Διεύθυνση με μηδενικά", "zero-address-definition": "Μια διεύθυνση Ethereum, αποτελούμενη εξ ολοκλήρου από μηδενικά, που χρησιμοποιείται συχνά ως διεύθυνση για την αφαίρεση token από την ιδιόκτητη κυκλοφορία. Γίνεται διάκριση μεταξύ των token που έχουν αφαιρεθεί επίσημα από το ευρετήριο ενός έξυπνου συμβολαίου μέσω της μεθόδου burn() και εκείνων που αποστέλλονται σε αυτή τη διεύθυνση.", "zk-proof-term": "Απόδειξη μηδενικής γνώσης", diff --git a/src/intl/el/page-bug-bounty.json b/src/intl/el/page-bug-bounty.json index db018ae650c..b864d02a05f 100644 --- a/src/intl/el/page-bug-bounty.json +++ b/src/intl/el/page-bug-bounty.json @@ -126,7 +126,7 @@ "bug-bounty-faq-q5-content-1": "Στόχος μας είναι να απαντάμε όσο το δυνατόν γρηγορότερα. Μη διστάσετε να μας στείλετε email στο <a href=\"mailto:bounty@ethereum.org\" target=\"_blank\" rel=\"noreferrer\">bounty@ethereum.org</a> εάν δεν έχετε λάβει απάντηση εντός μιας ημέρας ή δύο.", "bug-bounty-faq-q6-title": "Θέλω να είμαι ανώνυμος / Δε θέλω το όνομά μου στον πίνακα των κορυφαίων.", "bug-bounty-faq-q6-contentPreview": "Μπορείτε να το κάνετε αυτό, αλλά μπορεί να σας καθιστά μη κατάλληλο για ανταμοιβές.", - "bug-bounty-faq-q6-content-1": "Η ανώνυμη υποβολή ή με ψευδώνυμο είναι εντάξει, αλλά θα σας κάνει να μην πληροίτε τις προϋποθέσεις για ανταμοιβές ETH/DAI. Για να πληρείτε τα κριτήρια για επιβραβεύσεις σε ETH/DAI, απαιτείται το πραγματικό σας όνομα και μια απόδειξη της ταυτότητάς σας. Η δωρεά της γενναιοδωρίας σας σε φιλανθρωπικό ίδρυμα δεν απαιτεί επιβεβαίωση της ταυτότητά σας.", + "bug-bounty-faq-q6-content-1": "Η ανώνυμη υποβολή ή με ψευδώνυμο είναι αποδεκτή, αλλά θα σας καταστήσει μη επιλέξιμους για ανταμοιβές ETH/DAI. Για να είστε επιλέξιμοι για ανταμοιβές ETH/DAI, απαιτείται η αποστολή του πραγματικού σας ονόματος και ενός αποδεικτικού της ταυτότητάς σας, κρυπτογραφημένου με χρήση PGP στον ασφαλή ιστότοπο μεταφόρτωσης αρχείου, στη νομική μας ομάδα στο Ίδρυμα Ethereum, οι οποίοι είναι οι μοναδικοί αναθεωρητές της τεκμηρίωσης. Η δωρεά του bounty σας σε φιλανθρωπικό ίδρυμα δεν απαιτεί την ταυτότητά σας.", "bug-bounty-faq-q6-content-2": "Ενημερώστε μας εάν δε θέλετε το όνομά σας ή το ψευδώνυμο να εμφανίζεται στον πίνακα των κορυφαίων χρηστών.", "bug-bounty-faq-q7-title": "Γιατί υπάρχει ο πίνακας με τους κορυφαίους χρήστες;", "bug-bounty-faq-q7-contentPreview": "Κάθε ευπάθεια ή πρόβλημα που βρέθηκε και υποβλήθηκε αξιολογείται.", diff --git a/src/intl/el/page-dapps.json b/src/intl/el/page-dapps.json index 541beff9e0e..48dab9640ae 100644 --- a/src/intl/el/page-dapps.json +++ b/src/intl/el/page-dapps.json @@ -89,10 +89,8 @@ "page-dapps-dapp-description-graph": "Ένα πρωτόκολλο ευρετηρίου για δίκτυα ερωτημάτων όπως το Ethereum και το IPFS.", "page-dapps-dapp-description-ipfs": "Ένα πρωτόκολλο υπερμέσων από χρήστη σε χρήστη, σχεδιασμένο να διατηρεί και να αναπτύσσει τη γνώση της ανθρωπότητας κάνοντας τον ιστό αναβαθμίσιμο, ανθεκτικό και πιο ανοιχτό.", "page-dapps-dapp-description-radicle": "Ασφαλής συνεργασία μεταξύ χρηστών για σύνταξη κώδικα χωρίς μεσάζοντες.", - "page-dapps-dapp-description-kyberswap": "Μετατρέψτε και κερδίστε στις καλύτερες τιμές.", "page-dapps-dapp-description-kiwinews": "Βρείτε ενδιαφέρουσες ειδήσεις, άρθρα και προϊόντα Ethereum που επιμελούνται κατασκευαστές για κατασκευαστές. Συζητήστε τα με συναδέλφους προγραμματιστές, ιδρυτές και επενδυτές.", "page-dapps-dapp-description-lido": "Απλοποιημένη και ασφαλής αποθήκευση κεφαλαίου για ψηφιακά στοιχεία.", - "page-dapps-dapp-description-loopring": "Πλατφόρμα συναλλαγών peer-to-peer για περισσότερη ταχύτητα.", "page-dapps-dapp-description-marble-cards": "Δημιουργήστε και ανταλλάξτε μοναδικές ψηφιακές κάρτες με βάση τις διευθύνσεις URL.", "page-dapps-dapp-description-matcha": "Αναζήτηση σε διάφορα ανταλλακτήρια για να σας βοηθήσει να βρείτε τις καλύτερες τιμές.", "page-dapps-dapp-description-meeds": "Κόμβοι κοινότητας Web3 για την εποχή της αποκεντρωμένης εργασίας. Επιβραβεύστε δίκαια και με διαφάνεια τις συνεισφορές που έχουν σημασία.", @@ -115,7 +113,6 @@ "page-dapps-dapp-description-krystal": "Μια πλατφόρμα για πρόσβαση στις αγαπημένες σας υπηρεσίες DeFi.", "page-dapps-dapp-description-rarible": "Δημιουργήστε, πουλήστε και αγοράστε tokenised συλλεκτικά.", "page-dapps-dapp-description-request-finance": "Μια σειρά χρηματοοικονομικών εργαλείων για τιμολόγια, μισθοδοσία και έξοδα σε κρυπτονομίσματα.", - "page-dapps-dapp-description-rubic": "Συλλογή τεχνολογίας μεταξύ αλυσίδων για χρήστες και dApps.", "page-dapps-dapp-description-sablier": "Μεταδώστε χρήματα σε πραγματικό χρόνο.", "page-dapps-dapp-description-spatial": "Δημιουργήστε το δικό σας προσαρμοσμένο άβαταρ και 3D κόσμους", "page-dapps-dapp-description-spruce": "Ένα σύνολο ανοιχτού κώδικα για να αφήσετε τον έλεγχο της ταυτότητας και των δεδομένων εκεί που θα έπρεπε: με τους χρήστες.", @@ -202,13 +199,11 @@ "page-dapps-how-dapps-work-p3": "Μόλις οι dapp εγκατασταθούν στο δίκτυο Ethereum δεν μπορείτε να τις αλλάξετε. Οι dapp μπορούν να αποκεντρωθούν επειδή ελέγχονται από τη λογική που γράφεται στο συμβόλαιο και όχι από ένα άτομο ή μια εταιρεία.", "page-dapps-how-dapps-work-title": "Πώς λειτουργούν οι dapp", "page-dapps-ipfs-logo-alt": "Λογότυπο IPFS", - "page-dapps-kyberswap-logo-alt": "Λογότυπο KyberSwap", "page-dapps-learn-callout-button": "Ξεκινήστε να δημιουργείτε", "page-dapps-learn-callout-description": "Η πύλη προγραμματιστών της κοινότητάς μας έχει έγγραφα, εργαλεία και πλαίσια για να σας βοηθήσει να αρχίσετε να χτίζετε ένα dapp.", "page-dapps-learn-callout-image-alt": "Απεικόνιση ενός χεριού που δημιουργεί το σύμβολο του ETH από lego τουβλάκια.", "page-dapps-learn-callout-title": "Μάθετε να δημιουργείτε μια εφαρμογή", "page-dapps-lido-logo-alt": "Λογότυπο Lido", - "page-dapps-loopring-logo-alt": "Λογότυπο Loopring", "page-dapps-magic-behind-dapps-description": "Οι dapp μπορεί να μοιάζουν με κανονικές εφαρμογές. Αλλά στα παρασκήνια έχουν κάποιες ειδικές ιδιότητες, επειδή κληρονομούν όλες τις υπερδυνάμεις του Ethereum. Αυτό κάνει τις dapp διαφορετικές από τις άλλες εφαρμογές.", "page-dapps-magic-behind-dapps-link": "Τι κάνει το Ethereum μοναδικό;", "page-dapps-magic-behind-dapps-title": "Η μαγεία πίσω από τις dapp", @@ -244,7 +239,6 @@ "page-dapps-ready-description": "Επιλέξτε μια dapp να τη δοκιμάσετε", "page-dapps-ready-title": "Έτοιμοι;", "page-dapps-request-finance-logo-alt": "Αίτημα λογότυπου Χρηματοοικονομικών", - "page-dapps-rubic-logo-alt": "Λογότυπο Rubic", "page-dapps-sablier-logo-alt": "Λογότυπο Sablier", "page-dapps-set-up-a-wallet-button": "Επιλογή πορτοφολιού", "page-dapps-set-up-a-wallet-description": "Ένα πορτοφόλι είναι η “σύνδεση” σας σε μια dapp", @@ -280,10 +274,11 @@ "page-wallets-get-some": "Αποκτήστε ETH", "page-dapps-dapp-description-curve": "Το Curve είναι ένα dex που επικεντρώνεται στα κρύπτο σταθερής αξίας", "page-dapps-curve-image-alt": "Λογότυπο Curve", - "page-dapps-dapp-description-dodo": "Το DODO είναι ένας πάροχος ρευστότητας στην αλυσίδα, ο οποίος αξιοποιεί τον αλγόριθμο Proactive Market Maker (PMM)", - "page-dapps-dodo-image-alt": "Λογότυπο DODO", "page-dapps-dapp-description-artblocks": "Το Art Blocks είναι αφιερωμένο στο να ζωντανεύει συναρπαστικά έργα σύγχρονης τέχνης", "page-dapps-artblocks-image-alt": "Λογότυπο Art Blocks", "page-dapps-explore-title": "Θέλετε να δείτε περισσότερες εφαρμογές;", - "page-dapps-explore": "Δείτε τις εκατοντάδες dapps" + "page-dapps-explore": "Δείτε τις εκατοντάδες dapps", + "page-dapps-dapp-description-across": "Το Across είναι μια γέφυρα πολλαπλών αλυσίδων που επιτρέπει στους χρήστες να μεταφέρουν περιουσιακά στοιχεία μεταξύ διαφορετικών αλυσίδων.", + "page-dapps-dapp-description-hop": "Το Hop είναι μια γέφυρα πολλαπλών αλυσίδων που επιτρέπει στους χρήστες να μεταφέρουν περιουσιακά στοιχεία μεταξύ διαφορετικών αλυσίδων.", + "page-dapps-dapp-description-stargate": "Το Stargate είναι μια γέφυρα πολλαπλών αλυσίδων που επιτρέπει στους χρήστες να μεταφέρουν περιουσιακά στοιχεία μεταξύ διαφορετικών αλυσίδων." } diff --git a/src/intl/el/page-developers-local-environment.json b/src/intl/el/page-developers-local-environment.json index f418697a42d..47d014248ab 100644 --- a/src/intl/el/page-developers-local-environment.json +++ b/src/intl/el/page-developers-local-environment.json @@ -28,8 +28,6 @@ "page-local-environment-setup-subtitle": "Αν είστε έτοιμοι να ξεκινήσετε τη δημιουργία, ήρθε η ώρα να επιλέξετε τη δομή δεδομένων σας.", "page-local-environment-setup-subtitle-2": " Δείτε παρακάτω τα εργαλεία και τα πλαίσια που μπορείτε να χρησιμοποιήσετε για να σας βοηθήσουν να δημιουργήσετε την Ethereum εφαρμογή σας.", "page-local-environment-setup-title": "Εγκαταστήστε το τοπικό σας περιβάλλον ανάπτυξης", - "page-local-environment-solidity-template-desc": "Ένα πρότυπο του GitHub με προρυθμισμένη εγκατάσταση έξυπνου συμβολαίου Solidity. Περιλαμβάνει ένα τοπικό δίκτυο Hardhat, Waffle για δοκιμές, Ethers για εφαρμογή πορτοφολιού και πολλά άλλα.", - "page-local-environment-solidity-template-logo-alt": "Λογότυπο προτύπου Solidity", - "page-local-environment-waffle-desc": "Η πιο προηγμένη βιβλιοθήκη δοκιμών για έξυπνα συμβόλαια. Χρησιμοποιείστε το μόνο του ή με τα Scaffold-eth ή Hardhat.", - "page-local-environment-waffle-logo-alt": "Λογότυπο Waffle" -} + "page-local-environment-solidity-template-desc": "Ένα πρότυπο του GitHub με προρυθμισμένη εγκατάσταση έξυπνου συμβολαίου Solidity. Περιλαμβάνει ένα τοπικό δίκτυο Hardhat, Ethers για εφαρμογή πορτοφολιού και πολλά άλλα.", + "page-local-environment-solidity-template-logo-alt": "Λογότυπο προτύπου Solidity" +} \ No newline at end of file diff --git a/src/intl/el/page-index.json b/src/intl/el/page-index.json index 39a6419492e..3e19e327cb5 100644 --- a/src/intl/el/page-index.json +++ b/src/intl/el/page-index.json @@ -37,10 +37,10 @@ "page-index-cta-dapps-label": "Δοκιμή Εφαρμογών", "page-index-cta-get-eth-description": "Το νόμισμα του Ethereum", "page-index-cta-get-eth-label": "Αγορά ETH", + "page-index-cta-networks-description": "Επωφεληθείτε από τις ελάχιστες χρεώσεις", + "page-index-cta-networks-label": "Επιλογή Δικτύου", "page-index-cta-wallet-description": "Δημιουργία λογαριασμών & διαχείριση περιουσιακών στοιχείων", "page-index-cta-wallet-label": "Επιλογή Πορτοφολιού", - "page-index-cta-build-apps-description": "Δημιουργήστε την πρώτη σας εφαρμογή", - "page-index-cta-build-apps-label": "Ξεκινήστε την ανάπτυξη", "page-index-description": "Η ηγετική πλατφόρμα για καινοτόμες εφαρμογές και δίκτυα κρυπτοαλυσίδων", "page-index-developers-code-example-description-0": "Δημιουργήστε μια τράπεζα που λειτουργεί με λογική προγραμματισμένη από εσάς", "page-index-developers-code-example-description-1": "Δημιουργήστε κρυπτοπαραστατικά που μπορείτε να μεταφέρετε και να χρησιμοποιείτε μεταξύ των εφαρμογών", @@ -83,6 +83,7 @@ "page-index-posts-header": "Πρόσφατες αναρτήσεις", "page-index-posts-subtitle": "Οι πιο πρόσφατες αναρτήσεις ιστολογίου και ενημερώσεις από την κοινότητα", "page-index-title": "Καλώς Ορίσατε στο Ethereum", + "page-index-use-cases-tag": "Περιπτώσεις χρήσης", "page-index-values-description": "Γίνετε μέρος της ψηφιακής επανάστασης", "page-index-values-header": "Το διαδίκτυο αλλάζει", "page-index-values-legacy": "Κληροδοσία", diff --git a/src/intl/el/page-learn.json b/src/intl/el/page-learn.json index fe185f565de..45a26b3557e 100644 --- a/src/intl/el/page-learn.json +++ b/src/intl/el/page-learn.json @@ -121,4 +121,4 @@ "unchained-description": "Εξερευνά σε βάθος στους ανθρώπους που δημιουργούν το αποκεντρωμένο διαδίκτυο, τις λεπτομέρειες αυτής της τεχνολογίας που θα μπορούσαν να στηρίξουν το μέλλον μας και μερικά από τα πιο ακανθώδη θέματα στην κρυπτογράφηση, όπως η διαχείριση, η ασφάλεια και το απόρρητο.", "the-daily-gwei-title": "Το ημερήσιο Gwei", "the-daily-gwei-description": "Ανακεφαλαιώσεις, ενημερώσεις, αναλύσεις και ειδήσεις Ethereum" -} +} \ No newline at end of file diff --git a/src/intl/el/page-stablecoins.json b/src/intl/el/page-stablecoins.json index c3884c2940b..b293715c768 100644 --- a/src/intl/el/page-stablecoins.json +++ b/src/intl/el/page-stablecoins.json @@ -160,7 +160,6 @@ "example-projects": "Παραδείγματα έργων", "gemini-logo": "Λογότυπο Gemini", "gitcoin-logo": "Λογότυπο Gitcoin", - "loopring-logo": "Λογότυπο Loopring", "makerdao-logo": "Λογότυπο MakerDao", "matcha-logo": "Λογότυπο Matcha", "summerfi-logo": "Λογότυπο Summer.fi", diff --git a/src/intl/el/page-upgrades-index.json b/src/intl/el/page-upgrades-index.json index ebef454cff7..a06abf3133f 100644 --- a/src/intl/el/page-upgrades-index.json +++ b/src/intl/el/page-upgrades-index.json @@ -75,7 +75,7 @@ "page-upgrades-question-1-title": "Πότε θα δημοσιευτούν οι αναβαθμίσεις;", "page-upgrades-question-1-desc": "Το Ethereum αναβαθμίζεται κλιμακωτά. Οι αναβαθμίσεις είναι διακριτές από τις διαφορετικές ημερομηνίες δημοσίευσης.", "page-upgrades-question-2-title": "Η Κύρια Αλυσίδα είναι διαφορετικό blockchain;", - "page-upgrades-question-2-desc": "Ναι. Το όνομα «Κύρια Αλυσίδα« (Beacon Chain) δόθηκε σε μια παράλληλη κρυπτοαλυσίδα για την απόδειξη συμμετοχής που χρησιμοποιήθηκε για την αναβάθμιση του Κεντρικού Δικτύου του Ethereum. Πλέον υπάρχει μόνο μία κρυπτοαλυσίδα οποία σχηματίστηκε από τη συγχώνευση της αρχικής κρυπτοαλυσίδας του Ethereum με την Κύρια Αλυσίδα.", + "page-upgrades-question-2-desc": "Ναι. Το όνομα «Κύρια Αλυσίδα» (Beacon Chain) δόθηκε σε μια παράλληλη κρυπτοαλυσίδα για την απόδειξη συμμετοχής που χρησιμοποιήθηκε για την αναβάθμιση του Κεντρικού Δικτύου του Ethereum. Πλέον υπάρχει μόνο μία κρυπτοαλυσίδα οποία σχηματίστηκε από τη συγχώνευση της αρχικής κρυπτοαλυσίδας του Ethereum με την Κύρια Αλυσίδα.", "page-upgrades-question-3-answer-2a": "Οι συνέπειες της Συγχώνευσης για τους προγραμματιστές των αποκεντρωμένων εφαρμογών ήταν ελάχιστες. Εξακολουθούν να αλληλεπιδρούν με το Ethereum όπως πριν.", "page-upgrades-question-3-answer-2a-link": "Η Συγχώνευση και οι προγραμματιστές dapp", "page-upgrades-question-3-answer-2b": "Τα σχέδια τμηματοποίησης είναι ακόμα υπό ανάπτυξη, αλλά θα σχεδιαστούν με γνώμονα τα πακέτα ενημερώσεων του επιπέδου 2.", diff --git a/src/intl/el/page-wallets-find-wallet.json b/src/intl/el/page-wallets-find-wallet.json index e4595b5f0ee..7727d6a438e 100644 --- a/src/intl/el/page-wallets-find-wallet.json +++ b/src/intl/el/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Νέος χρήστης σε αναζήτηση πορτοφολιού για αρχάριους.", "page-find-wallet-nfts-title": "NFTs", "page-find-wallet-nfts-desc": "Πορτοφόλι με υποστήριξη για NFT.", - "page-find-wallet-hodler-title": "Μακροχρόνια", + "page-find-wallet-hodler-title": "Εξοπλισμός", "page-find-wallet-hodler-desc": "Παθητική εκμετάλλευση ψηφιακών στοιχείων με πορτοφόλια υλικού.", "page-find-wallet-finance-title": "Οικονομικά", "page-find-wallet-finance-desc": "Πορτοφόλια που εστιάζουν στη συχνή χρήση εφαρμογών DeFi.", diff --git a/src/intl/el/page-what-is-ethereum.json b/src/intl/el/page-what-is-ethereum.json index 80c4fb89829..e6196851de0 100644 --- a/src/intl/el/page-what-is-ethereum.json +++ b/src/intl/el/page-what-is-ethereum.json @@ -102,7 +102,7 @@ "page-what-is-ethereum-kernel-dreamers": "Kernel", "page-what-is-ethereum-kernel-dreamers-desc": "Το όνειρο του Ethereum", "page-what-is-ethereum-atoms-institutions-blockchains": "Atoms, Ιδρύματα, Blockchains", - "page-what-is-ethereum-atoms-institutions-blockchains-desc": "- Γιατί έχουν σημασία οι blockchain;", + "page-what-is-ethereum-atoms-institutions-blockchains-desc": "- Γιατί έχουν σημασία οι κρυπτοαλυσίδες;", "page-what-is-ethereum-ethereum-in-numbers-title": "Το Ethereum σε αριθμούς", "page-what-is-ethereum-ethereum-in-numbers-stat-1-desc": "Έργα που δημιουργήθηκαν στο Ethereum", "page-what-is-ethereum-ethereum-in-numbers-stat-2-desc": "Λογαριασμοί (πορτοφόλια) με υπόλοιπο σε ΕΤΗ", diff --git a/src/intl/el/template-usecase.json b/src/intl/el/template-usecase.json index 535886b7632..d706fa823da 100644 --- a/src/intl/el/template-usecase.json +++ b/src/intl/el/template-usecase.json @@ -4,6 +4,7 @@ "template-usecase-dropdown-nft": "Μη Εναλλάξιμα Κρυπτοπαραστατικά (NFT)", "template-usecase-dropdown-dao": "Αποκεντρωμένοι αυτόνομοι οργανισμοί (DAOs)", "template-usecase-dropdown-payments": "Πληρωμές Ethereum", + "template-usecase-dropdown-prediction-markets": "Αγορές προβλέψεων", "template-usecase-dropdown-social-networks": "Αποκεντρωμένα κοινωνικά δίκτυα", "template-usecase-dropdown-identity": "Αποκεντρωμένη ταυτότητα", "template-usecase-dropdown-desci": "Αποκεντρωμένη επιστήμη (DeSci)", @@ -12,4 +13,4 @@ "template-usecase-banner": "Οι χρήσεις του Ethereum συνεχώς αναπτύσσονται και εξελίσσονται. Προσθέστε κάθε πληροφορία που νομίζετε ότι θα καταστήσει τα στοιχεία πιο σαφή ή πιο ενημερωμένα.", "template-usecase-edit-link": "Επεξεργασία σελίδας", "template-usecase-dropdown-aria": "Αναδυόμενο μενού πεζών-κεφαλαίων" -} \ No newline at end of file +} diff --git a/src/intl/en/common.json b/src/intl/en/common.json index 8609beb6164..257003888ba 100644 --- a/src/intl/en/common.json +++ b/src/intl/en/common.json @@ -80,6 +80,9 @@ "enterprise": "Enterprise", "enterprise-mainnet": "Enterprise - Mainnet Ethereum", "enterprise-menu": "Enterprise Menu", + "error-page-title": "Oops! Something went wrong", + "error-page-description": "You can help us improve by reporting this issue on our <a href='https://github.com/ethereum/ethereum-org-website/issues/new?label%3A%22bug%20%F0%9F%90%9B%22&template=bug_report.yaml'>GitHub repository</a>.", + "error-page-home-link": "Return to the home page", "esp": "Ecosystem Support Program", "eth-current-price": "Current ETH price (USD)", "ethereum": "Ethereum", @@ -371,6 +374,8 @@ "page-languages-want-more-paragraph": "ethereum.org translators are always translating pages in as many languages as possible. To see what they're working on right now or to sign up to join them, read about our", "page-languages-words": "words", "page-last-updated": "Page last updated", + "page-not-found": "Page not found", + "page-not-found-description": "The requested page could not be found.", "participate": "Participate", "participate-menu": "Participate menu", "payments-page": "Payments", @@ -382,7 +387,7 @@ "product-disclaimer": "Products and services are listed as a convenience for the Ethereum community. Inclusion of a product or service <strong>does not represent an endorsement</strong> from the ethereum.org website team, or the Ethereum Foundation.", "quizzes": "Quizzes", "quizzes-title": "Quiz Hub", - "refresh": "Please refresh the page.", + "refresh": "Refresh page", "regenerative-finance": "ReFi - Regenerative finance", "research": "Research", "research-menu": "Research menu", @@ -445,9 +450,6 @@ "verkle-trees": "Verkle trees", "wallets": "Wallets", "we-couldnt-find-that-page": "We couldn't find that page", - "error-page-title": "Oops! Something went wrong", - "error-page-description": "You can help us improve by reporting this issue on our <a href='https://github.com/ethereum/ethereum-org-website/issues/new?label%3A%22bug%20%F0%9F%90%9B%22&template=bug_report.yaml'>GitHub repository</a>.", - "error-page-home-link": "Return to the home page", "web3": "What is Web3?", "web3-title": "Web3", "website-last-updated": "Website last updated", diff --git a/src/intl/en/page-10-year-anniversary.json b/src/intl/en/page-10-year-anniversary.json index 72bf31acc3d..c8e518cda85 100644 --- a/src/intl/en/page-10-year-anniversary.json +++ b/src/intl/en/page-10-year-anniversary.json @@ -1,4 +1,107 @@ { "page-10-year-anniversary-meta-title": "10 Year Anniversary", - "page-10-year-anniversary-meta-description": "Celebrating 10 years of censorship resistance, 100% uptime, decentralization, community building, developer growth, global collaboration, cypherpunk values, hackathons, censorship resistance, permissionless finance, credible neutrality, the infinite garden, client diversity and more." + "page-10-year-anniversary-meta-description": "Celebrating 10 years of censorship resistance, 100% uptime, decentralization, community building, developer growth, global collaboration, cypherpunk values, hackathons, censorship resistance, permissionless finance, credible neutrality, the infinite garden, client diversity and more.", + "page-10-year-censorship-resistance": "censorship resistance", + "page-10-year-uptime": "100% uptime", + "page-10-year-decentralization": "decentralization", + "page-10-year-community-building": "community building", + "page-10-year-developer-growth": "developer growth", + "page-10-year-global-collaboration": "global collaboration", + "page-10-year-cypherpunk-values": "cypherpunk values", + "page-10-year-hackathons": "hackathons", + "page-10-year-permissionless-finance": "permissionless finance", + "page-10-year-credible-neutrality": "credible neutrality", + "page-10-year-infinite-garden": "the infinite garden", + "page-10-year-client-diversity": "client diversity", + "page-10-year-celebrating": "Celebrating 10 years of", + "page-10-year-hero-title": "A decade of transforming the world one block at a time", + "page-10-year-hero-description": "On July 30, 2015, the Ethereum blockchain was born. The moment the genesis block was mined, it enabled new possibilities for the internet, bringing transformative changes to finance, ownership, and programmability.", + "page-10-year-hero-tagline": "Ten years in, eternity ahead.", + "page-10-year-join-party-title": "Join the party", + "page-10-year-join-party-description": "Celebrate 10 years of Ethereum with the global community. Find a local event or start your own celebration.", + "page-10-year-events-description-1": "Join people around the world for talks, networking, and celebrations as we mark Ethereum's tenth birthday.", + "page-10-year-events-description-2": "Can't make it in person? Watch our livestream and follow updates from events worldwide, so everyone can celebrate this milestone together.", + "page-10-year-host-event-title": "Host an event", + "page-10-year-host-event-description": "Want to host an event? Limited-time grants are available to help fund your event.", + "page-10-year-host-event-cta": "Apply Now", + "page-10-year-innovation-title": "10 years of", + "page-10-year-innovation-subtitle": "Innovation", + "page-10-year-innovation-description-1": "Ethereum transformed blockchain by introducing smart contracts", + "page-10-year-innovation-description-2": "With Ethereum, blockchains changed from a digital ledger, into a programmable platform where code executes automatically when conditions are met.", + "page-10-year-innovation-description-3": "Ethereum's innovation enabled entirely new industries like DeFi, NFTs, and DAOs. It expanded blockchain beyond digital currency into a platform that reimagined how we create and exchange value.", + "page-10-year-adoption-title": "10 years of", + "page-10-year-adoption-subtitle": "Adoption", + "page-10-year-adoption-description-1": "From a whitepaper to 24M+ daily transactions within the Ethereum ecosystem", + "page-10-year-adoption-description-2": "Ethereum has become a global computing platform powering thousands of applications used by millions daily. It spans industries and borders while continuing to expand its use cases.", + "page-10-year-stories-title": "10 years of", + "page-10-year-stories-subtitle": "Stories", + "page-10-year-stories-description-1": "An overview of how Ethereum is used in daily life", + "page-10-year-stories-description-2": "From millions of wallets to every corner of the world, people use Ethereum in ways that inspire. These real stories showcase creativity, freedom, and connection powered by Ethereum.", + "page-10-year-stories-cta": "Share your story", + "page-10-year-ideas-title": "Have an idea for how the community can celebrate?", + "page-10-year-ideas-description": "Onchain artifacts, a worldwide game of Ethereum trivia, the sky's the limit! Reach out with your idea below.", + "page-10-year-ideas-cta": "Submit your Idea", + "page-10-year-event-link": "Go to event", + "page-10-year-countdown-expired": "Ethereum is 10 years old! 🚀", + "page-10-year-countdown-day": "day", + "page-10-year-countdown-days": "days", + "page-10-year-countdown-hour": "hour", + "page-10-year-countdown-hours": "hours", + "page-10-year-countdown-minute": "minute", + "page-10-year-countdown-minutes": "minutes", + "page-10-year-countdown-second": "second", + "page-10-year-countdown-seconds": "seconds", + "page-10-year-banner-header": "10 years of ethereum", + "page-10-year-banner-launch-text": "On July 30, 2015, at 3:44 p.m. UTC, the first block of the Ethereum blockchain came to life.", + "page-10-year-banner-tagline": "Ten years down, infinity to go! 🚀", + "page-10-year-banner-cta": "Join the party", + "page-10-year-stories-read-more": "Read more", + "page-10-year-stories-show-original": "Show original", + "page-10-year-stories-show-english": "Show English", + "page-10-year-stories-original-language": "Original language", + "page-10-year-stories-english-translation": "English translation", + "page-10-year-stories-show-more": "Show more", + "page-10-year-globe-go-to-event": "Go to event", + "page-10-year-innovation-card-1-title": "Ethereum Launch", + "page-10-year-innovation-card-1-date": "July 30, 2015", + "page-10-year-innovation-card-1-description-1": "Ethereum's genesis block went live, launching the \"Frontier\" network. This barebones release gave developers their first chance to build decentralized applications and experiment with smart contracts.", + "page-10-year-innovation-card-1-description-2": "Ethereum's mission: an open internet where users control their data, applications run without gatekeepers, and value flows freely between people.", + "page-10-year-innovation-card-2-title": "DAI: The pioneer stablecoin", + "page-10-year-innovation-card-2-date": "December, 2015", + "page-10-year-innovation-card-2-description-1": "The first decentralized stablecoin launched. DAI maintains a soft peg to the U.S. dollar through cryptocurrency collateral locked in smart contracts.", + "page-10-year-innovation-card-2-description-2": "Unlike centralized stablecoins controlled by companies, DAI is governed by a decentralized autonomous organization (DAO), making it trustless and community-driven.", + "page-10-year-innovation-card-3-title": "CryptoKitties and the NFT Frontier", + "page-10-year-innovation-card-3-date": "November, 2017", + "page-10-year-innovation-card-3-description-1": "CryptoKitties brought digital ownership to life. This early NFT game showed how blockchain could enable new forms of expression, collectibility, and culture online.", + "page-10-year-innovation-card-3-description-2": "It proved Ethereum could scale beyond finance into gaming, art, and digital identity, opening entirely new creative possibilities.", + "page-10-year-innovation-card-4-title": "DeFi Summer", + "page-10-year-innovation-card-4-date": "June, 2020", + "page-10-year-innovation-card-4-description-1": "Explosive DeFi growth redefined how the world thinks about finance. Protocols for lending, trading, and yield generation gained massive momentum, showcasing the power of open, composable financial infrastructure.", + "page-10-year-innovation-card-4-description-2": "This period brought billions in value on-chain and established Ethereum as the home of decentralized finance.", + "page-10-year-innovation-card-5-title": "The Merge update", + "page-10-year-innovation-card-5-date": "September 15, 2022", + "page-10-year-innovation-card-5-description-1": "Ethereum's biggest transformation yet. The network seamlessly transitioned from energy-intensive proof-of-work to proof-of-stake. With billions in value on Ethereum, the change was described as like changing an aircraft's engine mid-flight.", + "page-10-year-innovation-card-5-description-2": "The Merge cut Ethereum's energy consumption by 99.95%, strengthened network security, and set the groundwork for future scaling upgrades.", + "page-10-year-innovation-card-6-title": "Spot ETH ETFs", + "page-10-year-innovation-card-6-date": "May 23, 2024", + "page-10-year-innovation-card-6-description-1": "Wall Street embraces Ethereum. Spot ETH ETFs launched, bringing institutional capital and regulatory legitimacy to the world's leading smart contract platform.", + "page-10-year-innovation-card-6-description-2": "The approval signaled broader acceptance of tokenized real-world assets, with major financial institutions now building on Ethereum to bring everything from real estate to treasury bonds on-chain.", + "page-10-year-adoption-card-1-title": "Decade of Decentralization", + "page-10-year-adoption-card-1-description": "What began as a specialized ecosystem now spans <b>80+ countries</b> with <b>870,000 validators</b>, <b>13,600 physical nodes</b>, and <b>millions of users</b> across continents.", + "page-10-year-adoption-card-1-link-text": "Check Ethereum stats", + "page-10-year-adoption-card-2-title": "10 years, 16 upgrades, 0 downtime", + "page-10-year-adoption-card-2-description": "Ethereum has maintained perfect uptime while continuously evolving. The blockchain has never gone offline.", + "page-10-year-adoption-card-2-link-text": "See Roadmap", + "page-10-year-adoption-card-3-title": "$123 billion in stablecoin market cap", + "page-10-year-adoption-card-3-description": "As of Q2 2025, Ethereum L1 secures over $123 billion in stablecoins, <a href=\"https://defillama.com/stablecoins/chains\">capturing over 50% of the global stablecoin market.</a>", + "page-10-year-adoption-card-3-link-text": "More on stablecoins", + "page-10-year-adoption-card-4-title": "$75 billion secured in Ethereum DeFi", + "page-10-year-adoption-card-4-description": "As of Q2 2025, <a href=\"https://defillama.com/chains\">Ethereum secures over $75 billion in DeFi across its ecosystem.</a>", + "page-10-year-adoption-card-4-link-text": "More on DeFi", + "page-10-year-adoption-card-5-title": "0.01 TWh per year", + "page-10-year-adoption-card-5-description": "Following The Merge, Ethereum's energy consumption dropped dramatically to just <a href=\"https://digiconomist.net/ethereum-energy-consumption\">0.01 TWh per year</a>, down from its peak of 93.95 TWh.", + "page-10-year-adoption-card-5-link-text": "More on Ethereum energy consumption", + "page-10-year-adoption-card-6-title": "Over 250 TPS", + "page-10-year-adoption-card-6-description": "Ethereum's throughput has increased dramatically since launch, with Ethereum's ecosystem now handling over <a href=\"https://l2beat.com/scaling/activity\">250 transactions per second.</a>", + "page-10-year-adoption-card-6-link-text": "More on layer 2s" } diff --git a/src/intl/en/page-developers-index.json b/src/intl/en/page-developers-index.json index f03059ed36b..524d5fb7694 100644 --- a/src/intl/en/page-developers-index.json +++ b/src/intl/en/page-developers-index.json @@ -28,7 +28,7 @@ "page-developers-fundamentals": "Fundamentals", "page-developers-gas-desc": "Ether needed to power transactions", "page-developers-gas-link": "Gas", - "page-developers-get-started": "How would you like to get started?", + "page-developers-get-started": "Experiment with Ethereum", "page-developers-improve-ethereum": "Help us make ethereum.org better", "page-developers-improve-ethereum-desc": "Like ethereum.org, these docs are a community effort. Create a PR if you see mistakes, room for improvement, or new opportunities to help Ethereum developers.", "page-developers-into-eth-desc": "An introduction to blockchain and Ethereum", @@ -41,6 +41,7 @@ "page-developers-intro-stack-desc": "An introduction to the Ethereum stack", "page-developers-js-libraries-desc": "Using JavaScript to interact with smart contracts", "page-developers-js-libraries-link": "JavaScript libraries", + "page-developers-jump-right-in-title": "Quickstart your idea", "page-developers-language-desc": "Using Ethereum with familiar languages", "page-developers-languages": "Programming languages", "page-developers-learn": "Learn Ethereum development", @@ -62,7 +63,10 @@ "page-developers-oracle-desc": "Getting offchain data into your smart contracts", "page-developers-oracles-link": "Oracles", "page-developers-play-code": "Play with code", + "page-developers-quickstart-scaffold-subtext": "Bootstrap your Ethereum app stack in seconds.", + "page-developers-quickstart-scaffold-docs": "Read Scaffold-ETH 2 docs", "page-developers-read-docs": "Read the docs", + "page-developers-resources": "Resources", "page-developers-scaling-desc": "Solutions for faster transactions", "page-developers-scaling-link": "Scaling", "page-developers-smart-contract-security-desc": "Security measures to consider during development of smart contracts", @@ -71,10 +75,12 @@ "page-developers-setup-desc": "Get your stack ready for building by configuring a development environment.", "page-developers-smart-contracts-desc": "The logic behind dapps – self-executing agreements", "page-developers-smart-contracts-link": "Smart contracts", + "page-developers-solidity-docs": "Read the Solidity docs", "page-developers-speedrunethereum-title": "Learn all the most important concepts by building on Ethereum", + "page-developers-speedrunethereum-description": "Hands-on challenges such as building NFTs, DEXs in a step-by-step tutorial series.", "page-developers-speedrunethereum-link": "SpeedRun Ethereum", "page-developers-stack": "The stack", - "page-developers-start": "Start experimenting", + "page-developers-start": "Start with guided challenges", "page-developers-start-desc": "Want to experiment first, ask questions later?", "page-developers-storage-desc": "How to handle dapp storage", "page-developers-storage-link": "Storage", diff --git a/src/intl/en/page-index.json b/src/intl/en/page-index.json index 3888609c1df..ba8b74c5939 100644 --- a/src/intl/en/page-index.json +++ b/src/intl/en/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Recent posts", "page-index-posts-subtitle": "The latest blog posts and updates from the community", "page-index-title": "Welcome to Ethereum", + "page-index-use-cases-tag": "Use cases", "page-index-values-description": "Be part of the digital revolution", "page-index-values-header": "The internet is changing", "page-index-values-legacy": "Legacy", diff --git a/src/intl/en/page-stablecoins.json b/src/intl/en/page-stablecoins.json index cce55447cb4..81619b2698b 100644 --- a/src/intl/en/page-stablecoins.json +++ b/src/intl/en/page-stablecoins.json @@ -1,5 +1,8 @@ { "page-stablecoins-accordion-borrow-crypto-collateral": "Crypto collateral", + "page-stablecoins-usdc-banner-body": "USDC is the largest US-regulated fiat-backed stablecoin. Its value is pegged to the US dollar, issued by Circle, and is widely used.", + "page-stablecoins-usdc-banner-learn-button": "Learn about USDC", + "page-stablecoins-usdc-banner-swap-button": "Get USDC", "page-stablecoins-accordion-borrow-crypto-collateral-copy": "With Ethereum you can borrow directly from other users without trading away your ETH. This can give you leverage – some do this to try to accumulate more ETH.", "page-stablecoins-accordion-borrow-crypto-collateral-copy-p2": "But because ETH’s price is volatile, you’ll need to overcollateralise. That means if you want to borrow 100 stablecoins you’ll probably need at least $150 worth of ETH. This protects the system and the lenders.", "page-stablecoins-accordion-borrow-crypto-collateral-link": "More on crypto-backed stablecoins", @@ -23,10 +26,8 @@ "page-stablecoins-accordion-buy-text-preview": "A lot of exchanges and wallets let you buy stablecoins directly. Geographical restrictions will apply.", "page-stablecoins-accordion-buy-title": "Buy", "page-stablecoins-accordion-buy-warning": "Centralized exchanges may only list fiat-backed stablecoins like USDC, Tether, and others. You may not be able to buy them directly, but you should be able to exchange them from ETH or other cryptocurrencies that you can buy on the platform.", - "page-stablecoins-accordion-earn-project-1-description": "Mostly technical work for the open-source software movement.", "page-stablecoins-accordion-earn-project-2-description": "Technology, content, and other work for the MakerDao community (the team that brought you Dai).", "page-stablecoins-accordion-earn-project-3-description": "When you really know your stuff, find bugs to earn Dai.", - "page-stablecoins-accordion-earn-project-bounties": "Gitcoin bounties", "page-stablecoins-accordion-earn-project-bug-bounties": "Consensus layer bug bounties", "page-stablecoins-accordion-earn-project-community": "MakerDao community", "page-stablecoins-accordion-earn-projects-copy": "These are platforms that will pay you in stablecoins for your work.", @@ -47,7 +48,7 @@ "page-stablecoins-accordion-swap-editors-tip-copy": "Get yourself a wallet that will let you buy ETH and swap it for tokens, including stablecoins, directly.", "page-stablecoins-accordion-swap-pill": "Recommended", "page-stablecoins-accordion-swap-requirement-1": "An Ethereum wallet", - "page-stablecoins-accordion-swap-requirement-1-description": "You’ll need a wallet to authorise the swap and store your coins", + "page-stablecoins-accordion-swap-requirement-1-description": "You’ll need a wallet to authorize the swap and store your coins", "page-stablecoins-accordion-swap-requirement-2": "Ether (ETH)", "page-stablecoins-accordion-swap-requirement-2-description": "To pay for the swap", "page-stablecoins-accordion-swap-text-preview": "You can pick up most stablecoins on decentralized exchanges. So you can swap any tokens you might have for a stablecoin you want.", @@ -56,7 +57,6 @@ "page-stablecoins-algorithmic-con-1": "You need to trust (or be able to read) the algorithm.", "page-stablecoins-algorithmic-con-2": "Your balance of coins will change based on total supply.", "page-stablecoins-algorithmic-description": "These stablecoins aren't backed by any other asset. Instead an algorithm will sell tokens if the price falls below the desired value and supply tokens if the value goes beyond the desired amount. Because the number of these tokens in circulation changes regularly, the number of tokens you own will change, but will always reflect your share.", - "page-stablecoins-algorithmic-disclaimer": "Algorithmic stablecoins are experimental technology. You should be aware of the risks before using them.", "page-stablecoins-algorithmic-pro-1": "No collateral needed.", "page-stablecoins-algorithmic-pro-2": "Controlled by a public algorithm.", "page-stablecoins-bank-apy": "0.05%", @@ -69,15 +69,10 @@ "page-stablecoins-crypto-backed": "Crypto backed", "page-stablecoins-crypto-backed-con-1": "Less stable than fiat-backed stablecoins.", "page-stablecoins-crypto-backed-con-2": "You need to keep an eye on the value of the crypto collateral.", - "page-stablecoins-crypto-backed-description": "These stablecoins are backed by other crypto assets, like ETH. Their price depends on the value of the underlying asset (or collateral), which can be volatile. Because ETH's value can fluctuate, these stablecoins are overcollateralised to ensure the price stays as stable as possible. This means it's closer to say that a $1 crypto backed stablecoin has an underlying crypto asset worth at least $2. So if the price of ETH drops, more ETH must be used to back the stablecoin, else the stablecoins will lose their value.", + "page-stablecoins-crypto-backed-description": "These stablecoins are backed by other crypto assets, like ETH. Their price depends on the value of the underlying asset (or collateral), which can be volatile. Because ETH's value can fluctuate, these stablecoins are overcollateralised to ensure the price stays as stable as possible. This means it's closer to say that a $1 crypto backed stablecoin has an underlying crypto asset worth at least $2. So if the price of ETH drops, more ETH must be used to back the stablecoin, else the stablecoins will lose their value. Note that some crypto-backed stablecoins like DAI also use centralized stablecoins as part of their backing.", "page-stablecoins-crypto-backed-pro-1": "Transparent and fully decentralized.", "page-stablecoins-crypto-backed-pro-2": "Quick to turn into other crypto assets.", "page-stablecoins-crypto-backed-pro-3": "No external custodians – all assets are controlled by Ethereum accounts.", - "page-stablecoins-dai-banner-body": "Dai is probably the most famous decentralized stablecoin. Its value is roughly a dollar and it’s accepted widely across dapps.", - "page-stablecoins-dai-banner-learn-button": "Learn about Dai", - "page-stablecoins-dai-banner-swap-button": "Swap ETH for Dai", - "page-stablecoins-dai-banner-title": "Dai", - "page-stablecoins-dai-logo": "The Dai logo", "page-stablecoins-editors-choice": "Editors' choices", "page-stablecoins-editors-choice-intro": "These are probably the best-known examples of stablecoins right now and the coins we've found useful when using dapps.", "page-stablecoins-explore-dapps": "Explore dapps", @@ -101,7 +96,7 @@ "page-stablecoins-precious-metals": "Precious metals", "page-stablecoins-precious-metals-con-1": "Centralized – someone must issue the tokens.", "page-stablecoins-precious-metals-con-2": "You need to trust the token issuer and the precious metal reserves.", - "page-stablecoins-precious-metals-description": "Like fiat-backed coins, instead these stablecoins use resources like gold to maintain their value.", + "page-stablecoins-precious-metals-description": "Like fiat-backed coins, instead these stablecoins use resources like gold to maintain their value. These are 'stable' in that their price is consistently pegged to the value of another asset, and are akin to onchain ownership tracking of <a href=\"/real-world-assets/\">real-world assets</a>", "page-stablecoins-precious-metals-pro-1": "Safe against crypto volatility.", "page-stablecoins-prices": "Stablecoin prices", "page-stablecoins-prices-definition": "Stablecoins are cryptocurrencies without the volatility. They share a lot of the same powers as ETH but their value is steady, more like a traditional currency. So you have access to stable money that you can use on Ethereum. ", @@ -118,6 +113,7 @@ "page-stablecoins-stablecoins-dapp-description-2": "Lend stablecoins and earn interest and $COMP, Compound's own token.", "page-stablecoins-stablecoins-dapp-description-3": "A trading platform where you can earn interest on your Dai and USDC.", "page-stablecoins-stablecoins-dapp-description-4": "An app designed for saving Dai.", + "page-stablecoins-stablecoins-dapp-description-5": "A protocol for lending and borrowing on Ethereum supporting many stablecoin options.", "page-stablecoins-stablecoins-feature-1": "Stablecoins are global, and can be sent over the internet. They're easy to receive or send once you have an <a href=\"/glossary/#account\">Ethereum account</a>.", "page-stablecoins-stablecoins-feature-2": "Demand for stablecoins is high, so you can earn interest for lending yours. Make sure you're aware of the risks before lending.", "page-stablecoins-stablecoins-feature-3": "Stablecoins are exchangeable for ETH and other Ethereum tokens. Lots of <a href=\"/glossary/#dapp\">dapps</a> rely on stablecoins.", @@ -126,27 +122,55 @@ "page-stablecoins-stablecoins-table-header-column-1": "Currency", "page-stablecoins-stablecoins-table-header-column-2": "Market capitalization", "page-stablecoins-stablecoins-table-header-column-3": "Collateral type", + "page-stablecoins-stablecoins-table-header-column-4": "Peg", "page-stablecoins-stablecoins-table-type-crypto-backed": "Crypto", "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Precious metals", "page-stablecoins-table-error": "Couldn't load stablecoins. Try refreshing the page.", "page-stablecoins-title": "Stablecoins", "page-stablecoins-meta-title": "Stablecoins explained: What are they for?", - "page-stablecoins-top-coins": "Top stablecoins by market capitalisation", - "page-stablecoins-top-coins-intro": "Market capitalisation is", + "page-stablecoins-top-coins": "Top stablecoins by market capitalization", + "page-stablecoins-top-coins-intro": "Market capitalization is", "page-stablecoins-top-coins-intro-code": "the total number of tokens that exist multiplied by the value per token. This list is dynamic and the projects listed here are not necessarily endorsed by the ethereum.org team.", "page-stablecoins-types-of-stablecoin": "How they work: types of stablecoin", - "page-stablecoins-usdc-banner-body": "USDC is probably the most famous fiat-backed stablecoin. Its value is roughly a dollar and it’s backed by Circle and Coinbase.", - "page-stablecoins-usdc-banner-learn-button": "Learn about USDC", - "page-stablecoins-usdc-banner-swap-button": "Swap ETH for USDC", - "page-stablecoins-usdc-banner-title": "USDC", "page-stablecoins-usdc-logo": "The USDC logo", + "page-stablecoins-usdt-banner-body": "Tether USD (USDT) is the largest fiat-backed stablecoin by market capitalization. Its value is pegged at $1 USD and its reserves are managed by Tether Limited.", + "page-stablecoins-usdt-banner-swap-button": "Swap ETH for USDT", + "page-stablecoins-usdt-banner-learn-button": "Learn about USDT", + "page-stablecoins-usdt-logo": "The USDT logo", + "page-stablecoins-usds-banner-body": "USDS is the successor to Dai, fully backed by crypto and designed for onchain savings and rewards. Widely used in DeFi for while keeping users in full control of their funds.", + "page-stablecoins-usds-banner-swap-button": "Swap ETH for USDS", + "page-stablecoins-usds-banner-learn-button": "Learn about USDS", + "page-stablecoins-usds-logo": "The USDS logo", + "page-stablecoins-gho-banner-body": "GHO is a decentralized multi-collateral stablecoin created by Aave. It uses a hybrid model that combines crypto-collateralized backing with a community governance approach.", + "page-stablecoins-gho-banner-swap-button": "Swap ETH for GHO", + "page-stablecoins-gho-banner-learn-button": "Learn about GHO", + "page-stablecoins-gho-logo": "The GHO logo", + "page-stablecoins-glo-banner-body": "Glo Dollar (USDGLO) is a stablecoin that donates all profits to public goods and charities. By holding or using Glo Dollar, you help fund causes like fighting poverty and supporting open-source—at no extra cost to you.", + "page-stablecoins-glo-banner-swap-button": "Buy GLO", + "page-stablecoins-glo-banner-learn-button": "Learn about GLO", + "page-stablecoins-glo-logo": "The USDGLO logo", + "page-stablecoins-hai-banner-title": "HAI", + "page-stablecoins-hai-banner-body": "HAI is a decentralized, ETH-backed stablecoin by Let's Get HAI focused on censorship resistance and public goods. It's designed with minimal governance and prioritizes stability without compromising on decentralization values.", + "page-stablecoins-hai-banner-swap-button": "Mint HAI with ETH", + "page-stablecoins-hai-banner-learn-button": "Learn about HAI", + "page-stablecoins-hai-logo": "The HAI logo", + "page-stablecoins-lusd-banner-title": "LUSD", + "page-stablecoins-lusd-banner-body": "LUSD is a decentralized stablecoin from Liquity that's exclusively backed by ETH with a minimum collateralization ratio of 110%. It features interest-free borrowing, algorithmic liquidations, and minimal governance, making it highly censorship-resistant.", + "page-stablecoins-lusd-banner-swap-button": "Swap ETH for LUSD", + "page-stablecoins-lusd-banner-learn-button": "Learn about LUSD", + "page-stablecoins-lusd-logo": "The LUSD logo", "page-stablecoins-why-stablecoins": "Why stablecoins?", "page-stablecoins-how-they-work-button": "How they work", "page-stablecoins-why-stablecoins-body": "ETH, like Bitcoin, has a volatile price because it's new technology. So you may not want to spend it regularly. Stablecoins mirror the value of traditional currencies to give you access to stable money that you can use on Ethereum.", "page-stablecoins-more-defi-button": "More on decentralized finance (DeFi)", "page-stablecoins-tools-title": "Learn more about stablecoins", "page-stablecoins-tools-stablecoinswtf-description": "Stablecoins.wtf offers a dashboard with historical market data, statistics, and educational content for the most prominent stablecoins.", + "page-stablecoins-tools-stablepulse-description": "Provides a clear, accurate, and minimally filtered view of the stablecoin ecosystem with analytics across tokens and chains.", + "page-stablecoins-tools-stablesinfo-description": "live stablecoin leaderboard and dashboard, tracking supply and onchain data for all major stablecoins and chains.", + "page-stablecoins-tools-dune-description": "Dashboard delivering real-time insights into stablecoin supply, liquidity, trading volume, and adoption across blockchains.", + "page-stablecoins-tools-visa-description": "Dashboard visualizing the movement, supply, and usage of fiat-backed stablecoins across public blockchains.", + "page-stablecoins-tools-stablewars-description": "Analytics leaderboard and dashboard, tracking balances, transfers, and rankings for stablecoins across multiple blockchains.", "page-dapps-ready-button": "Go", "pros": "Pros", "cons": "Cons", @@ -158,10 +182,15 @@ "coinmama-logo": "Coinmama logo", "compound-logo": "Compound logo", "example-projects": "Example projects", + "page-stablecoins-filter-by-type": "Filter by type", + "page-stablecoins-reset-list": "Reset list", + "page-stablecoins-show-more": "Show more", + "page-stablecoins-no-results": "No stablecoins match the current filters", "gemini-logo": "Gemini logo", "gitcoin-logo": "Gitcoin logo", "makerdao-logo": "MakerDao logo", "matcha-logo": "Matcha logo", + "sparkfi-logo": "Spark Protocol logo", "summerfi-logo": "Summer.fi logo", "uniswap-logo": "Uniswap logo", "page-stablecoins-go-to": "Go to" diff --git a/src/intl/en/page-start.json b/src/intl/en/page-start.json new file mode 100644 index 00000000000..f15af68cbee --- /dev/null +++ b/src/intl/en/page-start.json @@ -0,0 +1,10 @@ +{ + "page-start-meta-title": "Start with crypto", + "page-start-meta-description": "Your gateway to the world of ethereum", + "page-start-hero-alt": "Start with crypto", + "page-start-title": "Get started with Ethereum", + "page-start-subtitle": "Ethereum is so much more than just trading tokens on an exchange. Step into the new world yourself and learn all the basics in just few steps.", + "page-start-share-section-title": "Do you know anyone who needs help to onboard?", + "page-start-share-section-description": "Billions can't open bank accounts or freely use their money. Ethereum's financial system is always open and unbiased.", + "page-start-man-doge-alt": "Man Doge" +} diff --git a/src/intl/es/common.json b/src/intl/es/common.json index 96a7d12c16c..85f5187e9c1 100644 --- a/src/intl/es/common.json +++ b/src/intl/es/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Ejecute hardware doméstico y contribuya personalmente a la seguridad y a la descentralización de la red Ethereum.", "nav-staking-solo-label": "Participación en solitario", "nav-start-building-description": "Información útil para principiantes", + "nav-start-with-crypto-title": "Empieza aquí", + "nav-start-with-crypto-description": "Tus primeros pasos con Ethereum", "nav-translation-program-description": "Una iniciativa de colaboración para traducir ethereum.org a todos los idiomas", "nav-tutorials-description": "Lista seleccionada de tutoriales de la comunidad", "nav-use-cases-description": "Descubra diferentes ideas de usos de Ethereum", diff --git a/src/intl/es/page-index.json b/src/intl/es/page-index.json index 3b8a1934923..46d3c2ed4d4 100644 --- a/src/intl/es/page-index.json +++ b/src/intl/es/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Publicaciones recientes", "page-index-posts-subtitle": "Las últimas publicaciones de blog y actualizaciones de la comunidad", "page-index-title": "Bienvenidos a Ethereum", + "page-index-use-cases-tag": "Casos de uso", "page-index-values-description": "Sea parte de la revolución digital", "page-index-values-header": "Internet está cambiando", "page-index-values-legacy": "Legado", diff --git a/src/intl/fa/common.json b/src/intl/fa/common.json index 412d516805a..2ce8009bbfc 100644 --- a/src/intl/fa/common.json +++ b/src/intl/fa/common.json @@ -333,6 +333,8 @@ "nav-staking-solo-description": "سخت‌افزار خانگی را اجرا کنید و شخصاً امنیت و تمرکززدایی شبکه اتریوم را بیشتر کنید", "nav-staking-solo-label": "سهام گذاری انفرادی", "nav-start-building-description": "اطلاعات مفید برای افراده تازه وارد", + "nav-start-with-crypto-title": "از اینجا شروع کنید", + "nav-start-with-crypto-description": "اولین گام‌های شما با اتریوم", "nav-translation-program-description": "تلاش جمعی برای ترجمه ethereum.org به همه زبان‌ها", "nav-tutorials-description": "لیست تهیه‌شده از آموزش‌های انجمن", "nav-use-cases-description": "ایده‌های مختلف برای استفاده از اتریوم را کشف کنید", diff --git a/src/intl/fa/page-contributing-translation-program-acknowledgements.json b/src/intl/fa/page-contributing-translation-program-acknowledgements.json index 2e4d753a7c3..6c309360674 100644 --- a/src/intl/fa/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/fa/page-contributing-translation-program-acknowledgements.json @@ -30,7 +30,7 @@ "page-contributing-translation-program-acknowledgements-total-words": "کل واژه ها", "page-contributing-translation-program-acknowledgements-oats-title": "OATها", "page-contributing-translation-program-acknowledgements-1": "مشارکت کنندگان در برنامه ترجمه واجد شرایط OAT های مختلف (توکن های موفقیت زنجیره‌ای) هستند - توکن های غیرقابل تعویض که مشارکت آنها در برنامه ترجمه ethereum.org را ثابت می کند.", - "page-contributing-translation-program-acknowledgements-2": "ما بر اساس فعالیت مترجمان، OATهای مختلف برای آنها داریم", + "page-contributing-translation-program-acknowledgements-2": "ما براساس فعالیت مترجمان، OATهای مختلفی برای آن‌ها در نظر می‌گیریم.", "page-contributing-translation-program-acknowledgements-3": "اگر به تلاش گروهی ترجمه در پلتفرم Crowdin کمک کرده اید، یک OAT در انتظار شماست!", "page-contributing-translation-program-acknowledgements-how-to-claim-title": "چگونه درخواست کنید", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "پیوستن به ما", diff --git a/src/intl/fa/page-index.json b/src/intl/fa/page-index.json index fc790ff9827..7bebf4051cd 100644 --- a/src/intl/fa/page-index.json +++ b/src/intl/fa/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "پست‌های اخیر", "page-index-posts-subtitle": "آخرین پست‌های وبلاگ و به‌روزرسانی‌ها از جامعه", "page-index-title": "به اتریوم خوش‌ آمدید", + "page-index-use-cases-tag": "موارد استفاده", "page-index-values-description": "بخشی از انقلاب دیجیتال باشید", "page-index-values-header": "اینترنت در حال تغییر است", "page-index-values-legacy": "میراث", diff --git a/src/intl/fa/page-learn.json b/src/intl/fa/page-learn.json index 0d51b987651..3d1c7dc7d44 100644 --- a/src/intl/fa/page-learn.json +++ b/src/intl/fa/page-learn.json @@ -121,4 +121,4 @@ "unchained-description": "کسانی را که در حال ساخت اینترنت غیرمتمرکز هستند، جزئیات این فناوری که می تواند پایه آینده ما را بسازد، و بعضی از مشکل زا ترین موضوعات کریپتو، مثل قانون گذاری، امنیت و حریم خصوصی را به تفصیل توضیح می‌دهد", "the-daily-gwei-title": "Gwei روزانه", "the-daily-gwei-description": "خلاصه ها، به روزرسانی ها و تحلیل اخبار اتریوم" -} +} \ No newline at end of file diff --git a/src/intl/fa/page-wallets-find-wallet.json b/src/intl/fa/page-wallets-find-wallet.json index b1238e4591e..ead47467b35 100644 --- a/src/intl/fa/page-wallets-find-wallet.json +++ b/src/intl/fa/page-wallets-find-wallet.json @@ -6,7 +6,7 @@ "page-find-wallet-last-updated": "آخرین بروزرسانی", "page-find-wallet-meta-description": "کیف‌های پول‌ اتریوم را مطابق ویژگی‌های مد نظرتان بیابید و مقایسه کنید.", "page-find-wallet-meta-title": "لیست کیف‌پول‌های اتریوم | ethereum.org", - "page-find-wallet-title": "کیف پول خود را انتخاب کنید", + "page-find-wallet-title": "کیف پولتان را انتخاب کنید", "page-find-wallet-try-removing": "حذف یک یا دو ویژگی را امتحان کنید", "page-stake-eth": "اتر را سهام گذاری کنید", "page-find-wallet-open-source": "منبع‌باز", @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "کاربر تازه‌کار به دنبال یک کیف‌پول مبتدی است.", "page-find-wallet-nfts-title": "توکن‌های غیرقابل تعویض", "page-find-wallet-nfts-desc": "کیف‌پول‌هایی با تمرکز بر پشتیبانی از NFT.", - "page-find-wallet-hodler-title": "طولانی مدت", + "page-find-wallet-hodler-title": "سخت‌افزار", "page-find-wallet-hodler-desc": "نگهداری پسیو توکن با کیف‌پول‌های سخت‌افزاری.", "page-find-wallet-finance-title": "امور مالی", "page-find-wallet-finance-desc": "کیف‌پول‌هایی با تمرکز بر استفاده مکرر از اپلیکیشن هایی دیفای(DeFi).", diff --git a/src/intl/fa/template-usecase.json b/src/intl/fa/template-usecase.json index dc9e1528ae7..989832e1810 100644 --- a/src/intl/fa/template-usecase.json +++ b/src/intl/fa/template-usecase.json @@ -4,6 +4,7 @@ "template-usecase-dropdown-nft": "توکن‌های معاوضه‌ناپذیر (NFTها)", "template-usecase-dropdown-dao": "سازمان‌های خودمختار غیرمتمرکز (DAOها)", "template-usecase-dropdown-payments": "پرداخت‌های اتریوم", + "template-usecase-dropdown-prediction-markets": "بازارهای پیش‌بینی", "template-usecase-dropdown-social-networks": "شبکه های مجازی غیرمتمرکز", "template-usecase-dropdown-identity": "هویت غیرمتمرکز", "template-usecase-dropdown-desci": "دانش غیرمتمرکز (DeSci)", @@ -12,4 +13,4 @@ "template-usecase-banner": "کاربردهای اتریوم همواره در حال توسعه و تکامل هستند. هرگونه اطلاعاتی را که فکر می‌کنید مسائل را شفاف‌تر و به‌روزتر می‌کند اضافه کنید.", "template-usecase-edit-link": "ویرایش صفحه", "template-usecase-dropdown-aria": "منوی کشویی موارد استفاده" -} \ No newline at end of file +} diff --git a/src/intl/fi/common.json b/src/intl/fi/common.json index 346898d73c6..223b36489a7 100644 --- a/src/intl/fi/common.json +++ b/src/intl/fi/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Ylläpidä kotilaitteistoa ja lisää henkilökohtaisesti Ethereum-verkon tietoturvaa ja hajautusta", "nav-staking-solo-label": "Panostus soolona", "nav-start-building-description": "Tarpeellista tietoa aloittelijoille", + "nav-start-with-crypto-title": "Aloita tästä", + "nav-start-with-crypto-description": "Ensiaskeleesi Ethereumilla", "nav-translation-program-description": "Yhteistyöprojekti ethereum.org-sivuston kääntämiseksi kaikille kielille", "nav-tutorials-description": "Huolellisesti valikoituja yhteisöoppaita", "nav-use-cases-description": "Löydä erilaisia ideoita Ethereumin käyttöön", diff --git a/src/intl/fi/page-index.json b/src/intl/fi/page-index.json index d74042b3331..54c2e2a0f76 100644 --- a/src/intl/fi/page-index.json +++ b/src/intl/fi/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Viimeaikaiset viestit", "page-index-posts-subtitle": "Viimeisimmät blogijulkaisut ja päivitykset yhteisöltä", "page-index-title": "Tervetuloa Ethereumiin", + "page-index-use-cases-tag": "Käyttötapaukset", "page-index-values-description": "Ole osa digitaalista vallankumousta", "page-index-values-header": "Internet on muuttumassa", "page-index-values-legacy": "Vanha", diff --git a/src/intl/fil/common.json b/src/intl/fil/common.json index 246e20b1e54..c457285d6ed 100644 --- a/src/intl/fil/common.json +++ b/src/intl/fil/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Patakbuhin ang home hardware at personal na magdagdag sa seguridad at decentralization ng Ethereum network", "nav-staking-solo-label": "Solo staking", "nav-start-building-description": "Kapaki-pakinabang na impormasyon para sa mga baguhan", + "nav-start-with-crypto-title": "Magsimula rito", + "nav-start-with-crypto-description": "Ang iyong unang mga hakbang sa paggamit ng Ethereum", "nav-translation-program-description": "Isang sama-samang pagsisikap upang isalin ang ethereum.org sa lahat ng wika", "nav-tutorials-description": "Isang piniling listahan ng mga tutorial ng komunidad", "nav-use-cases-description": "Matuklasan ang iba't ibang ideya ng paggamit ng Ethereum", diff --git a/src/intl/fil/page-index.json b/src/intl/fil/page-index.json index 1e9177fbc92..9468c1b5535 100644 --- a/src/intl/fil/page-index.json +++ b/src/intl/fil/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Mga kamakailang post", "page-index-posts-subtitle": "Ang pinakabagong mga post na blog at update mula sa komunidad", "page-index-title": "Welcome sa Ethereum", + "page-index-use-cases-tag": "Mga use case", "page-index-values-description": "Maging bahagi ng digital na rebolusyon", "page-index-values-header": "Nagbabago ang internet", "page-index-values-legacy": "Pamana", diff --git a/src/intl/fr/common.json b/src/intl/fr/common.json index fed0da510ce..d42212d803b 100644 --- a/src/intl/fr/common.json +++ b/src/intl/fr/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Faites fonctionner votre propre matériel et contribuez ainsi à la sécurité et la décentralisation du réseau Ethereum", "nav-staking-solo-label": "Mise en jeu en solo", "nav-start-building-description": "Informations utiles pour les nouveaux venus", + "nav-start-with-crypto-title": "Commencez ici", + "nav-start-with-crypto-description": "Vos premiers pas avec Ethereum", "nav-translation-program-description": "Un effort collaboratif pour traduire ethereum.org dans toutes les langues", "nav-tutorials-description": "Liste de tutoriels de la communauté", "nav-use-cases-description": "Découvrez des idées originales d'utilisation d'Ethereum", diff --git a/src/intl/fr/glossary-tooltip.json b/src/intl/fr/glossary-tooltip.json index 97a20387b15..746904505a1 100644 --- a/src/intl/fr/glossary-tooltip.json +++ b/src/intl/fr/glossary-tooltip.json @@ -85,7 +85,7 @@ "index-definition": "Structure réseau destinée à optimiser la sollicitation d'informations à travers la <a href=\"/glossary/#blockchain\">blockchain</a> en fournissant un chemin efficace vers sa source de stockage.", "key-term": "Clé", "key-definition": "Dans le contexte d'Ethereum, les clés sont des codes numériques : une clé publique pour recevoir des transactions et une clé privée pour accéder aux fonds et les envoyer.", - "layer-2-term": "Niveau 2", + "layer-2-term": "Couche 2", "layer-2-definition": "Les couches de niveau 2 sont d'autres réseaux construits sur le réseau principal d’Ethereum pour rendre les transactions plus rapides et moins chères. <a href=\"/layer-2/\">En savoir plus sur la couche de niveau 2</a>.", "liquidity-tokens-term": "Jetons de liquidité", "liquidity-tokens-definition": "Les jetons de liquidité (LT) sont des jetons numériques émis à l'intention des participants qui déposent des actifs dans un pool de liquidité, ce dernier étant un ensemble de fonds verrouillés dans un contrat intelligent et utilisés pour faciliter les échanges sur une bourse décentralisée (DEX).", @@ -101,8 +101,8 @@ "node-definition": "Un client logiciel qui participe au réseau. <a href=\"/developers/docs/nodes-and-clients/\">En savoir plus sur les nœuds et les clients</a>.", "ommer-term": "Bloc oncle (ommer)", "ommer-definition": "Lorsqu'un <a href=\"/glossary/#miner\">mineur</a> en preuve de travail trouve un <a href=\"/glossary/#block\">bloc</a> valide, un autre mineur peut avoir publié un bloc concurrent qui est ajouté en premier à l'extrémité de la blockchain. Ce bloc valide, mais périmé, peut être inclus par des blocs plus récents en tant qu'<em>ommers</em> et recevoir une récompense de bloc partielle. Le terme « ommer » est le terme de genre neutre préféré pour désigner le frère ou la sœur d'un bloc parent, mais il est parfois également appelé « oncle ». Cela était frequent pour Ethereum lorsqu'il s'agissait d'un réseau basé sur la <a href=\"/glossary/#pow\">preuve de travail</a>. Maintenant qu'Ethereum utilise la <a href=\"/glossary/#pos\">preuve d'enjeu</a>, un seul proposeur de bloc est sélectionné par créneau.", - "on-chain-term": "En chaîne", - "on-chain-definition": "Fait référence aux actions ou transactions qui se produisent sur la blockchain et qui sont accessibles au public.", + "onchain-term": "Sur la chaîne", + "onchain-definition": "Fait référence aux actions ou transactions qui se produisent sur la blockchain et qui sont accessibles au public.", "optimistic-rollup-term": "Rollup optimisé", "optimistic-rollup-definition": "Le rollup optimiste est une solution de couche 2 qui accélère les transactions sur Ethereum, en supposant qu’elles soient valides par défaut, sauf si elles sont contestées. <a href=\"/developers/docs/scaling/optimistic-rollups/\">En savoir plus sur les rollups optimistes</a>.", "peer-to-peer-network-term": "Réseaux Pair-à-Pair", @@ -150,7 +150,7 @@ "validator-term": "Validateur", "validator-definition": "Un <a href=\"/glossary/#node\">nœud</a> dans un système de <a href=\"/glossary/#pos\">preuve d'enjeu</a> responsable du stockage des données, du traitement des transactions et de l'ajout de nouveaux blocs à la blockchain. Pour activer le logiciel de validation, vous devez être en mesure de <a href=\"/glossary/#staking\">miser</a> 32 ETH. <a href=\"/staking/\">En savoir plus sur la mise en jeu dans Ethereum</a>.", "validity-proof-term": "Preuve de validité", - "validity-proof-definition": "Un modèle de sécurité pour certaines solutions de <a href=\"/glossary/#layer-2\">couche 2</a> où, pour augmenter la vitesse, les transactions sont regroupées en lots et soumises à Ethereum en une seule transaction. Le calcul des transactions est effectué en hors chaîne, puis fourni à la chaîne principale avec une preuve de leur validité. Cette méthode permet d'augmenter le nombre de transactions possibles tout en maintenant la sécurité. Certains <a href=\"/glossary/#rollups\">rollups</a> utilisent des <a href=\"/glossary/#fraud-proof\">preuves de fraude</a>. <a href=\"/developers/docs/scaling/zk-rollups/\">En savoir plus sur les rollups à connaissance nulle</a>.", + "validity-proof-definition": "Un modèle de sécurité pour certaines solutions de <a href=\"/glossary/#layer-2\">couche 2</a> où, pour augmenter la vitesse, les transactions sont regroupées en lots et soumises à Ethereum en une seule transaction. Le calcul des transactions est effectué hors chaîne, puis fourni à la chaîne principale avec une preuve de leur validité. Cette méthode permet d'augmenter le nombre de transactions possibles tout en maintenant la sécurité. Certains <a href=\"/glossary/#rollups\">rollups</a> utilisent des <a href=\"/glossary/#fraud-proof\">preuves de fraude</a>. <a href=\"/developers/docs/scaling/zk-rollups/\">En savoir plus sur les rollups Zk</a>.", "wallet-term": "Portefeuille", "wallet-definition": "Un portefeuille est un outil numérique permettant de stocker, d'envoyer et de recevoir de la monnaie numérique, comme une bourse virtuelle pour votre argent en ligne. <a href=\"/wallets/\">En savoir plus sur les portefeuilles Ethereum</a>.", "web2-term": "Web2", diff --git a/src/intl/fr/learn-quizzes.json b/src/intl/fr/learn-quizzes.json index 2c99095717c..49149a3c0b0 100644 --- a/src/intl/fr/learn-quizzes.json +++ b/src/intl/fr/learn-quizzes.json @@ -348,7 +348,7 @@ "daos-3-a-label": "Généralement hiérarchiques", "daos-3-a-explanation": "Les DAO sont généralement horizontales et entièrement démocratiques.", "daos-3-b-label": "Transparentes et entièrement publiques concernant leurs activités", - "daos-3-b-explanation": "Grâce au vote en chaîne, les décisions sont transparentes sur la blockchain. Les discussions et autres éléments du processus de prise de décision sont ouverts à tous les membres.", + "daos-3-b-explanation": "Grâce au vote sur la chaîne, les décisions sont transparentes sur la blockchain. Les discussions et autres éléments du processus de prise de décision sont ouverts à tous les membres.", "daos-3-c-label": "Contrôlées par un groupe central", "daos-3-c-explanation": "Les changements sont soumis au vote des membres. Les services proposés sont gérés automatiquement de manière décentralisée.", "daos-3-d-label": "Restreintes concernant les personnes pouvant proposer des changements", @@ -370,7 +370,7 @@ "daos-5-c-label": "Adhésion basée sur la réputation", "daos-5-c-explanation": "Contrairement à l'adhésion basée sur les jetons ou les parts, les DAO basées sur la réputation ne transfèrent pas la propriété aux contributeurs. Les membres de la DAO doivent gagner leur réputation par leur participation.", "daos-5-d-label": "Conseil exécutif et gestion de trésorerie hors chaîne", - "daos-5-d-explanation": "Cette approche utilise des mécanismes de gouvernance hautement centralisés et opaques. A contrario, les DAO utilisent des mécanismes de vote vérifiables et une gestion de trésorerie en chaîne pour garantir la transparence et la responsabilité.", + "daos-5-d-explanation": "Cette approche utilise des mécanismes de gouvernance hautement centralisés et opaques. A contrario, les DAO utilisent des mécanismes de vote vérifiables et une gestion de trésorerie sur la chaîne pour garantir la transparence et la responsabilité.", "staking-solo-1-prompt": "Qu'est-ce qui est vrai à propos du slashing ?", "staking-solo-1-a-label": "Pénalité pour être hors ligne, les récompenses reprennent une fois de retour en ligne", "staking-solo-1-a-explanation": "Être hors ligne n'entraîne PAS de slashing. De petites pénalités sont encourues pour être hors ligne, et les récompenses reprennent lorsque le validateur revient en ligne et reprend les attestations.", diff --git a/src/intl/fr/page-index.json b/src/intl/fr/page-index.json index 925b197df43..76d7ebc63df 100644 --- a/src/intl/fr/page-index.json +++ b/src/intl/fr/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Articles récents", "page-index-posts-subtitle": "Les derniers articles de blog et mises à jour de la communauté", "page-index-title": "Bienvenue sur Ethereum", + "page-index-use-cases-tag": "Cas d'usage", "page-index-values-description": "Faites partie de la révolution numérique", "page-index-values-header": "Internet est en train de changer", "page-index-values-legacy": "Système traditionnel", diff --git a/src/intl/fr/page-layer-2-networks.json b/src/intl/fr/page-layer-2-networks.json new file mode 100644 index 00000000000..8b2718feb83 --- /dev/null +++ b/src/intl/fr/page-layer-2-networks.json @@ -0,0 +1,85 @@ +{ + "page-layer-2-networks-hero-description": "Utiliser Ethereum aujourd’hui, c’est interagir avec des centaines de réseaux et d’applications différents, tous soutenus par Ethereum en tant qu’infrastructure de base.", + "page-layer-2-networks-meta-title": "Couche de niveau 2 Ethereum : explorez les réseaux", + "page-layer-2-networks-more-advanced-title": "Vous cherchez un descriptif plus détaillé ?", + "page-layer-2-networks-more-advanced-descripton-1": "Beaucoup de ces projets sont", + "page-layer-2-networks-more-advanced-descripton-2": "encore récents et en partie expérimentaux.", + "page-layer-2-networks-more-advanced-descripton-3": "Pour en savoir plus sur la technologie, les risques et les mécanismes de confiance propres à ces réseaux, nous vous recommandons de consulter L2BEAT, qui propose un cadre d’évaluation des risques complet pour chaque projet, ainsi que growthepie, qui fournit des analyses de données générales.", + "page-layer-2-networks-more-advanced-link-1": "Consultez le site l2beat.com", + "page-layer-2-networks-more-advanced-link-2": "Consultez le site growthepie.xyz", + "page-layer-2-networks-callout-1-title": "Quels sont les avantages?", + "page-layer-2-networks-callout-1-description": "La robustesse et la sécurité d’Ethereum permettent d'obtenir une plateforme sur laquelle d’autres réseaux peuvent se construire.", + "page-layer-2-networks-callout-2-title": "Envie d’en savoir plus ?", + "page-layer-2-networks-callout-2-description": "Vous souhaitez connaître la technologie et les raisons derrière cette approche de mise à l’échelle ? Découvrez les réflexions et les différentes approches technologiques qui la sous-tendent.", + "page-layer-2-networks-n/a-label": "N/A", + "page-layer-2-networks-n/a-description": "Non applicable au réseau principal d’Ethereum.", + "page-layer-2-networks-robust-label": "Robuste", + "page-layer-2-networks-robust-description": "Réseau entièrement décentralisé et sécurisé, qui ne peut être ni manipulé ni arrêté par un individu ou un groupe, y compris ses créateurs.\n\nC’est un réseau qui incarne pleinement la vision de décentralisation d’Ethereum.", + "page-layer-2-networks-maturing-label": "En cours de maturation", + "page-layer-2-networks-maturing-description": "Un réseau en transition vers la décentralisation. Un groupe d’acteurs peut encore être en mesure d’arrêter le réseau dans des situations extrêmes.", + "page-layer-2-networks-developing-label": "En développement", + "page-layer-2-networks-developing-description": "Un opérateur centralisé gère le réseau, mais le réseau dispose de mécanismes de sécurité réduisant les risques liés à la centralisation.", + "page-layer-2-networks-emerging-label": "Émergeant", + "page-layer-2-networks-emerging-description": "Un opérateur centralisé gère le réseau. Les données sont publiquement visibles sur Ethereum, ce qui permet de vérifier si l’opérateur agit de manière honnête.", + "page-layer-2-networks-network-maturity": "Maturité du réseau", + "page-layer-2-networks-network-maturity-with-colon": "Maturité du réseau :", + "page-layer-2-networks-network-maturity-description": "Examine le stade de développement, les risques liés à l’utilisation du réseau et la taille de son écosystème.", + "page-layer-2-networks-summary-metric": "Il s’agit d’une mesure récapitulative basée sur une analyse des risques réalisée par", + "page-layer-2-networks-no-results-title": "Aucun résultat", + "page-layer-2-networks-no-results-description": "Aucun réseau ne correspond à vos critères. Essayez d’ajouter des filtres", + "page-layer-2-networks-reset-filters": "Réinitialiser les filtres", + "page-layer-2-networks-age": "Âge", + "page-layer-2-networks-show-how-long": "Indique depuis combien de temps le réseau est opérationnel.", + "page-layer-2-networks-data-from": "Données provenant de", + "page-layer-2-networks-period": ".", + "page-layer-2-networks-wallet-support": "Portefeuilles compatibles", + "page-layer-2-networks-how-many-wallet-support": "Indique le nombre d'applications de portefeuilles compatibles avec le réseau.", + "page-layer-2-networks-active-address": "Adresses actives", + "page-layer-2-networks-active-address-weekly": "Adresses actives (hebdomadaire)", + "page-layer-2-networks-active-address-number": "Nombre d’adresses actives sur le réseau au cours des 7 derniers jours.", + "page-layer-2-networks-fee-token": "Jeton de frais", + "page-layer-2-networks-token-used-to-pay": "Le jeton utilisé pour payer les transactions et l’utilisation du réseau.", + "page-layer-2-networks-network-usage": "Utilisation du réseau", + "page-layer-2-networks-network-usage-overview": "Un aperçu de l’utilisation du réseau. Mesure le nombre de transactions dans les différentes catégories au cours des 30 derniers jours.", + "page-layer-2-networks-no-data-available": "Aucune donnée disponible", + "page-layer-2-networks-links": "Liens", + "page-layer-2-networks-official-website": "Site officiel", + "page-layer-2-networks-risk-analysis": "Analyse de risque", + "page-layer-2-networks-assessment-by-l2beat": "Évaluation par L2BEAT", + "page-layer-2-networks-detailed-analytics": "Analyse détaillée", + "page-layer-2-networks-assessment-by-growthepie": "Évaluation par growthepie", + "page-layer-2-networks-bridge-to": "Bridge to", + "page-layer-2-networks-view-apps": "Voir les applications", + "page-layer-2-networks-select-wallet": "Sélectionner un portefeuille", + "page-layer-2-networks-search-wallets": "Rechercher des portefeuilles...", + "page-layer-2-networks-no-wallet-found": "Aucun portefeuille trouvé", + "page-layer-2-networks-robust-description-1": "Un réseau entièrement décentralisé et sécurisé, qui ne peut être ni modifié ni arrêté par un individu ou un groupe, y compris ses créateurs.", + "page-layer-2-networks-robust-description-2": "Il s'agit d'un réseau qui réalise la vision de décentralisation portée par Ethereum.", + "page-layer-2-networks-developing-description-1": "Un opérateur unique gère le réseau, offrant une visibilité publique des données pour garantir la transparence.", + "page-layer-2-networks-emerging-description-1": "Un opérateur unique gère le réseau de manière privée et œuvre à plus de transparence.", + "page-layer-2-networks-networks-showing": "Réseaux affichés", + "page-layer-2-networks-market-share": "Part de marché", + "page-layer-2-networks-market-share-description": "Valeur totale des contrats de dépôt fiduciaire sur Ethereum.", + "page-layer-2-networks-avg-transaction-fee": "Frais de transaction moyen", + "page-layer-2-networks-transaction-fee": "Frais de transaction", + "page-layer-2-networks-transaction-fee-description": "Le coût moyen des transactions pour les transferts, échanges, frappes et autres activités.", + "page-layer-2-networks-transaction-see-networks": "Voir les réseaux", + "page-layer-2-network-maturity-component-1": "Nous examinons les avancées du réseau vers", + "page-layer-2-network-maturity-component-2": "Alignement avec Ethereum", + "page-layer-2-network-maturity-component-3": "valeur totale verrouillée (TVL)", + "page-layer-2-network-maturity-component-4": "durée en production active", + "page-layer-2-network-maturity-component-5": "et considérations liées aux risques", + "page-layer-2-network-maturity-component-6": "Ces niveaux aident à suivre le développement du réseau et fournissent à la communauté un moyen normalisé d'évaluer les progrès accomplis.", + "page-layer-2-network-maturity-component-7": "Le progrès technique à lui seul ne suffit pas : l’adoption par les utilisateurs et l’ancienneté sont des éléments essentiels de la solidité et de la maturité globales de tout réseau.", + "page-layer-2-network-maturity-component-8": "Maturité", + "page-layer-2-network-maturity-component-9": "Conditions requises", + "page-layer-2-network-maturity-component-10": "• Phase 2", + "page-layer-2-network-maturity-component-11": "• Au moins 1 milliard de dollars de TVL", + "page-layer-2-network-maturity-component-12": "• Phase 1", + "page-layer-2-network-maturity-component-13": "• Au moins 150 millions de dollars de TVL", + "page-layer-2-network-maturity-component-14": "• Plus de 6 mois en production active", + "page-layer-2-network-maturity-component-15": "• Phase 0", + "page-layer-2-network-maturity-component-16": "• Évaluation des risques : 3/5 (L2beat)", + "page-layer-2-network-maturity-component-17": "• Évaluation des risques : 2/5 (L2beat)", + "page-layer-2-network-maturity-component-18": "• Au moins 150 millions de dollars en TVL ou plus de 6 mois en production active" +} diff --git a/src/intl/fr/page-learn.json b/src/intl/fr/page-learn.json index 688f1b74f65..8e58146847e 100644 --- a/src/intl/fr/page-learn.json +++ b/src/intl/fr/page-learn.json @@ -64,7 +64,7 @@ "emerging-use-cases-title": "Cas d'utilisation émergents", "emerging-use-cases-description": "Il y a également d'autres industries importantes en cours de création ou d'amélioration avec Ethereum:", "play-to-earn": "Jeux Play-to-earn (P2E)", - "fundraising-through-quadratic-funding": "Collecte de fonds grâce à au financement quadratique", + "fundraising-through-quadratic-funding": "Collecte de fonds grâce au financement quadratique", "supply-chain-management": "Gestion de la chaîne d'approvisionnement", "more-on-ethereum-use-cases": "Plus d'infos sur les cas d'utilisation d'Ethereum", "more-on-ethereum-use-cases-link": "La blockchain dans les pays en développement", @@ -121,4 +121,4 @@ "unchained-description": "Pousse profondément dans les gens qui construisent l'internet décentralisé, les détails de cette technologie qui pourraient soutenir notre avenir, et certains des sujets les plus épineux dans les cryptomonnaies, tels que la réglementation, la sécurité et la confidentialité", "the-daily-gwei-title": "The Daily Gwei", "the-daily-gwei-description": "Récapitulatifs, mises à jour et analyses Ethereum" -} +} \ No newline at end of file diff --git a/src/intl/fr/page-stablecoins.json b/src/intl/fr/page-stablecoins.json index 4dd2de666d0..30904168fce 100644 --- a/src/intl/fr/page-stablecoins.json +++ b/src/intl/fr/page-stablecoins.json @@ -160,7 +160,6 @@ "example-projects": "Exemples de projets", "gemini-logo": "Logo Gemini", "gitcoin-logo": "Logo Gitcoin", - "loopring-logo": "Logo Loopring", "makerdao-logo": "Logo MakerDao", "matcha-logo": "Logo Matcha", "summerfi-logo": "Logo de Summer.fi", diff --git a/src/intl/fr/page-staking.json b/src/intl/fr/page-staking.json index fcbe225b0f8..a985439db34 100644 --- a/src/intl/fr/page-staking.json +++ b/src/intl/fr/page-staking.json @@ -10,7 +10,7 @@ "comp-withdrawal-comparison-new-link": "Visitez la plateforme de lancement de mise en jeu", "comp-withdrawal-credentials-placeholder": "Index du validateur", "comp-withdrawal-credentials-error": "Oups ! Vérifiez le numéro d'index du validateur et réessayez.", - "comp-withdrawal-credentials-upgraded-1": "L'index du validateur {{validatorIndex}} est prêt à recevoir des récompenses !", + "comp-withdrawal-credentials-upgraded-1": "L'index du validateur {validatorIndex} est prêt à recevoir des récompenses !", "comp-withdrawal-credentials-upgraded-2": "Retrait des informations d'identification liées à l'adresse d'exécution :", "comp-withdrawal-credentials-not-upgraded-1": "Ce validateur doit être mis à jour.", "comp-withdrawal-credentials-not-upgraded-1-testnet": "Ce validateur de réseau de test Holesky doit être mis à jour.", diff --git a/src/intl/fr/page-upgrades-index.json b/src/intl/fr/page-upgrades-index.json index ae5e7644a0a..041e0320034 100644 --- a/src/intl/fr/page-upgrades-index.json +++ b/src/intl/fr/page-upgrades-index.json @@ -54,7 +54,7 @@ "page-upgrades-eth-blog": "blog ethereum.org", "page-upgrades-explore-btn": "Explorez les améliorations", "page-upgrades-get-involved": "Participez à la mise à niveau d'Ethereum", - "page-upgrades-get-involved-2": "S’engager", + "page-upgrades-get-involved-2": "S’impliquer", "page-upgrades-head-to-ethresearch": "Visitez ethresear.ch", "page-upgrades-help": "Souhaitez-vous aider à mettre à niveau Ethereum ?", "page-upgrades-help-desc": "Il existe de nombreuses opportunités pour participer aux mises à niveau d'Ethereum, aider à réaliser des tests, et même gagner des récompenses.", @@ -97,7 +97,7 @@ "page-upgrades-question-6-answer-5": "Vous pouvez également vous joindre à la discussion sur la recherche et le développement Ethereum sur ethresear.ch.", "page-upgrades-question-6-title": "Que dois-je faire avec ma dApp ?", "page-upgrades-question-6-desc": "La Fusion a été conçue de façon à n'avoir qu'un impact minimal sur les développeurs de dApp, mais quelques petits changements méritent d'être signalés.", - "page-upgrades-question-6-answer-1": "Les développeurs dApp familiers avec la pré-fusion Ethereum devraient être au courant de certaines modifications. Ces changements incluent la structure et la synchronisation des blocs, quelques modifications d'opcodes, les sources d’aléa en chaîne et le concept de finalisation de période.", + "page-upgrades-question-6-answer-1": "Les développeurs dApp familiers avec Ethereum pré-fusion devraient être au courant de certaines modifications. Ces changements incluent la structure et la synchronisation des blocs, quelques modifications d'opcodes, les sources d’aléa en chaîne et le concept de finalisation de période.", "page-upgrades-question-6-answer-1-link": "Comment La Fusion affecte la couche d'application d'Ethereum", "page-upgrades-question-6-answer-2": "Les applications n'ont presque pas été affectées.", "page-upgrades-question-7-desc": "De nombreuses équipes de toute la communauté travaillent sur les différentes mises à niveau d'Ethereum.", diff --git a/src/intl/fr/page-wallets-find-wallet.json b/src/intl/fr/page-wallets-find-wallet.json index c0518d8a9d5..e698db3d15d 100644 --- a/src/intl/fr/page-wallets-find-wallet.json +++ b/src/intl/fr/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Débutant recherchant un portefeuille pour démarrer.", "page-find-wallet-nfts-title": "NFTs", "page-find-wallet-nfts-desc": "Portefeuilles qui se concentrent sur le support de NFT.", - "page-find-wallet-hodler-title": "Long terme", + "page-find-wallet-hodler-title": "Matériel", "page-find-wallet-hodler-desc": "Détention passive de jetons sur un portefeuille matériel.", "page-find-wallet-finance-title": "Finance", "page-find-wallet-finance-desc": "Portefeuilles qui se concentrent sur une utilisation fréquente des apps DeFi.", diff --git a/src/intl/fr/template-usecase.json b/src/intl/fr/template-usecase.json index 4cc466fa08d..b50c0f2c131 100644 --- a/src/intl/fr/template-usecase.json +++ b/src/intl/fr/template-usecase.json @@ -1,8 +1,10 @@ { + "template-usecase-dropdown-ai-agents": "Agents IA", "template-usecase-dropdown-defi": "Finance décentralisée (DeFi)", "template-usecase-dropdown-nft": "Jetons non fongibles (NFT)", "template-usecase-dropdown-dao": "Organisations Autonomes Décentralisées (DAO)", "template-usecase-dropdown-payments": "Paiements Ethereum", + "template-usecase-dropdown-prediction-markets": "Marchés prédictifs", "template-usecase-dropdown-social-networks": "Réseaux sociaux décentralisés", "template-usecase-dropdown-identity": "Identité décentralisée", "template-usecase-dropdown-desci": "La science décentralisée (DeSci)", @@ -11,4 +13,4 @@ "template-usecase-banner": "Les utilisations d'Ethereum sont en cours de développement et d'évolution. Si vous pensez à une information qui rendra les choses plus claires ou plus à jour, ajoutez la.", "template-usecase-edit-link": "Modifier la page", "template-usecase-dropdown-aria": "Menu déroulant du cas d'utilisation" -} \ No newline at end of file +} diff --git a/src/intl/ga/common.json b/src/intl/ga/common.json index c730adfad97..510f45d6334 100644 --- a/src/intl/ga/common.json +++ b/src/intl/ga/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Úsáid chrua-earraí baile agus cuir le slándáil agus le dílárú líonra Ethereum ar bhonn pearsanta", "nav-staking-solo-label": "Geallchur aonair", "nav-start-building-description": "Eolas úsáideach do dhaoine nua", + "nav-start-with-crypto-title": "Tosaigh anseo", + "nav-start-with-crypto-description": "Do chéad chéimeanna le Ethereum", "nav-translation-program-description": "Iarracht chomhoibríoch ethereum.org a aistriú go dtí gach teanga", "nav-tutorials-description": "Liosta coimeádta de ranganna teagaisc pobail", "nav-use-cases-description": "Faigh amach smaointe éagsúla maidir le húsáid Ethereum", diff --git a/src/intl/ga/glossary-tooltip.json b/src/intl/ga/glossary-tooltip.json index 9e6a986584c..4a634e57e5c 100644 --- a/src/intl/ga/glossary-tooltip.json +++ b/src/intl/ga/glossary-tooltip.json @@ -63,9 +63,9 @@ "events-definition": "Ceadaíonn sé saoráidí logála <a href=\"/glossary/#evm\">EVM</a> a úsáid. Is féidir le <a href=\"/glossary/#dapp\">Dapps</a> éisteacht le haghaidh imeachtaí agus iad a úsáid chun aisghlaonna JavaScript a spreagadh sa chomhéadan úsáideora. <a href=\"/developers/docs/smart-contracts/anatomy/#events-and-logs\">Tuilleadh faoi imeachtaí agus logaí</a>", "execution-client-term": "Cliant forghníomhaithe", "execution-client-definition": "Tá sé de chúram ar chliaint fhorghníomhaithe (ar a dtugtaí \"cliaint Eth1 roimhe seo\"), mar shampla Besu, Erigon, Go-Ethereum (Geth), Nethermind, idirbhearta a phróiseáil agus a chraoladh agus staid Ethereum a bhainistiú. Ritheann siad na ríomhanna do gach idirbheart ag baint úsáide as an <a href=\"/glossary/#evm\">Meaisín Fíorúil Ethereum</a> chun a chinntiú go leantar rialacha an phrótacail.", - "execution-layer-term": "Ciseal forghníomhaithe", + "execution-layer-term": "Ciseal reatha", "execution-layer-definition": "Is é ciseal forghníomhaithe Ethereum an líonra de <a href=\"/glossary/#execution-client\">cliaint forghníomhaithe</a>.", - "finality-term": "Críochtúlacht", + "finality-term": "Críochnúlacht", "finality-definition": "Is éard atá i gcríochúlacht ná ráthaíocht nach féidir sraith idirbheart a athrú gan méid ollmhór ETH a chailleadh.", "fork-term": "Forc", "fork-definition": "Athrú prótacail is cúis le cruthú slabhra malartach.", @@ -115,7 +115,7 @@ "poap-definition": "Úsáidtear Prótacal Cruthúnas Tinrimh chun inbhailithe digiteach (NFT) a chruthú a chruthaíonn gur fhreastail tú ar imeacht nó ar ghníomhaíocht ar leith.", "pos-term": "Cruthúnas-de-gealláil (PoS)", "pos-definition": "Modh trína bhfuil sé mar aidhm ag prótacal criptea-airgeadra blocshlabhra <a href=\"/glossary/#consensus\">comhthola</a> a bhaint amach. Iarrann PoS ar úsáideoirí úinéireacht a chruthú ar mhéid áirithe criptea-airgeadra (a \"geallta\" sa líonra) d'fhonn a bheith in ann páirt a ghlacadh i mbailíochtú na n-idirbheart. <a href=\"/developers/docs/consensus-mechanisms/pos/\">Tuilleadh faoi chruthúnas</a>.", - "pow-term": "Cruthúnas-de-oibre (PoW)", + "pow-term": "Cruthúnas-oibre (PoW)", "pow-definition": "Meicníocht slándála le haghaidh blocshlabhra a éilíonn nóid fuinneamh a chaitheamh i bhfoirm ríomh chun luach áirithe a fháil.", "public-goods-term": "Earraí poiblí", "public-goods-definition": "Is féidir le gach duine earraí poiblí a úsáid saor in aisce, mar pháirceanna nó aer glan, agus ní chuireann sé bac ar dhaoine eile iad a úsáid freisin. Is minic a sholáthraíonn rialtais iad seo mar ní gnách le gnólachtaí, mar ní féidir leo táille a ghearradh go héasca ar dhaoine as iad a úsáid.", @@ -125,7 +125,7 @@ "quadratic-voting-definition": "Is modh vótála é ina gcuireann vótálaithe in iúl cé chomh láidir agus a mhothaíonn siad faoi cheisteanna. Ligeann sé do vótálaithe ní hamháin tosaíocht a thaispeáint, ach freisin déine a rogha.", "recovery-phrase-term": "Frása síolta/frása aisghabhála", "recovery-phrase-definition": "Liosta focal a thugtar duit nuair a chruthaíonn tú sparán digiteach. Feidhmíonn sé mar fhocal faire a chuideoidh leat dul ar ais isteach i do sparán má chailleann tú rochtain, ag cinntiú nach gcaillfidh tú do chuid airgid digiteach nó comharthaí.", - "rollups-term": "Rollups", + "rollups-term": "Uas-scáluithe", "rollups-definition": "Cineál <a href=\"/glossary/#layer-2\">ciseal 2</a> réitigh scálaithe a bhaisceann idirbhearta iolracha agus a chuireann faoi bhráid <a href=\"/glossary/#mainnet\">príomhshlabhra Ethereum</a> in aon idirbheart amháin. Ligeann sé seo do laghduithe ar chostais <a href=\"/glossary/#gas\">gáis</a> agus méaduithe ar thréchur <a href=\"/glossary/#transaction\">idirbheart</a>. Tá rolladh suas dóchasach agus nialais eolais ann a úsáideann modhanna slándála éagsúla chun na gnóthachain inscálaithe seo a thairiscint. <a href=\"/developers/docs/scaling/#rollups\">Tuilleadh maidir le rolladh suas</a>.", "rpc-term": "Glao ar nós imeachta cianda (RPC)", "rpc-definition": "Ligeann RPC do ríomhaire amháin sonraí nó gníomh a iarraidh ó dhuine eile thar líonra, amhail faisnéis a iarraidh le cianrialtán.", @@ -133,21 +133,21 @@ "sequencer-definition": "Is clár é seicheamhóir atá freagrach as idirbhearta a ordú i líonra blocshlabhra.", "smart-contract-term": "Conradh cliste", "smart-contract-definition": "Is clár é conradh cliste a fhorghníomhaíonn go huathoibríoch comhaontuithe ar blocshlabhra, cosúil le conradh digiteach féin-fhorfheidhmithe. <a href=\"/smart-contracts/\">Réamhrá ar chonarthaí cliste</a>.", - "stablecoin-term": "Stablecoin", - "stablecoin-definition": "Is cineál criptea-airgeadra é stablecoin atá deartha chun luach cobhsaí a bheith aige, go minic pegáilte chuig airgeadra nó tráchtearraí (cosúil le dollar SAM), chun luaineacht praghsanna a íoslaghdú. <a href=\"/stablecoins/\">Tuilleadh ar bhoinn stáblaí</a>.", + "stablecoin-term": "Bonn stábla", + "stablecoin-definition": "Is cineál criptea-airgeadra stablecoin atá deartha chun luach cobhsaí a bheith aige, go minic pionnáilte le hairgeadra nó tráchtearraí (cosúil le dollar SAM), chun luaineacht praghsanna a íoslaghdú. <a href=\"/stablecoins/\">Tuilleadh ar stablecoin</a>.", "staking-term": "Geallchur", - "staking-definition": "Cainníocht <a href=\"/glossary/#ether\">éitear</a> (do gheall) a thaisceadh le bheith i do bhailitheoir agus an <a href=\"/glossary/#network\">líonra</a> a dhaingniú. Seiceálann bailíochtóir <a href=\"/glossary/#transaction\">idirbhearta</a> agus molann sé <a href=\"/glossary/#block\">bloic</a> faoi shamhail <a href=\"/glossary/#pos\">cruthúnas-de-gealláil</a>. Tugann geallála dreasacht eacnamaíoch duit chun gníomhú ar mhaithe le leas an líonra. Gheobhaidh tú luaíochtaí as do chuid dualgas <a href=\"/glossary/#validator\">bhailíochtóir</a> a dhéanamh, ach caillfidh tú méideanna éagsúla ETH mura ndéanann tú é. <a href=\"/staking/\">Tuilleadh faoi geallála Ethereum</a>.", + "staking-definition": "Cainníocht <a href=\"/glossary/#ether\">éitear</a> (do gheall) a thaisceadh le bheith i do bhailitheoir agus an <a href=\"/glossary/#network\">líonra</a> a dhaingniú. Seiceálann bailíochtóir <a href=\"/glossary/#transaction\">idirbhearta</a> agus molann sé <a href=\"/glossary/#block\">bloic</a> faoi shamhail chomhthola<a href=\"/glossary/#pos\">cruthúnas-geallála</a>. Tugann gealláil dreasacht eacnamaíoch duit chun gníomhú ar mhaithe le leas an líonra. Gheobhaidh tú luaíochtaí as do chuid dualgas <a href=\"/glossary/#validator\">bhailíochtóir</a> a dhéanamh, ach caillfidh tú méideanna éagsúla ETH mura ndéanann tú é. <a href=\"/staking/\">Tuilleadh faoi gealláil Ethereum</a>.", "staking-pool-term": "Linn snámha geallála", - "staking-pool-definition": "An ETH comhcheangailte de níos mó ná gealltóir Ethereum amháin, a úsáidtear chun an 32 ETH a theastaíonn chun sraith eochracha bailíochtóra a ghníomhachtú a bhaint amach. Úsáideann oibritheoir nóid na heochracha seo chun páirt a ghlacadh i gcomhthoil agus roinntear na <a href=\"/glossary/#block-reward\">bloc luaíochtaí</a> idir na geallsealbhóirí rannpháirteacha. Ní ó dhúchas do phrótacal Ethereum ná linnte cruachta nó stacáil a tharmligean, ach tá go leor réitigh tógtha ag an bpobal. <a href=\"/staking/pools/\">Tuilleadh maidir le geallta comhthiomsaithe</a>.", - "sybil-attack-term": "Sybil ionsaí", - "sybil-attack-definition": "Tagraíonn ionsaithe Sybil do dhaoine aonair a bheith ag breacadh síos córas chun smaoineamh gur daoine iolracha iad chun a dtionchar a mhéadú.", + "staking-pool-definition": "ETH comhcheangailte de níos mó ná gealltóir Ethereum amháin, a úsáidtear chun an 32 ETH, a theastaíonn chun sraith eochracha bailíochtóra a ghníomhachtú a bhaint amach. Úsáideann oibritheoir nóid na heochracha seo chun páirt a ghlacadh i gcomhthoil agus roinntear na <a href=\"/glossary/#block-reward\">bloc luaíochtaí</a> idir na páirtithe leasmhara rannpháirteacha. Ní ó dhúchas do phrótacal Ethereum ná stóir gheallála nó gealláil a tharmligean, ach tá go leor réitigh tógtha ag an bpobal. <a href=\"/staking/pools/\">Tuilleadh maidir le geallta roinnte</a>.", + "sybil-attack-term": "Ionsaí Sybil", + "sybil-attack-definition": "Tagraíonn ionsaithe Sybil do dhaoine cleasaíocht a imirt ar chóras chun go gcreidfidh sé gur daoine iolracha iad chun a dtionchar a mhéadú.", "terminal-total-difficulty-term": "Deacracht iomlán críochfoirt (TTD)", "terminal-total-difficulty-definition": "Is é an deacracht iomlán suim deacracht mianadóireachta Ethash do gach bloc suas go pointe áirithe sa blockchain. Is ionann deacracht iomlán an chríochfoirt agus luach sonrach don deacracht iomlán a úsáideadh mar thruicear do chliaint fhorghníomhaithe chun a bhfeidhmeanna mianadóireachta agus blocála a mhúchadh, rud a chuir ar chumas an líonra aistriú go dtí cruthúnas ar an gceist. Níl sé ábhartha a thuilleadh toisc gur bhog Ethereum go <a href=\"/glossary/#pos\">cruthúnas i gceist</a>.", "transaction-fee-term": "Táille idirbhirt", "transaction-fee-definition": "Táille a chaithfidh tú a íoc aon uair a úsáideann tú líonra Ethereum. I measc na samplaí tá cistí a sheoladh ó do <a href=\"/glossary/#wallet\">sparán</a> nó idirghníomhú <a href=\"/glossary/#dapp\">dapp</a>, amhail comharthaí a mhalartú nó ceann inbhailithe a cheannach. Is féidir leat smaoineamh air seo mar tháille seirbhíse. Athróidh an táille seo bunaithe ar cé chomh gnóthach is atá an líonra. Tá sé seo amhlaidh toisc gur dócha go dtabharfaidh <a href=\"/glossary/#validator\">bhailitheoirí</a>, na daoine atá freagrach as d’idirbheart a phróiseáil, tús áite d’idirbhearta a bhfuil táillí níos airde orthu – mar sin cuireann brú tráchta an praghas in airde.<br/><br/>Ar leibhéal teicniúil, baineann do tháille idirbhirt le cé mhéad <a href=\"/glossary/#gas\">gás</a> atá de dhíth ar d’idirbheart.<br/><br/> is ábhar do tháillí an idirbhirt an ceart anois. Féach <a href=\"/glossary/#layer-2\">Ciseal 2</a>.", "trust-assumptions-term": "Toimhdí muiníne", "trust-assumptions-definition": "Is bunchreidimh iad boinn tuisceana iontaobhais faoi shábháilteacht agus spleáchas córais, a threoraíonn an méid a bhfuil muinín againn as le go bhfeidhmeoidh an córas.", - "validator-term": "Bailitheoir", + "validator-term": "Bailíochtóir", "validator-definition": "Nód <a href=\"/glossary/#node\">nód</a> i gcóras <a href=\"/glossary/#pos\">cruthúnas-de-gealláil</a> atá freagrach as sonraí a stóráil, idirbhearta a phróiseáil agus as bloic nua a chur leis an mblocshlabhra. Chun bogearraí bailíochtaithe a ghníomhachtú, ní mór duit a bheith in ann <a href=\"/glossary/#staking\">gealláil</a> 32 ETH. <a href=\"/staking/\">Níos mó faoi geallála i Ethereum</a>.", "validity-proof-term": "Cruthúnas bailíochta", "validity-proof-definition": "Múnla slándála do réitigh áirithe <a href=\"/glossary/#layer-2\">ciseal 2</a> ina ndéantar, chun luas a mhéadú, idirbhearta a rolladh suas i mbaisceanna agus a chur faoi bhráid Ethereum in aon idirbheart amháin. Déantar ríomh an idirbhirt as slabhra agus ansin cuirtear ar fáil don phríomhshlabhra é le cruthúnas ar a mbailíocht. Méadaíonn an modh seo líon na n-idirbheart is féidir agus slándáil á chothabháil. Úsáideann roinnt <a href=\"/glossary/#rollups\">rollups</a> <a href=\"/glossary/#fraud-proof\">calaois proof</a>. <a href=\"/developers/docs/scaling/zk-rollups/\">Tuilleadh ar rollups eolas nialais</a>.", diff --git a/src/intl/ga/learn-quizzes.json b/src/intl/ga/learn-quizzes.json index 703b7ce5978..9f32d732b41 100644 --- a/src/intl/ga/learn-quizzes.json +++ b/src/intl/ga/learn-quizzes.json @@ -290,7 +290,7 @@ "merge-1-a-explanation": "Cruthúnas oibre an mheicníocht chomhthoil a úsáideadh roimh The Merge.", "merge-1-b-label": "Cruthúnas-de-geall", "merge-1-b-explanation": "Ceart! D'aistrigh an Cumasc Ethereum chuig cruthúnais-gheallta.", - "merge-1-c-label": "Cruthúnas-de-údarás", + "merge-1-c-label": "Cruthúnas-údaráis", "merge-1-c-explanation": "Ní dhéanann Ethereum, agus níor úsáid sé cruthúnas údaráis ar Ethereum Mainnet.", "merge-1-d-label": "Gach ceann de rudaí na thuas", "merge-1-d-explanation": "Ní bheadh ​​​​sé indéanta go mbeadh na meicníochtaí comhthola seo go léir ag Ethereum láithreach.", @@ -348,6 +348,7 @@ "daos-3-a-label": "De ghnáth ordlathach", "daos-3-a-explanation": "Is gnách go mbíonn OCCanna cothrom, agus daonlathaithe go hiomlán.", "daos-3-b-label": "Trédhearcach agus go hiomlán poiblí faoina gcuid gníomhaíochtaí", + "daos-3-b-explanation": "A bhuí le vótáil ar slabhra, tá cinntí trédhearcacha ar an blocshlabhra. Tá plé agus gnéithe eile den phróiseas cinnteoireachta oscailte do gach ball.", "daos-3-c-label": "Rialaithe ag páirtí lárnach", "daos-3-c-explanation": "Teastaíonn vótáil ó na comhaltaí chun athruithe a dhéanamh. Déantar na seirbhísí a thairgtear a láimhseáil go huathoibríoch ar bhealach díláraithe.", "daos-3-d-label": "Srianta maidir le cé atá in ann athruithe a mholadh", @@ -368,6 +369,8 @@ "daos-5-b-explanation": "Tá níos mó ceadaithe ag DAOanna scairbhunaithe ach fós oscailte go leor. Is féidir le haon chomhalta ionchasach togra a chur isteach chun dul isteach san DAO, de ghnáth ag tairiscint ómós de luach éigin i bhfoirm dearbháin nó saothar.", "daos-5-c-label": "Ballraíocht bunaithe ar cháil", "daos-5-c-explanation": "Murab ionann agus ballraíocht atá bunaithe ar chomharthaí nó scaireanna, ní aistríonn DAOanna atá bunaithe ar cháil úinéireachta chuig rannpháirtithe. Ní mór do bhaill an DAO clú a thuilleamh trí rannpháirtíocht.", + "daos-5-d-label": "Bord feidhmiúcháin agus bainistíocht cistíochta lasmuigh den as slabhra", + "daos-5-d-explanation": "Úsáideann an cur chuige seo meicníochtaí rialaithe atá an-lárnaithe agus teimhneach. Os a choinne sin, úsáideann OABanna meicníochtaí infhíoraithe vótála agus bainistíocht cistíochta ar shlabhra chun trédhearcacht agus cuntasacht a chinntiú.", "staking-solo-1-prompt": "Cé acu atá fíor faoi shlaiseáil?", "staking-solo-1-a-label": "Pionós as a bheith as líne, atosóidh luaíochtaí nuair a bheidh tú ar ais ar líne", "staking-solo-1-a-explanation": "NÍL slaiseáil mar thoradh ar a bheith as líne. Tabhaítear pionóis bheaga as a bheith as líne, agus atosóidh luach saothair nuair a fhilleann an bailíochtóir ar líne agus nuair a atosaíonn sé fianuithe.", diff --git a/src/intl/ga/page-get-eth.json b/src/intl/ga/page-get-eth.json index e284d943e6c..dfff138a8dd 100644 --- a/src/intl/ga/page-get-eth.json +++ b/src/intl/ga/page-get-eth.json @@ -21,7 +21,7 @@ "page-get-eth-daos-link-desc": "Foghlaim faoi DAOnna", "page-get-eth-cex-link-desc": "Féach ar liosta de na malartáin", "page-get-eth-staking-link-desc": "Foghlaim tuilleadh faoi gheallchur", - "page-get-eth-dexs": "Malartáin díláraithe (DEXanna)", + "page-get-eth-dexs": "Malartáin Dhíláraithe (DEXanna)", "page-get-eth-dexs-desc": "Is margaí oscailte iad malartáin dhíláraithe le haghaidh ETH agus comharthaí eile. Ceanglaíonn siad ceannaitheoirí agus díoltóirí go díreach.", "page-get-eth-dexs-desc-2": "In ionad tríú páirtí iontaofa a úsáid chun cistí a chosaint san idirbheart, úsáidtear cód. Ní dhéanfar ETH an díoltóra a aistriú ach amháin nuair a ráthaítear íocaíocht. Tugtar conradh cliste ar an gcineál seo cód.", "page-get-eth-dexs-desc-3": "Leis sin fágtar go bhfuil níos lú srianta geografacha ann ná mar atá le roghanna láraithe. Má tá duine éigin ag díol a bhfuil uait agus ag glacadh le modh íocaíochta is féidir leat a thabhairt dó, is féidir libh beirt an beart a dhéanamh.", diff --git a/src/intl/ga/page-index.json b/src/intl/ga/page-index.json index aea619a35e0..e2061d00c8c 100644 --- a/src/intl/ga/page-index.json +++ b/src/intl/ga/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Poist is déanaí", "page-index-posts-subtitle": "Na postálacha blag is déanaí agus nuashonruithe ón bpobal", "page-index-title": "Fáilte go dtí Ethereum", + "page-index-use-cases-tag": "Cásanna úsáide", "page-index-values-description": "Glac páirt sa réabhlóid dhigiteach", "page-index-values-header": "Tá an t-idirlíon ag athrú", "page-index-values-legacy": "Oidhreacht", diff --git a/src/intl/ga/page-learn.json b/src/intl/ga/page-learn.json index 603240e0f75..4d16bb1ba6a 100644 --- a/src/intl/ga/page-learn.json +++ b/src/intl/ga/page-learn.json @@ -111,4 +111,4 @@ "green-pill-description": "Treoir ar na córais cripteacnamaíochta lena gcruthaítear seachtrachachtaí dearfacha don domhan", "unchained-description": "Léimeann sé go domhain isteach sna daoine atá ag tógáil an idirlín díláraithe, sonraí na teicneolaíochta seo a d’fhéadfadh a bheith mar bhonn agus mar thaca ag ár dtodhchaí, agus cuid de na hábhair is measa i cripte, amhail rialáil, slándáil agus príobháideacht", "the-daily-gwei-description": "Athchoimrí, nuashonruithe agus anailís ar nuacht Ethereum" -} +} \ No newline at end of file diff --git a/src/intl/ga/page-stablecoins.json b/src/intl/ga/page-stablecoins.json index d35266e836b..4860df51993 100644 --- a/src/intl/ga/page-stablecoins.json +++ b/src/intl/ga/page-stablecoins.json @@ -156,11 +156,10 @@ "bittrex-logo": "Lógó Bittrex", "coinbase-logo": "Lógó Coinbase", "coinmama-logo": "Lógó Coinmama", - "compound-logo": "Lógó cumaisc", + "compound-logo": "Lógó Compound", "example-projects": "Tionscadail shamplacha", "gemini-logo": "Lógó Gemini", "gitcoin-logo": "Lógó Gitcoin", - "loopring-logo": "Lógó Loopring", "makerdao-logo": "Lógó MakerDao", "matcha-logo": "Lógó Matcha", "summerfi-logo": "Lógó Summer.fi", diff --git a/src/intl/ga/page-upgrades-index.json b/src/intl/ga/page-upgrades-index.json index d868b5b54c6..62266227122 100644 --- a/src/intl/ga/page-upgrades-index.json +++ b/src/intl/ga/page-upgrades-index.json @@ -154,7 +154,7 @@ "page-upgrades-shard-desc": "Leathnóidh Danksharding cumas Ethereum chun sonraí a stóráil, agus oibreoidh sé go comhchuí le L2anna chun tréchur a scála agus táillí líonra a laghdú. Cuirfear Danksharding i bhfeidhm i gcéimeanna éagsúla, ag tosú le ProtoDanksharding.", "page-upgrades-shard-estimate": "Meastachán: 2023-2024", "page-upgrades-shard-lower": "Tuilleadh faoi roinnt", - "page-upgrades-shard-title": "Roinnt", + "page-upgrades-shard-title": "Sceardadh", "page-upgrades-stay-up-to-date": "Fan suas chun dáta", "page-upgrades-stay-up-to-date-desc": "Faigh an ceann is déanaí ó na taighdeoirí agus na forbróirí atá ag obair ar uasghrádú Ethereum.", "page-upgrades-sustainable-desc": "Bhí Ethereum dian ar fhuinneamh go dtí le déanaí. Tháinig laghdú os cionn 99.9% ar fhuinneamh líonra mar gheall ar an aistriú go cruthúnais-gheallta.", @@ -203,6 +203,6 @@ "page-staking-deposit-contract-staking-more-link": "Tuilleadh faoin ngeallchur", "docs-nav-proof-of-stake": "Cruthúnas-de-geall", "docs-nav-proof-of-work": "Cruthúnas-ar-obair", - "page-upgrades-get-involved-ethresearch-1": "Roinnt", + "page-upgrades-get-involved-ethresearch-1": "Sceardadh", "page-upgrades-get-involved-ethresearch-2": "An Comhoiriúnú" } diff --git a/src/intl/ga/page-upgrades.json b/src/intl/ga/page-upgrades.json index 4f1c30db1bc..fb0030871a1 100644 --- a/src/intl/ga/page-upgrades.json +++ b/src/intl/ga/page-upgrades.json @@ -8,7 +8,7 @@ "page-upgrades-post-merge-banner-tutorial-ood": "Tá an rang teagaisc seo as dáta tar éis an chumaisc agus seans nach n-oibreoidh sé. Ardaigh PR le do thoil más mian leat cur leis.", "page-upgrades-upgrades-guide": "Treoir maidir le huasghráduithe Ethereum", "page-upgrades-upgrades-docking": "An Comhoiriúnú", - "page-upgrades-shard-title": "Roinnt", + "page-upgrades-shard-title": "Sceardadh", "page-upgrades-upgrades-beacon-chain": "An Slabhra Beacon", "consensus-beaconscan-title": "beaconscan", "consensus-beaconscan-in-title": "beaconcha.in", diff --git a/src/intl/ga/page-wallets-find-wallet.json b/src/intl/ga/page-wallets-find-wallet.json index d23d5808729..c11a47e96c3 100644 --- a/src/intl/ga/page-wallets-find-wallet.json +++ b/src/intl/ga/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Úsáideoir den chéad uair ag lorg sparáin do thosaitheoirí.", "page-find-wallet-nfts-title": "NFTanna", "page-find-wallet-nfts-desc": "Sparáin le fócas ar thacaíocht NFT.", - "page-find-wallet-hodler-title": "Fadtéarmach", + "page-find-wallet-hodler-title": "Crua-earraí", "page-find-wallet-hodler-desc": "Gabháltas éighníomhach comharthaí le sparáin crua‑earraí.", "page-find-wallet-finance-title": "Airgeadas", "page-find-wallet-finance-desc": "Sparáin a díríonn ar úsáid rialta aipeanna DeFi.", diff --git a/src/intl/ga/template-usecase.json b/src/intl/ga/template-usecase.json index 10ef3d785a2..f307bbbbeb5 100644 --- a/src/intl/ga/template-usecase.json +++ b/src/intl/ga/template-usecase.json @@ -4,6 +4,7 @@ "template-usecase-dropdown-nft": "Comharthaí neamh-inmheasctha (NFTanna)", "template-usecase-dropdown-dao": "Eagraíochtaí uathrialaitheacha díláraithe (DAO)", "template-usecase-dropdown-payments": "Íocaíochtaí Ethereum", + "template-usecase-dropdown-prediction-markets": "Margaí tuartha", "template-usecase-dropdown-social-networks": "Líonraí sóisialta díláraithe", "template-usecase-dropdown-identity": "Féiniúlacht dhíláraithe", "template-usecase-dropdown-desci": "Eolaíocht dhíláraithe (DeSci)", @@ -12,4 +13,4 @@ "template-usecase-banner": "Tá forbairt agus athrú ag teacht ar úsáidí Ethereum i gcónaí. Cuir leis faisnéis ar bith a cheapann tú a dhéanfaidh rudaí níos soiléire nó níos déanaí.", "template-usecase-edit-link": "Cuir leathanach in eagar", "template-usecase-dropdown-aria": "Úsáid roghchlár anuas cáis" -} \ No newline at end of file +} diff --git a/src/intl/gl/common.json b/src/intl/gl/common.json index 1e7a7c1517c..935cad7b4fb 100644 --- a/src/intl/gl/common.json +++ b/src/intl/gl/common.json @@ -320,6 +320,8 @@ "nav-staking-solo-description": "Executar hardware doméstico e engadir persoalmente a seguridade e descentralización da rede Ethereum", "nav-staking-solo-label": "Participación individual", "nav-start-building-description": "Información útil para os que acaban de chegar", + "nav-start-with-crypto-title": "Comeza aquí", + "nav-start-with-crypto-description": "Os teus primeiros pasos con Ethereum", "nav-translation-program-description": "Un esforzo conxunto para traducir ethereum.org a todos os idiomas", "nav-tutorials-description": "Unha lista coidadosamente elaborada de tutoriais da comunidade", "nav-use-cases-description": "Descubra diferentes ideas de uso de Ethereum", diff --git a/src/intl/gl/page-index.json b/src/intl/gl/page-index.json index ecc6f850066..19eec28eab0 100644 --- a/src/intl/gl/page-index.json +++ b/src/intl/gl/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Publicacións recentes", "page-index-posts-subtitle": "As últimas publicacións e actualizacións da comunidade", "page-index-title": "Dámoslle a benvida a Ethereum", + "page-index-use-cases-tag": "Casos de uso", "page-index-values-description": "Forma parte da revolución dixital", "page-index-values-header": "A Internet está a cambiar", "page-index-values-legacy": "Herdado", diff --git a/src/intl/gu/common.json b/src/intl/gu/common.json index f48355cd379..0b785a16a7a 100644 --- a/src/intl/gu/common.json +++ b/src/intl/gu/common.json @@ -319,6 +319,8 @@ "nav-staking-solo-description": "હોમ હાર્ડવેર ચલાવો અને Ethereum નેટવર્કની સુરક્ષા અને વિકેન્દ્રીકરણમાં વ્યક્તિગત રીતે ઉમેરો", "nav-staking-solo-label": "સોલો સ્ટેકિંગ", "nav-start-building-description": "નવા આવનારાઓ માટે ઉપયોગી માહિતી", + "nav-start-with-crypto-title": "અહીંથી શરૂઆત કરો", + "nav-start-with-crypto-description": "Ethereum વાપરવાની તમારી પ્રથમ પગલાં", "nav-translation-program-description": "ethereum.org ને બધી ભાષાઓમાં અનુવાદિત કરવાનો સહયોગી પ્રયાસ", "nav-tutorials-description": "સમુદાય ટ્યુટોરિયલ્સની ક્યૂરેટ કરેલ સૂચિ", "nav-use-cases-description": "ઈથિરિયમના ઉપયોગ માટેના વિવિધ ખ્યાલો શોધો", diff --git a/src/intl/gu/page-index.json b/src/intl/gu/page-index.json index 87aef12942c..6f0b81515e9 100644 --- a/src/intl/gu/page-index.json +++ b/src/intl/gu/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "તાજેતરની પોસ્ટ્સ", "page-index-posts-subtitle": "સમુદાય તરફથી નવીનતમ બ્લોગ પોસ્ટ્સ અને અપડેટ્સ", "page-index-title": "Ethereum પર​ તમારુ સ્વાગત​ છે", + "page-index-use-cases-tag": "કેસોનો ઉપયોગ કરો", "page-index-values-description": "ડિજિટલ ક્રાંતિનો ભાગ બનો", "page-index-values-header": "ઇન્ટરનેટ બદલાઈ રહ્યું છે", "page-index-values-legacy": "વારસો", diff --git a/src/intl/ha/common.json b/src/intl/ha/common.json index 314e3b330f0..cdf77ab9894 100644 --- a/src/intl/ha/common.json +++ b/src/intl/ha/common.json @@ -321,6 +321,8 @@ "nav-staking-solo-description": "Gudanar da kayan aikin gida kuma da kuma kaina ana ƙara tsaro da rarraba 'yancin kan sadarwar Ethereum", "nav-staking-solo-label": "Adana na kai kadai", "nav-start-building-description": "Muhimman bayanai ga masu shigowa yanzu", + "nav-start-with-crypto-title": "Fara a nan", + "nav-start-with-crypto-description": "Matakan ka na farko da Ethereum", "nav-translation-program-description": "Ƙoƙarin haɗin gwiwa don fassara ethereum.org zuwa dukkanin harsuna", "nav-tutorials-description": "Jerin da ayyukan da aka tsara na koyarwa al'umma", "nav-use-cases-description": "Nemo dabaru daban-daban don amfanin Ethereum", diff --git a/src/intl/ha/page-index.json b/src/intl/ha/page-index.json index 5b5051b67c3..a13759b2182 100644 --- a/src/intl/ha/page-index.json +++ b/src/intl/ha/page-index.json @@ -81,6 +81,7 @@ "page-index-posts-header": "Wallafe-wallafen kwanan nan", "page-index-posts-subtitle": "Wallafe-wallafen kwanan nan da sabbin bayanai daga al'umma", "page-index-title": "Barka da zuwa ga Ethereum", + "page-index-use-cases-tag": "An faninsu", "page-index-values-description": "Kasance cikin juyin zamanin dijital", "page-index-values-header": "Intanet na canzawa", "page-index-values-legacy": "Gado", diff --git a/src/intl/he/common.json b/src/intl/he/common.json index b6191451c48..a3c6e9e2915 100644 --- a/src/intl/he/common.json +++ b/src/intl/he/common.json @@ -320,6 +320,8 @@ "nav-staking-solo-description": "הפעל חומרה ביתית והוסף באופן אישי לאבטחה ולביזור של רשת Ethereum", "nav-staking-solo-label": "הפקד לבד", "nav-start-building-description": "מידע שימושי למתחילים", + "nav-start-with-crypto-title": "התחילו כאן", + "nav-start-with-crypto-description": "הצעדים הראשונים שלכם עם Ethereum", "nav-translation-program-description": "מאמץ משותף לתרגם את ethereum.org לכל השפות", "nav-tutorials-description": "הרשימה המפוקחת של מדריכי הקהילה", "nav-use-cases-description": "גלה רעיונות שימוש באתריום שונים", diff --git a/src/intl/he/page-index.json b/src/intl/he/page-index.json index cf39ef864a3..aea78238746 100644 --- a/src/intl/he/page-index.json +++ b/src/intl/he/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "פוסטים אחרונים", "page-index-posts-subtitle": "הפוסטים והעדכונים האחרונים מהקהילה", "page-index-title": "ברוכים הבאים לאתריום", + "page-index-use-cases-tag": "מקרי שימוש", "page-index-values-description": "היה חלק מהמהפכה הדיגיטלית", "page-index-values-header": "האינטרנט משתנה", "page-index-values-legacy": "מיושן", diff --git a/src/intl/hi/common.json b/src/intl/hi/common.json index b4c7edae031..7fe695e1108 100644 --- a/src/intl/hi/common.json +++ b/src/intl/hi/common.json @@ -323,6 +323,8 @@ "nav-staking-solo-description": "होम हार्डवेयर चलाएं और व्यक्तिगत रूप से इथेरियम नेटवर्क की सुरक्षा और विकेंद्रीकरण में जोड़ें", "nav-staking-solo-label": "एकल स्टेकिंग", "nav-start-building-description": "नए लोगों के लिए उपयोगी जानकारी", + "nav-start-with-crypto-title": "यहाँ से शुरू करें", + "nav-start-with-crypto-description": "Ethereum का उपयोग करने के आपके पहले कदम", "nav-translation-program-description": "Ethereum.org का सभी भाषाओं में अनुवाद करने की एक सहयोगी कोशिश", "nav-tutorials-description": "कम्युनिटी ट्यूटोरियल की क्यूरेट की गई लिस्ट", "nav-use-cases-description": "एथेरियम के इस्तेमाल के अलग-अलग तरीके जानें", diff --git a/src/intl/hi/page-index.json b/src/intl/hi/page-index.json index fdc23b8b480..9cb374dcc5f 100644 --- a/src/intl/hi/page-index.json +++ b/src/intl/hi/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "हाल ही के पोस्ट", "page-index-posts-subtitle": "समुदाय की ओर से नवीनतम ब्लॉग पोस्ट और अपडेट", "page-index-title": "इथेरियम में आपका स्वागत है", + "page-index-use-cases-tag": "उपयोग के मामले", "page-index-values-description": "डिजिटल क्रांति का हिस्सा बनें", "page-index-values-header": "इंटरनेट बदल रहा है", "page-index-values-legacy": "विरासत", diff --git a/src/intl/hr/common.json b/src/intl/hr/common.json index fa2c7464872..88ec0b16a7d 100644 --- a/src/intl/hr/common.json +++ b/src/intl/hr/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Pokrenite kućni hardver i osobno doprinesite sigurnosti i decentralizaciji Ethereumove mreže", "nav-staking-solo-label": "Samostalan staking", "nav-start-building-description": "Korisne informacije za početnike", + "nav-start-with-crypto-title": "Počnite ovdje", + "nav-start-with-crypto-description": "Vaši prvi koraci uz Ethereum", "nav-translation-program-description": "Suradnja u prevođenju web-mjesta ethereum.org na sve jezike", "nav-tutorials-description": "Odabrani popis praktičnih vodiča zajednice", "nav-use-cases-description": "Otkrijte različite ideje kako se koristiti Ethereumom", diff --git a/src/intl/hr/page-index.json b/src/intl/hr/page-index.json index aec3ec13511..6f6aea927cf 100644 --- a/src/intl/hr/page-index.json +++ b/src/intl/hr/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Nove objave", "page-index-posts-subtitle": "Najnovije objave na blogu i ažuriranja zajednice", "page-index-title": "Dobro došli u Ethereum", + "page-index-use-cases-tag": "Slučajevi upotrebe", "page-index-values-description": "Budite dio digitalne revolucije", "page-index-values-header": "Internet se mijenja", "page-index-values-legacy": "Naslijeđe", diff --git a/src/intl/hu/common.json b/src/intl/hu/common.json index dcdf0fb0a05..187d0612f11 100644 --- a/src/intl/hu/common.json +++ b/src/intl/hu/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Működtessen az otthonából hardvert és támogassa személyesen az Ethereum hálózatának biztonságát és decentralizálását", "nav-staking-solo-label": "Egyéni letétbe helyezés", "nav-start-building-description": "Hasznos információk az újoncok számára", + "nav-start-with-crypto-title": "Kezdje itt", + "nav-start-with-crypto-description": "Első lépései az Ethereummal", "nav-translation-program-description": "Közös együttműködés, hogy az ethereum.org weboldalt minden nyelvre lefordítsuk", "nav-tutorials-description": "A közösségi útmutatók válogatott listája", "nav-use-cases-description": "Különböző ötletek az Ethereum használatához", diff --git a/src/intl/hu/page-index.json b/src/intl/hu/page-index.json index 34b62b2ad2a..e17e9b3872b 100644 --- a/src/intl/hu/page-index.json +++ b/src/intl/hu/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Legutóbbi posztok", "page-index-posts-subtitle": "A legújabb blogbejegyzések és frissítések a közösségtől", "page-index-title": "Üdvözli az Ethereum", + "page-index-use-cases-tag": "Felhasználási módok", "page-index-values-description": "Legyen részese a digitális forradalomnak", "page-index-values-header": "Az internet változik", "page-index-values-legacy": "Örökség", diff --git a/src/intl/hu/page-learn.json b/src/intl/hu/page-learn.json index d34e11e4037..892508df1fa 100644 --- a/src/intl/hu/page-learn.json +++ b/src/intl/hu/page-learn.json @@ -121,4 +121,4 @@ "unchained-description": "Részletes bemutatása azoknak, akik a decentralizált internetet építik, a technológia részletei, mely a jövőnket kövezi ki, valamint olyan fontos témák, mint a szabályozás, a biztonság és az adatvédelem", "the-daily-gwei-title": "The Daily Gwei", "the-daily-gwei-description": "Hírek, összefoglalók, fejlesztések és elemzések az Ethereumról" -} +} \ No newline at end of file diff --git a/src/intl/hu/page-wallets-find-wallet.json b/src/intl/hu/page-wallets-find-wallet.json index 88577ef6daf..93b0f166403 100644 --- a/src/intl/hu/page-wallets-find-wallet.json +++ b/src/intl/hu/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Új felhasználó keres kezdő tárcát.", "page-find-wallet-nfts-title": "NFT-k", "page-find-wallet-nfts-desc": "Tárcák NFT-támogatással.", - "page-find-wallet-hodler-title": "Hosszú távú", + "page-find-wallet-hodler-title": "Hardver", "page-find-wallet-hodler-desc": "Passzív token-tartás hardvertárcákkal.", "page-find-wallet-finance-title": "Pénzügy", "page-find-wallet-finance-desc": "Tárcák DeFi alkalmazások gyakori használatára.", diff --git a/src/intl/hu/template-usecase.json b/src/intl/hu/template-usecase.json index a09e1742231..551ea5fa6cc 100644 --- a/src/intl/hu/template-usecase.json +++ b/src/intl/hu/template-usecase.json @@ -4,6 +4,7 @@ "template-usecase-dropdown-nft": "Nem helyettesíthető tokenek (NFT-k)", "template-usecase-dropdown-dao": "Decentralizált autonóm szervezetek (DAO-k)", "template-usecase-dropdown-payments": "Fizetések az Ethereumon", + "template-usecase-dropdown-prediction-markets": "Fogadói piacok", "template-usecase-dropdown-social-networks": "Nem központosított közösségi hálózatok", "template-usecase-dropdown-identity": "Nem központilag kibocsájtott identitás", "template-usecase-dropdown-desci": "Nem központosított kutatás (DeSci)", @@ -12,4 +13,4 @@ "template-usecase-banner": "Az Ethereum felhasználása folyamatosan bővül és fejlődik. Egészítse ki bármilyen információval, ha úgy gondolja, hogy azzal érthetőbbé vagy aktuálisabbá válhat az oldal.", "template-usecase-edit-link": "Oldal szerkesztése", "template-usecase-dropdown-aria": "Esettanulmányok legördülő menü" -} \ No newline at end of file +} diff --git a/src/intl/hy-am/common.json b/src/intl/hy-am/common.json index deb14b0240e..321324a1f8b 100644 --- a/src/intl/hy-am/common.json +++ b/src/intl/hy-am/common.json @@ -320,6 +320,8 @@ "nav-staking-solo-description": "Գործարկեք տնային սարքավորումները և անձամբ ավելացրեք Ethereum ցանցի անվտանգությունն ու ապակենտրոնացումը", "nav-staking-solo-label": "Միայնակ խաղադրույք", "nav-start-building-description": "Օգտակար տեղեկություններ սկսնակների համար", + "nav-start-with-crypto-title": "እዚህ መጀመር", + "nav-start-with-crypto-description": "የእርስዎ መጀመሪያ እርምጃዎች በEthereum", "nav-translation-program-description": "Թարգմանչական համագործակցություն ethereum.org-ի հետ բոլոր լեզուներով", "nav-tutorials-description": "Համայնքի ուղեցույցների համադրված ցուցակ", "nav-use-cases-description": "Բացահայտեք Ethereum-ի օգտագործման տարբեր գաղափարները", diff --git a/src/intl/hy-am/page-index.json b/src/intl/hy-am/page-index.json index 5eb27991f33..87d55758da0 100644 --- a/src/intl/hy-am/page-index.json +++ b/src/intl/hy-am/page-index.json @@ -81,6 +81,7 @@ "page-index-posts-header": "Վերջին գրառումները", "page-index-posts-subtitle": "Բլոգի վերջին գրառումներն ու թարմացումները համայնքից", "page-index-title": "Բարի գալուստ Էթերիում", + "page-index-use-cases-tag": "Օգտագործման դեպքերը", "page-index-values-description": "Եղեք թվային հեղափոխության մի մասը", "page-index-values-header": "Համացանցը փոխվում է", "page-index-values-legacy": "Ժառանգություն", diff --git a/src/intl/id/common.json b/src/intl/id/common.json index f503e7ae6f5..a781e091759 100644 --- a/src/intl/id/common.json +++ b/src/intl/id/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Jalankan perangkat keras di beranda dan secara pribadi berkontribusi pada keamanan dan desentralisasi jaringan Ethereum", "nav-staking-solo-label": "Penaruhan solo", "nav-start-building-description": "Informasi yang berguna bagi pendatang baru", + "nav-start-with-crypto-title": "Mulai di sini", + "nav-start-with-crypto-description": "Langkah pertama Anda menggunakan Ethereum", "nav-translation-program-description": "Upaya kolaboratif untuk menerjemahkan ethereum.org ke semua bahasa", "nav-tutorials-description": "Daftar pilihan tutorial komunitas", "nav-use-cases-description": "Temukan berbagai ide untuk penggunaan Ethereum", diff --git a/src/intl/id/page-contributing-translation-program-acknowledgements.json b/src/intl/id/page-contributing-translation-program-acknowledgements.json index c4c0cde3948..a67e1a17347 100644 --- a/src/intl/id/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/id/page-contributing-translation-program-acknowledgements.json @@ -30,7 +30,7 @@ "page-contributing-translation-program-acknowledgements-total-words": "Jumlah Kata", "page-contributing-translation-program-acknowledgements-oats-title": "OAT", "page-contributing-translation-program-acknowledgements-1": "Kontributor untuk Program Terjemahan yang memenuhi syarat untuk berbagai OAT (onchain achievement tokens) – token yang tidak dapat dipertukarkan yang membuktikan partisipasi mereka dalam Program Terjemahan ethereum.org.", - "page-contributing-translation-program-acknowledgements-2": "Kami memiliki berbagai OAT yang tersedia untuk para penerjemah, berdasarkan aktivitas mereka", + "page-contributing-translation-program-acknowledgements-2": "Kami memiliki berbagai OAT yang tersedia untuk para penerjemah, berdasarkan aktivitas mereka.", "page-contributing-translation-program-acknowledgements-3": "Jika telah berkontribusi dalam upaya penerjemahan di Crowdin, OAT sudah menunggu Anda!", "page-contributing-translation-program-acknowledgements-how-to-claim-title": "Cara mengklaim", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "Bergabunglah dengan", diff --git a/src/intl/id/page-index.json b/src/intl/id/page-index.json index 55cfec1a451..bc7c394cbab 100644 --- a/src/intl/id/page-index.json +++ b/src/intl/id/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Postingan terbaru", "page-index-posts-subtitle": "Postingan blog dan info terbaru dari komunitas", "page-index-title": "Selamat Datang di Ethereum", + "page-index-use-cases-tag": "Kasus penggunaan", "page-index-values-description": "Menjadi bagian dari revolusi digital", "page-index-values-header": "Internet berubah", "page-index-values-legacy": "Legacy", diff --git a/src/intl/id/page-learn.json b/src/intl/id/page-learn.json index fbced3d8900..de76255e2a5 100644 --- a/src/intl/id/page-learn.json +++ b/src/intl/id/page-learn.json @@ -121,4 +121,4 @@ "unchained-description": "Menyelami lebih dalam tentang orang-orang yang membangun internet terdesentralisasi, detail teknologi yang dapat mendukung masa depan kita, dan beberapa topik paling pelik dalam dunia kripto, seperti regulasi, keamanan, dan privasi", "the-daily-gwei-title": "The Daily Gwei", "the-daily-gwei-description": "Rekap, pembaruan, dan analisis berita Ethereum" -} +} \ No newline at end of file diff --git a/src/intl/id/page-wallets-find-wallet.json b/src/intl/id/page-wallets-find-wallet.json index 7d9d46cb6fa..df1c3b3d683 100644 --- a/src/intl/id/page-wallets-find-wallet.json +++ b/src/intl/id/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Pengguna pertama kali yang mencari dompet pemula.", "page-find-wallet-nfts-title": "NFT", "page-find-wallet-nfts-desc": "Dompet yang berfokus pada dukungan NFT.", - "page-find-wallet-hodler-title": "Jangka panjang", + "page-find-wallet-hodler-title": "Perangkat keras", "page-find-wallet-hodler-desc": "Penyimpanan token jangka panjang dengan dompet perangkat keras.", "page-find-wallet-finance-title": "Keuangan", "page-find-wallet-finance-desc": "Dompet yang berfokus pada penggunaan aplikasi DeFi yang sering.", diff --git a/src/intl/id/template-usecase.json b/src/intl/id/template-usecase.json index 1fb8382de9e..3c9b2a0ab07 100644 --- a/src/intl/id/template-usecase.json +++ b/src/intl/id/template-usecase.json @@ -4,6 +4,7 @@ "template-usecase-dropdown-nft": "Token yang tidak dapat dipertukarkan (NFT)", "template-usecase-dropdown-dao": "Organisasi otonom terdesentralisasi (DAO)", "template-usecase-dropdown-payments": "Pembayaran Ethereum", + "template-usecase-dropdown-prediction-markets": "Pasar Prediksi", "template-usecase-dropdown-social-networks": "Jaringan sosial terdesentralisasi", "template-usecase-dropdown-identity": "Identitas terdesentralisasi", "template-usecase-dropdown-desci": "Ilmu Pengetahuan Terdesentralisasi (DeSci)", @@ -12,4 +13,4 @@ "template-usecase-banner": "Penggunaan Ethereum selalu berkembang dan berubah. Tambahkan info apa pun yang Anda rasa akan membuat berbagai hal menjadi lebih jelas atau lebih terkini.", "template-usecase-edit-link": "Edit halaman", "template-usecase-dropdown-aria": "Menu dropdown kasus penggunaan" -} \ No newline at end of file +} diff --git a/src/intl/ig/common.json b/src/intl/ig/common.json index e65c0250b52..dc269bc0fcd 100644 --- a/src/intl/ig/common.json +++ b/src/intl/ig/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Gbaa ngwaike ụlọ ma tinye onwe gị na nchekwa na decentralization nke netwọk Ethereum", "nav-staking-solo-label": "Solo staking", "nav-start-building-description": "Ozi bara uru maka ndị bịara ọhụrụ\n​", + "nav-start-with-crypto-title": "Bido ebe a", + "nav-start-with-crypto-description": "Nzụta mbụ gị na Ethereum", "nav-translation-program-description": "Mgbalị imekọ ihe ọnụ iji tụgharịa asụsụ ethereum.org na asụsụ niile", "nav-tutorials-description": "Ndepụta nke nkuzi obodo", "nav-use-cases-description": "Chọpụta echiche dị iche iche maka iji Ethereum", diff --git a/src/intl/ig/page-index.json b/src/intl/ig/page-index.json index dca543e3460..2e48dbbff19 100644 --- a/src/intl/ig/page-index.json +++ b/src/intl/ig/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Edemede nndi di so nso a", "page-index-posts-subtitle": "Blọọgụ kacha ọhụrụ na mmelite sitere na obodo", "page-index-title": "Nnọọ na Ethereum", + "page-index-use-cases-tag": "Jiri ikpe", "page-index-values-description": "Sonye mgbanwe dijitalụ", "page-index-values-header": "Ịntanetị na-agbanwe", "page-index-values-legacy": "Ihe nketa", diff --git a/src/intl/it/common.json b/src/intl/it/common.json index c4c087bc803..b2683b63d71 100644 --- a/src/intl/it/common.json +++ b/src/intl/it/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Opera hardware domestico e aggiungi personalmente alla sicurezza e decentralizzazione della rete di Ethereum", "nav-staking-solo-label": "Staking in solo", "nav-start-building-description": "Informazioni utili per i novellini", + "nav-start-with-crypto-title": "Inizia qui", + "nav-start-with-crypto-description": "I tuoi primi passi con Ethereum", "nav-translation-program-description": "Uno sforzo collaborativo per tradurre ethereum.org in tutte le lingue", "nav-tutorials-description": "Elenco curato di tutorial della community", "nav-use-cases-description": "Scoprire diverse idee per l'utilizzo di Ethereum", diff --git a/src/intl/it/glossary-tooltip.json b/src/intl/it/glossary-tooltip.json index 3a7f6565a3b..b6115823838 100644 --- a/src/intl/it/glossary-tooltip.json +++ b/src/intl/it/glossary-tooltip.json @@ -101,8 +101,8 @@ "node-definition": "Un client software che partecipa alla rete. <a href=\"/developers/docs/nodes-and-clients/\">Maggiori informazioni sui nodi e i client</a>.", "ommer-term": "Blocco ommer (zio)", "ommer-definition": "Quando un <a href=\"/glossary/#miner\">miner</a> di proof-of-work trova un <a href=\"/glossary/#block\">blocco</a> valido, un altro miner potrebbe aver pubblicato un blocco concorrente che viene aggiunto prima alla testa della catena. Questo blocco valido, ma obsoleto, può essere incluso in blocchi più recenti come <em>ommer</em> e ricevere una ricompensa parziale del blocco. Il termine \"ommer\" è il termine preferito, neutro dal punto di vista di genere, per lo stesso livello di un blocco genitore, ma talvolta è anche indicato come \"zio\". Questo era comune per Ethereum quando era una rete di <a href=\"/glossary/#pow\">proof-of-work</a>. Ora che Ethereum utilizza il <a href=\"/glossary/#pos\">proof-of-stake</a>, viene selezionato soltanto un propositore del blocco per slot.", - "on-chain-term": "Sulla catena", - "on-chain-definition": "Si riferisce alle azioni o transazioni che si verificano sulla blockchain e sono disponibili pubblicamente.", + "onchain-term": "Onchain", + "onchain-definition": "Si riferisce alle azioni o transazioni che si verificano sulla blockchain e sono disponibili pubblicamente.", "optimistic-rollup-term": "Optimistic rollup", "optimistic-rollup-definition": "Un rollup ottimistico è una soluzione del Livello 2 che velocizza le transazioni su Ethereum, supponendo che siano valide di default se non contestate. <a href=\"/developers/docs/scaling/optimistic-rollups/\">Maggiori informazioni sui rollup ottimistici</a>.", "peer-to-peer-network-term": "Rete peer-to-peer", @@ -131,7 +131,7 @@ "rpc-definition": "RPC consente a un computer di richiedere dati o azioni a un altro su una rete, come chiedere informazioni per un controllo da remoto.", "sequencer-term": "Sequenziatore", "sequencer-definition": "Un sequenziatore è un programma responsabile di ordinare le transazioni in una rete blockchain.", - "smart-contract-term": "Smart Contract", + "smart-contract-term": "Smart contract", "smart-contract-definition": "Un contratto intelligente è un programma che esegue automaticamente gli accordi su una blockchain, come un contratto digitale auto-applicato. <a href=\"/smart-contracts/\">Introduzione ai contratti intelligenti</a>.", "stablecoin-term": "Stablecoin", "stablecoin-definition": "Una stablecoin è un tipo di criptovaluta progettata per avere un valore stabile, spesso ancorata a una valuta o a un bene (come il dollaro statunitense), per ridurre al minimo la volatilità del prezzo. <a href=\"/stablecoins/\">Maggiori informazioni sulle stablecoin</a>.", @@ -150,7 +150,6 @@ "validator-term": "Validatore", "validator-definition": "Un <a href=\"/glossary/#node\">nodo</a> in un sistema di <a href=\"/glossary/#pos\">proof-of-stake</a>, responsabile dell'archiviazione dei dati, dell'elaborazione delle transazioni e dell'aggiunta di nuovi blocchi alla blockchain. Per attivare il software del validatore, occorre poter mettere in <a href=\"/glossary/#staking\">staking</a> 32 ETH. <a href=\"/staking/\">Maggiori informazioni sullo staking su Ethereum</a>.", "validity-proof-term": "Prova di validità", - "validity-proof-definition": "Un modello di sicurezza per certe soluzioni del <a href=\"/glossary/#layer-2\">livello 2</a> in cui, per incrementare la velocità, le transazioni sono raggruppate in pacchetti e inviate a Ethereum in un'unica transazione. Il calcolo della transazione è svolto all'esterno della catena, quindi fornito alla catena principale con una prova della sua validità. Questo metodo incrementa la quantità di transazioni possibili, pur mantenendo la sicurezza. Alcuni <a href=\"/glossary/#rollups\">rollup</a> utilizzano la <a href=\"/glossary/#fraud-proof\">prova di frode</a>. <a href=\"/developers/docs/scaling/zk-rollups/\">Maggiori informazioni sui rollup a conoscenza zero</a>.", "wallet-term": "Portafoglio", "wallet-definition": "Un portafoglio è uno strumento digitale per memorizzare, inviare e ricevere moneta digitale, come una borsa virtuale per il tuo denaro online. <a href=\"/wallets/\">Maggior informazioni sui portafogli di Ethereum</a>.", "web2-term": "Web2", diff --git a/src/intl/it/page-index.json b/src/intl/it/page-index.json index 6b0ceb53854..4501976aaca 100644 --- a/src/intl/it/page-index.json +++ b/src/intl/it/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Post recenti", "page-index-posts-subtitle": "Gli ultimi post del blog e gli aggiornamenti della community", "page-index-title": "Ti diamo il benvenuto su Ethereum", + "page-index-use-cases-tag": "Casi d'uso", "page-index-values-description": "Partecipa alla rivoluzione digitale", "page-index-values-header": "Internet sta cambiando", "page-index-values-legacy": "L'internet di ieri", diff --git a/src/intl/it/page-learn.json b/src/intl/it/page-learn.json index 146bee5b59a..8aa4d19128a 100644 --- a/src/intl/it/page-learn.json +++ b/src/intl/it/page-learn.json @@ -121,4 +121,4 @@ "unchained-description": "Offre approfondimenti sulle persone che stanno creando l'Internet decentralizzato, i dettagli di tale tecnologia che potrebbero sostenere il nostro futuro e alcuni degli argomenti più spinosi sulle cripto, come regolamenti, sicurezza e privacy", "the-daily-gwei-title": "The Daily Gwei", "the-daily-gwei-description": "Riepiloghi, aggiornamenti e analisi delle notizie di Ethereum" -} +} \ No newline at end of file diff --git a/src/intl/it/page-upgrades-index.json b/src/intl/it/page-upgrades-index.json index bc6e2bcb1bf..7021e55728e 100644 --- a/src/intl/it/page-upgrades-index.json +++ b/src/intl/it/page-upgrades-index.json @@ -97,7 +97,7 @@ "page-upgrades-question-6-answer-5": "È inoltre possibile partecipare alla discussione sulla ricerca e lo sviluppo di Ethereum su ethresearch.ch.", "page-upgrades-question-6-title": "Che cosa devo fare con la mia dapp?", "page-upgrades-question-6-desc": "La Fusione è stata progettata per avere un impatto minimo sugli sviluppatori di dapp, sebbene vi siano state alcune piccole modifiche che vale la pena notare.", - "page-upgrades-question-6-answer-1": "Gli sviluppatori di dapp che hanno familiarità con l'Ethereum precedente alla Fusione dovrebbero essere consapevoli di alcune modifiche. Queste includono la struttura e le tempistiche del blocco, alcune modifiche all'opcode, sorgenti di casualità sulla catena e il concetto di finalizzazione dell'epoca.", + "page-upgrades-question-6-answer-1": "Gli sviluppatori di dapp che hanno familiarità con l'Ethereum precedente alla Fusione dovrebbero essere consapevoli di alcune modifiche. Queste includono la struttura e le tempistiche dei blocchi, alcune modifiche all'opcode, sorgenti di casualità sulla catena e il concetto di finalizzazione dell'epoca.", "page-upgrades-question-6-answer-1-link": "Come la Fusione ha influito sul livello applicativo di Ethereum", "page-upgrades-question-6-answer-2": "Le applicazioni sono rimaste pressoché inalterate.", "page-upgrades-question-7-desc": "Molti team da tutta la community stanno lavorando ai vari aggiornamenti di Ethereum.", diff --git a/src/intl/it/page-wallets-find-wallet.json b/src/intl/it/page-wallets-find-wallet.json index 6093911bf3a..f387a3ccaf6 100644 --- a/src/intl/it/page-wallets-find-wallet.json +++ b/src/intl/it/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Nuovo utente alla ricerca di un portafoglio per principianti.", "page-find-wallet-nfts-title": "NFT", "page-find-wallet-nfts-desc": "Portafogli con un focus su supporto NFT.", - "page-find-wallet-hodler-title": "A lungo termine", + "page-find-wallet-hodler-title": "Hardware", "page-find-wallet-hodler-desc": "Detenzione passiva di token mediante portafogli hardware.", "page-find-wallet-finance-title": "Finanza", "page-find-wallet-finance-desc": "Portafogli incentrati sull'utilizzo frequente di app di DeFi.", diff --git a/src/intl/it/template-usecase.json b/src/intl/it/template-usecase.json index 94a0740ba40..1fa57926464 100644 --- a/src/intl/it/template-usecase.json +++ b/src/intl/it/template-usecase.json @@ -1,8 +1,10 @@ { + "template-usecase-dropdown-ai-agents": "Agenti IA", "template-usecase-dropdown-defi": "Finanza decentralizzata (DeFi)", "template-usecase-dropdown-nft": "Token non fungibili (NFT)", "template-usecase-dropdown-dao": "Organizzazioni autonome decentralizzate (DAO)", "template-usecase-dropdown-payments": "Pagamenti su Ethereum", + "template-usecase-dropdown-prediction-markets": "Mercati predittivi", "template-usecase-dropdown-social-networks": "Social network decentralizzati", "template-usecase-dropdown-identity": "Identità decentralizzata", "template-usecase-dropdown-desci": "Scienza Decentralizzata (DeSci)", @@ -11,4 +13,4 @@ "template-usecase-banner": "Gli utilizzi di Ethereum si sviluppano ed evolvono costantemente. Aggiungi qualsiasi informazione pensi possa chiarire o aggiornare i contenuti.", "template-usecase-edit-link": "Modifica pagina", "template-usecase-dropdown-aria": "Menu a discesa dei casi d'uso" -} \ No newline at end of file +} diff --git a/src/intl/ja/common.json b/src/intl/ja/common.json index a6e2b371961..cfddae0b014 100644 --- a/src/intl/ja/common.json +++ b/src/intl/ja/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "家庭用ハードウェアを稼働させ、イーサリアムネットワークのセキュリティと分散化に個人で貢献", "nav-staking-solo-label": "ソロステーキング", "nav-start-building-description": "初心者向けの有用な情報", + "nav-start-with-crypto-title": "ここから始める", + "nav-start-with-crypto-description": "Ethereum を使い始める第一歩", "nav-translation-program-description": "ethereum.orgをすべての言語に翻訳するための共同作業", "nav-tutorials-description": "コミュニティチュートリアルの精選されたリスト", "nav-use-cases-description": "イーサリアム利用のさまざまなアイデアを発見", diff --git a/src/intl/ja/page-index.json b/src/intl/ja/page-index.json index ebf07dbef73..d352642c87d 100644 --- a/src/intl/ja/page-index.json +++ b/src/intl/ja/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "最近の投稿", "page-index-posts-subtitle": "コミュニティからの最新のブログ投稿とアップデート", "page-index-title": "イーサリアムへようこそ", + "page-index-use-cases-tag": "ユースケース", "page-index-values-description": "デジタル革命に参加しよう", "page-index-values-header": "インターネットは変化しています", "page-index-values-legacy": "レガシー", diff --git a/src/intl/ja/page-wallets-find-wallet.json b/src/intl/ja/page-wallets-find-wallet.json index d98879fa86f..031ec14d527 100644 --- a/src/intl/ja/page-wallets-find-wallet.json +++ b/src/intl/ja/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "初心者向けウォレットを探している初めてのユーザー。", "page-find-wallet-nfts-title": "NFT", "page-find-wallet-nfts-desc": "NFTサポートを重視したウォレット。", - "page-find-wallet-hodler-title": "長期", + "page-find-wallet-hodler-title": "ハードウェア", "page-find-wallet-hodler-desc": "ハードウェアウォレットでトークンを長期保有する。", "page-find-wallet-finance-title": "ファイナンス", "page-find-wallet-finance-desc": "DeFiアプリの頻繁な利用を重視したウォレット。", diff --git a/src/intl/ka/common.json b/src/intl/ka/common.json index d7aba844912..e57983eee0b 100644 --- a/src/intl/ka/common.json +++ b/src/intl/ka/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "გაუშვით სახლის აპარატურა და პირადად დაამატეთ ეთერეუმ ქსელის უსაფრთხოება და დეცენტრალიზაცია", "nav-staking-solo-label": "სოლო სტეიკინგი", "nav-start-building-description": "სასარგებლო ინფორმაცია ახალი წევრებისათვის", + "nav-start-with-crypto-title": "დაიწყეთ აქ", + "nav-start-with-crypto-description": "თქვენი პირველი ნაბიჯები Ethereum-ით", "nav-translation-program-description": "ურთიერთთანამშრომლობითი ძალისხმევა ethereum.org-ის ყველა ენაზე გადათარგმნის კუთხით", "nav-tutorials-description": "საზოგადოების სასწავლო ვიდეოების კურირებული სია", "nav-use-cases-description": "აღმოაჩინეთ ეთერეუმის გამოყენების განსხვავებული იდეები", diff --git a/src/intl/ka/page-index.json b/src/intl/ka/page-index.json index db0ba44aa93..9c48454936c 100644 --- a/src/intl/ka/page-index.json +++ b/src/intl/ka/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "ბოლო პოსტები", "page-index-posts-subtitle": "საზოგადოების უახლესი ბლოგ პოსტები და განახლებები", "page-index-title": "კეთილი იყოს შენი მობრძანება ეთერეუმზე", + "page-index-use-cases-tag": "გამოყენების შემთხვევები", "page-index-values-description": "გახდით ციფრული რევოლუციის ნაწილი", "page-index-values-header": "ინტერნეტი იცვლება", "page-index-values-legacy": "მემკვიდრეობა", diff --git a/src/intl/kk/common.json b/src/intl/kk/common.json index 8c9d9b3e64e..0a9b08d2fb1 100644 --- a/src/intl/kk/common.json +++ b/src/intl/kk/common.json @@ -319,6 +319,8 @@ "nav-staking-solo-description": "Үй жабдықтарын іске қосыңыз және Ethereum желісінің қауіпсіздігі мен орталықсыздандыруына жеке қосыңыз", "nav-staking-solo-label": "Соло стейкинг", "nav-start-building-description": "Жаңа келгендер үшін пайдалы ақпарат", + "nav-start-with-crypto-title": "Мұнда бастаңыз", + "nav-start-with-crypto-description": "Ethereum-мен алғашқы қадамдарыңыз", "nav-translation-program-description": "ethereum.org сайтын барлық тілдерге аударуға бірге әрекеттену", "nav-tutorials-description": "Қауымдастық нұсқаулығының таңдалған тізімі", "nav-use-cases-description": "Ethereum пайдаланудың әртүрлі идеяларын ашыңыз", diff --git a/src/intl/kk/page-index.json b/src/intl/kk/page-index.json index c0f7866e25e..e3cd512b01e 100644 --- a/src/intl/kk/page-index.json +++ b/src/intl/kk/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Соңғы жазбалар", "page-index-posts-subtitle": "Қауымдастықтан соңғы блог жазбалары және жаңартулар", "page-index-title": "Ethereum-ге қош келдіңіз", + "page-index-use-cases-tag": "Қолдану жағдайлары", "page-index-values-description": "Цифрлық революцияның бір бөлігі болыңыз", "page-index-values-header": "Интернет өзгеріп жатыр", "page-index-values-legacy": "Тарих", diff --git a/src/intl/km/common.json b/src/intl/km/common.json index 51fb713563c..dde8d523c9b 100644 --- a/src/intl/km/common.json +++ b/src/intl/km/common.json @@ -321,6 +321,8 @@ "nav-staking-solo-description": "ដំណើរការហាដវែរនៅផ្ទះ ហើយបន្ថែមដោយផ្ទាល់ទៅសុវត្ថិភាព និងវិមជ្ឈការនៃបណ្តាញ Ethereum", "nav-staking-solo-label": "ការភ្នាល់ទោល", "nav-start-building-description": "ព័ត៌មានសំខាន់ៗសម្រាប់អ្នកចូលរួមថ្មី", + "nav-start-with-crypto-title": "ចាប់ផ្តើមនៅទីនេះ", + "nav-start-with-crypto-description": "ជំហានដំបូងរបស់អ្នកជាមួយ Ethereum", "nav-translation-program-description": "ការខិតខំប្រឹងប្រែងរួមគ្នាដើម្បីបកប្រែ ethereum.org ឱ្យបានគ្រប់ភាសាទាំងអស់", "nav-tutorials-description": "បញ្ជីត្រៀមទុកនៃការបង្រៀនសហគមន៍", "nav-use-cases-description": "ស្វែងយល់ពីគំនិតផ្សេងៗគ្នាសម្រាប់ការប្រើ Ethereum", diff --git a/src/intl/km/page-index.json b/src/intl/km/page-index.json index f7fe1744e0b..fdf99400a06 100644 --- a/src/intl/km/page-index.json +++ b/src/intl/km/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "ការបង្ហោះថ្មីៗ", "page-index-posts-subtitle": "ការបង្ហោះ​ក្នុងប្លុកចុងក្រោយបំផុត និងការធ្វើបច្ច្ចប្បន្នភាពពីសហគមន៍", "page-index-title": "ស្វាគមន៍មកកាន់ Ethereum", + "page-index-use-cases-tag": "ករណីប្រើប្រាស់", "page-index-values-description": "ក្លាយជាផ្នែកមួយនៃបដិវត្តន៍ឌីជីថល", "page-index-values-header": "អ៊ិនធឺណិតកំពុងតែផ្លាស់ប្តូរ", "page-index-values-legacy": "ពីមុន", diff --git a/src/intl/kn/common.json b/src/intl/kn/common.json index 2dbd1c06524..fa5b5950f63 100644 --- a/src/intl/kn/common.json +++ b/src/intl/kn/common.json @@ -332,6 +332,8 @@ "nav-staking-solo-description": "ನಿಮ್ಮ ಮನೆಯ ಹಾರ್ಡ್‌ವೇರ್ ಅನ್ನು ಚಲಾಯಿಸಿ ಮತ್ತು ವೈಯಕ್ತಿಕವಾಗಿ ಎಥೆರಿಯಮ್ ನೆಟ್‌ವರ್ಕ್‌ನ ಭದ್ರತೆ ಮತ್ತು ವಿಕೇಂದ್ರೀಕರಣಕ್ಕೆ ಸೇರಿಸಿ", "nav-staking-solo-label": "ಏಕವ್ಯಕ್ತಿ ಸ್ಟೇಕಿಂಗ್", "nav-start-building-description": "ಹೊಸಬರಿಗೆ ಉಪಯುಕ್ತ ಮಾಹಿತಿ", + "nav-start-with-crypto-title": "ಇಲ್ಲಿ ಪ್ರಾರಂಭಿಸಿ", + "nav-start-with-crypto-description": "Ethereum ಬಳಸುವ ನಿಮ್ಮ ಪ್ರಥಮ ಹೆಜ್ಜೆಗಳು", "nav-translation-program-description": "Ethereum.org ಅನ್ನು ಎಲ್ಲಾ ಭಾಷೆಗಳಿಗೆ ಭಾಷಾಂತರಿಸಲು ಸಹಯೋಗದ ಪ್ರಯತ್ನ", "nav-tutorials-description": "ಸಮುದಾಯ ಬೋಧನೆಗಳ ಕ್ಯುರೇಟೆಡ್ ಪಟ್ಟಿ", "nav-use-cases-description": "ಎಥೆರಿಯಮ್ ಬಳಕೆಗೆ ವಿವಿಧ ವಿಚಾರಗಳನ್ನು ಕಂಡುಕೊಳ್ಳಿ", diff --git a/src/intl/kn/page-index.json b/src/intl/kn/page-index.json index 95a5594627e..317824efa2f 100644 --- a/src/intl/kn/page-index.json +++ b/src/intl/kn/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "ಇತ್ತೀಚಿನ ಪೋಸ್ಟ್‌ಗಳು", "page-index-posts-subtitle": "ಸಮುದಾಯದಿಂದ ಇತ್ತೀಚಿನ ಬ್ಲಾಗ್ ಪೋಸ್ಟ್‌ಗಳು ಮತ್ತು ನವೀಕರಣಗಳು", "page-index-title": "ಇಥಿರಿಯಮ್‌ಗೆ ಸ್ವಾಗತ", + "page-index-use-cases-tag": "ಬಳಕೆಯ ಪ್ರಕರಣಗಳು", "page-index-values-description": "ಡಿಜಿಟಲ್ ಕ್ರಾಂತಿಯ ಭಾಗವಾಗಿರಿ", "page-index-values-header": "ಇಂಟರ್ನೆಟ್ ಬದಲಾಗುತ್ತಿದೆ", "page-index-values-legacy": "ಪರಂಪರೆ", diff --git a/src/intl/kn/page-wallets-find-wallet.json b/src/intl/kn/page-wallets-find-wallet.json index ccee2b0713e..032a04d3dd2 100644 --- a/src/intl/kn/page-wallets-find-wallet.json +++ b/src/intl/kn/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "ಮೊದಲ ಬಾರಿಗೆ ಬಳಕೆದಾರರು ಆರಂಭಿಕ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಹುಡುಕುತ್ತಿದ್ದಾರೆ.", "page-find-wallet-nfts-title": "NFTs", "page-find-wallet-nfts-desc": "NFT ಬೆಂಬಲದ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿದ ವ್ಯಾಲೆಟ್ ಗಳು.", - "page-find-wallet-hodler-title": "ದೀರ್ಘಾವಧಿ", + "page-find-wallet-hodler-title": "ಹಾರ್ಡ್‌ವೇರ್", "page-find-wallet-hodler-desc": "ಹಾರ್ಡ್ ವೇರ್ ವ್ಯಾಲೆಟ್ ಗಳೊಂದಿಗೆ ನಿಷ್ಕ್ರಿಯ ಟೋಕನ್ ಹೋಲ್ಡಿಂಗ್.", "page-find-wallet-finance-title": "ಹಣಕಾಸು", "page-find-wallet-finance-desc": "ಡಿಫೈ ಅಪ್ಲಿಕೇಶನ್ ಗಳ ಆಗಾಗ್ಗೆ ಬಳಕೆಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುವ ವ್ಯಾಲೆಟ್ ಗಳು.", diff --git a/src/intl/ko/common.json b/src/intl/ko/common.json index 37394cd3ea7..e653d044a7d 100644 --- a/src/intl/ko/common.json +++ b/src/intl/ko/common.json @@ -323,6 +323,8 @@ "nav-staking-solo-description": "가정용 컴퓨터를 실행하고 이더리움 네트워크의 보안과 탈중앙화에 기여해 보세요.", "nav-staking-solo-label": "솔로 스테이킹", "nav-start-building-description": "신규 사용자를 위한 유용한 정보", + "nav-start-with-crypto-title": "여기서 시작하세요", + "nav-start-with-crypto-description": "Ethereum 사용 첫 단계", "nav-translation-program-description": "ethereum.org를 모든 언어로 번역하기 위한 공동의 노력", "nav-tutorials-description": "엄선된 커뮤니티 튜토리얼 목록", "nav-use-cases-description": "이더리움 사용에 대한 다른 아이디어 살펴보기", diff --git a/src/intl/ko/page-index.json b/src/intl/ko/page-index.json index 25150556b63..00cce54be6e 100644 --- a/src/intl/ko/page-index.json +++ b/src/intl/ko/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "최근 게시물", "page-index-posts-subtitle": "커뮤니티의 최근 블로그 게시물 및 업데이트", "page-index-title": "이더리움에 오신 것을 환영합니다", + "page-index-use-cases-tag": "사용 사례", "page-index-values-description": "디지털 혁명에 참여하십시오.", "page-index-values-header": "인터넷은 변화하고 있습니다.", "page-index-values-legacy": "레거시", diff --git a/src/intl/lt/common.json b/src/intl/lt/common.json index 497fb886b88..6d1c8dc5f20 100644 --- a/src/intl/lt/common.json +++ b/src/intl/lt/common.json @@ -320,6 +320,8 @@ "nav-staking-solo-description": "Paleiskite namų įrangą ir asmeniškai prisidėkite prie Ethereum tinklo saugumo ir decentralizacijos", "nav-staking-solo-label": "Savarankiškas palaikymas", "nav-start-building-description": "Naudinga informacija naujokams", + "nav-start-with-crypto-title": "Pradėkite čia", + "nav-start-with-crypto-description": "Pirmieji žingsniai su Ethereum", "nav-translation-program-description": "Bendros pastangos išversti puslapį ethereum.org į visas kalbas", "nav-tutorials-description": "Sudarytas bendruomenės vadovėlių sąrašas", "nav-use-cases-description": "Atraskite kitokio Ethereum panaudojimo idėjų", diff --git a/src/intl/lt/page-index.json b/src/intl/lt/page-index.json index 253fb6842ae..71fa0bbb68c 100644 --- a/src/intl/lt/page-index.json +++ b/src/intl/lt/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Naujausios publikacijos", "page-index-posts-subtitle": "Naujausi bendruomenės tinklaraščio įrašai ir atnaujinimai", "page-index-title": "Sveikiname, tai Ethereum", + "page-index-use-cases-tag": "Naudojimo atvejai", "page-index-values-description": "Tapkite skaitmeninės revoliucijos dalimi", "page-index-values-header": "Internetas keičiasi", "page-index-values-legacy": "Paveldas", diff --git a/src/intl/ml/common.json b/src/intl/ml/common.json index 85d05751fd8..1636a82e186 100644 --- a/src/intl/ml/common.json +++ b/src/intl/ml/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "ഹോം ഹാർഡ്‌വെയർ പ്രവർത്തിപ്പിച്ച് വ്യക്തിപരമായി Ethereum നെറ്റ്‌വർക്കിൻ്റെ സുരക്ഷയും വികേന്ദ്രീകരണവും ചേർക്കുക", "nav-staking-solo-label": "സോളോ സ്റ്റെയ്ക്കിങ്", "nav-start-building-description": "നവാഗതർക്കുള്ള ഉപയോഗപ്രദമായ വിവരങ്ങൾ", + "nav-start-with-crypto-title": "ഇവിടെ നിന്ന് ആരംഭിക്കുക", + "nav-start-with-crypto-description": "Ethereum ഉപയോഗിക്കാൻ നിങ്ങളുടെ ആദ്യ നടപടികൾ", "nav-translation-program-description": "എല്ലാ ഭാഷകളിലേക്കും ethereum.org വിവർത്തനം ചെയ്യാനുള്ള ഒരു കൂട്ടായ പരിശ്രമം", "nav-tutorials-description": "കമ്മ്യൂണിറ്റി ട്യൂട്ടോറിയലുകളുടെ ക്യൂറേറ്റ് ചെയ്‌ത ലിസ്റ്റ്", "nav-use-cases-description": "Ethereum ഉപയോഗത്തിനുള്ള വ്യത്യസ്‌ത ആശയങ്ങൾ കണ്ടെത്തുക", diff --git a/src/intl/ml/page-index.json b/src/intl/ml/page-index.json index c8be2fecbb3..0934f54d640 100644 --- a/src/intl/ml/page-index.json +++ b/src/intl/ml/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "സമീപകാല പോസ്റ്റുകൾ", "page-index-posts-subtitle": "കമ്മ്യൂണിറ്റിയിൽ നിന്നുള്ള ഏറ്റവും പുതിയ ബ്ലോഗ് പോസ്റ്റുകളും അപ്‌ഡേറ്റുകളും", "page-index-title": "Ethereum-ലേക്ക് സ്വാഗതം", + "page-index-use-cases-tag": "ഉപയോഗ കേസുകൾ", "page-index-values-description": "ഡിജിറ്റൽ വിപ്ലവത്തിന്റെ ഭാഗമാവുക", "page-index-values-header": "ഇന്റർനെറ്റ് മാറുകയാണ്", "page-index-values-legacy": "പാരമ്പര്യം", diff --git a/src/intl/mr/common.json b/src/intl/mr/common.json index 6283250aace..b32b2a0e79d 100644 --- a/src/intl/mr/common.json +++ b/src/intl/mr/common.json @@ -321,6 +321,8 @@ "nav-staking-solo-description": "होम हार्डवेअर चालवा आणि वैयक्तिकरित्या इथरियम नेटवर्कची सुरक्षा आणि विकेंद्रीकरण जोडा", "nav-staking-solo-label": "सोलो स्टॅकिंग", "nav-start-building-description": "नवोदितांसाठी उपयुक्त माहिती", + "nav-start-with-crypto-title": "इथून सुरू करा", + "nav-start-with-crypto-description": "Ethereum वापरण्याची तुमची पहिली पावले", "nav-translation-program-description": "Ethereum.org सर्व भाषांमध्ये अनुवादित करण्याचा एक सहयोगी प्रयत्न", "nav-tutorials-description": "सामुदायिक ट्यूटोरियलची क्युरेट केलेली यादी", "nav-use-cases-description": "इथरियमच्या वापरासाठी विविध कल्पना शोधा", diff --git a/src/intl/mr/page-index.json b/src/intl/mr/page-index.json index 8a64cdbffed..61551815eaa 100644 --- a/src/intl/mr/page-index.json +++ b/src/intl/mr/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "अलीकडील पोस्ट", "page-index-posts-subtitle": "समुदायामधील नवीनतम ब्लॉग पोस्ट्‍स आणि अपडेट्‍स", "page-index-title": "Ethereum मध्ये आपले स्वागत आहे", + "page-index-use-cases-tag": "प्रकरणे वापरा", "page-index-values-description": "डिजिटल क्रांतीमधील भाग व्हा", "page-index-values-header": "इंटरनेट बदलत आहे", "page-index-values-legacy": "परंपरा", diff --git a/src/intl/ms/common.json b/src/intl/ms/common.json index d09682a9fb9..1554fb02929 100644 --- a/src/intl/ms/common.json +++ b/src/intl/ms/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Jalankan perkakasan laman utama dan tambah pada keselamatan dan keteragihan rangkaian Ethereum secara peribadi", "nav-staking-solo-label": "Pertaruhan solo", "nav-start-building-description": "Maklumat berguna untuk pengguna baharu", + "nav-start-with-crypto-title": "Mulakan di sini", + "nav-start-with-crypto-description": "Langkah pertama anda menggunakan Ethereum", "nav-translation-program-description": "Usahasama untuk menterjemah ethereum.org kepada semua bahasa", "nav-tutorials-description": "Senarai tutorial komuniti yang dipilih susun", "nav-use-cases-description": "Terokai idea lain untuk penggunaan Ethereum", diff --git a/src/intl/ms/glossary-tooltip.json b/src/intl/ms/glossary-tooltip.json new file mode 100644 index 00000000000..98f524c94f3 --- /dev/null +++ b/src/intl/ms/glossary-tooltip.json @@ -0,0 +1,54 @@ +{ + "51%-attack-definition": "Sejenis serangan di mana kumpulan mendapat kawalan majoriti <a href=\"/glossary/#node\">nod</a>. Ini akan membolehkan mereka mengenyahpenipuan blok rantai dengan membalikkan <a href=\"/glossary/#transaction\"> transaksi</a> dan perbelanjaan berganda <a href=\"ether\">ether</a> dan token lain.", + "account-definition": "Akaun Ethereum ialah identiti digital pada blok rantai Ethereum, membenarkan pengguna menghantar, menerima Ether atau aset digital lain dan berinteraksi dengan kontrak pintar.", + "address-definition": "Alamat Ethereum ialah pengecam unik yang digunakan untuk menerima token, berfungsi serupa dengan nombor akaun bank untuk mata wang kripto. Ia digunakan untuk mengenal pasti akaun Ethereum anda.", + "block-definition": "Blok ialah tempat transaksi atau tindakan digital disimpan. Setelah blok penuh, ia akan dipautkan kepada yang sebelumnya, mewujudkan rantaian blok atau \"blok rantai\". <a href=\"/developers/docs/blocks/\">Maklumat lanjut tentang blok</a>.", + "blockchain-term": "Blockchain", + "blockchain-definition": "Blok rantai ialah pangkalan data transaksi, diduplikasi dan dikongsi pada semua komputer dalam rangkaian, memastikan data tidak boleh diubah secara retroaktif.", + "bridge-term": "Jambatan", + "bridge-definition": "Jambatan blok rantai digunakan untuk memindahkan aset dari satu rangkaian blok rantai kepada yang lain.", + "consensus-term": "Permuafakatan", + "consensus-layer-term": "Lapisan persetujuan", + "cryptoeconomics-term": "Ekonomi Kripto", + "cryptography-definition": "Ia adalah amalan untuk menjadikan komunikasi peribadi dan selamat supaya hanya mereka yang bertujuan untuk maklumat itu boleh membacanya.", + "dao-definition": "DAO ialah organisasi digital yang dikendalikan oleh peraturan yang dikodkan pada blok rantai, di mana keputusan dibuat melalui undian ahli, bukan pihak berkuasa pusat. <a href=\"/dao/\">Lebih lanjut mengenai organisasi autonomi terpencar (DAO)</a>.", + "dapp-definition": "dApp ialah aplikasi terdesentralisasi yang berjalan pada rangkaian blok rantai, menawarkan perkhidmatan tanpa pihak berkuasa kawalan pusat. <a href=\"/dapps/\">Lebih lanjut mengenai aplikasi terdesentralisasi</a>.", + "data-availability-term": "Ketersediaan data", + "defi-term": "DeFi", + "ens-definition": "Perkhidmatan Nama Ethereum adalah seperti buku telefon internet untuk alamat Ethereum. Daripada menggunakan alamat dompet yang panjang, ENS membenarkan anda menggunakan nama mudah seperti \"john.eth\" untuk menghantar dan menerima wang dan aset digital.", + "epoch-term": "Epoch", + "erc-definition": "ERC (<strong>Permintaan untuk Komen Ethereum</strong>) ialah sejenis dokumentasi teknikal yang digunakan dalam komuniti Ethereum untuk mencadangkan standard penggunaan baharu untuk rangkaian Ethereum.", + "erc-1155-term": "ERC-1155", + "erc-1155-definition": "Sejenis standard token Ethereum yang serupa dengan NFT (seperti item koleksi unik) yang turut membenarkan untuk mencipta item boleh tukar ganti (seperti mata wang) dalam satu kontrak pintar.", + "erc-20-term": "ERC-20", + "erc-20-definition": "Merupakan set peraturan standard yang kebanyakan token pada rangkaian Ethereum dicipta.", + "erc-721-term": "ERC-721", + "erc-721-definition": "Satu set peraturan standard yang digunakan untuk mencipta NFT (token tidak boleh digantikan).", + "ether-term": "Ether", + "events-term": "Acara", + "execution-layer-term": "Lapisan perlaksanaan", + "finality-term": "Kesudahan", + "gas-term": "Gas", + "holographic-consensus-definition": "Merujuk kepada cara keputusan kumpulan besar dibuat dengan membenarkan kumpulan wakil rakyat yang lebih kecil mengundi. Kemudian semua orang bersetuju untuk mengikutinya, selagi mereka percaya kumpulan kecil itu melakukan kerja yang baik.", + "key-definition": "Dalam konteks Ethereum, kunci ialah kod digital: kunci awam untuk menerima transaksi dan kunci peribadi untuk mengakses dan menghantar dana.", + "layer-2-term": "Lapisan 2", + "liquidity-tokens-definition": "Token kecairan (LT) ialah token digital yang dikeluarkan kepada peserta yang mendepositkan aset ke dalam kumpulan kecairan, yang merupakan koleksi dana yang dikunci dalam kontrak pintar dan digunakan untuk memudahkan perdagangan di bursa terdesentralisasi (DEX).", + "mainnet-term": "Rangkaian utama", + "mev-term": "MEV", + "mev-definition": "Mekanisme yang mengutamakan tindakan tertentu pada blok rantai dengan bayaran, mempengaruhi hasil dan susunan transaksi.", + "multisig-term": "Multisig", + "multisig-definition": "Multisig (berbilang tandatangan) merujuk kepada dompet atau akaun digital yang memerlukan berbilang tandatangan atau kelulusan untuk melaksanakan transaksi, meningkatkan keselamatan.", + "onchain-definition": "Merujuk kepada tindakan atau transaksi yang berlaku pada blok rantai dan tersedia untuk umum.", + "peer-to-peer-network-definition": "Rangkaian komputer (rakan sebaya) yang secara kolektif dapat melaksanakan fungsi tanpa memerlukan perkhidmatan berasaskan pelayan berpusat.", + "permissionless-definition": "Tiada kebenaran atau kelulusan diperlukan untuk menggunakan sistem seperti Ethereum, dan tiada sesiapa pun boleh menghalang anda daripada menggunakannya. Ia dibuka 24/7 untuk semua orang menyertainya.", + "pos-term": "Proof-of-stake (PoS)", + "pow-term": "Proof-of-work (PoW)", + "rollups-term": "Rollups", + "sequencer-definition": "Penjujuk ialah program yang bertanggungjawab menyusun urutan transaksi dalam rangkaian blok rantai.", + "smart-contract-term": "Kontrak pintar", + "staking-term": "Pertaruhan", + "trust-assumptions-term": "Andaian kepercayaan", + "wallet-term": "Dompet", + "web2-term": "Web2", + "web3-term": "Web3" +} diff --git a/src/intl/ms/page-get-eth.json b/src/intl/ms/page-get-eth.json index 8111b3b4871..8c3bb058fae 100644 --- a/src/intl/ms/page-get-eth.json +++ b/src/intl/ms/page-get-eth.json @@ -46,7 +46,7 @@ "page-get-eth-hero-image-alt": "Dapatkan imej wira ETH", "page-get-eth-keep-it-safe": "Menjaga keselamatan ETH anda", "page-get-eth-meta-description": "Cara membeli ETH berdasarkan tempat tinggal anda dan nasihat tentang cara menjaganya.", - "page-get-eth-meta-title": "Cara mendapatkan ETH", + "page-get-eth-meta-title": "Cara membeli Ethereum (ETH)", "page-get-eth-need-wallet": "Anda memerlukan dompet untuk menggunakan DEX.", "page-get-eth-new-to-eth": "Baharu menggunakan ETH? Berikut adalah gambaran keseluruhan untuk anda bermula.", "page-get-eth-other-cryptos": "Beli dengan kripto yang lain", diff --git a/src/intl/ms/page-index.json b/src/intl/ms/page-index.json index 93f7ed43536..00a8bd0ee54 100644 --- a/src/intl/ms/page-index.json +++ b/src/intl/ms/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Siaran terkini", "page-index-posts-subtitle": "Siaran blog terkini dan berita terkini daripada masyarakat", "page-index-title": "Selamat datang ke Ethereum", + "page-index-use-cases-tag": "Guna kes", "page-index-values-description": "Jadi sebahagian daripada revolusi digital", "page-index-values-header": "Internet kini berubah", "page-index-values-legacy": "Legasi", diff --git a/src/intl/ms/page-learn.json b/src/intl/ms/page-learn.json index b34a0424fc4..31d0a4540b8 100644 --- a/src/intl/ms/page-learn.json +++ b/src/intl/ms/page-learn.json @@ -10,6 +10,7 @@ "hero-header": "Pelajari tentang Ethereum", "hero-subtitle": "Panduan pendidikan anda ke dunia Ethereum. Pelajari cara Ethereum berfungsi dan cara bersambung dengannya. Laman ini merangkumi artikel teknikal dan bukan teknikal, panduan, dan sumber-sumber.", "hero-button-lets-get-started": "Mari kita mulakan", + "page-learn-meta-title": "Ethereum: Panduan Pembelajaran Menyeluruh", "what-is-crypto-1": "Anda mungkin pernah mendengar tentang mata wang kripto, blok rantai, dan Bitcoin. Pautan di bawah akan membantu anda mempelajari apa itu dan bagaimana hubungannya dengan Ethereum.", "what-is-crypto-2": "Mata wang kripto, seperti bitcoin, membolehkan sesiapa sahaja untuk memindahkan wang secara global. Ethereum juga boleh melakukannya, tetapi juga boleh menjalankan kod yang membolehkan orang mencipta aplikasi dan organisasi. Ethereum tahan lasak dan fleksibel: sebarang program komputer boleh dijalankan dengan Ethereum. Ketahui lebih lanjut dan pelajari cara untuk memulakan:", "what-is-ethereum-card-title": "Apa itu Ethereum?", @@ -33,9 +34,9 @@ "find-a-wallet-card-title": "Cari dompet", "find-a-wallet-card-description": "Semak imbas dompet berdasarkan ciri-ciri yang penting kepada anda.", "find-a-wallet-button": "Senarai dompet", - "crypto-security-basics-card-title": "Asas keselamatan", - "crypto-security-basics-card-description": "Pelajari cara untuk mengenal pasti penipuan dan cara untuk mengelakkan helah yang paling biasa.", - "crypto-security-basics-card-button": "Kekal selamat", + "ethereum-networks-card-title": "Rangkaian Ethereum", + "ethereum-networks-card-description": "Jimat wang dengan menggunakan sambungan Ethereum yang lebih murah dan pantas.", + "ethereum-networks-card-button": "Pilih rangkaian", "things-to-consider-banner-title": "Perkara yang boleh dipertimbangkan apabila menggunakan Ethereum", "things-to-consider-banner-1": "Setiap transaksi Ethereum memerlukan bayaran dalam bentuk ETH, walaupun anda perlu memindahkan token berbeza yang dibina di Ethereum seperti syiling stabil USDC atau DAI.", "things-to-consider-banner-2": "Yuran boleh tinggi bergantung pada bilangan orang yang cuba menggunakan Ethereum, jadi kami mengesyorkan penggunaan", @@ -85,7 +86,7 @@ "ethereum-whitepaper-card-button": "Baca kertas putih", "more-on-ethereum-protocol-title": "Lebih kepada protokol Ethereum", "more-on-ethereum-protocol-ethereum-for-developers": "Ethereum untuk pembangun", - "more-on-ethereum-protocol-consensus": "Mekanisme konsensus berasaskan bukti taruhan Ethereum", + "more-on-ethereum-protocol-consensus": "Mekanisme konsensus berasaskan bukti penaruhan Ethereum", "more-on-ethereum-protocol-evm": "Komputer terbenam Ethereum (EVM)", "more-on-ethereum-protocol-nodes-and-clients": "Nod dan pelanggan Ethereum", "ethereum-community-description": "Kejayaan Ethereum adalah hasil komuniti yang amat berdedikasi. Beribu-ribu orang yang memberikan inspirasi dan didorong membantu menolak visi Ethereum ke hadapan, sementara juga menyediakan keselamatan kepada rangkaian melalui pertaruhan dan tadbir urus. Mari sertai kami!", @@ -120,4 +121,4 @@ "unchained-description": "Menyelami jauh ke dalam individu yang membina Internet ternyahpusat, butiran teknologi ini yang boleh mengukuhkan masa depan kita, dan beberapa topik yang paling penuh dengan duri dan ranjau dalam kripto, seperti peraturan, keselamatan dan privasi", "the-daily-gwei-title": "The Daily Gwei", "the-daily-gwei-description": "Ikhtisar berita, kemas kini dan analisis Ethereum" -} +} \ No newline at end of file diff --git a/src/intl/ms/page-upgrades-index.json b/src/intl/ms/page-upgrades-index.json new file mode 100644 index 00000000000..61a59daee67 --- /dev/null +++ b/src/intl/ms/page-upgrades-index.json @@ -0,0 +1,202 @@ +{ + "consensus-client-besu-logo-alt": "Logo Besu", + "consensus-client-erigon-logo-alt": "Logo Erigon", + "consensus-client-geth-logo-alt": "Logo Geth", + "consensus-client-lighthouse-logo-alt": "Logo Lighthouse", + "consensus-client-lodestar-logo-alt": "Logo Lodestar", + "consensus-client-nethermind-logo-alt": "Logo Nethermind", + "consensus-client-nimbus-logo-alt": "Logo Nimbus", + "consensus-client-prysm-logo-alt": "Logo Prysm", + "consensus-client-teku-logo-alt": "Logo Teku", + "page-upgrades-answer-1": "Rantai Beacon telah digunakan sebagai alat untuk menaik taraf Rangkaian Utama Ethereum di Gabungan.", + "page-upgrades-answer-2": "Dengan Gabungan, Ethereum telah menjalani peningkatan paling besar dengan menukar bukti kerja kepada lapisan persetujuan baharu berasaskan bukti penaruhan.", + "page-upgrades-answer-4": "Rantai Beacon digunakan untuk membangunkan konsensus berdasarkan bukti penaruhan yang digunakan oleh Ethereum pada hari ini. Ia dijalankan secara berasingan dengan Rangkaian utama Ethereum supaya pembangun dapat mengamati mekanisme konsensus dalam pengasingan sebelum menggunakannya untuk mengkoordinasi aktiviti sebenar.", + "page-upgrade-article-author-status": "Status", + "page-upgrade-article-author-ethmerge": "Ethmerge", + "page-upgrade-article-author-alchemy": "Alkimia", + "page-upgrade-article-author-consensys": "Consensys", + "page-upgrade-article-author-delphi-digital": "Delphi Digital", + "page-upgrade-article-author-eip-4844": "Vitalik Buterin, Dankrad Feist, Diederik Loerakker, George Kadianakis, Matt Garnett, Mofi Taiwo", + "page-upgrade-article-author-ethereum-foundation": "Yayasan Ethereum", + "page-upgrade-article-author-vitalik-buterin": "Vitalik Buterin", + "page-upgrade-article-author-ethos-dev": "Ethos.dev", + "page-upgrade-article-title-two-point-oh": "Oh Dua Titik: Rantai Beacon", + "page-upgrade-article-title-beacon-chain-explainer": "Penerangan Rantai Beacon Ethereum 2.0 yang perlu anda baca terlebih dahulu", + "page-upgrade-article-title-sharding-consensus": "Penyerpihan konsensus", + "page-upgrade-article-title-sharding-is-great": "Sebab penyerpihan itu bagus: nyahmistifikasikan sifat teknikal", + "page-upgrade-article-title-rollup-roadmap": "Pelan tindakan gulungan berpusat", + "page-upgrade-article-title-eip-4844": "EIP-4844: Transaksi Gumpalan Shard (Proto-Danksharding)", + "page-upgrade-article-title-proto-danksharding-faq": "Soalan Lazim Proto-Danksharding", + "page-upgrade-article-title-sharding-das": "Penjelasan tentang penyerpihan dan pensampelan ketersediaan data (DAS)", + "page-upgrade-article-title-ethmerge": "Ethmerge", + "page-upgrade-article-title-merge-is-coming": "Gabungan Akan Datang", + "page-upgrade-article-title-state-of-the-merge": "Keadaan Gabungan: Kemas Kini tentang Gabungan Ethereum kepada Bukti Taruhan pada 2022", + "page-upgrade-article-title-ropsten-merge-testnet": "Mengumumkan Testnet Gabungan Ropsten", + "page-upgrade-article-title-execution-layer-specs": "Spesifikasi lapisan perlaksanaan", + "page-upgrade-article-title-consensus-layer-specs": "Spesifikasi lapisan persetujuan", + "page-upgrade-article-title-engine-api-specs": "Spesifikasi API enjin", + "page-upgrades-beacon-chain-date": "Rantai Beacon telah dilancarkan pada 1 Disember 2020", + "page-upgrades-beacon-chain-desc": "Rantai Beacon membawa pertaruhan ke Ethereum dan meletakkan asas untuk peningkatan masa depan. Ia menyelaraskan Ethereum bukti penaruhan baharu.", + "page-upgrades-beacon-chain-estimate": "Rantai Beacon kini sedang berlangsung", + "page-upgrades-beacon-chain-title": "Beacon Chain", + "page-upgrades-bug-bounty": "Lihat program hadiah memburu pepijat", + "page-upgrades-clients": "Semak klien konsensus (sebelum ini dikenali sebagai pelanggan 'Eth2')", + "page-staking-deposit-contract-title": "Semak alamat kontrak deposit", + "page-upgrades-dive": "Dalami visi ini", + "page-upgrades-dive-desc": "Bagaimanakah kami menjadikan Ethereum lebih berskala, selamat dan mampan? Semuanya sambil mengekalkan etos teras Ethereum iaitu desentralisasi.", + "page-upgrades-docking": "Penggabungan", + "page-upgrades-merge-answer-1": "Gabungan adalah apabila Ethereum beralih kepada konsensus bukti penaruhan pada 15 September 2022. Rantai Beacon bergabung dengan Rangkaian utama, secara rasmi menafikan bukti kerja pada Ethereum, dan mengurangkan penggunaan tenaga Ethereum sebanyak ~99.95%.", + "page-upgrades-merge-btn": "Lagi tentang The Merge", + "page-upgrades-merge-desc": "Ethereum rangkaian utama bergabung dengan Rantai Beacon bukti penaruhan, menandakan berakhirnya perlombongan intensif tenaga.", + "page-upgrades-merge-estimate": "Gabungan sedang bersiaran langsung", + "page-upgrades-merge-mainnet": "Apakah itu Rangkaian utama?", + "page-upgrades-eth-blog": "Blog ethereum.org", + "page-upgrades-explore-btn": "Terokai penaikan taraf", + "page-upgrades-get-involved": "Terlibat dalam menaik taraf Ethereum", + "page-upgrades-get-involved-2": "Libatkan diri", + "page-upgrades-head-to-ethresearch": "Pergi ke ethresear.ch", + "page-upgrades-help": "Ingin membantu dengan peningkatan Ethereum?", + "page-upgrades-help-desc": "Terdapat banyak peluang untuk dipertimbangkan dalam peningkatan Ethereum, membantu dengan ujian, dan juga memperoleh ganjaran.", + "page-upgrades-index-staking": "Pertaruhan telah tiba", + "page-upgrades-index-staking-desc": "Kunci kepada peningkatan Ethereum ialah pengenalan kepada pertaruhan. Jika anda ingin menggunakan ETH anda untuk membantu menjamin rangkaian Ethereum, pastikan anda mengikuti langkah ini.", + "page-upgrades-index-staking-learn": "Belajar mengenai pertaruhan", + "page-upgrades-index-staking-learn-desc": "Rantai Beacon membawa pertaruhan ke Ethereum. Jika anda mempunyai ETH, anda boleh melakukan kebaikan awam dengan melindungi rangkaian dan memperoleh lebih banyak ETH dalam proses tersebut.", + "page-upgrades-index-staking-step-1": "1. Sediakan dengan pad pelancaran", + "page-upgrades-index-staking-step-1-btn": "Lihat pad pelancaran pertaruhan", + "page-upgrades-index-staking-step-1-desc": "Untuk mempertaruhkan Ethereum anda perlu menggunakan pad pelancaran - ini akan membawa anda melalui proses tersebut.", + "page-upgrades-index-staking-step-2": "2. Sahkan alamat pertaruhan", + "page-upgrades-index-staking-step-2-btn": "Semak alamat kontrak deposit", + "page-upgrades-index-staking-step-2-desc": "Sebelum anda mempertaruhkan ETH anda, semak untuk memastikan alamat adalah betul. Anda mesti telah melalui pad pelancaran sebelum melakukan ini.", + "page-upgrades-index-staking-sustainability": "Lebih lestari", + "page-upgrades-meta-desc": "Gambaran keseluruhan peningkatan Ethereum dan visi yang mereka harapkan untuk menjadi kenyataan.", + "page-upgrades-meta-title": "Peningkatan Ethereum (dahulunya 'Eth2')", + "page-upgrades-proof-stake-link": "Maklumat lanjut tentang bukti taruhan", + "page-upgrades-question-1-title": "Bilakah naik taraf akan dihantar?", + "page-upgrades-question-1-desc": "Ethereum sedang dinaik taraf secara progresif; naik taraf adalah berbeza dengan tarikh penghantaran yang lain.", + "page-upgrades-question-2-title": "Adakah Rantai Beacon blok rantai yang berasingan?", + "page-upgrades-question-2-desc": "Ya. Rantai Beacon ialah nama yang diberikan kepada blok rantai bukti penaruhan selari yang digunakan untuk menaik taraf Rangkaian utama Ethereum. Kini hanya terdapat satu blok rantai, dibentuk dengan menggabungkan blok rantai Ethereum asal dengan Rantai Beacon bersama-sama.", + "page-upgrades-question-3-answer-2a": "Gabungan mempunyai kesan minimum pada pembangun dapp - mereka masih berinteraksi dengan Ethereum dengan cara yang sama.", + "page-upgrades-question-3-answer-2a-link": "Pembangun Gabungan dan dapp", + "page-upgrades-question-3-answer-2b": "Pelan penyerpihan masih sedang dibangunkan, tetapi akan direka bentuk dengan mengambil kira penghimpunan lapisan 2.", + "page-upgrades-layer-2-rollups": "Maklumat lanjut tentang penghimpunan lapisan 2", + "page-upgrades-question-3-answer-3-link": "Lawati ethresearch.ch", + "page-upgrades-question-3-desc": "Anda tidak perlu melakukan apa-apa sekarang untuk persediaan naik taraf.", + "page-upgrades-question-3-title": "Bagaimanakah patut saya bersedia untuk naik taraf?", + "page-upgrades-question-4-answer-1": "Setiap kali anda menghantar transaksi atau menggunakan dapp hari ini, anda menggunakan lapisan perlaksanaan, juga dikenali sebagai Rangkaian utama.", + "page-upgrades-question-4-answer-3": "Sejak Gabungan, pengesah mengamankan seluruh rangkaian melalui bukti penaruhan.", + "page-upgrades-question-4-answer-6": "Sesiapa sahaja boleh menjadi pengesah dengan mempertaruhkan ETH mereka.", + "page-upgrades-question-4-answer-7": "Lebih mengenai penaruhan", + "page-upgrades-question-4-title": "Apakah itu lapisan perlaksanaan?", + "page-upgrades-question-4-desc": "Sebelum Gabungan, blok rantai Ethereum kadangkala dirujuk sebagai 'Eth1.' Istilah ini telah dihapuskan secara berperingkat memihak kepada 'lapisan perlaksanaan'.", + "page-upgrades-question-5-answer-1": "Untuk menjadi pengesah pada rangkaian, anda perlu mempertaruhkan 32 ETH. Jika anda tidak mempunyai wang sebanyak itu, atau tidak bersedia untuk mempertaruhkan sebanyak itu, anda boleh menyertai kumpulan taruhan. Kumpulan ini akan membolehkan anda mempertaruhkan lebih sedikit dan memperoleh sebahagian kecil daripada jumlah ganjaran.", + "page-upgrades-question-5-desc": "Anda perlu menggunakan pad pelancar pertaruhan atau menyertai kumpulan pertaruhan.", + "page-upgrades-question-5-title": "Bagaimanakah caranya untuk bertaruh?", + "page-upgrades-question-6-answer-3": "Danny Ryan dari yayasan Ethereum sentiasa mengemas kini komuniti:", + "page-upgrades-question-6-answer-4": "Ben Edgington dari ConsenSys mempunyai surat berita mingguan tentang peningkatan Ethereum:", + "page-upgrades-question-6-answer-5": "Anda juga boleh menyertai perbincangan mengenai penyelidikan dan pembangunan Ethereum di ethresear.ch.", + "page-upgrades-question-6-title": "Apakah yang perlu saya lakukan dengan dapp saya?", + "page-upgrades-question-6-desc": "Gabungan direka bentuk untuk memberi impak minimum kepada pembangun dapp, walaupun terdapat beberapa perubahan kecil yang perlu diberi perhatian.", + "page-upgrades-question-6-answer-1": "Pembangun Dapp yang biasa dengan Ethereum pra-gabungan harus mengetahui beberapa perubahan. Perubahan ini termasuk struktur blok dan pemasaan, beberapa perubahan kod operasi, sumber rawak pada rantai dan konsep penamatan era.", + "page-upgrades-question-6-answer-1-link": "Cara Gabungan Menjejaskan Lapisan Penerapan Ethereum", + "page-upgrades-question-6-answer-2": "Penerapan hampir tidak terjejas sepenuhnya.", + "page-upgrades-question-7-desc": "Banyak pasukan berbeza dari seluruh komuniti sedang mengusahakan pelbagai peningkatan Ethereum.", + "page-upgrades-question-7-lighthouse": "Lighthouse", + "page-upgrades-question-7-lighthouse-lang": "(Pelaksanaan Rust)", + "page-upgrades-question-7-lodestar": "Lodestar", + "page-upgrades-question-7-lodestar-lang": "(Pelaksanaan JavaScript)", + "page-upgrades-question-7-nimbus": "Nimbus", + "page-upgrades-question-7-nimbus-lang": "(Pelaksanaan Nim)", + "page-upgrades-question-7-prysm": "Prysm", + "page-upgrades-question-7-prysm-lang": "(Pelaksanaan Go)", + "page-upgrades-question-7-teams": "Pasukan klien konsensus Ethereum:", + "page-upgrades-question-7-teku": "Teku", + "page-upgrades-question-7-teku-lang": "(pelaksanaan Java)", + "page-upgrades-question-7-title": "Siapakah yang membina peningkatan Ethereum?", + "page-upgrades-question-7-clients": "Ketahui lebih lanjut tentang klien Ethereum", + "page-upgrades-question-8-answer-1": "Peningkatan Ethereum akan membantu Ethereum menskala dengan cara terdesentralisasi, sambil mengekalkan keselamatan, dan meningkatkan kemampanan.", + "page-upgrades-question-8-answer-2": "Mungkin masalah yang paling jelas ialah Ethereum perlu dapat mengendalikan lebih daripada 15-45 transaksi sesaat. Tetapi peningkatan juga menangani beberapa masalah lain dengan Ethereum hari ini.", + "page-upgrades-question-8-answer-3": "Rangkaian pada masa permintaan tinggi menyebabkan Ethereum mahal untuk digunakan. Nod dalam rangkaian bergelut di bawah saiz Ethereum dan jumlah data yang perlu diproses oleh komputer mereka. Algoritma asal yang menggariskan keselamatan dan desentralisasi Ethereum adalah intensif tenaga dan perlu lebih hijau.", + "page-upgrades-question-8-answer-4": "Banyak perkara yang berubah sentiasa ada pada pelan tindakan Ethereum, sejak 2015 lagi. Tetapi keadaan semasa menjadikan keperluan untuk peningkatan lebih besar.", + "page-upgrades-question-8-answer-6": "Terokai visi Ethereum", + "page-upgrades-question-8-desc": "Ethereum yang kita gunakan hari ini perlu menawarkan pengalaman yang lebih baik kepada pengguna akhir dan peserta rangkaian.", + "page-upgrades-question-8-title": "Mengapakah peningkatan diperlukan?", + "page-upgrades-question-9-answer-1": "Peranan paling aktif yang boleh anda mainkan ialah mempertaruhkan ETH anda.", + "page-upgrades-question-9-answer-2": "Anda juga mungkin mahu menjalankan pelanggan kedua untuk membantu meningkatkan kepelbagaian klien.", + "page-upgrades-question-9-answer-3": "Jika anda lebih teknikal, anda boleh membantu menangkap pepijat dalam klien baharu.", + "page-upgrades-question-9-answer-4": "Anda juga boleh mempertimbangkan perbincangan teknikal dengan penyelidik Ethereum di ethresear.ch.", + "page-upgrades-question-9-desc": "Anda tidak perlu menjadi teknikal untuk menyumbang. Komuniti sedang mencari sumbangan daripada semua jenis set kemahiran.", + "page-upgrades-question-9-stake-eth": "Taruh ETH", + "page-upgrades-question-9-title": "Bagaimanakah boleh saya menyumbang kepada peningkatan Ethereum?", + "page-upgrades-question-9-more": "Mencari cara-cara umum yang lain untuk melibatkan diri dengan Ethereum", + "page-upgrades-question-10-title": "Apakah 'fasa-fasa Eth2?'", + "page-upgrades-question-10-desc": "Beberapa perkara telah berubah di sini.", + "page-upgrades-question-10-answer-0": "Istilah 'Eth2' sendiri sedang diluputkan secara beransur-ansur, kerana ia tidak mewakili satu peningkatan tunggal atau rangkaian baharu. Ia lebih tepat ditakrifkan sebagai satu set peningkatan berganda yang semuanya memainkan peranan untuk menjadikan Ethereum lebih berskala, selamat, dan mampan. Rangkaian yang anda kenali dan sukai akan hanya dirujuk sebagai Ethereum.", + "page-upgrades-question-10-answer-1": "Kami berasa keberatan untuk bercakap terlalu banyak dari segi pelan tindakan teknikal kerana ini adalah perisian: perkara boleh berubah. Kami rasa lebih mudah untuk memahami apa yang berlaku apabila anda membaca tentang hasilnya.", + "page-upgrades-question-10-answer-1-link": "Lihat peningkatan", + "page-upgrades-question-10-answer-2": "Namun, jika anda telah mengikuti diskusi, berikut adalah maklumat tentang cara peningkatan ini selaras dengan pelan tindakan teknikal, dan sedikit tentang cara perubahannya.", + "page-upgrades-question-10-answer-3": "Fasa 0 menggambarkan kerja untuk melangsungkan Rantai Beacon.", + "page-upgrades-question-10-answer-5": "Fasa 1 awalnya berfokus pada implementasi rantaian terbahagi, namun keutamaan beralih kepada Gabungan, yang dihantar pada 15 September 2022.", + "page-upgrades-question-10-answer-6": "Fasa 1.5 awalnya berfokus untuk mengikuti implementasi rantaian terbahagi apabila Rangkaian utama ditambahkan sebagai pembahagian terakhir pada Rantai Beacon. Namun, apabila teknologi gulungan berkembang, komuniti Ethereum mempercepatkan peralihan jauh daripada bukti kerja.", + "page-upgrades-question-10-answer-7": "Rancangan Fasa 2 ialah titik penyelidikan dan perbincangan yang amat. Dengan Gabungan yang telah selesai, dan kemajuan dalam penyelesaian lapisan 2, matlamat kini beralih kepada penyediaan bentuk penyerpihan data yang lebih ringkas untuk memaksimumkan kecekapan gulungan. Lapisan 2 semasa mendayakan keupayaan untuk meningkatkan pelaksanaan transaksi, dan penyerpihan akan membolehkan penyimpanan bukti untuk data ini pada lapisan 1 dengan cara yang murah dan boleh diskalakan.", + "page-upgrades-question-10-answer-8": "Lebih lanjut tentang pelan tindakan yang berfokus pada gulungan berpusat", + "page-upgrades-question-11-title": "Bolehkah saya membeli Eth2?", + "page-upgrades-question-11-desc": "Tidak. Tiada token Eth2 dan ETH anda tidak berubah selepas Gabungan.", + "page-upgrades-question-11-answer-1": "Salah satu penggerak di sebalik penjenamaan semula Eth2 ialah salah tanggapan umum bahawa pemegang ETH dikehendaki memindahkan ETH mereka kepada 'ETH 2.0' selepas Gabungan atau sebarang peningkatan lain. Ini tidak benar dan tidak pernah berlaku.", + "page-upgrades-question-11-answer-2": "Kekeliruan ini sering dimanfaatkan oleh penipu.", + "page-upgrades-question-title": "Soalan lazim", + "page-upgrades-question3-answer-1": "Pemegang ETH tidak perlu melakukan apa-apa. ETH anda tidak perlu diubah atau dikemas kini. Hampir pasti akan ada penipuan yang memberitahu anda sebaliknya, jadi berhati-hatilah.", + "page-upgrades-scalable": "Lebih berskala", + "page-upgrades-scalable-desc": "Ethereum perlu menyokong ribuan transaksi sesaat untuk menjadikan aplikasi lebih pantas dan murah untuk digunakan.", + "page-upgrades-secure": "Lebih selamat", + "page-upgrades-secure-desc": "Ethereum perlu menjadi lebih selamat. Seiring dengan peningkatan penggunaan Ethereum, protokol perlu menjadi lebih selamat daripada segala bentuk serangan.", + "page-upgrades-shard-date": "Penyerpihan akan mengikuti Gabungan dalam pelbagai fasa, kemungkinan pada tahun 2023-2024.", + "page-upgrades-shard-desc": "Danksharding akan memperluas kapasiti Ethereum untuk menyimpan data, dan bekerja secara harmoni dengan L2s untuk meningkatkan jumlah transaksi dan mengurangkan yuran rangkaian. Danksharding akan dilancarkan dalam beberapa peringkat, bermula dengan ProtoDanksharding.", + "page-upgrades-shard-estimate": "Jangkaan: 2023-2024", + "page-upgrades-shard-title": "Penyerpihan", + "page-upgrades-stay-up-to-date": "Kekal terkini", + "page-upgrades-stay-up-to-date-desc": "Dapatkan maklumat terkini daripada penyelidik dan pemaju yang bekerja meningkatkan Ethereum.", + "page-upgrades-sustainable-desc": "Ethereum adalah intensif tenaga sehingga baru-baru ini. Peralihan kepada bukti penaruhan membawa pengurangan penggunaan tenaga rangkaian sebanyak lebih daripada 99.9%.", + "page-upgrades-take-part": "Ambil bahagian dalam penyelidikan", + "page-upgrades-take-part-desc": "Peneliti dan peminat Ethereum berkumpul di sini untuk membincangkan usaha penyelidikan, termasuk segala yang berkaitan dengan peningkatan Ethereum.", + "page-upgrades-the-upgrades": "Peningkatan Ethereum", + "page-upgrades-the-upgrades-desc": "Peningkatan Ethereum bertujuan untuk meningkatkan penskalaan, keselamatan, dan kemampanan rangkaian. Ethereum baru-baru ini telah menjalani beberapa peningkatan besar untuk keselamatan dan kemampanan, dan akan ada lebih banyak lagi peningkatan pada masa depan, terutamanya yang berkaitan dengan penskalaan.", + "page-upgrades-unofficial-roadmap": "Ini bukan pelan tindakan rasmi. Ini adalah cara kami melihat apa yang berlaku berdasarkan maklumat yang ada. Tetapi ini adalah teknologi, dan perkara boleh berubah dengan serta-merta. Jadi, sila jangan baca ini sebagai komitmen.", + "page-upgrades-upgrade-desc": "Ethereum yang kita kenali dan sukai, hanya lebih berskala, lebih selamat, dan lebih mampan...", + "page-upgrades-upgrades": "Peningkatan Ethereum", + "page-upgrades-upgrades-aria-label": "Menu peningkatan Ethereum", + "page-upgrades-upgrades-beacon-chain": "Rantaian Isyarat", + "page-upgrades-upgrades-guide": "Panduan kepada peningkatan Ethereum", + "page-upgrades-upgrades-docking": "Penggabungan", + "page-upgrades-energy-consumption": "Lebih lanjut tentang penggunaan tenaga Ethereum", + "page-upgrades-upgrading": "Meningkatkan Ethereum ke Tahap Baru yang Radikal", + "page-roadmap-vision": "Wawasan", + "page-roadmap-vision-btn": "Maklumat lanjut tentang visi Ethereum", + "page-roadmap-vision-desc": "Untuk membawa Ethereum ke arus perdana dan dapat berkhidmat kepada seluruh umat manusia, kita perlu menjadikannya lebih boleh diskala, selamat, dan mampan.", + "page-upgrades-what-happened-to-eth2-title": "Apa terjadi kepada 'Eth2'?", + "page-upgrades-what-happened-to-eth2-1": "Istilah 'Eth2' sering digunakan sebelum Gabungan tetapi kini sedang digantikan dengan istilah yang lebih tepat.", + "page-upgrades-what-happened-to-eth2-1-more": "Lebih lanjut tentang Gabungan.", + "page-upgrades-what-happened-to-eth2-2": "Sejak penggabungan 'Eth1' dan 'Eth2', tidak ada lagi dua rantai blok Ethereum yang berbeza; kini hanya ada Ethereum sahaja.", + "page-upgrades-what-happened-to-eth2-5": "Ketahui lebih lanjut tentang penamaan semula 'Eth2'", + "page-upgrades-why-cant-we-just-use-eth2-title": "Mengapa kita tidak boleh menggunakan Eth2 sahaja?", + "page-upgrades-why-cant-we-just-use-eth2-mental-models-title": "Model mental", + "page-upgrades-why-cant-we-just-use-eth2-mental-models-description": "Satu masalah utama dengan penjenamaan Eth2 ialah ia mewujudkan model mental yang rosak untuk pengguna baharu Ethereum. Mereka secara intuitif berfikir bahawa Eth1 didahulukan dan Eth2 datang lepas. Atau Eth1 tidak lagi wujud sebaik sahaja Eth2 wujud. Kedua-duanya tidak benar. Dengan mengalih keluar terminologi Eth2, kami menyelamatkan semua pengguna masa hadapan daripada menavigasi model mental yang mengelirukan ini.", + "page-upgrades-why-cant-we-just-use-eth2-inclusivity-title": "Keterangkuman", + "page-upgrades-why-cant-we-just-use-eth2-inclusivity-description": "Memandangkan pelan tindakan untuk Ethereum telah berkembang, Ethereum 2.0 telah menjadi perwakilan yang tidak tepat bagi pelan tindakan Ethereum. Berhati-hati dan tepat dalam pilihan perkataan kami membolehkan kandungan di Ethereum difahami oleh khalayak seluas mungkin.", + "page-upgrades-why-cant-we-just-use-eth2-scam-prevention-title": "Pencegahan penipuan", + "page-upgrades-why-cant-we-just-use-eth2-scam-prevention-description": "Malangnya, pelakon berniat jahat telah cuba menggunakan nama salah Eth2 untuk menipu pengguna dengan meminta mereka untuk menukar ETH mereka dengan token ‘ETH2’ atau mereka mesti memindahkan ETH mereka sebelum peningkatan ke Eth2. Kami berharap istilah yang dikemas kini ini akan memberikan kejelasan untuk menghapuskan vektor penipuan ini dan membantu menjadikan ekosistem lebih selamat.", + "page-upgrades-why-cant-we-just-use-eth2-staking-clarity-title": "Kejelasan pertaruhan", + "page-upgrades-why-cant-we-just-use-eth2-staking-clarity-description": "Beberapa pengendali taruhan juga telah mewakili ETH yang dipertaruhkan pada Rantai Beacon dengan detik ‘ETH2’. Ini menimbulkan kekeliruan yang berpotensi, memandangkan pengguna perkhidmatan ini sebenarnya tidak menerima token ‘ETH2’. Tiada token ‘ETH2’ wujud; ia hanya mewakili bahagian mereka dalam taruhan penyedia tertentu itu.", + "page-upgrades-what-to-do": "Apakah yang perlu anda lakukan?", + "page-upgrades-what-to-do-desc": "Jika anda pengguna dapp atau pemegang ETH, anda tidak perlu melakukan apa-apa. Jika anda seorang pemaju atau ingin mula membuat pertaruhan, terdapat cara anda boleh melibatkan diri hari ini.", + "page-upgrades-whats-next": "Apakah peningkatan Ethereum?", + "page-upgrades-whats-next-desc": "Pelan tindakan Ethereum melibatkan peningkatan protokol yang saling berkaitan yang akan menjadikan rangkaian lebih berskala, lebih selamat dan lebih mampan. Peningkatan ini sedang dibina oleh berbilang pasukan dari seluruh ekosistem Ethereum.", + "page-upgrades-whats-next-history": "Ketahui tentang peningkatan Ethereum sebelumnya", + "page-upgrades-whats-ethereum": "Tunggu, apakah itu Ethereum?", + "page-upgrades-whats-new": "Apakah yang seterusnya untuk Ethereum?", + "page-upgrades-security-link": "Lebih lanjut mengenai keselamatan dan pencegahan penipuan", + "page-staking-deposit-contract-staking-more-link": "Lebih mengenai penaruhan", + "docs-nav-proof-of-stake": "Bukti taruhan", + "docs-nav-proof-of-work": "Bukti kerja", + "page-upgrades-get-involved-ethresearch-1": "Penyerpihan", + "page-upgrades-get-involved-ethresearch-2": "Penggabungan" +} diff --git a/src/intl/ms/page-upgrades.json b/src/intl/ms/page-upgrades.json index b5a78d667d6..6aeb300827f 100644 --- a/src/intl/ms/page-upgrades.json +++ b/src/intl/ms/page-upgrades.json @@ -1,10 +1,23 @@ { + "page-upgrades-merge-infographic-el": "Keadaan Ethereum: transaksi, aplikasi, kontrak, baki", + "page-upgrades-merge-infographic-alt-text": "Infografik yang menggambarkan cara Rantai Beacon bergabung ke dalam lapisan perlaksanaan Ethereum semasa peralihan daripada bukti kerja kepada bukti penaruhan.", + "page-upgrades-beacon-date": "Sudah dihantar!", + "page-upgrades-merge-date": "September 2022", + "page-upgrades-shards-date": "~2023", + "page-upgrades-pbs": "Belum berlaku dalam masa terdekat – jangka pada 2024/25", + "page-upgrades-post-merge-banner-tutorial-ood": "Tutorial ini sudah lapuk selepas penggabungan dan mungkin tidak berfungsi. Sila kemukakan PR jika anda ingin menyumbang.", + "page-upgrades-upgrades-guide": "Panduan kepada peningkatan Ethereum", + "page-upgrades-upgrades-docking": "Penggabungan", + "page-upgrades-shard-title": "Penyerpihan", + "page-upgrades-upgrades-beacon-chain": "Beacon Chain", + "consensus-beaconscan-title": "beaconscan", + "consensus-beaconscan-in-title": "beaconcha.in", "consensus-beaconcha-in-desc": "Penjelajah Rantai Beacon sumber terbuka", - "consensus-beaconscan-desc": "Penjelajah Rantai Beacon - Etherscan untuk lapisan sepersetujuan", + "consensus-beaconscan-desc": "Penjelajah Rantai Beacon - Etherscan untuk lapisan persetujuan", "consensus-become-staker": "Menjadi seorang pertaruh", "consensus-become-staker-desc": "Pertaruhan sedang berlangsung! Sekiranya anda ingin mempertaruhkan ETH anda untuk membantu menjamin rangkaian, pastikan anda sedar terhadap risikonya.", "consensus-explore": "Terokai data", - "consensus-run-beacon-chain": "Jalankan klien sepersetujuan", + "consensus-run-beacon-chain": "Jalankan klien konsensus", "consensus-run-beacon-chain-desc": "Ethereum memerlukan klien berjalan dengan sebanyak mungkin. Bantu Ethereum ini bagi tujuan kebaikan awam!", "read-more": "Baca seterusnya" } diff --git a/src/intl/ms/page-wallets-find-wallet.json b/src/intl/ms/page-wallets-find-wallet.json index 033699de65b..d2f7a6c6c9a 100644 --- a/src/intl/ms/page-wallets-find-wallet.json +++ b/src/intl/ms/page-wallets-find-wallet.json @@ -5,7 +5,7 @@ "page-find-wallet-description": "Dompet menyimpan dan mengurus niaga ETH anda. Anda boleh memilih daripada pelbagai produk yang bersesuaian dengan keperluan anda.", "page-find-wallet-last-updated": "Dikemas kini pada", "page-find-wallet-meta-description": "Cari dan banding dompet Ethereum berdasarkan ciri yang anda inginkan.", - "page-find-wallet-meta-title": "Cari Dompet Ethereum", + "page-find-wallet-meta-title": "Senarai Dompet Ethereum | ethereum.org", "page-find-wallet-title": "Pilih dompet anda", "page-find-wallet-try-removing": "Cuba alih keluar beberapa ciri", "page-stake-eth": "Taruh ETH", @@ -61,17 +61,17 @@ "page-find-wallet-chromium": "Chromium", "page-find-wallet-firefox": "Firefox", "page-find-wallet-hardware": "Perkakasan", - "page-find-wallet-personas-title": "Apakah yang anda cari?", "page-find-wallet-new-to-crypto-title": "Baru mengenali kripto", "page-find-wallet-new-to-crypto-desc": "Pengguna kali pertama mencari dompet pemula.", "page-find-wallet-nfts-title": "NFT", "page-find-wallet-nfts-desc": "Dompet dengan tumpuan pada sokongan NFT.", - "page-find-wallet-hodler-title": "Jangka panjang", + "page-find-wallet-hodler-title": "Perkakasan", "page-find-wallet-hodler-desc": "Pegangan token pasif dengan dompet perkakasan.", "page-find-wallet-finance-title": "Kewangan", "page-find-wallet-finance-desc": "Dompet memfokuskan pada penggunaan apl DeFi yang kerap.", "page-find-wallet-developer-title": "Pembangun", "page-find-wallet-developer-desc": "Dompet yang membantu membangunkan dan menguji dapp.", + "page-find-wallet-active": "aktif", "page-find-wallet-footnote-1": "Dompet yang disenaraikan di halaman ini bukan sokongan rasmi, dan disediakan untuk tujuan maklumat sahaja.", "page-find-wallet-footnote-2": "Penerangan telah disediakan oleh projek dompet itu sendiri.", "page-find-wallet-footnote-3": "Kami menambah produk kepada halaman ini berdasarkan kriteria dalam <a href=\"/contributing/adding-wallets/\">dasar penyenaraian</a>. Jika anda ingin kami menambah suatu dompet, <a href=\"https://github.com/ethereum/ethereum-org-website/issues/new?assignees=&labels=wallet+%3Apurse%3A&template=suggest_wallet.yaml&title=Suggest+a+wallet\" target=\"_blank\">bangkitkan isu di GitHub</a>.", diff --git a/src/intl/ms/page-what-is-ethereum.json b/src/intl/ms/page-what-is-ethereum.json index 842d0859f0d..560dcfaa285 100644 --- a/src/intl/ms/page-what-is-ethereum.json +++ b/src/intl/ms/page-what-is-ethereum.json @@ -34,9 +34,12 @@ "page-what-is-ethereum-cryptocurrency-tab-content-2": "Sebab aset seperti bitcoin dan ether dipanggil \"mata wang kripto\" adalah kerana keselamatan data dan aset anda dijamin oleh <a href=\"/glossary/#cryptography\">kriptografi</a>, bukannya dengan mempercayai institusi atau syarikat untuk bertindak secara jujur.", "page-what-is-ethereum-cryptocurrency-tab-content-3": "Ethereum mempunyai mata wang kripto asli sendiri, iaitu Ether (ETH), yang digunakan untuk membayar bagi aktiviti tertentu di rangkaian. Ia boleh dipindahkan kepada pengguna lain atau ditukar untuk token lain di Ethereum. Ether adalah istimewa kerana ia digunakan untuk membayar bagi pengiraan yang diperlukan untuk membina dan menjalankan aplikasi dan organisasi di Ethereum.", "page-what-is-ethereum-summary-title": "Ringkasan", - "page-what-is-ethereum-summary-desc-1": "Ethereum ialah rangkaian komputer di seluruh dunia yang mengikuti satu set peraturan yang dikenali sebagai protokol Ethereum. Rangkaian Ethereum bertindak sebagai asas bagi komuniti, aplikasi, organisasi dan aset digital yang boleh dibina dan digunakan oleh sesiapa sahaja.", - "page-what-is-ethereum-summary-desc-2": "Anda boleh membuat akaun Ethereum dari mana-mana sahaja, pada bila-bila masa dan meneroka dunia aplikasi atau membina aplikasi anda sendiri. Inovasi teras di sini membolehkan anda melakukan semua ini tanpa mempercayai pihak berkuasa pusat yang boleh mengubah peraturan atau menyekat akses anda.", - "page-what-is-ethereum-summary-desc-3": "Teruskan membaca untuk mengetahui lebih lanjut…", + "page-what-is-ethereum-summary-desc-1": "Ethereum ialah platform utama untuk beribu-ribu apl dan rantaian blok, semuanya dikuasakan oleh protokol Ethereum.", + "page-what-is-ethereum-summary-desc-2": "Ekosistem yang meriah ini menyemarakkan inovasi dan pelbagai apl dan perkhidmatan terdesentralisasi.", + "page-what-is-ethereum-summary-bullet-1": "Akaun Ethereum <strong>percuma dan global</strong>", + "page-what-is-ethereum-summary-bullet-2": "<strong>Pseudo-peribadi</strong>, tiada maklumat peribadi diperlukan", + "page-what-is-ethereum-summary-bullet-3": "<strong>Tanpa sekatan</strong> sesiapa sahaja boleh mengambil bahagian", + "page-what-is-ethereum-summary-bullet-4": "<strong>Tiada syarikat memiliki Ethereum</strong> atau menentukan masa depannya", "page-what-is-ethereum-btc-eth-diff-title": "Apakah perbezaan antara Ethereum dan Bitcoin?", "page-what-is-ethereum-btc-eth-diff-1": "Dilancarkan pada tahun 2015, Ethereum telah dibina berdasarkan inovasi Bitcoin, dengan beberapa perbezaan besar.", "page-what-is-ethereum-btc-eth-diff-2": "Kedua-duanya membolehkan anda menggunakan wang digital tanpa penyedia servis pembayaran atau bank. Tetapi <b>Ethereum boleh diprogramkan</b>, jadi anda juga boleh membina dan menggunakan aplikasi ternyahpusat pada rangkaiannya.", diff --git a/src/intl/ms/template-usecase.json b/src/intl/ms/template-usecase.json index cf70cfcadda..c3d1017391f 100644 --- a/src/intl/ms/template-usecase.json +++ b/src/intl/ms/template-usecase.json @@ -1,10 +1,13 @@ { + "template-usecase-dropdown-ai-agents": "AI 에이전트", "template-usecase-dropdown-defi": "Kewangan tak terpusat (DeFi)", "template-usecase-dropdown-nft": "Token yang tidak dapat dipertukarkan (NFT)", "template-usecase-dropdown-dao": "Organisasi autonomi yang tak terpusat (DAO)", + "template-usecase-dropdown-payments": "Pembayaran Ethereum", + "template-usecase-dropdown-prediction-markets": "Pasaran ramalan", "template-usecase-dropdown-social-networks": "Rangkaian sosial ternyahpusat", "template-usecase-dropdown-identity": "Identiti ternyahpusat", - "template-usecase-dropdown-desci": "Sains ternyahpusat (DeSci)", + "template-usecase-dropdown-desci": "Sains teragih (DeSci)", "template-usecase-dropdown-refi": "Kewangan Jana Semula (ReFi)", "template-usecase-dropdown": "Kegunaan Ethereum", "template-usecase-banner": "Kegunaan Ethereum sentiasa berkembang dan maju. Tambah sebarang maklumat yang anda fikir akan menjadikan perkara lebih jelas atau lebih terkini.", diff --git a/src/intl/nb/common.json b/src/intl/nb/common.json index f3edcb7f0d2..40d67f7029f 100644 --- a/src/intl/nb/common.json +++ b/src/intl/nb/common.json @@ -321,6 +321,8 @@ "nav-staking-solo-description": "Kjør hjemmemaskinvare og legg personlig til sikkerheten og desentraliseringen av Ethereum-nettverket", "nav-staking-solo-label": "Solo-staking", "nav-start-building-description": "Nyttig informasjon for nykommere", + "nav-start-with-crypto-title": "Start her", + "nav-start-with-crypto-description": "Dine første steg med Ethereum", "nav-translation-program-description": "Et samarbeid for å oversette ethereum.org til alle språk", "nav-tutorials-description": "Kuratert liste over opplæringsprogrammer for fellesskapet", "nav-use-cases-description": "Oppdag forskjellige ideer for bruk av Ethereum", diff --git a/src/intl/nb/page-index.json b/src/intl/nb/page-index.json index dac5d78ece9..47d5182dab0 100644 --- a/src/intl/nb/page-index.json +++ b/src/intl/nb/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Nylige innlegg", "page-index-posts-subtitle": "De nyligste blogg-innleggene og oppdateringer fra fellesskapet", "page-index-title": "Velkommen til Ethereum", + "page-index-use-cases-tag": "Brukstilfeller", "page-index-values-description": "Vær en del av den digitale revolusjonen", "page-index-values-header": "Internettet er i endring", "page-index-values-legacy": "Gammel", diff --git a/src/intl/ne-np/common.json b/src/intl/ne-np/common.json index 9a20b4f48cd..0e113cdfe31 100644 --- a/src/intl/ne-np/common.json +++ b/src/intl/ne-np/common.json @@ -318,6 +318,8 @@ "nav-staking-solo-description": "गृह हार्डवेयर चलाउनुहोस् र व्यक्तिगत रूपमा Ethereum नेटवर्कको सुरक्षा र विकेन्द्रीकरणमा थप्नुहोस्", "nav-staking-solo-label": "एकल स्टेकिंग", "nav-start-building-description": "नवागन्तुकहरूका लागि उपयोगी जानकारी", + "nav-start-with-crypto-title": "यहाँबाट सुरु गर्नुहोस्", + "nav-start-with-crypto-description": "Ethereum प्रयोग गर्ने तपाईंका पहिलो कदमहरू", "nav-translation-program-description": "सबै भाषाहरूमा ethereum.org लाई अनुवाद गर्ने एउटा सहकार्यात्मक प्रयास", "nav-tutorials-description": "सामुदायिक ट्युटोरियलहरूका क्युरेट गरिएको सूची", "nav-use-cases-description": "Ethereum प्रयोगको लागि विभिन्न विचारहरू", diff --git a/src/intl/ne-np/page-index.json b/src/intl/ne-np/page-index.json index 2a7f86731f4..50a767adb09 100644 --- a/src/intl/ne-np/page-index.json +++ b/src/intl/ne-np/page-index.json @@ -79,6 +79,7 @@ "page-index-posts-header": "हालैका पोस्टहरू", "page-index-posts-subtitle": "समुदायबाट नवीनतम ब्लग पोष्टहरू र अद्यावधिकहरू", "page-index-title": "Ethereum मा स्वागत छ", + "page-index-use-cases-tag": "युज केस", "page-index-values-description": "डिजिटल क्रान्तिको हिस्सा बन्नुहोस्", "page-index-values-header": "इन्टरनेट परिवर्तन भइरहेको छ", "page-index-values-legacy": "विरासत", diff --git a/src/intl/nl/common.json b/src/intl/nl/common.json index 19e2c8162d8..7eb597eaab6 100644 --- a/src/intl/nl/common.json +++ b/src/intl/nl/common.json @@ -331,6 +331,8 @@ "nav-staking-solo-description": "Voer home-hardware uit en voeg persoonlijk toe aan de beveiliging en decentralisatie van het Ethereum-netwerk", "nav-staking-solo-label": "Solo staking", "nav-start-building-description": "Nuttige informatie voor nieuwkomers", + "nav-start-with-crypto-title": "Begin hier", + "nav-start-with-crypto-description": "Je eerste stappen met Ethereum", "nav-translation-program-description": "Een collaboratieve inspanning om ethereum.org in alle talen te vertalen", "nav-tutorials-description": "Samengestelde lijst van gemeenschapstutorials", "nav-use-cases-description": "Ontdek verschillende ideeën voor het gebruik van Ethereum", diff --git a/src/intl/nl/page-index.json b/src/intl/nl/page-index.json index 4901cd4638d..3b608a3d616 100644 --- a/src/intl/nl/page-index.json +++ b/src/intl/nl/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Recente posts", "page-index-posts-subtitle": "De laatste blogposts en updates van de community", "page-index-title": "Welkom bij Ethereum", + "page-index-use-cases-tag": "Gebruikssituaties", "page-index-values-description": "Maak deel uit van de digitale revolutie", "page-index-values-header": "Het internet is aan het veranderen", "page-index-values-legacy": "Legacy", diff --git a/src/intl/pcm/common.json b/src/intl/pcm/common.json index 95f1e59d3fd..df7e726be84 100644 --- a/src/intl/pcm/common.json +++ b/src/intl/pcm/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Make yu run home hardware and add to di security and disentralizashon of di Ethereum Netwok yorsef", "nav-staking-solo-label": "Solo Stakin", "nav-start-building-description": "Informashon wey dey yusful for otondo", + "nav-start-with-crypto-title": "Start here", + "nav-start-with-crypto-description": "Ya first steps wit Ethereum", "nav-translation-program-description": "One joint effoti to make sure dem translate ethereum.org to all di languages", "nav-tutorials-description": "List wey dem kurate for komunity tutorials", "nav-use-cases-description": "Diskova difrent idias wey dem fit use Ethereum for", diff --git a/src/intl/pcm/page-index.json b/src/intl/pcm/page-index.json index dd61f60e36b..992157a8aaf 100644 --- a/src/intl/pcm/page-index.json +++ b/src/intl/pcm/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Risent posts", "page-index-posts-subtitle": "Di blog posts wey juz komot and update from di komunity", "page-index-title": "Welkom to Ethereum", + "page-index-use-cases-tag": "Use cases", "page-index-values-description": "Bi part of di dijita revolushon", "page-index-values-header": "Di intanet dey shanj", "page-index-values-legacy": "Legasy", diff --git a/src/intl/pl/common.json b/src/intl/pl/common.json index 57e7426d6e1..bab080e81ac 100644 --- a/src/intl/pl/common.json +++ b/src/intl/pl/common.json @@ -1,7 +1,7 @@ { "about-ethereum-org": "Informacje o ethereum.org", "about-us": "O nas", - "account-abstraction": "Abstrakcja konta", + "account-abstraction": "Abstrakcja kont", "acknowledgements": "Podziękowania", "adding-desci-projects": "Dodawanie projektów Desci", "adding-developer-tools": "Dodawanie narzędzi deweloperskich", @@ -77,7 +77,6 @@ "enterprise": "Przedsiębiorstwa", "enterprise-mainnet": "Przedsiębiorstwa — sieć główna Ethereum", "enterprise-menu": "Menu dla przedsiębiorstw", - "enterprise-private": "Przedsiębiorstwa — prywatne Ethereum", "esp": "Program wsparcia ekosystemów", "eth-current-price": "Aktualna cena ETH (USD)", "ethereum": "Ethereum", @@ -296,6 +295,7 @@ "nav-overview-label": "Przegląd", "nav-participate-overview-description": "Informacje o tym, jak wziąć udział", "nav-payments-description": "Płatności Ethereum zmieniają sposób, w jaki wysyłamy i otrzymujemy pieniądze", + "nav-prediction-markets-description": "Rynki predykcyjne to sposób na obstawianie przyszłości", "nav-primary": "Podstawowe", "nav-quizzes-description": "Sprawdź, jak dobrze rozumiesz Ethereum i kryptowaluty", "nav-quizzes-label": "Przetestuj swoją wiedzę", @@ -335,6 +335,8 @@ "nav-staking-solo-description": "Korzystaj z własnego sprzętu i osobiście zwiększaj bezpieczeństwo i decentralizację sieci Ethereum", "nav-staking-solo-label": "Stakowanie solo", "nav-start-building-description": "Przydatne informacje dla nowych użytkowników", + "nav-start-with-crypto-title": "Zacznij tutaj", + "nav-start-with-crypto-description": "Twoje pierwsze kroki w używaniu Ethereum", "nav-translation-program-description": "Wspólny wysiłek na rzecz przetłumaczenia ethereum.org na wszystkie języki", "nav-tutorials-description": "Wyselekcjonowana lista samouczków społeczności", "nav-use-cases-description": "Odkryj różne pomysły na wykorzystanie Ethereum", @@ -370,6 +372,7 @@ "payments-page": "Płatności", "pbs": "Separacja proponującego i budującego", "pools": "Stakowanie w puli", + "prediction-markets": "Rynki prognostyczne", "privacy-policy": "Polityka prywatności", "private-ethereum": "Prywatne Ethereum", "product-disclaimer": "Produkty i usługi są wymienione dla wygody społeczności Ethereum. Uwzględnienie ich na liście <strong>nie stanowi poparcia</strong> ze strony zespołu ethereum.org ani Ethereum Foundation.", @@ -385,7 +388,7 @@ "rollup-component-developer-docs": "Dokumentacja dewelopera", "rollup-component-technology-and-risk-summary": "Technologia i podsumowanie ryzyka", "rollup-component-website": "Strona internetowa", - "run-a-node": "Dodaj węzeł", + "run-a-node": "Uruchom węzeł", "saas": "Staking jako usługa", "scaling": "Skalowanie", "search": "Szukaj", @@ -435,6 +438,9 @@ "verkle-trees": "Drzewa Verkle", "wallets": "Portfele", "we-couldnt-find-that-page": "Nie udało się odnaleźć tej strony", + "error-page-title": "Uups! Coś poszło nie tak", + "error-page-description": "Możesz nam pomóc w ulepszaniu, zgłaszając ten problem w naszym <a href='https://github.com/ethereum/ethereum-org-website/issues/new?label%3A%22bug%20%F0%9F%90%9B%22&template=bug_report.yaml'>repozytorium GitHub</a>.", + "error-page-home-link": "Powrót do strony głównej", "web3": "Co to jest Web3?", "web3-title": "Web3", "website-last-updated": "Data ostatniej aktualizacji strony", diff --git a/src/intl/pl/page-index.json b/src/intl/pl/page-index.json index 6066e5f3d53..34d7884f5ff 100644 --- a/src/intl/pl/page-index.json +++ b/src/intl/pl/page-index.json @@ -37,10 +37,10 @@ "page-index-cta-dapps-label": "Wypróbuj aplikacje", "page-index-cta-get-eth-description": "Waluta sieci Ethereum", "page-index-cta-get-eth-label": "Zdobądź ETH", + "page-index-cta-networks-description": "Minimalne opłaty", + "page-index-cta-networks-label": "Wybierz sieć", "page-index-cta-wallet-description": "Twórz konta i zarządzaj aktywami", "page-index-cta-wallet-label": "Wybierz portfel", - "page-index-cta-build-apps-description": "Proszę stworzyć swoją pierwszą aplikację", - "page-index-cta-build-apps-label": "Rozpocznij tworzenie", "page-index-description": "Czołowa platforma dla innowacyjnych aplikacji i sieci blockchain", "page-index-developers-code-example-description-0": "Stwórz bank działający w oparciu o zaprogramowaną przez Ciebie logikę", "page-index-developers-code-example-description-1": "Twórz tokeny, które możesz przesyłać i wykorzystywać w różnych aplikacjach", @@ -83,6 +83,7 @@ "page-index-posts-header": "Ostatnie wpisy", "page-index-posts-subtitle": "Najnowsze wpisy na blogu i aktualności dotyczące społeczności", "page-index-title": "Witamy w Ethereum", + "page-index-use-cases-tag": "Przypadki użycia", "page-index-values-description": "Bądź częścią cyfrowej rewolucji", "page-index-values-header": "Internet się zmienia", "page-index-values-legacy": "Dotychczasowy system", @@ -112,7 +113,7 @@ "page-index-values-censorship-legacy-label": "Podlegający cenzurze", "page-index-values-censorship-legacy-content-0": "Współczesne platformy i ich zasady często się zmieniają. Mogą na nie mieć wpływ interesariusze, kierownictwo firmy, a nawet opresyjne władze.", "page-index-values-censorship-ethereum-label": "Odporność na cenzurę", - "page-index-values-censorship-ethereum-content-0": "Odporność na ucisk jest kluczową zasadą Ethereum. Jego funkcjonalność powinna zawsze pozostać uczciwa i bezstronna.", + "page-index-values-censorship-ethereum-content-0": "Opór wobec opresji jest kluczową zasadą w Ethereum. Platforma powinna zawsze pozostawać uczciwa i bezstronna.", "page-index-values-censorship-ethereum-content-1": "Żadna władza, firma ani osoba fizyczna nie ma kontroli nad Ethereum.", "page-index-values-open-legacy-label": "Niedostępne dla większości", "page-index-values-open-legacy-content-0": "Firmy chronią swoją własność intelektualną i nie dzielą się nią. Nikt spoza firmy nie może widzieć procesów, rozwiązywać problemów ani wprowadzać ulepszeń. Ludziom trudno jest tworzyć nowe narzędzia lub je personalizować.", diff --git a/src/intl/pl/page-wallets-find-wallet.json b/src/intl/pl/page-wallets-find-wallet.json index 4bcf9f2f063..75eab25d9a6 100644 --- a/src/intl/pl/page-wallets-find-wallet.json +++ b/src/intl/pl/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Pierwszy raz korzystasz z portfela? Szukasz rozwiązania dla początkujących.", "page-find-wallet-nfts-title": "Tokeny NFT", "page-find-wallet-nfts-desc": "Portfele skupiające się na wsparciu NFT.", - "page-find-wallet-hodler-title": "Długoterminowe przechowywanie", + "page-find-wallet-hodler-title": "Sprzęt", "page-find-wallet-hodler-desc": "Pasywne przechowywanie tokenów przy użyciu portfeli sprzętowych.", "page-find-wallet-finance-title": "Finanse", "page-find-wallet-finance-desc": "Portfele skupiające się na częstym korzystaniu z aplikacji DeFi.", diff --git a/src/intl/pl/page-what-is-ethereum.json b/src/intl/pl/page-what-is-ethereum.json index bfd1d47f23e..1744a2f8fca 100644 --- a/src/intl/pl/page-what-is-ethereum.json +++ b/src/intl/pl/page-what-is-ethereum.json @@ -70,7 +70,7 @@ "page-what-is-ethereum-who-runs-ethereum-title": "Kto prowadzi Ethereum?", "page-what-is-ethereum-who-runs-ethereum-desc-1": "Ethereum nie jest kontrolowane przez żaden konkretny podmiot. Istnieje zawsze, gdy istnieją połączone komputery z oprogramowaniem działającym zgodnie z protokołem Ethereum i dodającym wartości do jego <a href=\"/glossary/#blockchain\">blockchainu</a>. Każdy z tych komputerów znany jest jako węzeł. Węzły mogą być uruchamiane przez każdego, ale żeby uczestniczyć w zabezpieczaniu sieci, trzeba <a href=\"/glossary/#staking\">stakować</a> ETH (natywny token Ethereum). Każdy, kto posiada 32 ETH, może to robić bez konieczności uzyskania pozwolenia.", "page-what-is-ethereum-who-runs-ethereum-desc-2": "Nawet kod źródłowy Ethereum nie jest tworzony przez jeden podmiot. Każdy może zasugerować zmiany w protokole i dyskutować o aktualizacjach. Istnieje wiele implementacji protokołu Ethereum, które są tworzone przez niezależne organizacje w kilku językach programowania i są one zwykle budowane w sposób otwarty i zachęcają do wkładu społeczności.", - "page-what-is-ethereum-run-a-node": "Dodaj węzeł", + "page-what-is-ethereum-run-a-node": "Uruchom węzeł", "page-what-is-ethereum-smart-contract-title": "Czym są inteligentne kontrakty?", "page-what-is-ethereum-smart-contract-desc-1": "<b>Inteligentne kontrakty to programy komputerowe</b> działające na blockchainie Ethereum. Są one wykonywane po uruchomieniu przez transakcję użytkownika. Sprawiają, że Ethereum jest bardzo elastyczne w tym, co robi. Te programy działają jako elementy składowe zdecentralizowanych aplikacji i organizacji.", "page-what-is-ethereum-smart-contract-desc-2": "Czy kiedykolwiek korzystałeś(-aś) z produktu, który zmienił warunki użytkowania? Lub usunął funkcję, która była dla Ciebie przydatna? Po opublikowaniu inteligentnego kontraktu w Ethereum, będzie on dostępny online i będzie działał tak długo, jak długo Ethereum będzie istnieć. Nawet autor nie może go usunąć. Ponieważ inteligentne kontrakty są zautomatyzowane, nie dyskryminują żadnego użytkownika i są zawsze gotowe do użycia.", diff --git a/src/intl/pt-br/common.json b/src/intl/pt-br/common.json index 0f79ff5ea4d..d90cb49a497 100644 --- a/src/intl/pt-br/common.json +++ b/src/intl/pt-br/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Execute o hardware local e adicione pessoalmente à segurança e descentralização da rede Ethereum", "nav-staking-solo-label": "Participação individual", "nav-start-building-description": "Informações úteis para principiantes", + "nav-start-with-crypto-title": "Comece aqui", + "nav-start-with-crypto-description": "Seus primeiros passos com Ethereum", "nav-translation-program-description": "Um esforço colaborativo para traduzir o site ethereum.org para todos os idiomas", "nav-tutorials-description": "Lista selecionada de tutoriais da comunidade", "nav-use-cases-description": "Descubra como usar o Ethereum de diferentes formas", diff --git a/src/intl/pt-br/page-dapps.json b/src/intl/pt-br/page-dapps.json index df92083b57b..c093a0ae985 100644 --- a/src/intl/pt-br/page-dapps.json +++ b/src/intl/pt-br/page-dapps.json @@ -89,16 +89,14 @@ "page-dapps-dapp-description-graph": "Um protocolo de indexação para consultar redes como Ethereum e IPFS.", "page-dapps-dapp-description-ipfs": "Um protocolo hipermídia ponto a ponto projetado para preservar e expandir o conhecimento humano, tornando a web atualizável, resiliente e mais aberta.", "page-dapps-dapp-description-radicle": "Codificação colaborativa segura ponto a ponto sem intermediários.", - "page-dapps-dapp-description-kyberswap": "Troque e ganhe com as melhores taxas.", - "page-dapps-dapp-description-kiwinews": "Encontre notícias, artigos e produtos interessantes da Ethereum, selecionado por desenvolvedores para desenvolvedores, e os discuta com outros devs, fundadores e investidores.", + "page-dapps-dapp-description-kiwinews": "Encontre notícias, artigos e produtos interessantes da Ethereum, selecionados por desenvolvedores para desenvolvedores, e discuta-os com outros desenvolvedores, fundadores e investidores.", "page-dapps-dapp-description-lido": "Staking seguro e simplificado para ativos digitais.", - "page-dapps-dapp-description-loopring": "Plataforma de trading peer-to-peer construída para velocidade.", "page-dapps-dapp-description-marble-cards": "Crie e negocie cartões digitais exclusivos baseados em URLs.", "page-dapps-dapp-description-matcha": "Busca em múltiplas corretoras para ajudá-lo a encontrar os melhores preços.", "page-dapps-dapp-description-meeds": "Centros de comunidades Web3 para a era do trabalho descentralizado. Recompense de forma justa e transparente as contribuições mais importantes.", "page-dapps-dapp-description-mirror": "Construído na Web3 para a Web3, a robusta plataforma de publicação do Mirror expande os limites da escrita online", "page-dapps-dapp-description-multichain": "O roteador definitivo para web3. É uma infraestrutura desenvolvida para interações cross-chain arbitrárias.", - "page-dapps-dapp-description-nifty-gateway": "Compre produtos onchain dos principais artistas, atletas, marcas e criadores.", + "page-dapps-dapp-description-nifty-gateway": "Compre conteúdo on-chain dos principais artistas, atletas, marcas e criadores.", "page-dapps-dapp-description-summerfi": "Negocie, empreste e poupe com Dai, uma stablecoin de Ethereum.", "page-dapps-dapp-description-opensea": "Compre, venda, descubra e comercialize produtos de edição limitada.", "page-dapps-dapp-description-opera": "Envie cripto do seu navegador para comerciantes, outros usuários e aplicativos.", @@ -115,7 +113,6 @@ "page-dapps-dapp-description-krystal": "Uma plataforma completa para acessar todos os seus serviços DeFi favoritos.", "page-dapps-dapp-description-rarible": "Crie, venda e compre artigos colecionáveis tokenizados.", "page-dapps-dapp-description-request-finance": "Um conjunto de ferramentas financeiras para faturas de criptomoedas, folhas de pagamento e despesas.", - "page-dapps-dapp-description-rubic": "Agregador de tecnologia cross-chain para usuários e dApps.", "page-dapps-dapp-description-sablier": "Transmita dinheiro em tempo real.", "page-dapps-dapp-description-spatial": "Crie seu próprio avatar personalizado e mundos 3D", "page-dapps-dapp-description-spruce": "Pilha de código aberto para deixar o controle de identidade e dados onde deveria estar: com os usuários.", @@ -202,13 +199,11 @@ "page-dapps-how-dapps-work-p3": "Uma vez que os dapps são implantados na rede Ethereum, você não pode alterá-los. Os dapps podem ser descentralizados porque são controlados pela lógica contida no contrato inteligente e não por um indivíduo ou uma empresa.", "page-dapps-how-dapps-work-title": "Como os dapps funcionam", "page-dapps-ipfs-logo-alt": "Logotipo do IPFS", - "page-dapps-kyberswap-logo-alt": "Logotipo da KyberSwap", "page-dapps-learn-callout-button": "Comece a desenvolver", "page-dapps-learn-callout-description": "Nosso portal do desenvolvedor da comunidade tem documentos, ferramentas e frameworks para ajudá-lo a começar a construir um dapp.", "page-dapps-learn-callout-image-alt": "Uma ilustração de uma mão criando um logotipo do ETH feito de peças de lego.", "page-dapps-learn-callout-title": "Aprenda a criar um dapp", "page-dapps-lido-logo-alt": "Logotipo da Lido", - "page-dapps-loopring-logo-alt": "Logotipo Loopring", "page-dapps-magic-behind-dapps-description": "Os dapps podem se parecer com aplicativos convencionais. Mas nos bastidores eles têm algumas características especiais, pois herdam todos os superpoderes da Ethereum. Isto é o que torna os dapps diferentes dos aplicativos.", "page-dapps-magic-behind-dapps-link": "O que torna o Ethereum incrível?", "page-dapps-magic-behind-dapps-title": "A mágica por trás dos dapps", @@ -244,7 +239,6 @@ "page-dapps-ready-description": "Escolha um dapp para experimentar", "page-dapps-ready-title": "Preparado?", "page-dapps-request-finance-logo-alt": "Logotipo da Request Finance", - "page-dapps-rubic-logo-alt": "Logotipo da Rubic", "page-dapps-sablier-logo-alt": "Logotipo da Sablier", "page-dapps-set-up-a-wallet-button": "Buscar carteira", "page-dapps-set-up-a-wallet-description": "Uma carteira é seu \"login\" para um dapp", @@ -280,10 +274,11 @@ "page-wallets-get-some": "Obtenha ETH", "page-dapps-dapp-description-curve": "Curve é uma dex focada em stablecoins", "page-dapps-curve-image-alt": "Logotipo da Curve", - "page-dapps-dapp-description-dodo": "DODO é um provedor de liquidez on-chain, que utiliza o algoritmo Proactive Market Maker (PMM)", - "page-dapps-dodo-image-alt": "Logotipo do DODO", "page-dapps-dapp-description-artblocks": "A Art Blocks se dedica a dar vida a obras atraentes de arte generativa contemporânea", "page-dapps-artblocks-image-alt": "Logotipo da Art Blocks", "page-dapps-explore-title": "Quer navegar em mais aplicativos?", - "page-dapps-explore": "Confira centenas de dapps" + "page-dapps-explore": "Confira centenas de dapps", + "page-dapps-dapp-description-across": "Across é uma ponte multichain que permite aos usuários transferirem ativos entre diferentes cadeias.", + "page-dapps-dapp-description-hop": "Hop é uma ponte multichain que permite aos usuários transferirem ativos entre diferentes cadeias.", + "page-dapps-dapp-description-stargate": "Stargate é uma ponte multichain que permite aos usuários transferirem ativos entre diferentes cadeias." } diff --git a/src/intl/pt-br/page-index.json b/src/intl/pt-br/page-index.json index e12649d96ca..8ef8ab98338 100644 --- a/src/intl/pt-br/page-index.json +++ b/src/intl/pt-br/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Publicações recentes", "page-index-posts-subtitle": "As últimas publicações do blog e atualizações da comunidade", "page-index-title": "Este é o Ethereum", + "page-index-use-cases-tag": "Casos de uso", "page-index-values-description": "Faça parte da revolução digital", "page-index-values-header": "A internet está mudando", "page-index-values-legacy": "Legado", diff --git a/src/intl/pt-br/page-layer-2-networks.json b/src/intl/pt-br/page-layer-2-networks.json new file mode 100644 index 00000000000..0e2634c7d13 --- /dev/null +++ b/src/intl/pt-br/page-layer-2-networks.json @@ -0,0 +1,85 @@ +{ + "page-layer-2-networks-hero-description": "Usar Ethereum hoje significa interagir com centenas de diferentes redes e apps. Tudo apoiado pela Ethereum como a estrutura fundamental.", + "page-layer-2-networks-meta-title": "Camada 2 da Ethereum: explore as redes", + "page-layer-2-networks-more-advanced-title": "Procurando por uma visão geral mais avançada?", + "page-layer-2-networks-more-advanced-descripton-1": "Muitos projetos ainda são", + "page-layer-2-networks-more-advanced-descripton-2": "jovens e de certa forma experimentais.", + "page-layer-2-networks-more-advanced-descripton-3": "Para mais informações sobre a tecnologia, os riscos e as premissas de confiança dessa rede, recomendamos verificar o site L2BEAT, que fornece uma estrutura completa de avaliação de riscos de cada projeto e usa o growthepie para análises gerais de dados.", + "page-layer-2-networks-more-advanced-link-1": "Visite l2beat.com", + "page-layer-2-networks-more-advanced-link-2": "Acesse growthepie.xyz", + "page-layer-2-networks-callout-1-title": "Quais são os benefícios?", + "page-layer-2-networks-callout-1-description": "A força e a segurança da Ethereum fornecem uma plataforma sobre a qual outras redes podem se desenvolver.", + "page-layer-2-networks-callout-2-title": "Interessado em saber mais detalhes?", + "page-layer-2-networks-callout-2-description": "Curioso sobre a tecnologia e os motivos dessa abordagem de escalabilidade? Saiba mais sobre as ideias e diferentes abordagens tecnológicas.", + "page-layer-2-networks-n/a-label": "N/D", + "page-layer-2-networks-n/a-description": "Não se aplica à rede principal da Ethereum.", + "page-layer-2-networks-robust-label": "Robusta", + "page-layer-2-networks-robust-description": "Redes completamente descentralizadas e seguras que não podem ser adulteradas ou interrompidas por nenhum indíviduo ou grupo, incluindo seus criadores. \n\nEssa é uma rede que cumpre a visão da Ethereum de descentralização.", + "page-layer-2-networks-maturing-label": "Maturidade", + "page-layer-2-networks-maturing-description": "Uma rede em transição para a descentralização. Um grupo de atores ainda pode ser capaz de interromper a rede em situações extremas.", + "page-layer-2-networks-developing-label": "Desenvolvimento", + "page-layer-2-networks-developing-description": "Um operador centralizado administra a rede, mas adiciona recursos de segurança para reduzir os riscos de centralização.", + "page-layer-2-networks-emerging-label": "Emergente", + "page-layer-2-networks-emerging-description": "Um operador centralizado administra a rede. Os dados são visíveis publicamente na Ethereum para verificar se o operador está sendo honesto.", + "page-layer-2-networks-network-maturity": "Maturidade da rede", + "page-layer-2-networks-network-maturity-with-colon": "Maturidade da rede:", + "page-layer-2-networks-network-maturity-description": "Analisa o estágio de desenvolvimento, os riscos associados ao uso da rede e o tamanho do ecossistema da rede.", + "page-layer-2-networks-summary-metric": "Esta é uma métrica resumida baseada na análise de risco feita por", + "page-layer-2-networks-no-results-title": "Nenhum resultado", + "page-layer-2-networks-no-results-description": "Não há redes que correspondam aos seus critérios de busca. Tente adicionar alguns filtros", + "page-layer-2-networks-reset-filters": "Redefinir filtros", + "page-layer-2-networks-age": "Idade", + "page-layer-2-networks-show-how-long": "Mostra há quanto tempo as redes estão operacionais.", + "page-layer-2-networks-data-from": "Dados de", + "page-layer-2-networks-period": ".", + "page-layer-2-networks-wallet-support": "Suporte a carteiras", + "page-layer-2-networks-how-many-wallet-support": "Indica quantos aplicativos de carteira são compatíveis com essa rede.", + "page-layer-2-networks-active-address": "Endereços ativos", + "page-layer-2-networks-active-address-weekly": "Endereços ativos (semanalmente)", + "page-layer-2-networks-active-address-number": "Número de endereços ativos na rede nos últimos 7 dias.", + "page-layer-2-networks-fee-token": "Token de taxas", + "page-layer-2-networks-token-used-to-pay": "O token usado para pagar transações e usar a rede.", + "page-layer-2-networks-network-usage": "Uso da rede", + "page-layer-2-networks-network-usage-overview": "Visão geral do uso da rede. Mede a contagem de transações nas respectivas áreas nos últimos 30 dias.", + "page-layer-2-networks-no-data-available": "Sem dados disponíveis", + "page-layer-2-networks-links": "Links", + "page-layer-2-networks-official-website": "Site oficial", + "page-layer-2-networks-risk-analysis": "Análise de risco", + "page-layer-2-networks-assessment-by-l2beat": "Análise realizada pelo L2BEAT", + "page-layer-2-networks-detailed-analytics": "Análise detalhada", + "page-layer-2-networks-assessment-by-growthepie": "Análise realizada pela growthepie", + "page-layer-2-networks-bridge-to": "Fazer a ponte para", + "page-layer-2-networks-view-apps": "Ver aplicativos", + "page-layer-2-networks-select-wallet": "Selecionar carteira", + "page-layer-2-networks-search-wallets": "Pesquisando carteiras...", + "page-layer-2-networks-no-wallet-found": "Nenhuma carteira encontrada", + "page-layer-2-networks-robust-description-1": "Rede completamente descentralizada e segura, que não pode ser adulterada ou interrompida por nenhum indivíduo, ou grupo, incluindo seus criadores.", + "page-layer-2-networks-robust-description-2": "Esta é uma rede que concretiza a visão da Ethereum sobre decentralização.", + "page-layer-2-networks-developing-description-1": "Um operador único está executando a rede com visibilidade de dados públicos para garantir a transparência.", + "page-layer-2-networks-emerging-description-1": "Um operador único está executando a rede com privacidade e trabalha para garantir a transparência.", + "page-layer-2-networks-networks-showing": "Redes exibidas", + "page-layer-2-networks-market-share": "Participação de mercado", + "page-layer-2-networks-market-share-description": "Valor total bloqueado em contratos de custódia em Ethereum.", + "page-layer-2-networks-avg-transaction-fee": "Taxa média de transação", + "page-layer-2-networks-transaction-fee": "Taxa de transação", + "page-layer-2-networks-transaction-fee-description": "Custo médio de transações para transferências, trocas, cunhagem e outras atividades.", + "page-layer-2-networks-transaction-see-networks": "Ver redes", + "page-layer-2-network-maturity-component-1": "Nós revisamos o progresso da rede em direção", + "page-layer-2-network-maturity-component-2": "Alinhamento com Ethereum", + "page-layer-2-network-maturity-component-3": "valor total bloqueado (VTB)", + "page-layer-2-network-maturity-component-4": "tempo ativo em produção", + "page-layer-2-network-maturity-component-5": "e considerações de risco", + "page-layer-2-network-maturity-component-6": "Esses níveis ajudam a acompanhar o desenvolvimento da rede e fornecem à comunidade uma forma padronizada para avaliar o progresso.", + "page-layer-2-network-maturity-component-7": "O progresso técnico não é suficiente por si só. A adoção do usuário e seu tempo de experiência são partes essenciais da solidez e maturidade de qualquer rede.", + "page-layer-2-network-maturity-component-8": "Maturidade", + "page-layer-2-network-maturity-component-9": "Requisitos", + "page-layer-2-network-maturity-component-10": "• Estágio 2", + "page-layer-2-network-maturity-component-11": "• Pelo menos 1 bilhão de dólares de TVL", + "page-layer-2-network-maturity-component-12": "• Estágio 1", + "page-layer-2-network-maturity-component-13": "• Pelo menos 150 milhões de dólares de TVL", + "page-layer-2-network-maturity-component-14": "• Mais de 6 meses de produção ativa", + "page-layer-2-network-maturity-component-15": "• Estágio 0", + "page-layer-2-network-maturity-component-16": "Análise de risco: 3/5 (L2beat)", + "page-layer-2-network-maturity-component-17": "Análise de risco: 2/5 (L2beat)", + "page-layer-2-network-maturity-component-18": "Pelo menos 150 milhões de dólares de TVL ou mais de 6 meses em produção" +} diff --git a/src/intl/pt-br/page-layer-2.json b/src/intl/pt-br/page-layer-2.json index 41d8feb6dda..12ed6cb3189 100644 --- a/src/intl/pt-br/page-layer-2.json +++ b/src/intl/pt-br/page-layer-2.json @@ -4,26 +4,26 @@ "page-layer-2-hero-description": "Use Ethereum por uma fração do custo.", "page-layer-2-hero-button-2-content": "Saiba mais", "page-layer-2-period": ".", - "page-layer-2-calloutCard-1-title": "Tarifas de $0,01", - "page-layer-2-calloutCard-1-description": "Você pode negociar, enviar dinheiro globalmente ou usar aplicações sem se preocupar com altos custos.", + "page-layer-2-calloutCard-1-title": "Tarifas de USD 0,01", + "page-layer-2-calloutCard-1-description": "É possível negociar, enviar dinheiro para o exterior ou usar aplicações sem se preocupar com custos altos.", "page-layer-2-calloutCard-2-title": "Transações praticamente instantâneas", "page-layer-2-calloutCard-2-description": "Seja realizando um pagamento rápido ou utilizando Finanças Descentralizadas (DeFi), todas as transações levam apenas alguns segundos.", "page-layer-2-calloutCard-3-title": "Suportado pela Ethereum", "page-layer-2-calloutCard-3-description": "A blockchain descentralizada e testada pelo tempo da Ethereum atua como camada de liquidação para outras redes mais novas.", - "page-layer-2-meta-title": "Introdução às camadas 2 da Ethereum: benefícios e usos", - "page-layer-2-meta-description": "Aprenda sobre redes de camada 2 da Ethereum", + "page-layer-2-meta-title": "Introdução à camada 2 da Ethereum: benefícios e usos", + "page-layer-2-meta-description": "Saiba mais sobre as redes de camada 2 da Ethereum", "page-layer-2-powered-by-ethereum-title": "Movida pela Ethereum", - "page-layer-2-powered-by-ethereum-description-1": "Ethereum não é mais uma única rede.", + "page-layer-2-powered-by-ethereum-description-1": "A Ethereum não é mais uma rede única.", "page-layer-2-powered-by-ethereum-description-2": "Com centenas de blockchains construídas sobre ela, a Ethereum se tornou mais econômica, rápida e acessível para o uso diário.", "page-layer-2-powered-by-ethereum-description-3": "Abrace o futuro participando de uma das muitas redes movidas pela Ethereum!", "page-layer-2-man-and-dog-alt": "Homem e cachorro brincando", - "page-layer-2-blockchain-transaction-cost": "Custo médio de transação na blockchain do Ethereum", + "page-layer-2-blockchain-transaction-cost": "Custo médio de transação na blockchain da Ethereum", "page-layer-2-networks-transaction-cost": "Custo médio de transação nas redes suportadas pela Ethereum", "page-layer-2-network-of-networks-title": "A rede das redes", "page-layer-2-network-of-networks-description": "A robustez e a segurança da Ethereum fornecem uma plataforma para que outras redes sejam construídas. Com uma única conta, tudo é compatível e se conecta de forma transparente.", "page-layer-2-ethereum-logo-alt": "Ethereum", "page-layer-2-ready-to-start-title": "Pronto para começar?", - "page-layer-2-ready-to-start-description": "Veja todas as diferentes redes que estão disponíveis para você.", + "page-layer-2-ready-to-start-description": "Confira todas as diferentes redes disponíveis para você.", "page-layer-2-ready-to-start-button": "Explore redes", "page-layer-2-go": "Vamos", "page-layer-2-walking-alt": "Andando", @@ -32,13 +32,13 @@ "page-layer-2-faq-title": "Perguntas frequentes", "page-layer-2-faq-ExpandableCard-1-title": "Como saber que uma rede faz parte da Ethereum?", "page-layer-2-faq-ExpandableCard-1-description-1": "Há muitos jeitos diferentes de categorizar redes em relação à Ethereum. Muitas redes alegam estar escalando a Ethereum para ganhar popularidade. No entanto, uma questão fundamental é se a rede armazena seus dados na rede principal da Ethereum. Isso aumenta significativamente a segurança do usuário e a visão sem permissões da Ethereum. Projetos assim geralmente são chamados de \"rollups\". Se os dados são armazenados em outro lugar, então o projeto não é uma extensão direta da Ethereum, mas sim um projeto independente. Confira algumas das mais populares", - "page-layer-2-faq-ExpandableCard-1-description-2": "Alguns setores específicos podem não exigir uma relação tão próxima, como jogos ou aplicações não financeiras, onde outras tecnologias são mais adequadas.", + "page-layer-2-faq-ExpandableCard-1-description-2": "Alguns setores específicos podem não exigir uma relação tão próxima, como jogos ou aplicações não financeiras, em que outras tecnologias são mais adequadas.", "page-layer-2-faq-ExpandableCard-2-title": "Todas essas redes são seguras?", "page-layer-2-faq-ExpandableCard-2-description-1": "Embora geralmente projetadas com recursos de segurança robustos, sua segurança depende da tecnologia subjacente, da segurança dos contratos inteligentes e", - "page-layer-2-faq-ExpandableCard-2-link": "da maturidade da rede", + "page-layer-2-faq-ExpandableCard-2-link": "maturidade da rede", "page-layer-2-faq-ExpandableCard-2-description-2": "Os usuários devem realizar a diligência, começando com pequenas transações e mantendo-se atualizados sobre os desenvolvimentos para garantir o uso seguro.", "page-layer-2-faq-ExpandableCard-3-title": "Por que a Ethereum não escala sua própria blockchain em vez de depender dessas redes?", - "page-layer-2-faq-ExpandableCard-3-description": "A Ethereum não escala sua própria cadeia principal porque precisa continuar segura e descentralizada. Tornar a cadeia principal mais rápida poderia deixá-la menos segura e mais centralizada. As redes da Ethereum ajudam ao processar transações fora da cadeira principal e, então, usando a cadeia principal para segurança, permitindo que a Ethereum lide com mais transações sem perder a segurança ou a descentralização.", + "page-layer-2-faq-ExpandableCard-3-description": "A Ethereum não escala sua própria cadeia principal porque precisa se manter segura e descentralizada. Tornar a cadeia principal mais rápida poderia deixá-la menos segura e mais centralizada. As redes da Ethereum solucionam isso ao processar transações fora da cadeia principal e, em seguida, usando a cadeia principal para fornecer segurança, permitindo que a Ethereum gerencie mais transações sem perder a segurança ou a descentralização.", "page-layer-2-faq-ExpandableCard-4-title": "Por que não existe uma rede “oficial” da Ethereum?", "page-layer-2-faq-ExpandableCard-4-description": "Assim como não existe um cliente Ethereum 'oficial', não existe uma camada 2 'oficial' da Ethereum. A Ethereum é sem permissão (permissionless) — tecnicamente, qualquer pessoa pode criar uma camada 2! Várias equipes implementarão sua versão de uma camada 2 e o ecossistema como um todo se beneficiará de uma diversidade de abordagens de design otimizadas para diferentes casos de uso. Assim como temos vários clientes Ethereum desenvolvidos por várias equipes para ter diversidade na rede, também será assim que as camadas 2 se desenvolverão no futuro.", "page-layer-2-callout-1-title": "Explore diferentes redes", @@ -49,7 +49,7 @@ "page-layer-2-base-description": "A Base é uma rede com tecnologia Optimistic Rollup construído com o OP Stack. Oferece uma maneira de baixo custo e fácil de desenvolver para que qualquer pessoa, em qualquer lugar, desenvolva onchain.", "page-layer-2-optimism-description": "OP Mainnet é uma rede com tecnologia Optimistic Rollup e EVM-equivalente. Seu objetivo é ser rápida, simples e segura.", "page-layer-2-blast-description": "Blast é um Optimistic Rollup compatível com EVM que oferece rendimento nativo.", - "page-layer-2-zksync2-description": "ZKsync Era é uma rede de uso geral e com tecnologia ZK Rollup totalmente compatível com EVM.", + "page-layer-2-zksync2-description": "ZKsync Era é um ZK Rollup de uso geral, totalmente compatível com EVM.", "page-layer-2-linea-description": "Linea é um ZK Rollup impulsionado pelo Consensys zkEVM, projetado para escalar a rede Ethereum.", "page-layer-2-scroll-description": "Scroll é um ZK Rollup que amplia as capacidades da Ethereum por meio da tecnologia ZK e da compatibilidade com EVM.", "page-layer-2-starknet-description": "Starknet é um ZK Rollup de uso geral baseado em STARKs e na Cairo VM.", diff --git a/src/intl/pt-br/page-stablecoins.json b/src/intl/pt-br/page-stablecoins.json index 8db2a46d859..d1ecd1af482 100644 --- a/src/intl/pt-br/page-stablecoins.json +++ b/src/intl/pt-br/page-stablecoins.json @@ -131,6 +131,7 @@ "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metais preciosos", "page-stablecoins-table-error": "Não foi possível carregar as stablecoins. Tente atualizar a página.", "page-stablecoins-title": "Stablecoins", + "page-stablecoins-meta-title": "Introdução às stablecoins (moedas estáveis): para que servem?", "page-stablecoins-top-coins": "Principais stablecoins por capitalização de mercado", "page-stablecoins-top-coins-intro": "A capitalização de mercado é", "page-stablecoins-top-coins-intro-code": "o número total de tokens que existem multiplicado pelo valor por token. Esta lista é dinâmica e os projetos listados aqui não são necessariamente endossados ​​pela equipe da ethereum.org.", @@ -159,7 +160,6 @@ "example-projects": "Exemplos de projetos", "gemini-logo": "Logotipo da Gemini", "gitcoin-logo": "Logotipo Gitcoin", - "loopring-logo": "Logotipo Loopring", "makerdao-logo": "Logotipo da MakerDao", "matcha-logo": "Logotipo Matcha", "summerfi-logo": "Logotipo da Summer.fi", diff --git a/src/intl/pt-br/page-staking.json b/src/intl/pt-br/page-staking.json index ad469a4207d..ef76b767b7e 100644 --- a/src/intl/pt-br/page-staking.json +++ b/src/intl/pt-br/page-staking.json @@ -10,7 +10,7 @@ "comp-withdrawal-comparison-new-link": "Acesse a plataforma de staking", "comp-withdrawal-credentials-placeholder": "Índice do validador", "comp-withdrawal-credentials-error": "Ops! Verifique o índice do validador e tente novamente.", - "comp-withdrawal-credentials-upgraded-1": "O índice do validador {{validatorIndex}} está pronto para começar a receber recompensas!", + "comp-withdrawal-credentials-upgraded-1": "O índice do validador {validatorIndex} está pronto para começar a receber recompensas!", "comp-withdrawal-credentials-upgraded-2": "Credenciais de saque ligadas ao endereço de execução:", "comp-withdrawal-credentials-not-upgraded-1": "Este validador precisa ser atualizado.", "comp-withdrawal-credentials-not-upgraded-1-testnet": "Este validador da rede de testes Holesky precisa ser atualizado.", @@ -50,15 +50,18 @@ "page-staking-guide-title-coincashew-ethereum": "Guia Ethereum 2.0 de CoinCashew", "page-staking-guide-title-somer-esat": "Somer Esat", "page-staking-guide-title-rocket-pool": "Operadores de nó Rocket Pool", + "page-staking-guide-title-stakewise": "Operadores de nós da StakeWise", "page-staking-guide-description-linux": "Linux (CLI)", "page-staking-guide-description-mac-linux": "Linux, macOS (CLI)", - "page-staking-hierarchy-solo-h2": "Staking individual de casa", + "page-staking-guide-description-mac-linux-windows": "Linux, Windows, MacOS (CLI)", + "page-staking-hierarchy-solo-h2": "Staking individual", "page-staking-hierarchy-solo-pill-1": "Mais impactante", "page-staking-hierarchy-solo-pill-2": "Controle total", "page-staking-hierarchy-solo-pill-3": "Recompensas", "page-staking-hierarchy-solo-pill-4": "Com necessidade mínima de confiança", - "page-staking-hierarchy-solo-p1": "Kingston individual no Ethereum é o <span class=\"gold\">padrão de ouro</span> para Kingston. Ele fornece recompensas de participação total, melhora a descentralização da rede e dispensa ter que confiar seu dinheiro a alguém.", - "page-staking-hierarchy-solo-p2": "Aqueles que consideram staking individual devem ter pelo menos 32 ETH e um computador dedicado conectado à internet ~ 24 horas por dia, 7 dias por semana. Alguns conhecimentos técnicos são úteis, mas já existem ferramentas fáceis de usar para ajudar a simplificar este processo.", + "page-staking-hierarchy-solo-p1": "O staking individual na Ethereum é o <span class=\"gold\">padrão ouro</span> para staking. Ele oferece recompensas completas de participação, melhora a descentralização da rede e nunca exige que você confie seus fundos a terceiros.", + "page-staking-hierarchy-solo-p2": "Aqueles que estão considerando realizar staking individual devem possuir uma quantidade de ETH e um computador dedicado conectado à internet cerca de 24 horas por dia, 7 dias por semana. Algum conhecimento técnico é útil, mas ferramentas fáceis de usar já existem para simplificar esse processo.", + "page-staking-hierarchy-solo-p3": "Os praticantes de staking individual podem agrupar seus fundos com outras pessoas ou seguir sozinhos com pelo menos 32 ETH. Soluções de tokens de staking líquido podem ser usadas para manter o acesso ao DeFi.", "page-staking-hierarchy-saas-pill-1": "Seus 32 ETH", "page-staking-hierarchy-saas-pill-2": "Suas chaves de validação", "page-staking-hierarchy-saas-pill-3": "Operação de servidor confiável", @@ -69,9 +72,9 @@ "page-staking-hierarchy-pools-pill-2": "Ganhe recompensas", "page-staking-hierarchy-pools-pill-3": "Não complique", "page-staking-hierarchy-pools-pill-4": "Popular", - "page-staking-hierarchy-pools-p1": "Já existem várias soluções de pooling (depósito coletivo) para ajudar os usuários que não têm 32 ETH ou não se sentem confortáveis em fazer staking.", + "page-staking-hierarchy-pools-p1": "Existem várias soluções de pooling (depósito coletivo) para auxiliar usuários que não possuem ou não se sentem confortáveis em fazer staking de 32 ETH.", "page-staking-hierarchy-pools-p2": "Muitas dessas opções incluem o que é conhecido como \"staking líquido\", que envolve um token de liquidez <a href=\"/glossary/#erc-20\">ERC-20</a> que representa seu ETH em staking.", - "page-staking-hierarchy-pools-p3": "O staking líquido permite a saída fácil e a qualquer momento e faz também com que o staking seja tão simples quanto uma troca de tokens. Essa opção permite que os usuários mantenham a propriedade de seus ativos na própria <a href=\"/glossary/#wallet\">carteira</a> deles no Ethereum.", + "page-staking-hierarchy-pools-p3": "O staking líquido torna o processo de staking e unstaking tão simples quanto uma troca de tokens e permite o uso do capital em staking no DeFi. Essa opção também permite que os usuários mantenham a custódia de seus ativos em sua própria <a href=\"/glossary/#wallet\">carteira</a> Ethereum.", "page-staking-hierarchy-pools-p4": "Staking combinado não é nativo da rede Ethereum. Terceiros estão construindo essas soluções e elas acarretam seus próprios riscos.", "page-staking-hierarchy-cex-h2": "Exchanges (corretoras) centralizadas", "page-staking-hierarchy-cex-pill-1": "Menos impactante", @@ -84,8 +87,10 @@ "page-staking-comparison-solo-pools": "A participação individual é consideravelmente mais complicada do que a participação com um serviço de pooling, mas oferece acesso total às recompensas de ETH e controle total sobre a configuração e a segurança do validador. A participação em pool tem uma barreira de entrada significativamente menor. Os usuários podem criar a participação de pequenas quantidades de ETH, não precisam gerar chaves de validação e não têm requisitos de hardware além de uma conexão padrão com a Internet. Os tokens de liquidez permitem a saída da participação antes da ativação no nível do protocolo. Se você estiver interessado nesses recursos, a participação em pool pode ser uma boa opção.", "page-staking-comparison-saas-solo": "As semelhanças incluem ter suas próprias chaves de validação sem ter que reunir fundos, mas com o SaaS você deve confiar em um terceiro, que pode agir de forma maliciosa ou se tornar alvo de ataque ou regulamentação. Se essas suposições de confiança ou riscos de centralização o preocupam, o padrão-ouro do staking autossoberano é o staking individual.", "page-staking-comparison-saas-pools": "Aqui há semelhança, pois você geralmente depende de outra pessoa para executar o cliente validador, mas, diferentemente do SaaS, o staking em pools permite que você participe com quantidades menores de ETH. Se você deseja fazer staking com menos de 32 ETH, considere dar uma olhada nisso.", - "page-staking-comparison-pools-solo": "O staking em pools tem uma barreira de entrada significativamente menor quando comparado ao staking individual, mas traz um risco adicional ao delegar todas as operações de nó a terceiros, e com uma taxa. O staking individual oferece total soberania e controle sobre as escolhas que envolvem a escolha de uma configuração de staking. Os stakers nunca precisam entregar suas chaves e ganham recompensas completas sem nenhum intermediário.", + "page-staking-comparison-pools-solo": "O staking em pool tem uma barreira de entrada significativamente menor em comparação ao staking individual, mas envolve riscos adicionais ao delegar todas as operações do nó a um terceiro, além de implicar em uma taxa. O staking individual oferece total soberania e controle sobre as escolhas relacionadas à configuração do staking. Os participantes nunca precisam entregar suas chaves e recebem recompensas integrais sem intermediários cobrando uma parte.", "page-staking-comparison-pools-saas": "Aqui há semelhança, pois os stakers não executam o software validador, mas, ao contrário das opções de pools, o SaaS requer um depósito total de 32 ETH para ativar um validador. As recompensas se acumulam para o staker e geralmente envolvem uma taxa mensal ou outro stake para usar o serviço. Se você preferir ter suas próprias chaves de validação e deseja apostar pelo menos 32 ETH, usar um provedor SaaS pode ser uma boa opção para você.", + "page-staking-considerations-dropdown-text": "Considerações sobre staking", + "page-staking-considerations-dropdown-aria-label": "Menu suspenso de considerações sobre staking", "page-staking-considerations-solo-1-title": "Código aberto", "page-staking-considerations-solo-1-description": "O código essencial é 100% de código aberto e disponível ao público para bifurcações e uso", "page-staking-considerations-solo-1-warning": "Fonte fechada", @@ -157,6 +162,7 @@ "page-staking-launchpad-widget-p3": "Para facilitar as coisas, confira algumas das ferramentas e guias abaixo que podem ajudá-lo com o Staking Launchpad para configurar seus clientes com facilidade.", "page-staking-launchpad-widget-link": "Ferramentas de software e guia", "page-staking-products-get-started": "Introdução", + "page-staking-products-follow": "Visite em", "page-staking-dropdown-staking-options": "Opções de staking (participação)", "page-staking-dropdown-staking-options-alt": "Menu suspenso de opções de staking (participação)", "page-staking-stats-box-metric-1": "Total de ETH em stake", @@ -168,8 +174,8 @@ "page-staking-section-comparison-subtitle": "Não existe uma solução única para staking, e cada solução é exclusiva. Compararemos aqui alguns dos riscos, recompensas e requisitos das diferentes formas de fazer staking.", "page-staking-section-comparison-rewards-title": "Recompensas", "page-staking-section-comparison-solo-rewards-li1": "Recompensas máximas – receba recompensas completas diretamente do protocolo", - "page-staking-section-comparison-solo-rewards-li2": "Você receberá recompensas por agrupar transações em um novo bloco ou verificar o trabalho de outros validadores para manter a cadeia funcionando com segurança", - "page-staking-section-comparison-solo-rewards-li3": "Você também receberá taxas de transação não queimadas para os blocos que você propor", + "page-staking-section-comparison-solo-rewards-li2": "Recompensas por propor blocos, incluindo taxas de transação não queimadas, e por atestar regularmente o estado da rede", + "page-staking-section-comparison-solo-rewards-li3": "Opção de cunhar um token de staking líquido vinculado ao seu nó individual para uso em DeFi", "page-staking-section-comparison-saas-rewards-li1": "Geralmente envolve recompensas de protocolo completas menos a taxa mensal para as operações do nó", "page-staking-section-comparison-saas-rewards-li2": "Painéis de instrumentos frequentemente disponíveis para rastrear facilmente seu cliente validador", "page-staking-section-comparison-pools-rewards-li1": "Stakers em pools acumulam recompensas de forma diferente, dependendo de qual foi o método de staking em pools escolhido", @@ -178,7 +184,8 @@ "page-staking-section-comparison-risks-title": "Riscos", "page-staking-section-comparison-solo-risks-li1": "Seus ETH estão em jogo", "page-staking-section-comparison-solo-risks-li2": "Existem penalidades, que custam ETH, por ficar off-line", - "page-staking-section-comparison-solo-risks-li3": "O comportamento malicioso pode resultar em 'cortes' de muitos ETH e expulsão forçada da rede", + "page-staking-section-comparison-solo-risks-li3": "Slashing (penalidades maiores e expulsão da rede) por comportamento malicioso", + "page-staking-section-comparison-solo-risks-li4": "Cunhar um token de staking líquido introduzirá riscos relacionados a contratos inteligentes, mas isso é totalmente opcional", "page-staking-section-comparison-saas-risks-li1": "Os mesmos riscos que o staking individual mais o risco da contraparte do provedor de serviços", "page-staking-section-comparison-saas-risks-li2": "O uso de suas chaves de assinatura é confiado a outra pessoa que pode se comportar maliciosamente", "page-staking-section-comparison-pools-risks-li1": "Os riscos variam dependendo do método usado", @@ -225,7 +232,7 @@ "page-staking-join-community": "Junte-se à comunidade de participação", "page-staking-join-community-desc": "EthStaker é uma comunidade em que todos os participantes podem discutir e aprender sobre participação no Ethereum. Junte-se a dezenas de milhares de membros de todo o mundo para obter recomendações, apoio e falar sobre participação.", "page-staking-meta-description": "Uma visão geral da participação no Ethereum: riscos, recompensas, requisitos e onde fazê-lo.", - "page-staking-meta-title": "Participação no Ethereum", + "page-staking-meta-title": "Staking de Ethereum: como funciona?", "page-staking-withdrawals-important-notices": "Avisos importantes", "page-staking-withdrawals-important-notices-desc": "Os saques ainda não estão disponíveis. Leia as <a href=\"https://blog.ethereum.org/2021/12/01/eth2-merge-and-post-merge-faq/\" target=\"_blank\">Perguntas frequentes sobre a Fusão Eth2 e a pós-Fusão</a> para mais informações.", "page-upgrades-merge-btn": "Mais sobre a integração", diff --git a/src/intl/pt-br/page-upgrades-index.json b/src/intl/pt-br/page-upgrades-index.json index d75f7cba81b..199ddd57c46 100644 --- a/src/intl/pt-br/page-upgrades-index.json +++ b/src/intl/pt-br/page-upgrades-index.json @@ -126,7 +126,7 @@ "page-upgrades-question-9-answer-3": "Se você tem habilidades mais técnicas, pode ajudar a resolver bugs em novos clientes.", "page-upgrades-question-9-answer-4": "Você também pode participar das discussões técnicas com pesquisadores do Ethereum em ethresear.ch.", "page-upgrades-question-9-desc": "Você não precisa ser técnico para contribuir. A comunidade está procurando contribuições de todos os tipos de habilidades.", - "page-upgrades-question-9-stake-eth": "Participe com ETH", + "page-upgrades-question-9-stake-eth": "Fazer stake de ETH", "page-upgrades-question-9-title": "Como posso contribuir para melhorias no Ethereum?", "page-upgrades-question-9-more": "Encontre formas mais gerais de se envolver com o Ethereum", "page-upgrades-question-10-title": "Quais são as fases do Eth2?'", diff --git a/src/intl/pt-br/page-wallets-find-wallet.json b/src/intl/pt-br/page-wallets-find-wallet.json index 01382bf8206..a367bcee128 100644 --- a/src/intl/pt-br/page-wallets-find-wallet.json +++ b/src/intl/pt-br/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Usuário de primeira viagem procurando uma carteira para iniciantes.", "page-find-wallet-nfts-title": "NFTs (Tokens Não Fungíveis)", "page-find-wallet-nfts-desc": "Carteiras com foco em suporte a NFTs.", - "page-find-wallet-hodler-title": "Longo prazo", + "page-find-wallet-hodler-title": "Hardware", "page-find-wallet-hodler-desc": "Holding passivo de tokens com carteiras de hardware.", "page-find-wallet-finance-title": "Finanças", "page-find-wallet-finance-desc": "Carteiras com foco na usabilidade frequente de aplicativos DeFi.", diff --git a/src/intl/pt-br/template-usecase.json b/src/intl/pt-br/template-usecase.json index de526df9909..bef45e2b0e8 100644 --- a/src/intl/pt-br/template-usecase.json +++ b/src/intl/pt-br/template-usecase.json @@ -4,6 +4,7 @@ "template-usecase-dropdown-nft": "Tokens não fungíveis (NFTs)", "template-usecase-dropdown-dao": "Organizações autônomas descentralizadas (DAOs)", "template-usecase-dropdown-payments": "Pagamentos com Ethereum", + "template-usecase-dropdown-prediction-markets": "Mercados preditivos", "template-usecase-dropdown-social-networks": "Redes sociais descentralizadas", "template-usecase-dropdown-identity": "Identidade descentralizada", "template-usecase-dropdown-desci": "Ciência descentralizada (DeSci)", @@ -12,4 +13,4 @@ "template-usecase-banner": "Os usos do Ethereum estão sempre se desenvolvendo e evoluindo. Adicione qualquer informação que você acha que tornará as coisas mais claras ou mais atualizadas.", "template-usecase-edit-link": "Editar página", "template-usecase-dropdown-aria": "Casos de uso: menu suspenso" -} \ No newline at end of file +} diff --git a/src/intl/pt/common.json b/src/intl/pt/common.json index 01a67de63c9..b2c00a808f0 100644 --- a/src/intl/pt/common.json +++ b/src/intl/pt/common.json @@ -333,6 +333,8 @@ "nav-staking-solo-description": "Opere hardware doméstico e contribua pessoalmente para a segurança e descentralização da rede Ethereum", "nav-staking-solo-label": "Participação individual", "nav-start-building-description": "Informações úteis para os principiantes", + "nav-start-with-crypto-title": "Comece aqui", + "nav-start-with-crypto-description": "Os seus primeiros passos com Ethereum", "nav-translation-program-description": "Um esforço de colaboração para traduzir o ethereum.org para todas as línguas", "nav-tutorials-description": "Lista selecionada de tutoriais da comunidade", "nav-use-cases-description": "Descubra ideias distintas para a utilização do Ethereum", diff --git a/src/intl/pt/page-index.json b/src/intl/pt/page-index.json index a8a4b9636b7..dc8dbd941b7 100644 --- a/src/intl/pt/page-index.json +++ b/src/intl/pt/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Publicações recentes", "page-index-posts-subtitle": "As últimas publicações no blogue e atualizações da comunidade", "page-index-title": "Bem-vindo ao Ethereum", + "page-index-use-cases-tag": "Casos de utilização", "page-index-values-description": "Faça parte da revolução digital", "page-index-values-header": "A Internet está a mudar", "page-index-values-legacy": "Legado", diff --git a/src/intl/pt/page-wallets-find-wallet.json b/src/intl/pt/page-wallets-find-wallet.json index d37970c9cdc..a957904af4e 100644 --- a/src/intl/pt/page-wallets-find-wallet.json +++ b/src/intl/pt/page-wallets-find-wallet.json @@ -8,7 +8,7 @@ "page-find-wallet-meta-title": "Lista de carteiras Ethereum | ethereum.org", "page-find-wallet-title": "Escolha a sua carteira", "page-find-wallet-try-removing": "Tente remover uma ou duas funcionalidades", - "page-stake-eth": "Bloquear ETH", + "page-stake-eth": "Fazer staking de ETH", "page-find-wallet-open-source": "Código aberto", "page-find-wallet-open-source-desc": "O software de código aberto permite a qualquer pessoa auditar a integridade e a segurança da aplicação", "page-find-wallet-self-custody": "Autocustódia", @@ -63,9 +63,9 @@ "page-find-wallet-hardware": "Hardware", "page-find-wallet-new-to-crypto-title": "Novidade no mundo das moedas digitais", "page-find-wallet-new-to-crypto-desc": "Utilizador pela primeira vez à procura de uma carteira para iniciar.", - "page-find-wallet-nfts-title": "NFT", + "page-find-wallet-nfts-title": "NFTs", "page-find-wallet-nfts-desc": "Carteira com suporte NFT.", - "page-find-wallet-hodler-title": "Longo prazo", + "page-find-wallet-hodler-title": "Hardware", "page-find-wallet-hodler-desc": "Retenção passiva de tokens com carteiras de Hardware.", "page-find-wallet-finance-title": "Finanças", "page-find-wallet-finance-desc": "Carteiras com foco no uso frequente de aplicações DeFi.", diff --git a/src/intl/ro/common.json b/src/intl/ro/common.json index e17a319bd44..21735333b79 100644 --- a/src/intl/ro/common.json +++ b/src/intl/ro/common.json @@ -333,6 +333,8 @@ "nav-staking-solo-description": "Rulați hardware-ul obișnuit și contribuiți personal la securitatea și descentralizarea rețelei Ethereum", "nav-staking-solo-label": "Miză individuală", "nav-start-building-description": "Informații utile pentru nou-veniți", + "nav-start-with-crypto-title": "Începeți aici", + "nav-start-with-crypto-description": "Primii dvs. pași cu Ethereum", "nav-translation-program-description": "Un proiect de colaborare pentru a traduce ethereum.org în toate limbile", "nav-tutorials-description": "Listă curatoriată cu tutoriale generate de comunitate", "nav-use-cases-description": "Descoperă diferite idei pentru utilizarea Ethereum", diff --git a/src/intl/ro/page-index.json b/src/intl/ro/page-index.json index 8249d4949ad..db5e27c02d3 100644 --- a/src/intl/ro/page-index.json +++ b/src/intl/ro/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Postări recente", "page-index-posts-subtitle": "Cele mai recente postări pe bloguri și actualizări din comunitate", "page-index-title": "Bun venit la Ethereum", + "page-index-use-cases-tag": "Cazuri de utilizare", "page-index-values-description": "Intrați în revoluția digitală", "page-index-values-header": "Internetul se schimbă", "page-index-values-legacy": "Sistemul tradițional", diff --git a/src/intl/ro/page-wallets-find-wallet.json b/src/intl/ro/page-wallets-find-wallet.json index f463a2df9b0..2e4ceee528d 100644 --- a/src/intl/ro/page-wallets-find-wallet.json +++ b/src/intl/ro/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Utilizator începător căutând un portofel pentru începători.", "page-find-wallet-nfts-title": "NFT-uri", "page-find-wallet-nfts-desc": "Portofele axate pe suport pentru NFT.", - "page-find-wallet-hodler-title": "Pe termen lung", + "page-find-wallet-hodler-title": "Hardware", "page-find-wallet-hodler-desc": "Jeton pasiv în portofele hardware.", "page-find-wallet-finance-title": "Finanțe", "page-find-wallet-finance-desc": "Portofele axate pe utilizarea frecventă a aplicațiilor DeFi.", diff --git a/src/intl/ru/common.json b/src/intl/ru/common.json index 82a6d013799..422f4e6d69a 100644 --- a/src/intl/ru/common.json +++ b/src/intl/ru/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Запустите домашнее оборудование и лично добавьте безопасности и децентрализации сети Ethereum", "nav-staking-solo-label": "Одиночный стейкинг", "nav-start-building-description": "Полезная информация для новичков", + "nav-start-with-crypto-title": "Начните здесь", + "nav-start-with-crypto-description": "Ваши первые шаги с Ethereum", "nav-translation-program-description": "Общие усилия по переводу ethereum.org на все языки", "nav-tutorials-description": "Курируемый список руководств сообщества", "nav-use-cases-description": "Узнайте различные идеи по использованию Ethereum", diff --git a/src/intl/ru/page-index.json b/src/intl/ru/page-index.json index 445bcd9c557..843f9b65dae 100644 --- a/src/intl/ru/page-index.json +++ b/src/intl/ru/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Последние публикации", "page-index-posts-subtitle": "Последние публикации в блоге и обновления от сообщества", "page-index-title": "Добро пожаловать в Ethereum", + "page-index-use-cases-tag": "Примеры использования", "page-index-values-description": "Станьте частью цифровой революции", "page-index-values-header": "Интернет меняет свой облик", "page-index-values-legacy": "История", diff --git a/src/intl/ru/page-wallets-find-wallet.json b/src/intl/ru/page-wallets-find-wallet.json index 7a2728b4c0c..0ab99c8b600 100644 --- a/src/intl/ru/page-wallets-find-wallet.json +++ b/src/intl/ru/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Вы — начинающий пользователь, ищущий свой первый кошелек.", "page-find-wallet-nfts-title": "NFT", "page-find-wallet-nfts-desc": "Кошельки с развитой поддержкой NFT.", - "page-find-wallet-hodler-title": "Долгосрочное хранение", + "page-find-wallet-hodler-title": "Аппаратное обеспечение", "page-find-wallet-hodler-desc": "Пассивное хранение токенов в аппаратных кошельках.", "page-find-wallet-finance-title": "Финансовые операции", "page-find-wallet-finance-desc": "Кошельки с акцентом на частом использовании приложений децентрализованных финансов (DeFi).", diff --git a/src/intl/se/common.json b/src/intl/se/common.json index 51f5307a8ea..a28bb6d302b 100644 --- a/src/intl/se/common.json +++ b/src/intl/se/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Kör hårdvara hemma och bidra personligen till säkerheten och decentraliseringen av Ethereum-nätverket", "nav-staking-solo-label": "Soloutsättning", "nav-start-building-description": "Användbar information för nybörjare", + "nav-start-with-crypto-title": "Börja här", + "nav-start-with-crypto-description": "Dina första steg med Ethereum", "nav-translation-program-description": "Ett samarbetsprojekt för att översätta ethereum.org till alla språk", "nav-tutorials-description": "Kurerad lista över community-guider", "nav-use-cases-description": "Upptäck olika idéer för Ethereum-användning", diff --git a/src/intl/se/page-index.json b/src/intl/se/page-index.json index b4b9b84c0d0..7b7bd2d9d23 100644 --- a/src/intl/se/page-index.json +++ b/src/intl/se/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Senaste inläggen", "page-index-posts-subtitle": "De senaste blogginläggen och uppdateringarna från gemenskapen", "page-index-title": "Välkommen till Ethereum", + "page-index-use-cases-tag": "Användningsfall", "page-index-values-description": "Bli en del av den digitala revolutionen", "page-index-values-header": "Internet förändras", "page-index-values-legacy": "Arv", diff --git a/src/intl/sk/common.json b/src/intl/sk/common.json index fcbf520d242..d56c2706618 100644 --- a/src/intl/sk/common.json +++ b/src/intl/sk/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Spustiť domáci hardvér a osobne prispieť k bezpečnosti a decentralizácii siete Ethereum", "nav-staking-solo-label": "Sólo stakovanie", "nav-start-building-description": "Užitočné informácie pre nováčikov", + "nav-start-with-crypto-title": "Začnite tu", + "nav-start-with-crypto-description": "Vaše prvé kroky s Ethereom", "nav-translation-program-description": "Spoločné úsilie o preklad webovej lokality ethereum.org do všetkých jazykov", "nav-tutorials-description": "Zoznam komunitných výukových materiálov", "nav-use-cases-description": "Objavte rôzne nápady na využitie Etherea", diff --git a/src/intl/sk/page-index.json b/src/intl/sk/page-index.json index e73f5961933..2f46c9f9f07 100644 --- a/src/intl/sk/page-index.json +++ b/src/intl/sk/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Najnovšie príspevky", "page-index-posts-subtitle": "Najnovšie blogové príspevky a novinky z komunity", "page-index-title": "Vitajte v Ethereum", + "page-index-use-cases-tag": "Prípady použitia", "page-index-values-description": "Buďte súčasťou digitálnej revolúcie", "page-index-values-header": "Internet sa mení", "page-index-values-legacy": "Dedičstvo", diff --git a/src/intl/sl/common.json b/src/intl/sl/common.json index f944eceed28..3f6fef81b78 100644 --- a/src/intl/sl/common.json +++ b/src/intl/sl/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "zagnati domačo strojno opremo in osebno prispevati k varnosti in decentralizaciji omrežja Ethereum", "nav-staking-solo-label": "Samostojno zastavljanje", "nav-start-building-description": "Koristne informacije za novince", + "nav-start-with-crypto-title": "Začnite tukaj", + "nav-start-with-crypto-description": "Vaši prvi koraki z Ethereumom", "nav-translation-program-description": "Skupna prizadevanja za prevod spletnega mesta ethereum.org v vse jezike", "nav-tutorials-description": "Pregledan seznam vadnic skupnosti", "nav-use-cases-description": "Odkrijte različne zamisli za uporabo Ethereuma", diff --git a/src/intl/sl/page-index.json b/src/intl/sl/page-index.json index 9fe76487a92..d2f4c956657 100644 --- a/src/intl/sl/page-index.json +++ b/src/intl/sl/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Nedavne objave", "page-index-posts-subtitle": "Najnovejše objave spletnih dnevnikov in novosti iz skupnosti", "page-index-title": "Dobrodošli v Ethereum", + "page-index-use-cases-tag": "Primeri uporabe", "page-index-values-description": "Bodite del digitalne revolucije", "page-index-values-header": "Internet se spreminja", "page-index-values-legacy": "Zapuščina", diff --git a/src/intl/sl/page-wallets-find-wallet.json b/src/intl/sl/page-wallets-find-wallet.json index d69bc40e2b2..5bac5210ded 100644 --- a/src/intl/sl/page-wallets-find-wallet.json +++ b/src/intl/sl/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Uporabnik začetnik, ki išče začetniško denarnico.", "page-find-wallet-nfts-title": "NFT-ji", "page-find-wallet-nfts-desc": "Denarnice, ki se osredotočajo na podporo za NFT-je.", - "page-find-wallet-hodler-title": "Dolgoročni imetnik", + "page-find-wallet-hodler-title": "Strojna oprema", "page-find-wallet-hodler-desc": "Pasivno hranjenje žetonov na strojnih denarnicah.", "page-find-wallet-finance-title": "Finance", "page-find-wallet-finance-desc": "Denarnice, osredotočene na pogosto uporabo aplikacij DeFi.", diff --git a/src/intl/sn/common.json b/src/intl/sn/common.json index c5846325924..41462c52d54 100644 --- a/src/intl/sn/common.json +++ b/src/intl/sn/common.json @@ -331,6 +331,8 @@ "nav-staking-solo-description": "Shandisa muchina wekumba kuwedzera kuchengetedzeka nekupararira kwemasaisai eEthereum", "nav-staking-solo-label": "Kuita staking kwemunhu ega", "nav-start-building-description": "Ruzivo rwakakoshera vachangotanga", + "nav-start-with-crypto-title": "Tanga pano", + "nav-start-with-crypto-description": "Matanho ako ekutanga ne Ethereum", "nav-translation-program-description": "Mushandirapamwe wekushandura ethereum.org kuenda kumitauro yese", "nav-tutorials-description": "Muunganidzwa wedzidzidzo zvevachangotanga zvinobva muboka", "nav-use-cases-description": "Sangana nemazano matsva emashandirwo angaitwa Ethereum", diff --git a/src/intl/sn/page-index.json b/src/intl/sn/page-index.json index dcf151c466f..26558a2efc4 100644 --- a/src/intl/sn/page-index.json +++ b/src/intl/sn/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Zvichangobva kutumirwa", "page-index-posts-subtitle": "Zvichangobva kutumirwa pa-blog uye mashoko achangobva kupiwa nevanoishandisa", "page-index-title": "Tinokugamuchira kuEthereum", + "page-index-use-cases-tag": "Mienzaniso emashandisirwo", "page-index-values-description": "Iva pachikamu chekuitwa kwezvinhu pachishandiswa makombiyuta", "page-index-values-header": "Indaneti iri kuchinja", "page-index-values-legacy": "Nhaka", diff --git a/src/intl/sn/page-wallets-find-wallet.json b/src/intl/sn/page-wallets-find-wallet.json index 653be24cc36..3c1c616ef35 100644 --- a/src/intl/sn/page-wallets-find-wallet.json +++ b/src/intl/sn/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Mushandisi mutsva ari kutsbaga chikwama chevachangotanga.", "page-find-wallet-nfts-title": "NFTs", "page-find-wallet-nfts-desc": "Zvikwama zvakatarisa kutsigira maNFT.", - "page-find-wallet-hodler-title": "Zvenguva yakareba", + "page-find-wallet-hodler-title": "Zvishandiswa zvinobatika", "page-find-wallet-hodler-desc": "Kuchengeta matokens zvakarivara uchishandisa homwe zvemichina inobatika.", "page-find-wallet-finance-title": "Zvemari", "page-find-wallet-finance-desc": "Zvikwama zvakatarisa kushandiswa kwakanyanya kwemaapu eDeFi.", diff --git a/src/intl/sr/common.json b/src/intl/sr/common.json index b6c9d09b85a..c4992a80ec8 100644 --- a/src/intl/sr/common.json +++ b/src/intl/sr/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Pokrenite kućni hardver i lično doprinosite bezbednosti i decentralizaciji Ethereum mreže", "nav-staking-solo-label": "Samostalno ulaganje", "nav-start-building-description": "Korisne informacije za novajlije", + "nav-start-with-crypto-title": "Почните овде", + "nav-start-with-crypto-description": "Ваши први кораци са Ethereum-ом", "nav-translation-program-description": "Zajednički napor da se ethereum.org prevede na sve jezike", "nav-tutorials-description": "Uređena lista tutorijala zajednice", "nav-use-cases-description": "Otkrijte različite ideje za korišćenje Ethereuma", diff --git a/src/intl/sr/page-index.json b/src/intl/sr/page-index.json index 3f35086b79b..0b79ac27d82 100644 --- a/src/intl/sr/page-index.json +++ b/src/intl/sr/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Nedavne objave", "page-index-posts-subtitle": "Najnovije objave na blogovima i novosti iz zajednice", "page-index-title": "Dobro došli na Ethereum", + "page-index-use-cases-tag": "Slučajevi upotrebe", "page-index-values-description": "Postanite deo digitalne revolucije", "page-index-values-header": "Internet se menja", "page-index-values-legacy": "Zastarelo", diff --git a/src/intl/sw/common.json b/src/intl/sw/common.json index 094306565a8..bcdc8ff1d17 100644 --- a/src/intl/sw/common.json +++ b/src/intl/sw/common.json @@ -332,6 +332,8 @@ "nav-staking-solo-description": "Endesha vifaa vya nyumbani na uongeze kibinafsi usalama na ugatuaji wa mtandao wa Ethereum", "nav-staking-solo-label": "Usimamishaji binafsi wa hisa", "nav-start-building-description": "Taarifa muhimu kwa wanaoanza", + "nav-start-with-crypto-title": "Anza hapa", + "nav-start-with-crypto-description": "Hatua zako za kwanza ukitumia Ethereum", "nav-translation-program-description": "Jitihada za pamoja za kutafsiri ethereum.org hadi lugha zote", "nav-tutorials-description": "Orodha iliyorekebishwa ya mafunzo ya jamii", "nav-use-cases-description": "Gundua hoja tofauti za matumizi ya Ethereum", diff --git a/src/intl/sw/page-index.json b/src/intl/sw/page-index.json index c74fed64c0f..a12cb4cd03e 100644 --- a/src/intl/sw/page-index.json +++ b/src/intl/sw/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Machapisho ya hivi karibuni", "page-index-posts-subtitle": "Machapisho ya hivi punde zaidi ya blogu na masasisho kutoka kwa jumuiya", "page-index-title": "Karibu Ethereum", + "page-index-use-cases-tag": "Tumia kesi", "page-index-values-description": "Kuwa sehemu ya mabadiliko ya kidijitali", "page-index-values-header": "Mtandao unabadilika", "page-index-values-legacy": "Urithi", diff --git a/src/intl/sw/page-wallets-find-wallet.json b/src/intl/sw/page-wallets-find-wallet.json index 1f8562c3e84..8a980a1fcad 100644 --- a/src/intl/sw/page-wallets-find-wallet.json +++ b/src/intl/sw/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Mtumiaji wa kwanza kutafuta pochi kwa wanao anza.", "page-find-wallet-nfts-title": "NFTs", "page-find-wallet-nfts-desc": "Mikoba inayolenga usaidizi wa NFT.", - "page-find-wallet-hodler-title": "Kwa muda mrefu", + "page-find-wallet-hodler-title": "Maunzi", "page-find-wallet-hodler-desc": "Ishara za kupita zilizo na pochi za vifaa.", "page-find-wallet-finance-title": "Fedha", "page-find-wallet-finance-desc": "Pochi inayozingatia zaidi matumizi ya programu gatuzi.", diff --git a/src/intl/ta/common.json b/src/intl/ta/common.json index dbfdcf47404..6ab66ec3946 100644 --- a/src/intl/ta/common.json +++ b/src/intl/ta/common.json @@ -321,6 +321,8 @@ "nav-staking-solo-description": "முகப்பு வன்பொருளை இயக்கவும் மற்றும் Ethereum நெட்வொர்க்கின் பாதுகாப்பு மற்றும் பரவலாக்கத்தில் தனிப்பட்ட முறையில் சேர்க்கவும்", "nav-staking-solo-label": "சோலோ ஸ்டேக்கிங்", "nav-start-building-description": "புதிதாக நிறுவியுள்ளவர்களுக்கான பயனுள்ள தகவல்கள்", + "nav-start-with-crypto-title": "இங்கிருந்து தொடங்குங்கள்", + "nav-start-with-crypto-description": "Ethereum பயன்படுத்தும் உங்கள் முதல் படிகள்", "nav-translation-program-description": "Ethereum.org-ஐ அனைத்து மொழிகளிலும் மொழிபெயர்ப்பு செய்வதற்கான ஒரு கூட்டு முயற்சி", "nav-tutorials-description": "சமூக கல்விசார் பாடங்களின் தொகுப்பு", "nav-use-cases-description": "Ethereum பயன்பாட்டிற்கான வெவ்வேறு யோசனைகளை கண்டறிதல்", diff --git a/src/intl/ta/page-index.json b/src/intl/ta/page-index.json index 84429f87fed..dc82d6d8d48 100644 --- a/src/intl/ta/page-index.json +++ b/src/intl/ta/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "அண்மை இடுகைகள்", "page-index-posts-subtitle": "சமூகத்தின் சமீபத்திய வலைப்பதிவு இடுகைகள் மற்றும் புதுப்பிப்புகள்", "page-index-title": "Ethereum -க்கு வருக", + "page-index-use-cases-tag": "பயன்பாடு வழக்குகள்", "page-index-values-description": "டிஜிட்டல் புரட்சியின் ஒரு பகுதியாக இருங்கள்", "page-index-values-header": "இணையம் மாறி வருகிறது", "page-index-values-legacy": "மரபு", diff --git a/src/intl/te/common.json b/src/intl/te/common.json index 6b6f36f321e..18ba5810082 100644 --- a/src/intl/te/common.json +++ b/src/intl/te/common.json @@ -333,6 +333,8 @@ "nav-staking-solo-description": "హోమ్ హార్డ్‌వేర్ రన్ చేయండి మరియు Ethereum నెట్‌వర్క్ యొక్క భద్రత మరియు వికేంద్రీకరణకు వ్యక్తిగతంగా జోడించండి", "nav-staking-solo-label": "సోలోగా స్టేక్ చేయడం", "nav-start-building-description": "కొత్తవారికి ఉపయోగకరమైన సమాచారం", + "nav-start-with-crypto-title": "ఇక్కడ నుంచి ప్రారంభించండి", + "nav-start-with-crypto-description": "Ethereum ఉపయోగించే మీ మొదటి అడుగులు", "nav-translation-program-description": "ethereum.orgను అన్ని భాషల్లోకి అనువదించే సమిష్టి కృషి", "nav-tutorials-description": "కమ్యూనిటీ ట్యుటోరియల్స్ యొక్క క్యూరేటెడ్ జాబితా", "nav-use-cases-description": "Ethereum ఉపయోగం కోసం విభిన్న ఆలోచనలను కనుగొనండి", diff --git a/src/intl/te/page-index.json b/src/intl/te/page-index.json index 98f29527ce1..3c1236345f1 100644 --- a/src/intl/te/page-index.json +++ b/src/intl/te/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "ఇటీవల పోస్ట్‌లు", "page-index-posts-subtitle": "కమ్యూనిటీ నుండి తాజా బ్లాగ్ పోస్ట్‌లు మరియు అప్‌డేట్‌లు", "page-index-title": "ఇతీరియముకు స్వాగతం", + "page-index-use-cases-tag": "కేసులను ఉపయోగించండి", "page-index-values-description": "డిజిటల్ విప్లవంలో భాగం అవ్వండి", "page-index-values-header": "ఇంటర్నెట్ మారుతోంది", "page-index-values-legacy": "లీగసీ", diff --git a/src/intl/te/page-wallets-find-wallet.json b/src/intl/te/page-wallets-find-wallet.json index 631764fef37..bd81cdaf6ba 100644 --- a/src/intl/te/page-wallets-find-wallet.json +++ b/src/intl/te/page-wallets-find-wallet.json @@ -63,9 +63,9 @@ "page-find-wallet-hardware": "హార్డ్‌వేర్", "page-find-wallet-new-to-crypto-title": "క్రిప్టోలో కొత్త", "page-find-wallet-new-to-crypto-desc": "మొదటిసారి వినియోగదారు బిగినర్ వాలెట్ కోసం చూస్తున్నారు.", - "page-find-wallet-nfts-title": "NFTs", + "page-find-wallet-nfts-title": "NFTలు", "page-find-wallet-nfts-desc": "NFT మద్దతుపై దృష్టి కేంద్రీకరించే వాలెట్లు.", - "page-find-wallet-hodler-title": "దీర్ఘకాలిక", + "page-find-wallet-hodler-title": "ఇనుప సామానులు", "page-find-wallet-hodler-desc": "హార్డ్‌వేర్ వాలెట్‌లతో నిష్క్రియ టోకెన్ హోల్డింగ్.", "page-find-wallet-finance-title": "ఫైనాన్స్", "page-find-wallet-finance-desc": "DeFi యాప్‌లను తరచుగా ఉపయోగించడంపై వాలెట్‌లు దృష్టి సారిస్తున్నాయి.", diff --git a/src/intl/th/common.json b/src/intl/th/common.json index 27d0c3ccdd4..246393fdd0e 100644 --- a/src/intl/th/common.json +++ b/src/intl/th/common.json @@ -333,6 +333,8 @@ "nav-staking-solo-description": "ใช้งานฮาร์ดแวร์ภายในบ้านและเพิ่มความปลอดภัยและการกระจายอำนาจของเครือข่าย Ethereum เป็นการส่วนตัว", "nav-staking-solo-label": "การ Stake แบบกองเดี่ยว", "nav-start-building-description": "ข้อมูลที่มีประโยชน์สำหรับผู้เริ่มต้นใหม่", + "nav-start-with-crypto-title": "เริ่มต้นที่นี่", + "nav-start-with-crypto-description": "ก้าวแรกของคุณกับ Ethereum", "nav-translation-program-description": "ความพยายามร่วมกันในการแปล ethereum.org เป็นภาษาอื่นๆ ทั้งหมด", "nav-tutorials-description": "รายการบทช่วยสอนของชุมชนที่รวบรวมไว้", "nav-use-cases-description": "ค้นพบแนวคิดที่แตกต่างกันในการใช้งานอีเธอเรียม", diff --git a/src/intl/th/page-index.json b/src/intl/th/page-index.json index 7c8dca97e3e..ea4db62ec92 100644 --- a/src/intl/th/page-index.json +++ b/src/intl/th/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "โพสต์ล่าสุด", "page-index-posts-subtitle": "โพสต์และข้อมูลอัปเดตล่าสุดในบล็อกจากชุมชน", "page-index-title": "ยินดีต้อนรับสู่อีเธอเรียม", + "page-index-use-cases-tag": "กรณีการใช้งาน", "page-index-values-description": "มาร่วมเป็นส่วนหนึ่งของการปฏิวัติทางดิจิทัล", "page-index-values-header": "อินเตอร์เน็ตกำลังเปลี่ยนแปลง", "page-index-values-legacy": "แบบดั้งเดิม", diff --git a/src/intl/tk/common.json b/src/intl/tk/common.json index db5c04bcf33..15acfff45fe 100644 --- a/src/intl/tk/common.json +++ b/src/intl/tk/common.json @@ -319,6 +319,8 @@ "nav-staking-solo-description": "Öý enjamlaryny işlediň we Ethereum ulgamynyň howpsuzlygyna we merkezden daşlaşdyrylmagyna şahsy goşant goşuň", "nav-staking-solo-label": "Ýeke steýking", "nav-start-building-description": "Täze gelenler üçin peýdaly maglumatlar", + "nav-start-with-crypto-title": "Şu ýerde başla", + "nav-start-with-crypto-description": "Ethereum bilen ilkinji ädimleriňiz", "nav-translation-program-description": "Ethereum.org websaýtyny ähli dillere terjime etmek üçin bilelikdäki tagalla", "nav-tutorials-description": "Jemgyýetçilik okuw sapaklarynyň halypalyk sanawy", "nav-use-cases-description": "Ethereum ulanmak üçin dürli pikirleri tapyň", diff --git a/src/intl/tk/page-index.json b/src/intl/tk/page-index.json index 886e5f4cc32..c3e73160b37 100644 --- a/src/intl/tk/page-index.json +++ b/src/intl/tk/page-index.json @@ -80,6 +80,7 @@ "page-index-posts-header": "Soňky ýazgylar", "page-index-posts-subtitle": "Iň soňky blog ýazgylary we jemgyýetden täzelenmeler", "page-index-title": "Ethereum-a hoş geldiňiz", + "page-index-use-cases-tag": "Kazyýetleri ulanyň", "page-index-values-description": "Sanly rewolýusiýanyň bir bölegi boluň", "page-index-values-header": "Internet üýtgäp barýar", "page-index-values-legacy": "Miras", diff --git a/src/intl/tl/common.json b/src/intl/tl/common.json index 7c951beb961..44d621e4ee6 100644 --- a/src/intl/tl/common.json +++ b/src/intl/tl/common.json @@ -320,6 +320,8 @@ "nav-staking-solo-description": "Magpatakbo ng home hardware at personal na magdagdag sa seguridad at desentralisasyon ng network ng Ethereum", "nav-staking-solo-label": "Pag-stake nang mag-isa", "nav-start-building-description": "Kapaki-pakinabang na impormasyon para sa mga baguhan", + "nav-start-with-crypto-title": "Simulan dito", + "nav-start-with-crypto-description": "Ang iyong unang mga hakbang sa paggamit ng Ethereum", "nav-translation-program-description": "Isang sama-samang pagsisikap upang isalin ang ethereum.org sa lahat ng wika", "nav-tutorials-description": "Isang piniling listahan ng mga tutorial ng komunidad", "nav-use-cases-description": "Tumuklas ng iba't ibang ideya para sa paggamit ng Ethereum", diff --git a/src/intl/tl/page-index.json b/src/intl/tl/page-index.json index d995fb77113..5d80948d055 100644 --- a/src/intl/tl/page-index.json +++ b/src/intl/tl/page-index.json @@ -81,6 +81,7 @@ "page-index-posts-header": "Mga kamakailang post", "page-index-posts-subtitle": "Ang pinakabagong mga post na blog at update mula sa komunidad", "page-index-title": "Welcome sa Ethereum", + "page-index-use-cases-tag": "Mga kaso ng paggamit", "page-index-values-description": "Maging bahagi ng digital na rebolusyon", "page-index-values-header": "Nagbabago ang internet", "page-index-values-legacy": "Pamana", diff --git a/src/intl/tr/common.json b/src/intl/tr/common.json index 58325ec9db4..cf357df807d 100644 --- a/src/intl/tr/common.json +++ b/src/intl/tr/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Ev donanımını çalıştırın ve Ethereum ağının güvenliğine ve merkezsizleştirilmesine kişisel olarak katkıda bulunun", "nav-staking-solo-label": "Tekli staking", "nav-start-building-description": "Yeni başlayanlar için faydalı bilgiler", + "nav-start-with-crypto-title": "Buradan başlayın", + "nav-start-with-crypto-description": "Ethereum kullanmaya ilk adımlarınız", "nav-translation-program-description": "Ethereum.org'u tüm dillere çevirmeyi amaçlayan ortak bir çalışma", "nav-tutorials-description": "Topluluk eğitimleri için özel olarak hazırlanmış liste", "nav-use-cases-description": "Ethereum kullanımına uygun farklı fikirleri keşfedin", diff --git a/src/intl/tr/page-contributing-translation-program-acknowledgements.json b/src/intl/tr/page-contributing-translation-program-acknowledgements.json index 6c14f471094..0df444d9e29 100644 --- a/src/intl/tr/page-contributing-translation-program-acknowledgements.json +++ b/src/intl/tr/page-contributing-translation-program-acknowledgements.json @@ -30,7 +30,7 @@ "page-contributing-translation-program-acknowledgements-total-words": "Toplam Kelime", "page-contributing-translation-program-acknowledgements-oats-title": "OAT'ler", "page-contributing-translation-program-acknowledgements-1": "Çeviri Programı'na katkıda bulunan kişiler, ethereum.org Çeviri Programı'na katıldıklarını kanıtlayan ve eşsiz jetonlar olan farklı OAT'ler (zincir üstünde başarı jetonu) almaya hak kazanır.", - "page-contributing-translation-program-acknowledgements-2": "Faaliyetlerine göre çevirmenler için bir dizi farklı OAT'miz bulunuyor", + "page-contributing-translation-program-acknowledgements-2": "Faaliyetlerine göre çevirmenler için bir dizi farklı OAT'miz bulunuyor.", "page-contributing-translation-program-acknowledgements-3": "Crowdin'deki çeviri çalışmasına katkıda bulunduysanız, sizi bekleyen bir OAT bulunuyor!", "page-contributing-translation-program-acknowledgements-how-to-claim-title": "Nasıl talep edilir?", "page-contributing-translation-program-acknowledgements-how-to-claim-1": "Katılın:", diff --git a/src/intl/tr/page-index.json b/src/intl/tr/page-index.json index 024492d97fc..36bd88a32c5 100644 --- a/src/intl/tr/page-index.json +++ b/src/intl/tr/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Son gönderiler", "page-index-posts-subtitle": "Topluluktan en son blog yazıları ve güncellemeler", "page-index-title": "Ethereum'a hoş geldiniz", + "page-index-use-cases-tag": "Kullanım alanları", "page-index-values-description": "Dijital devrimin bir parçası olun", "page-index-values-header": "İnternet değişiyor", "page-index-values-legacy": "Geleneksel", diff --git a/src/intl/tr/page-learn.json b/src/intl/tr/page-learn.json index f0247443870..8936ae17596 100644 --- a/src/intl/tr/page-learn.json +++ b/src/intl/tr/page-learn.json @@ -121,4 +121,4 @@ "unchained-description": "Merkeziyetsiz interneti inşa eden insanlara, geleceğimizin temelini oluşturabilecek bu teknolojinin ayrıntılarına ve düzenleme, güvenlik ve gizlilik gibi kriptodaki en zorlu konulardan bazılarını derinlemesine inceler", "the-daily-gwei-title": "The Daily Gwei", "the-daily-gwei-description": "Ethereum haber özetleri, güncellemeleri ve analizleri" -} +} \ No newline at end of file diff --git a/src/intl/tr/page-upgrades-index.json b/src/intl/tr/page-upgrades-index.json index c5d47f1bad7..2b5806fc1f6 100644 --- a/src/intl/tr/page-upgrades-index.json +++ b/src/intl/tr/page-upgrades-index.json @@ -17,7 +17,7 @@ "page-upgrade-article-author-consensys": "ConsenSys", "page-upgrade-article-author-delphi-digital": "Delphi Digital", "page-upgrade-article-author-eip-4844": "Vitalik Buterin, Dankrad Feist, Diederik Loerakker, George Kadianakis, Matt Garnett, Mofi Taiwo", - "page-upgrade-article-author-ethereum-foundation": "Ethereum'un Geleceği", + "page-upgrade-article-author-ethereum-foundation": "Ethereum Foundation", "page-upgrade-article-author-vitalik-buterin": "Vitalik Buterin", "page-upgrade-article-author-ethos-dev": "Ethos.dev", "page-upgrade-article-title-two-point-oh": "Yeni Versiyon: İşaret Zinciri", diff --git a/src/intl/tr/page-wallets-find-wallet.json b/src/intl/tr/page-wallets-find-wallet.json index 634a10b3fc8..36831558f86 100644 --- a/src/intl/tr/page-wallets-find-wallet.json +++ b/src/intl/tr/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "İlk defa işlem yapacak olan kullanıcı, başlangıç seviyesinde cüzdan arıyor.", "page-find-wallet-nfts-title": "NFT'ler", "page-find-wallet-nfts-desc": "Değiştirilemez jeton desteğine odaklanan cüzdanlar.", - "page-find-wallet-hodler-title": "Uzun süreli", + "page-find-wallet-hodler-title": "Donanım", "page-find-wallet-hodler-desc": "Donanım cüzdanlarıyla pasif jeton tutma.", "page-find-wallet-finance-title": "Finans", "page-find-wallet-finance-desc": "DeFi uygulamalarının sık kullanımına odaklanan cüzdanlar.", diff --git a/src/intl/tr/template-usecase.json b/src/intl/tr/template-usecase.json index d7a43d5bfed..57fd0421f9b 100644 --- a/src/intl/tr/template-usecase.json +++ b/src/intl/tr/template-usecase.json @@ -4,6 +4,7 @@ "template-usecase-dropdown-nft": "Değiştirilemez token'lar (NFT'ler)", "template-usecase-dropdown-dao": "Merkeziyetsiz otonom organizasyonlar (DAO'lar)", "template-usecase-dropdown-payments": "Ethereum Ödemeleri", + "template-usecase-dropdown-prediction-markets": "Tahmin Piyasaları", "template-usecase-dropdown-social-networks": "Merkeziyetsiz sosyal ağlar", "template-usecase-dropdown-identity": "Merkeziyetsiz kimlik", "template-usecase-dropdown-desci": "Merkeziyetsiz bilim (DeSci)", @@ -12,4 +13,4 @@ "template-usecase-banner": "Ethereum'un kullanımı sürekli gelişir ve evrilir. Konuyu daha açık veya güncel hâle getireceğini düşündüğünüz tüm bilgileri ekleyin.", "template-usecase-edit-link": "Sayfayı düzenle", "template-usecase-dropdown-aria": "Kullanım alanları açılır menüsü" -} \ No newline at end of file +} diff --git a/src/intl/tw/common.json b/src/intl/tw/common.json index 6a47d71c3cf..b3f3a5dc57c 100644 --- a/src/intl/tw/common.json +++ b/src/intl/tw/common.json @@ -320,6 +320,8 @@ "nav-staking-solo-description": "Fa fie nneɛma yɛ dwuma na w’ankasa fa ka ahobammɔ ne nea wɔdi ahyɛ amansa nsa a ɛwɔ Ethereum ahoma torofo no ho", "nav-staking-solo-label": "Ɔbaakofo si awowa", "nav-start-building-description": "Nsɛm a mfaso wɔ so ma wɔn a wɔaba foforo", + "nav-start-with-crypto-title": "Fi ha hyɛ ase", + "nav-start-with-crypto-description": "Wo nan a edi kan wɔ Ethereum so", "nav-translation-program-description": "Mmɔdenbɔ a wɔbom yɛ sɛ wɔbɛkyerɛ ethereum.org ase akɔ kasa ahoro nyinaa mu", "nav-tutorials-description": "Nhyehyɛe a wɔahyehyɛ a ɛfa mpɔtam nkyerɛkyerɛ ho", "nav-use-cases-description": "Hwehwɛ adwene ahorow a ɛfa Ethereum dwumadie ho", diff --git a/src/intl/tw/page-index.json b/src/intl/tw/page-index.json index 557a820c4e9..f4553d77b7d 100644 --- a/src/intl/tw/page-index.json +++ b/src/intl/tw/page-index.json @@ -81,6 +81,7 @@ "page-index-posts-header": "Nea y'aposti sisiaa", "page-index-posts-subtitle": "Blog nsɛm a aba foforo ne nsɛm foforo a efi mpɔtam hɔ", "page-index-title": "Yɛma wo akwaaba ba Ethereum so", + "page-index-use-cases-tag": "Dwumadie ahorow", "page-index-values-description": "Bɛka dijitaal nsakrae no fã no ho", "page-index-values-header": "Intanet no esesa", "page-index-values-legacy": "Agyapade", diff --git a/src/intl/uk/common.json b/src/intl/uk/common.json index efe24a33ef2..e4052aaf9ab 100644 --- a/src/intl/uk/common.json +++ b/src/intl/uk/common.json @@ -331,6 +331,8 @@ "nav-staking-solo-description": "Запустіть домашнє обладнання та особисто додайте безпеку й децентралізацію мережі Ethereum.", "nav-staking-solo-label": "Одиночний стейкінг", "nav-start-building-description": "Корисна інформація для новачків", + "nav-start-with-crypto-title": "Почніть тут", + "nav-start-with-crypto-description": "Ваші перші кроки з Ethereum", "nav-translation-program-description": "Спільна робота над перекладом сайту ethereum.org на всі мови світу", "nav-tutorials-description": "Спеціальний список посібників спільноти", "nav-use-cases-description": "Відкрийте для себе різні ідеї щодо використання Ethereum", diff --git a/src/intl/uk/page-index.json b/src/intl/uk/page-index.json index 9377120349e..a69edc326c9 100644 --- a/src/intl/uk/page-index.json +++ b/src/intl/uk/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Останні публікації", "page-index-posts-subtitle": "Найновіші публікації в блозі та оновлення від спільноти", "page-index-title": "Раді вітати в Ethereum", + "page-index-use-cases-tag": "Способи застосування", "page-index-values-description": "Станьте частиною цифрової революції", "page-index-values-header": "Інтернет змінюється", "page-index-values-legacy": "Спадок", diff --git a/src/intl/uk/page-wallets-find-wallet.json b/src/intl/uk/page-wallets-find-wallet.json index 7ff42d79f24..5d105fbaada 100644 --- a/src/intl/uk/page-wallets-find-wallet.json +++ b/src/intl/uk/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "Перший користувач шукає гаманець для початківців.", "page-find-wallet-nfts-title": "NFT", "page-find-wallet-nfts-desc": "Гаманці, орієнтовані на підтримку NFT.", - "page-find-wallet-hodler-title": "Довгостроковий", + "page-find-wallet-hodler-title": "Апаратне забезпечення", "page-find-wallet-hodler-desc": "Пасивне зберігання токенів за допомогою апаратних гаманців.", "page-find-wallet-finance-title": "Фінанси", "page-find-wallet-finance-desc": "Гаманці, орієнтовані на часте використання DeFi-додатків.", diff --git a/src/intl/ur/common.json b/src/intl/ur/common.json index 00a3df9163d..db073686ec3 100644 --- a/src/intl/ur/common.json +++ b/src/intl/ur/common.json @@ -319,6 +319,8 @@ "nav-staking-solo-description": "گھر کا ہارڈویئر چلائیں اور ذاتی طور پر ایتھریم نیٹ ورک کی حفاظت اور وکندریقرت میں اضافہ کریں", "nav-staking-solo-label": "سولواسٹیکنگ", "nav-start-building-description": "نوآموز افراد کے لیے مفید معلومات", + "nav-start-with-crypto-title": "یہاں سے شروع کریں", + "nav-start-with-crypto-description": "Ethereum کے ساتھ آپ کے پہلے اقدامات", "nav-translation-program-description": "تمام زبانوں میں ethereum.org کا ترجمہ کرنے کی ایک اجتماعی کاوش", "nav-tutorials-description": "کمیونٹی ٹیوٹوریلز کی ایک منتخب شدہ فہرست", "nav-use-cases-description": "ایتھریئم کے استعمال کے مختلف تصورات دریافت کریں", diff --git a/src/intl/ur/page-index.json b/src/intl/ur/page-index.json index 564dafcd3d2..fa00fe9a44e 100644 --- a/src/intl/ur/page-index.json +++ b/src/intl/ur/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "تازہ ترین پوسٹس", "page-index-posts-subtitle": "تازہ ترین بلاگ پوسٹس اور کمیونٹی کی جانب سے اپ ڈیٹس", "page-index-title": "خوش آمدید ایتُھریم", + "page-index-use-cases-tag": "کیسز استعمال کریں", "page-index-values-description": "ڈیجیٹل ریوولیوشن کا حصہ بنیں", "page-index-values-header": "انٹرنیٹ تبدیل ہو رہا ہے", "page-index-values-legacy": "ورثہ", diff --git a/src/intl/uz/common.json b/src/intl/uz/common.json index 3f7b41e6bf2..129d5582186 100644 --- a/src/intl/uz/common.json +++ b/src/intl/uz/common.json @@ -322,6 +322,8 @@ "nav-staking-solo-description": "Uy jihozlarini ishga tushiring va Ethereum tarmogʻining xavfsizligi va markazsizlashuviga shaxsan qoʻshing", "nav-staking-solo-label": "Yakka steyking", "nav-start-building-description": "Yangi qoʻshilganlar uchun foydali maʼlumotlar", + "nav-start-with-crypto-title": "Bu yerdan boshlang", + "nav-start-with-crypto-description": "Ethereum bilan birinchi qadamlariingiz", "nav-translation-program-description": "Ethereum.org saytini barcha tillarga tarjima qilishda hamkorlik", "nav-tutorials-description": "Hamjamiyat qoʻllanmalari tanlangan roʻyxati", "nav-use-cases-description": "Ethereumdan foydalanish uchun turli gʻoyalarni kashf eting", diff --git a/src/intl/uz/page-index.json b/src/intl/uz/page-index.json index cade4d136ec..9bc860482ae 100644 --- a/src/intl/uz/page-index.json +++ b/src/intl/uz/page-index.json @@ -82,6 +82,7 @@ "page-index-posts-header": "Oxirgi postlar", "page-index-posts-subtitle": "Eng oxirgi blog postlari va hamjamiyat yangiliklari", "page-index-title": "Ethereumʼga xush kelibsiz", + "page-index-use-cases-tag": "Foydalanish holatlari", "page-index-values-description": "Raqamli inqilobning bir qismiga aylaning", "page-index-values-header": "Internet oʻzgarmoqda", "page-index-values-legacy": "Eski", diff --git a/src/intl/vi/common.json b/src/intl/vi/common.json index 48755e915cc..8ca97c0f2b3 100644 --- a/src/intl/vi/common.json +++ b/src/intl/vi/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "Việc chạy phần cứng tại nhà và tự mình sẽ gia tăng tính bảo mật và phân quyền của mạng Ethereum", "nav-staking-solo-label": "Staking riêng", "nav-start-building-description": "Thông tin hữu ích cho người mới bắt đầu", + "nav-start-with-crypto-title": "Bắt đầu tại đây", + "nav-start-with-crypto-description": "Những bước đầu tiên của bạn với Ethereum", "nav-translation-program-description": "Một nỗ lực hợp tác để dịch ethereum.org sang tất cả các ngôn ngữ", "nav-tutorials-description": "Danh sách các hướng dẫn cộng đồng được lựa chọn", "nav-use-cases-description": "Khám phá những ý tưởng sử dụng Ethereum đa dạng", diff --git a/src/intl/vi/page-index.json b/src/intl/vi/page-index.json index b30c6b9462e..159c7f3e3d9 100644 --- a/src/intl/vi/page-index.json +++ b/src/intl/vi/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "Bài viết gần đây", "page-index-posts-subtitle": "Các bài viết trên blog mới nhất và cập nhật từ cộng đồng", "page-index-title": "Chào mừng bạn đến với Ethereum", + "page-index-use-cases-tag": "Trường hợp sử dụng", "page-index-values-description": "Hãy là một phần của cuộc cách mạng kỹ thuật số", "page-index-values-header": "Internet đang thay đổi", "page-index-values-legacy": "Di sản", diff --git a/src/intl/yo/common.json b/src/intl/yo/common.json index 4c8a3f77efd..b1fa8272bb8 100644 --- a/src/intl/yo/common.json +++ b/src/intl/yo/common.json @@ -321,6 +321,8 @@ "nav-staking-solo-description": "Mímú ẹ̀rọ ilé ṣiṣẹ́ àti fífúnra ẹni ṣàfikún sí ààbò àti aláìlákoso ti nẹ́tíwọọkì Ethereum", "nav-staking-solo-label": "Ìdókòwò aládaṣe", "nav-start-building-description": "Àlàyé tó wúlò fún àwọn ẹni tuntun", + "nav-start-with-crypto-title": "Bẹrẹ nibi", + "nav-start-with-crypto-description": "Àwọn ìgbésẹ àkọ́kọ́ rẹ pẹ̀lú Ethereum", "nav-translation-program-description": "Ìgbìyànjú ìfọwọ́sowọ́pọ̀ láti túmọ̀ ethereum.org sí gbogbo èdè", "nav-tutorials-description": "Àtòjọ àṣàyàn àwọn ẹ̀kọ́ àwùjọ", "nav-use-cases-description": "Ṣàwárí àwọn ìmọ̀ràn oríṣiríṣi fún lílo Ethereum", diff --git a/src/intl/yo/page-index.json b/src/intl/yo/page-index.json index f70089cb8b7..986c482da8a 100644 --- a/src/intl/yo/page-index.json +++ b/src/intl/yo/page-index.json @@ -81,6 +81,7 @@ "page-index-posts-header": "Àwọn àgbéjáde àìpẹ́", "page-index-posts-subtitle": "Àwọn àgbéjáde bulọọgi tuntun àti àwọn ìmúdójúìwọ̀n láti àwùjọ náà", "page-index-title": "Káàbọ̀ sí Ethereum", + "page-index-use-cases-tag": "Àwọn ìṣẹ̀lẹ̀ lílò", "page-index-values-description": "Jẹ́ ara ìyípadà dígítà", "page-index-values-header": "Íńtánẹ́ẹ̀tì ń yípadà", "page-index-values-legacy": "Ogún", diff --git a/src/intl/zh-tw/common.json b/src/intl/zh-tw/common.json index cab2e11a02b..cb037e63563 100644 --- a/src/intl/zh-tw/common.json +++ b/src/intl/zh-tw/common.json @@ -332,6 +332,8 @@ "nav-staking-solo-description": "執行家用硬體,親自貢獻於以太坊網路的安全和去中心化", "nav-staking-solo-label": "單獨質押", "nav-start-building-description": "新手的實用資訊", + "nav-start-with-crypto-title": "從這裡開始", + "nav-start-with-crypto-description": "使用以太坊的第一步", "nav-translation-program-description": "將 ethereum.org 網站翻譯成所有語言的協同合作", "nav-tutorials-description": "社群使用教學的精選清單", "nav-use-cases-description": "發現使用以太坊的不同想法", diff --git a/src/intl/zh-tw/page-index.json b/src/intl/zh-tw/page-index.json index 9bd6258e931..c767d3d0b91 100644 --- a/src/intl/zh-tw/page-index.json +++ b/src/intl/zh-tw/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "最新發表", "page-index-posts-subtitle": "來自社群的最新部落格文章與更新", "page-index-title": "歡迎來到以太坊", + "page-index-use-cases-tag": "使用案例", "page-index-values-description": "成為數位革命的一員", "page-index-values-header": "網際網路瞬息萬變", "page-index-values-legacy": "舊版", diff --git a/src/intl/zh-tw/page-wallets-find-wallet.json b/src/intl/zh-tw/page-wallets-find-wallet.json index 026b15832fa..641535c6732 100644 --- a/src/intl/zh-tw/page-wallets-find-wallet.json +++ b/src/intl/zh-tw/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "初次使用者尋找適合新手的錢包。", "page-find-wallet-nfts-title": "非同質化代幣", "page-find-wallet-nfts-desc": "專注於支援非同質化代幣的錢包。", - "page-find-wallet-hodler-title": "長期持有", + "page-find-wallet-hodler-title": "硬體", "page-find-wallet-hodler-desc": "使用硬體錢包被動持有代幣。", "page-find-wallet-finance-title": "金融", "page-find-wallet-finance-desc": "專為頻繁使用去中心化金融應用程式的使用者打造的錢包。", diff --git a/src/intl/zh/common.json b/src/intl/zh/common.json index 477f7a42965..4a2695e3aef 100644 --- a/src/intl/zh/common.json +++ b/src/intl/zh/common.json @@ -334,6 +334,8 @@ "nav-staking-solo-description": "运行家用硬件并自行加入以太坊网络的安全和去中心化", "nav-staking-solo-label": "单独质押", "nav-start-building-description": "新手实用信息", + "nav-start-with-crypto-title": "从这里开始", + "nav-start-with-crypto-description": "使用以太坊的第一步", "nav-translation-program-description": "一项将以太坊翻译成所有语言的协作计划", "nav-tutorials-description": "社区教程精选清单", "nav-use-cases-description": "发现和以太坊使用方法相关的各种理念", diff --git a/src/intl/zh/page-dapps.json b/src/intl/zh/page-dapps.json index c68203b8556..a4194bef9b8 100644 --- a/src/intl/zh/page-dapps.json +++ b/src/intl/zh/page-dapps.json @@ -78,7 +78,6 @@ "page-dapps-dapp-description-cryptovoxels": "创建艺术画廊,建立商店,购买土地--一个以太坊虚拟世界。", "page-dapps-dapp-description-cyberconnect": "去中心化社交图谱协议,帮助引发去中心化应用程序网络效应并构建个性化社交体验", "page-dapps-dapp-description-dark-forest": "在一个无限的、程序生成的、密码学指定的宇宙中征服行星。", - "page-dapps-dapp-description-crack-and-stack": "与其他玩家一起进入矿井,堆积以太坊钻石,并尝试带着奖金离开。", "page-dapps-dapp-description-decentraland": "在你可以探索的虚拟世界中收集、交易虚拟土地。", "page-dapps-dapp-description-ens": "用户友好的以太坊地址和去中心化网站的名称。", "page-dapps-dapp-description-foundation": "投资独特版本的数字艺术品,并与其他买家交易作品。", @@ -90,9 +89,8 @@ "page-dapps-dapp-description-graph": "一种用于查询以太坊和星际文件系统等网络的索引协议。", "page-dapps-dapp-description-ipfs": "一种点对点超媒体协议,旨在通过使网络可升级、有弹性、更开放来保存和发展人类的知识。", "page-dapps-dapp-description-radicle": "没有中间商的安全点对点代码协作。", - "page-dapps-dapp-description-kyberswap": "以最佳汇率兑换并获利。", + "page-dapps-dapp-description-kiwinews": "发现有趣的以太坊新闻,文章,以及构建者为其他构建者策划的产品。与开发者、创始人、投资者伙伴们讨论。", "page-dapps-dapp-description-lido": "简便安全的数字资产质押。", - "page-dapps-dapp-description-loopring": "点对点交易平台,为速度而生。", "page-dapps-dapp-description-marble-cards": "创建和交易独特的基于URL的数字卡。", "page-dapps-dapp-description-matcha": "搜索多个交易所,帮你找到最佳价格。", "page-dapps-dapp-description-meeds": "去中心化工作时代的 Web3 社区中心。公平、透明地奖励重要的贡献。", @@ -115,7 +113,6 @@ "page-dapps-dapp-description-krystal": "一个可访问所有你最欢的去中心化金融服务的一站式平台。", "page-dapps-dapp-description-rarible": "创建、出售和购买代币化的收藏品。", "page-dapps-dapp-description-request-finance": "针对发票、工资单和费用的金融工具套装。", - "page-dapps-dapp-description-rubic": "面向用户和去中心化应用程序的跨链技术聚合器。", "page-dapps-dapp-description-sablier": "实时流转资金。", "page-dapps-dapp-description-spatial": "创建自己的自定义头像和 3D 世界", "page-dapps-dapp-description-spruce": "开源堆栈将身份和数据控制权交还给用户。", @@ -128,7 +125,6 @@ "page-dapps-docklink-dapps": "去中心化应用程序简介", "page-dapps-docklink-smart-contracts": "智能合约", "page-dapps-dark-forest-logo-alt": "Dark Forest徽标", - "page-dapps-crack-and-stack-logo-alt": "Crack & Stack 徽标", "page-dapps-decentraland-logo-alt": "Decentraland徽标", "page-dapps-index-coop-logo-alt": "Index Coop 徽标", "page-dapps-nexus-mutual-logo-alt": "Nexus Mutual 徽标", @@ -203,13 +199,11 @@ "page-dapps-how-dapps-work-p3": "一旦去中心化应用程序部署到以太坊网络,你将无法更改他们。去中心化应用程序之所以可以被去中心化就是因为他们被合约中的逻辑所控制,而不是公司或者个人。", "page-dapps-how-dapps-work-title": "去中心化应用程序工作原理", "page-dapps-ipfs-logo-alt": "IPFS 徽标", - "page-dapps-kyberswap-logo-alt": "KyberSwap 徽标", "page-dapps-learn-callout-button": "开始构建", "page-dapps-learn-callout-description": "我们的社区开发者门户拥有文档、工具和框架来帮助你开始构建一个去中心化应用程序。", "page-dapps-learn-callout-image-alt": "一幅用手拼乐高积木版的以太币符号的插图。", "page-dapps-learn-callout-title": "学习创建一个去中心化应用程序", "page-dapps-lido-logo-alt": "Lido 徽标", - "page-dapps-loopring-logo-alt": "Loopring徽标", "page-dapps-magic-behind-dapps-description": "去中心化应用程序可能会让人觉得是普通的应用。但在背后,它们有一些不一样的优秀特性,因为它们继承了所有以太坊的超能力。点击这里了解为什么去中心化应用程序不同于一般应用。", "page-dapps-magic-behind-dapps-link": "为什么我们说以太坊伟大?", "page-dapps-magic-behind-dapps-title": "去中心化应用程序的魔法", @@ -245,7 +239,6 @@ "page-dapps-ready-description": "选择一个去中心化应用程序来尝试", "page-dapps-ready-title": "准备好了吗?", "page-dapps-request-finance-logo-alt": "请求金融图标", - "page-dapps-rubic-logo-alt": "Rubic 徽标", "page-dapps-sablier-logo-alt": "Sablier徽标", "page-dapps-set-up-a-wallet-button": "查找钱包", "page-dapps-set-up-a-wallet-description": "一个钱包地址是你“登录”去中心化应用程序的凭证", @@ -281,10 +274,11 @@ "page-wallets-get-some": "获取一些以太币", "page-dapps-dapp-description-curve": "Curve 是一家专注于稳定币的去中心化交易所", "page-dapps-curve-image-alt": "Curve 徽标", - "page-dapps-dapp-description-dodo": "DODO 是一个链上流动性提供商,它采用的是主动做市商算法 (PMM)", - "page-dapps-dodo-image-alt": "DODO 徽标", "page-dapps-dapp-description-artblocks": "Art Blocks 致力于让精彩的当代生成艺术作品栩栩如生", "page-dapps-artblocks-image-alt": "Art Blocks 徽标", "page-dapps-explore-title": "想要浏览更多应用程序吗?", - "page-dapps-explore": "查看数百个去中心化应用程序" + "page-dapps-explore": "查看数百个去中心化应用程序", + "page-dapps-dapp-description-across": "Across 是一个多链桥,允许用户在不同链之间转移资产。", + "page-dapps-dapp-description-hop": "Hop 是一个多链桥,允许用户在不同链之间转移资产。", + "page-dapps-dapp-description-stargate": "Stargate 是一个多链桥,允许用户在不同链之间转移资产。" } diff --git a/src/intl/zh/page-index.json b/src/intl/zh/page-index.json index 1755afc5a99..15ee202ece3 100644 --- a/src/intl/zh/page-index.json +++ b/src/intl/zh/page-index.json @@ -83,6 +83,7 @@ "page-index-posts-header": "近期博文", "page-index-posts-subtitle": "社区的最新博文和最近更新", "page-index-title": "欢迎来到以太坊", + "page-index-use-cases-tag": "用例", "page-index-values-description": "参与数字革命", "page-index-values-header": "互联网正经历变革", "page-index-values-legacy": "传统模式", diff --git a/src/intl/zh/page-layer-2.json b/src/intl/zh/page-layer-2.json new file mode 100644 index 00000000000..c0a281a037f --- /dev/null +++ b/src/intl/zh/page-layer-2.json @@ -0,0 +1,58 @@ +{ + "page-layer-2-hero-title": "二层网络", + "page-layer-2-hero-header": "以太坊网络", + "page-layer-2-hero-description": "以极低成本使用以太坊。", + "page-layer-2-hero-button-2-content": "了解更多", + "page-layer-2-period": ".", + "page-layer-2-calloutCard-1-title": "0.01 美元手续费", + "page-layer-2-calloutCard-1-description": "您可以进行交易、全球转账,或使用应用程序,无需担心高额费用。", + "page-layer-2-calloutCard-2-title": "几乎即时交易", + "page-layer-2-calloutCard-2-description": "无论是快速支付还是参与去中心化金融 (DeFi),所有交易仅需几秒钟即可完成。", + "page-layer-2-calloutCard-3-title": "以太坊提供支持", + "page-layer-2-calloutCard-3-description": "以太坊这个经过时间验证且去中心化的区块链可以作为其他较新网络的结算层。", + "page-layer-2-meta-title": "以太坊二层网络 (Layer 2) 简介:优势和用途", + "page-layer-2-meta-description": "了解以太坊二层网络", + "page-layer-2-powered-by-ethereum-title": "以太坊提供支持", + "page-layer-2-powered-by-ethereum-description-1": "以太坊已不再是单一网络。", + "page-layer-2-powered-by-ethereum-description-2": "如今有数百个区块链构建于以太坊之上,使以太坊变得更具成本效益、更快速,并适合日常使用。", + "page-layer-2-powered-by-ethereum-description-3": "加入由以太坊支持的众多网络之一,拥抱未来!", + "page-layer-2-man-and-dog-alt": "男人和狗在玩耍", + "page-layer-2-blockchain-transaction-cost": "以太坊区块链上的平均交易费用", + "page-layer-2-networks-transaction-cost": "由以太坊支持的网络上的平均交易费用", + "page-layer-2-network-of-networks-title": "众网之网", + "page-layer-2-network-of-networks-description": "以太坊的强大和安全性为其他网络提供了构建平台。只需一个账户,所有功能即可兼容并无缝连接。", + "page-layer-2-ethereum-logo-alt": "以太坊", + "page-layer-2-ready-to-start-title": "准备好开始了吗?", + "page-layer-2-ready-to-start-description": "查看你可以使用的各种网络。", + "page-layer-2-ready-to-start-button": "探索网络", + "page-layer-2-go": "出发", + "page-layer-2-walking-alt": "走路", + "page-layer-2-why-do-we-need-multiple-networks-1": "为什么我们需要多个以太坊网络?", + "page-layer-2-why-do-we-need-multiple-networks-2": "为什么不是只有一个以太坊网络,而是这么多不同的网络?", + "page-layer-2-faq-title": "常见问题", + "page-layer-2-faq-ExpandableCard-1-title": "如何判断一个网络是否属于以太坊?", + "page-layer-2-faq-ExpandableCard-1-description-1": "有许多不同的方式可以对与以太坊相关的网络进行分类。许多网络声称在扩展以太坊,以提升知名度。然而,一个清晰的判断标准是:该网络是否将其数据存储在以太坊主网中。这种方式极大地提升了用户的安全性,并契合以太坊无需许可的愿景。这类项目通常被称为“卷叠 (Rollup)”。如果数据存储在其他地方,那么该项目就不是以太坊的直接扩展,而是独立网络。了解一些最受欢迎的以太坊网络", + "page-layer-2-faq-ExpandableCard-1-description-2": "一些特定行业(如游戏或非金融应用)可能不需要如此直接的密切关系,在这种情况下,其他技术会更合适。", + "page-layer-2-faq-ExpandableCard-2-title": "所有这些网络都安全吗?", + "page-layer-2-faq-ExpandableCard-2-description-1": "虽然这些网络通常设计有强大的安全功能,但其安全性取决于底层技术、智能合约的安全性以及", + "page-layer-2-faq-ExpandableCard-2-link": "网络成熟度", + "page-layer-2-faq-ExpandableCard-2-description-2": "用户应做好尽职调查,从小额交易开始,并随时了解最新发展,以确保安全使用。", + "page-layer-2-faq-ExpandableCard-3-title": "为什么以太坊不能扩展其自身,而是需要依赖这些网络?", + "page-layer-2-faq-ExpandableCard-3-description": "以太坊无法简单地扩展其主链,因为它需要保持安全和去中心化。如果让主链运行更快,可能会降低其安全性并趋向中心化。以太坊上的网络通过在主链之外处理交易,再提交到主链以确保安全性,从而让以太坊在不损失安全性或去中心化特性的同时处理更多交易。", + "page-layer-2-faq-ExpandableCard-4-title": "为什么没有“官方”以太坊网络?", + "page-layer-2-faq-ExpandableCard-4-description": "正如没有“官方”以太坊客户端一样,也不存在“官方”以太坊二层网络。以太坊是无需许可的 —— 技术上任何人都可以创建二层网络!很多团队都将实现自己的二层网络版本,整个生态系统都将受益于针对不同用例进行优化的多样性设计方法。就像我们有由多个团队开发的多个以太坊客户端以增强网络的多样性,这也将是二层网络未来的开发方式。", + "page-layer-2-callout-1-title": "探索不同的网络", + "page-layer-2-callout-1-description": "了解不同网络之间的差异及其发展进展。", + "page-layer-2-callout-2-title": "想了解更多细节?", + "page-layer-2-callout-2-description": "对这种扩容方法的技术和原因感兴趣?了解有关思维方式和不同技术方法的更多信息。", + "page-layer-2-arbitrum-description": "Arbitrum One 是由 Offchain Labs 开发并由 Arbitrum DAO 治理的通用型乐观卷叠 (Optimistic Rollup)。", + "page-layer-2-base-description": "Base 是基于 OP Stack 构建的乐观卷叠。它为任何地方的任何开发者提供低成本且构建者友好的链上构建方式。", + "page-layer-2-optimism-description": "OP Mainnet 是 EVM 等效的乐观卷叠。它的目标是快速、简单和安全。", + "page-layer-2-blast-description": "Blast 是 EVM 兼容的乐观卷叠,支持原生收益。", + "page-layer-2-zksync2-description": "ZKsync Era 是完全 EVM 兼容的通用零知识卷叠 (ZK Rollup)。", + "page-layer-2-linea-description": "Linea 是由 Consensys zkEVM 支持的零知识卷叠,旨在扩展以太坊网络。", + "page-layer-2-scroll-description": "Scroll 是通过零知识技术和 EVM 兼容性来扩展以太坊能力的零知识卷叠。", + "page-layer-2-starknet-description": "Starknet 是基于 STARK 和 Cairo VM 的通用零知识卷叠。", + "page-layer-2-mode-description": "Mode 是基于 OP 技术栈的乐观卷叠,致力于打造 AIFi 经济。", + "page-layer-2-taiko-description": "Taiko 是去中心化、以太坊等效的 ZK-EVM 卷叠,支持无缝跨链通信。" +} diff --git a/src/intl/zh/page-learn.json b/src/intl/zh/page-learn.json index 4840459993f..915cb1552fa 100644 --- a/src/intl/zh/page-learn.json +++ b/src/intl/zh/page-learn.json @@ -121,4 +121,4 @@ "unchained-description": "深入了解正在建设去中心化网络的人,支撑我们未来技术的细节,还有一些加密货币最棘手的话题,比如监管、安全和隐私", "the-daily-gwei-title": "The Daily Gwei", "the-daily-gwei-description": "以太坊新闻回顾、更新和分析" -} +} \ No newline at end of file diff --git a/src/intl/zh/page-wallets-find-wallet.json b/src/intl/zh/page-wallets-find-wallet.json index 3b60a288ae1..69ee8fa4de3 100644 --- a/src/intl/zh/page-wallets-find-wallet.json +++ b/src/intl/zh/page-wallets-find-wallet.json @@ -65,7 +65,7 @@ "page-find-wallet-new-to-crypto-desc": "寻找入门级钱包的初次用户。", "page-find-wallet-nfts-title": "非同质化代币", "page-find-wallet-nfts-desc": "注重非同质化代币支持的钱包。", - "page-find-wallet-hodler-title": "长期持有", + "page-find-wallet-hodler-title": "硬件", "page-find-wallet-hodler-desc": "通过硬件钱包被动持有代币。", "page-find-wallet-finance-title": "金融", "page-find-wallet-finance-desc": "注重频繁使用去中心化金融应用程序的钱包。", diff --git a/src/intl/zh/template-usecase.json b/src/intl/zh/template-usecase.json index 0574ad3168a..5bf108904a4 100644 --- a/src/intl/zh/template-usecase.json +++ b/src/intl/zh/template-usecase.json @@ -4,6 +4,7 @@ "template-usecase-dropdown-nft": "非同质化代币 (NFT)", "template-usecase-dropdown-dao": "去中心化自治组织 (DAO)", "template-usecase-dropdown-payments": "以太坊支付", + "template-usecase-dropdown-prediction-markets": "预测市场", "template-usecase-dropdown-social-networks": "去中心化社交网络", "template-usecase-dropdown-identity": "去中心化身份", "template-usecase-dropdown-desci": "去中心化科学 (DeSci)", @@ -12,4 +13,4 @@ "template-usecase-banner": "以太坊的用法不断开发和演进。添加任何你认为会使事情变得更清晰或更及时的信息。", "template-usecase-edit-link": "编辑页面", "template-usecase-dropdown-aria": "使用案例下拉菜单" -} \ No newline at end of file +} diff --git a/src/lib/api/stablecoinsData.ts b/src/lib/api/stablecoinsData.ts index 2b489ec301f..a3c94d5634c 100644 --- a/src/lib/api/stablecoinsData.ts +++ b/src/lib/api/stablecoinsData.ts @@ -1,26 +1,5 @@ import { COINGECKO_API_BASE_URL, COINGECKO_API_URL_PARAMS } from "../constants" -export async function fetchEthereumEcosystemData() { - const url = `${COINGECKO_API_BASE_URL}ethereum-ecosystem${COINGECKO_API_URL_PARAMS}` - - try { - const res = await fetch(url) - - if (!res.ok) { - console.log(res.status, res.statusText) - throw new Error("Failed to fetch Ethereum ecosystem data") - } - - return await res.json() - } catch (error) { - // In production mode, throw an error to stop the build in case this fetch fails - console.error(error) - throw new Error( - "Something went wrong with requesting the Ethereum ecosystem data." - ) - } -} - export async function fetchEthereumStablecoinsData() { const url = `${COINGECKO_API_BASE_URL}stablecoins${COINGECKO_API_URL_PARAMS}` diff --git a/src/lib/constants.ts b/src/lib/constants.ts index ad94090f080..4e54ab33b2d 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -42,7 +42,7 @@ export const GITHUB_URL = `https://github.com/` export const COINGECKO_API_BASE_URL = "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&category=" export const COINGECKO_API_URL_PARAMS = - "&order=market_cap_desc&per_page=100&page=1&sparkline=false" + "&order=market_cap_desc&per_page=250&page=1&sparkline=false" export const BASE_TIME_UNIT = 3600 // 1 hour export const COLOR_MODE_STORAGE_KEY = "theme" @@ -175,6 +175,7 @@ export const RSS_DISPLAY_COUNT = 6 export const VITALIK_FEED = "https://vitalik.eth.limo/feed.xml" export const SOLIDITY_FEED = "https://soliditylang.org/feed.xml" +export const ATTESTANT_BLOG = "https://www.attestant.io/posts/" export const COMMUNITY_BLOGS: CommunityBlog[] = [ { @@ -197,10 +198,7 @@ export const COMMUNITY_BLOGS: CommunityBlog[] = [ name: "0xPARC", href: "https://0xparc.org/blog", }, - { - href: "https://www.attestant.io/posts/", - feed: "https://www.attestant.io/posts/", - }, + { href: ATTESTANT_BLOG, feed: ATTESTANT_BLOG }, { name: "Devcon", href: "https://devcon.org/en/blogs/" }, { href: "https://soliditylang.org/blog/", diff --git a/src/lib/types.ts b/src/lib/types.ts index 7f95bd9a8e8..4cd57b48f56 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -1028,3 +1028,30 @@ export interface ITutorial { lang: string isExternal: boolean } + +type ValuesItem = { + label: string + content: string[] +} + +export type ValuesPairing = { + legacy: ValuesItem + ethereum: ValuesItem +} + +export type StablecoinType = "FIAT" | "CRYPTO" | "ASSET" | "ALGORITHMIC" + +export type PageParams = { + locale: string +} + +export type SlugPageParams = PageParams & { + slug: string[] +} + +export type TimeLeftLabel = { singular: string; plural: string } + +export type TimeLeftLabels = Record< + "days" | "hours" | "minutes" | "seconds", + TimeLeftLabel +> diff --git a/src/lib/utils/direction.ts b/src/lib/utils/direction.ts new file mode 100644 index 00000000000..347437562bf --- /dev/null +++ b/src/lib/utils/direction.ts @@ -0,0 +1,27 @@ +import type { Lang } from "@/lib/types" + +import { isLangRightToLeft } from "@/lib/utils/translations" + +type DirectionData = { + /** @deprecated */ + flipForRtl: "scaleX(-1)" | undefined // transform (deprecated) + twFlipForRtl: "-scale-x-100" | "" // className + isRtl: boolean + direction: "ltr" | "rtl" +} + +/** + * Determines the direction and transformation for right-to-left (RTL) languages. + * @param locale The language locale + * @returns An object containing the Tailwind className, RTL flag, and direction. + * @example const { twFlipForRtl } = getDirectionData('ar'); + */ +export const getDirection = (locale: Lang): DirectionData => { + const isRtl = isLangRightToLeft(locale) + return { + flipForRtl: isRtl ? "scaleX(-1)" : undefined, // transform (deprecated) + twFlipForRtl: isRtl ? "-scale-x-100" : "", // className (preferred) + isRtl, + direction: isRtl ? "rtl" : "ltr", + } +} diff --git a/src/lib/utils/md.ts b/src/lib/utils/md.ts index 24c9414c540..4f96f35addf 100644 --- a/src/lib/utils/md.ts +++ b/src/lib/utils/md.ts @@ -5,7 +5,7 @@ import { extname, join } from "path" import matter from "gray-matter" import readingTime from "reading-time" -import type { Frontmatter, ITutorial, Skill } from "@/lib/types" +import type { Frontmatter, ITutorial, Skill, SlugPageParams } from "@/lib/types" import { dateToString } from "@/lib/utils/date" @@ -21,42 +21,54 @@ export const getPostSlugs = async (dir: string, filterRegex?: RegExp) => { const contentRoot = getContentRoot() const _dir = join(contentRoot, dir) - // Get an array of all files and directories in the passed directory using `fs.readdirSync` - const dirContents = await fsp.readdir(_dir) + try { + // Get an array of all files and directories in the passed directory using `fs.readdirSync` + const dirContents = await fsp.readdir(_dir) - const files: string[] = [] + const files: string[] = [] - // Create the full path of the file/directory by concatenating the passed directory and file/directory name - for (const fileOrDir of dirContents) { - // file = "about", "bridges".... "translations" (<-- skip that one)... - const path = join(_dir, fileOrDir) + // Create the full path of the file/directory by concatenating the passed directory and file/directory name + for (const fileOrDir of dirContents) { + // file = "about", "bridges".... "translations" (<-- skip that one)... + const path = join(_dir, fileOrDir) - const stats = await fsp.stat(path) - if (stats.isDirectory()) { - // Skip nested translations directory - if (fileOrDir === "translations") continue - // If it is a directory, recursively call the `getPostSlugs` function with the - // directory path and the files array - const nestedDir = join(dir, fileOrDir) + const stats = await fsp.stat(path) + if (stats.isDirectory()) { + // Skip nested translations directory + if (fileOrDir === "translations") continue + // If it is a directory, recursively call the `getPostSlugs` function with the + // directory path and the files array + const nestedDir = join(dir, fileOrDir) - const nestedFiles = await getPostSlugs(nestedDir, filterRegex) - files.push(...nestedFiles) - continue - } + const nestedFiles = await getPostSlugs(nestedDir, filterRegex) + files.push(...nestedFiles) + continue + } - if (filterRegex?.test(path)) continue + if (filterRegex?.test(path)) continue - // If the current file is not a markdown file, skip it - if (extname(path) !== ".md") continue + // If the current file is not a markdown file, skip it + if (extname(path) !== ".md") continue - const sanitizedPath = toPosixPath( - path.replace(contentRoot, "").replace("/index.md", "") - ) + const sanitizedPath = toPosixPath( + path.replace(contentRoot, "").replace("/index.md", "") + ) - files.push(sanitizedPath) - } + files.push(sanitizedPath) + } - return files + return files + } catch (error) { + // If directory doesn't exist (e.g., in Netlify serverless environment), return empty array + if (error instanceof Error && "code" in error && error.code === "ENOENT") { + console.warn( + `Content directory ${_dir} not found, returning empty slug list` + ) + return [] + } + // Re-throw other errors + throw error + } } export const getTutorialsData = (locale: string): ITutorial[] => { @@ -100,3 +112,12 @@ export const getTutorialsData = (locale: string): ITutorial[] => { return tutorialData } + +export const checkPathValidity = ( + validPaths: SlugPageParams[], + { locale, slug: slugArray }: SlugPageParams +): boolean => + validPaths.some( + (path) => + path.locale === locale && path.slug.join("/") === slugArray.join("/") + ) diff --git a/src/lib/utils/rss.ts b/src/lib/utils/rss.ts index 692fc5640a0..6b75ef28219 100644 --- a/src/lib/utils/rss.ts +++ b/src/lib/utils/rss.ts @@ -1,5 +1,8 @@ import { SOLIDITY_FEED, VITALIK_FEED } from "../constants" -import type { RSSItem } from "../types" +import type { Lang, RSSItem } from "../types" + +import { isValidDate } from "./date" +import { getLocaleTimestamp } from "./time" export const sortByPubDate = (items: RSSItem[]) => items.sort((a, b) => { @@ -12,32 +15,37 @@ export const sortByPubDate = (items: RSSItem[]) => return dateB.getTime() - dateA.getTime() }) -export const postProcess = (rssItems: RSSItem[]) => +export const postProcess = (rssItems: RSSItem[], locale: Lang) => rssItems.map((item) => { + const pubDate = isValidDate(item.pubDate) + ? getLocaleTimestamp(locale, item.pubDate) + : "" + const formattedItem = { ...item, pubDate } + switch (item.sourceFeedUrl) { case VITALIK_FEED: return { - ...item, + ...formattedItem, imgSrc: "/images/vitalik-blog-banner.svg", link: item.link.replace(".ca", ".eth.limo"), sourceUrl: item.sourceUrl.replace(".ca", ".eth.limo"), } case SOLIDITY_FEED: return { - ...item, + ...formattedItem, imgSrc: "/images/solidity-banner.png", } default: - return item + return formattedItem } }) -export const polishRSSList = (...items: RSSItem[][]) => { +export const polishRSSList = (items: RSSItem[][], locale: Lang) => { const latestOfEach = items .filter(({ length }) => length) .map((item) => item[0]) // Take only latest post (first in array) from each const latestItems = latestOfEach.flat() - const readyForSorting = postProcess(latestItems) + const readyForSorting = postProcess(latestItems, locale) return sortByPubDate(readyForSorting) } diff --git a/src/lib/utils/translations.ts b/src/lib/utils/translations.ts index 08938d884b7..0786ad15973 100644 --- a/src/lib/utils/translations.ts +++ b/src/lib/utils/translations.ts @@ -67,6 +67,7 @@ const getRequiredNamespacesForPath = (relativePath: string) => { if (path === "/") { primaryNamespace = "page-index" + requiredNamespaces = [...requiredNamespaces, "page-10-year-anniversary"] } if (path === "/contributing/translation-program/acknowledgements/") { diff --git a/src/lib/utils/wallets.ts b/src/lib/utils/wallets.ts index 18859ee39bc..69faac9c849 100644 --- a/src/lib/utils/wallets.ts +++ b/src/lib/utils/wallets.ts @@ -207,7 +207,7 @@ export const getFilteredWalletsCount = ( ) => { return wallets.filter((wallet) => { const activeFilters = Object.entries(filters).filter( - ([_, value]) => value === true + ([, value]) => value === true ) return activeFilters.every(([feature]) => wallet[feature] === true) diff --git a/src/scripts/markdownChecker.ts b/src/scripts/markdownChecker.ts index f1e0132c18e..2c64a4f739d 100644 --- a/src/scripts/markdownChecker.ts +++ b/src/scripts/markdownChecker.ts @@ -68,8 +68,7 @@ const SPELLING_MISTAKES: Array<string> = [ ] // ! Current usage of this const is commented out -// eslint-disable-next-line unused-imports/no-unused-vars -const CASE_SENSITIVE_SPELLING_MISTAKES = ["Thereum", "Metamask", "Github"] +// const CASE_SENSITIVE_SPELLING_MISTAKES = ["Thereum", "Metamask", "Github"] // Ideas: // Regex for explicit lang path (e.g. /en/) && for glossary links (trailing slash breaks links e.g. /glossary/#pos/ doesn't work) // We should have case sensitive spelling mistakes && check they are not in links. diff --git a/src/styles/colors.css b/src/styles/colors.css index 69d044fc0f2..ef2e486160c 100644 --- a/src/styles/colors.css +++ b/src/styles/colors.css @@ -100,5 +100,8 @@ --orange-100: 30, 100%, 94%; /* #FFF0DB */ --orange-800: 10, 76%, 28%; /* #7D2711 */ --orange-900: 20, 33%, 15%; /* #3A291D */ + + --amber-500: 38, 92%, 50%; /* #f59e0b */ + --cyan-500: 188, 86%, 53%; /* #06b6d4 */ } } diff --git a/src/styles/global.css b/src/styles/global.css index 57843e06d39..18e4144f861 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -107,6 +107,16 @@ @apply font-bold; } + h1, + h2, + h3, + h4, + h5, + h6, + section { + @apply scroll-mt-20; + } + h1 { @apply text-4xl lg:text-5xl; }