diff --git a/.all-contributorsrc b/.all-contributorsrc index 1f7c7ee9a70..0aac210d04a 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -13296,7 +13296,8 @@ "avatar_url": "https://avatars.githubusercontent.com/u/185210158?v=4", "profile": "https://zksec.io", "contributions": [ - "maintenance" + "maintenance", + "bug" ] }, { @@ -13388,6 +13389,96 @@ "contributions": [ "tool" ] + }, + { + "login": "hackertron", + "name": "jayssj11", + "avatar_url": "https://avatars.githubusercontent.com/u/7667514?v=4", + "profile": "https://hackertron.github.io/", + "contributions": [ + "tool" + ] + }, + { + "login": "CodeLeom", + "name": "Ayodele Aransiola", + "avatar_url": "https://avatars.githubusercontent.com/u/36636824?v=4", + "profile": "http://leomofthings.com", + "contributions": [ + "content" + ] + }, + { + "login": "indmind", + "name": "indmind", + "avatar_url": "https://avatars.githubusercontent.com/u/197907501?v=4", + "profile": "https://github.com/indmind", + "contributions": [ + "maintenance" + ] + }, + { + "login": "kvbik", + "name": "Jakub Vysoký", + "avatar_url": "https://avatars.githubusercontent.com/u/45091?v=4", + "profile": "https://twitter.com/kvbik", + "contributions": [ + "tool" + ] + }, + { + "login": "0xsenty", + "name": "0xsenty", + "avatar_url": "https://avatars.githubusercontent.com/u/201055698?v=4", + "profile": "https://github.com/0xsenty", + "contributions": [ + "bug" + ] + }, + { + "login": "dRPCMarketing", + "name": "dRPC Marketing", + "avatar_url": "https://avatars.githubusercontent.com/u/156195424?v=4", + "profile": "https://drpc.org", + "contributions": [ + "maintenance" + ] + }, + { + "login": "caveman-eth", + "name": "caveman.eth", + "avatar_url": "https://avatars.githubusercontent.com/u/24273561?v=4", + "profile": "http://efp.app/caveman.eth", + "contributions": [ + "maintenance" + ] + }, + { + "login": "pete-vielhaber", + "name": "Pete", + "avatar_url": "https://avatars.githubusercontent.com/u/178667149?v=4", + "profile": "https://github.com/pete-vielhaber", + "contributions": [ + "maintenance" + ] + }, + { + "login": "unhappyben", + "name": "Ben", + "avatar_url": "https://avatars.githubusercontent.com/u/66370595?v=4", + "profile": "https://github.com/unhappyben", + "contributions": [ + "tool" + ] + }, + { + "login": "sethforprivacy", + "name": "Seth For Privacy", + "avatar_url": "https://avatars.githubusercontent.com/u/40500387?v=4", + "profile": "http://sethforprivacy.com", + "contributions": [ + "tool" + ] } ], "contributorsPerLine": 7, diff --git a/CLAUDE.md b/CLAUDE.md index 7a568bf26a0..4e3402901a9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -19,7 +19,7 @@ This is the official Ethereum.org website - a Next.js application that serves as - **next-mdx-remote 5.0+** - MDX content processing - **Framer Motion 10.13+** - Animations and transitions - **Radix UI** - Accessible component primitives -- **ShadCN/UI** - Component library built on Radix UI +- **shadcn/ui** - Component library built on Radix UI - **Recharts** - Data visualization - **Viem/Wagmi** - Ethereum blockchain integration diff --git a/README.md b/README.md index 40107ef4491..ea4794247d4 100644 --- a/README.md +++ b/README.md @@ -2061,7 +2061,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Ryan Goree
Ryan Goree

🚧 💻 Siqi Yan
Siqi Yan

🐛 wizard
wizard

🚧 - Barajeel
Barajeel

🚧 + Barajeel
Barajeel

🚧 🐛 Daniel Soohan Park
Daniel Soohan Park

🐛 @@ -2076,6 +2076,18 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Fredrik
Fredrik

🚧 Will Patti
Will Patti

🔧 + jayssj11
jayssj11

🔧 + Ayodele Aransiola
Ayodele Aransiola

🖋 + indmind
indmind

🚧 + Jakub Vysoký
Jakub Vysoký

🔧 + 0xsenty
0xsenty

🐛 + + + dRPC Marketing
dRPC Marketing

🚧 + caveman.eth
caveman.eth

🚧 + Pete
Pete

🚧 + Ben
Ben

🔧 + Seth For Privacy
Seth For Privacy

🔧 diff --git a/app/[locale]/community/page.tsx b/app/[locale]/community/page.tsx index ec140104039..803e845e139 100644 --- a/app/[locale]/community/page.tsx +++ b/app/[locale]/community/page.tsx @@ -16,12 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import CommunityPage from "./_components/community" import CommunityJsonLD from "./page-jsonld" -export default async function Page({ - params, -}: { - params: Promise<{ locale: Lang }> -}) { - const { locale } = await params +export default async function Page({ params }: { params: { locale: Lang } }) { + const { locale } = params setRequestLocale(locale) @@ -50,9 +46,9 @@ export default async function Page({ export async function generateMetadata({ params, }: { - params: Promise<{ locale: string }> + params: { locale: string } }) { - const { locale } = await params + const { locale } = params const t = await getTranslations({ locale, namespace: "page-community" }) diff --git a/app/[locale]/ethereum-vs-bitcoin/_components/DifferencesTable.tsx b/app/[locale]/ethereum-vs-bitcoin/_components/DifferencesTable.tsx new file mode 100644 index 00000000000..b3d9cac51d4 --- /dev/null +++ b/app/[locale]/ethereum-vs-bitcoin/_components/DifferencesTable.tsx @@ -0,0 +1,134 @@ +import { useTranslations } from "next-intl" + +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table" + +const DifferencesTable = () => { + const t = useTranslations("page-ethereum-vs-bitcoin") + return ( + + + + + {t("page-ethereum-vs-bitcoin-differences-table-area")} + + + {t("page-ethereum-vs-bitcoin-differences-table-bitcoin")} + + + {t("page-ethereum-vs-bitcoin-differences-table-ethereum")} + + + + + + + {t("page-ethereum-vs-bitcoin-differences-table-row-1-1")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-1-2")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-1-3")} + + + + + {t("page-ethereum-vs-bitcoin-differences-table-row-2-1")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-2-2")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-2-3")} + + + + + {t("page-ethereum-vs-bitcoin-differences-table-row-3-1")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-3-2")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-3-3")} + + + + + {t("page-ethereum-vs-bitcoin-differences-table-row-4-1")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-4-2")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-4-3")} + + + + + {t("page-ethereum-vs-bitcoin-differences-table-row-5-1")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-5-2")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-5-3")} + + + + + {t("page-ethereum-vs-bitcoin-differences-table-row-6-1")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-6-2")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-6-3")} + + + + + {t("page-ethereum-vs-bitcoin-differences-table-row-7-1")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-7-2")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-7-3")} + + + + + {t("page-ethereum-vs-bitcoin-differences-table-row-8-1")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-8-2")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-8-3")} + + + + + {t("page-ethereum-vs-bitcoin-differences-table-row-9-1")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-9-2")} + + + {t("page-ethereum-vs-bitcoin-differences-table-row-9-3")} + + + +
+ ) +} + +export default DifferencesTable diff --git a/app/[locale]/ethereum-vs-bitcoin/page-jsonld.tsx b/app/[locale]/ethereum-vs-bitcoin/page-jsonld.tsx new file mode 100644 index 00000000000..5544ac1cf3a --- /dev/null +++ b/app/[locale]/ethereum-vs-bitcoin/page-jsonld.tsx @@ -0,0 +1,128 @@ +import { getTranslations } from "next-intl/server" + +import { FileContributor, Lang } from "@/lib/types" + +import PageJsonLD from "@/components/PageJsonLD" + +import { normalizeUrlForJsonLd } from "@/lib/utils/url" + +export default async function EthereumVsBitcoinPageJsonLD({ + locale, + lastEditLocaleTimestamp, + contributors, +}: { + locale: Lang | undefined + lastEditLocaleTimestamp: string + contributors: FileContributor[] +}) { + const t = await getTranslations({ + namespace: "page-ethereum-vs-bitcoin", + }) + + const url = normalizeUrlForJsonLd(locale, `/ethereum-vs-bitcoin/`) + + const contributorList = contributors.map((contributor) => ({ + "@type": "Person", + name: contributor.login, + url: contributor.html_url, + })) + + // JSON-LD structured data for the Ethereum vs Bitcoin page + const webPageJsonLd = { + "@context": "https://schema.org", + "@type": "WebPage", + "@id": url, + name: t("page-ethereum-vs-bitcoin-meta-title"), + description: t("page-ethereum-vs-bitcoin-meta-description"), + url: url, + inLanguage: locale, + contributor: contributorList, + author: [ + { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + }, + ], + breadcrumb: { + "@type": "BreadcrumbList", + itemListElement: [ + { + "@type": "ListItem", + position: 1, + name: "Home", + item: normalizeUrlForJsonLd(locale, "/"), + }, + { + "@type": "ListItem", + position: 2, + name: t("page-ethereum-vs-bitcoin-title"), + item: url, + }, + ], + }, + publisher: { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + }, + reviewedBy: { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + logo: { + "@type": "ImageObject", + url: "https://ethereum.org/images/eth-home-icon.png", + }, + }, + } + + // JSON-LD for the comparison article content + const articleJsonLd = { + "@context": "https://schema.org", + "@type": "Article", + headline: t("page-ethereum-vs-bitcoin-title"), + description: t("page-ethereum-vs-bitcoin-meta-description"), + image: + "https://ethereum.org/images/ethereum-vs-bitcoin/bitcoin-vs-ethereum-robots.png", + author: [ + { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + }, + ], + publisher: { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + }, + contributor: contributorList, + reviewedBy: { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + logo: { + "@type": "ImageObject", + url: "https://ethereum.org/images/eth-home-icon.png", + }, + }, + about: [ + { + "@type": "Thing", + name: "Ethereum", + description: + "A decentralized platform for applications and digital economies powered by smart contracts", + }, + { + "@type": "Thing", + name: "Bitcoin", + description: + "A peer-to-peer digital currency system and the first decentralized cryptocurrency", + }, + ], + dateModified: lastEditLocaleTimestamp, + } + + return +} diff --git a/app/[locale]/ethereum-vs-bitcoin/page.tsx b/app/[locale]/ethereum-vs-bitcoin/page.tsx new file mode 100644 index 00000000000..367785179f9 --- /dev/null +++ b/app/[locale]/ethereum-vs-bitcoin/page.tsx @@ -0,0 +1,466 @@ +import { getTranslations, setRequestLocale } from "next-intl/server" + +import type { CommitHistory, Lang, ToCItem } from "@/lib/types" + +import FileContributors from "@/components/FileContributors" +import ContentHero, { ContentHeroProps } from "@/components/Hero/ContentHero" +import { Image } from "@/components/Image" +import { Strong } from "@/components/IntlStringElements" +import MainArticle from "@/components/MainArticle" +import TableOfContents from "@/components/TableOfContents" +import { LinkWithArrow } from "@/components/ui/Link" +import { Section } from "@/components/ui/section" + +import { getAppPageContributorInfo } from "@/lib/utils/contributors" +import { getMetadata } from "@/lib/utils/metadata" +import { screens } from "@/lib/utils/screen" + +import DifferencesTable from "./_components/DifferencesTable" +import EthereumVsBitcoinPageJsonLD from "./page-jsonld" + +import enterpriseEthImg from "@/public/images/enterprise-eth.png" +import ethdotorgLogoImg from "@/public/images/eth-org-logo.png" +import heroImg from "@/public/images/ethereum-vs-bitcoin/bitcoin-vs-ethereum-robots.png" +import hackathonImg from "@/public/images/hackathon_transparent.png" +import guidesHubHeroImg from "@/public/images/heroes/guides-hub-hero.jpg" +import layer2HeroImg from "@/public/images/heroes/layer-2-hub-hero.png" + +const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { + const { locale } = await params + + setRequestLocale(locale) + + const t = await getTranslations({ + locale, + namespace: "page-ethereum-vs-bitcoin", + }) + + const commitHistoryCache: CommitHistory = {} + const { contributors, lastEditLocaleTimestamp } = + await getAppPageContributorInfo( + "ethereum-vs-bitcoin", + locale as Lang, + commitHistoryCache + ) + + const tocItems: ToCItem[] = [ + { + title: t("page-ethereum-vs-bitcoin-title"), + url: "#ethereum-vs-bitcoin", + }, + { + title: t("page-ethereum-vs-bitcoin-bitcoin-section-title"), + url: "#bitcoin", + }, + { + title: t("page-ethereum-vs-bitcoin-ethereum-section-title"), + url: "#ethereum", + }, + { + title: t("page-ethereum-vs-bitcoin-differences-section-title"), + url: "#differences", + }, + ] + + const heroProps: ContentHeroProps = { + breadcrumbs: { slug: "learn/ethereum-vs-bitcoin", startDepth: 1 }, + heroImg, + title: t("page-ethereum-vs-bitcoin-title"), + description: ( + <> +

{t("page-ethereum-vs-bitcoin-description-1")}

+ + ), + } + + const getId = (input: string) => { + const parts = input.split("#") + return parts.length > 1 ? parts[1] : "" + } + + return ( + <> + + + + +
+ +
+ +
+ + +
+ +
+
+

+ {t.rich("page-ethereum-vs-bitcoin-section-1", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-section-2")}

+
+ +
+
+

+ {tocItems[1].title} +

+

+ {t.rich("page-ethereum-vs-bitcoin-bitcoin-section-1", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-bitcoin-section-2", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-bitcoin-section-3")}

+

+ {t.rich("page-ethereum-vs-bitcoin-bitcoin-section-4", { + strong: Strong, + })} +

+
+
+ +
+ ethereum.org Logo +
+

+ {tocItems[2].title} +

+

+ {t.rich("page-ethereum-vs-bitcoin-ethereum-section-1", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-ethereum-section-2", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-ethereum-section-3", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-ethereum-section-4")}

+

+ {t.rich("page-ethereum-vs-bitcoin-ethereum-section-5", { + strong: Strong, + })} +

+

+ + {t("page-ethereum-vs-bitcoin-ethereum-section-6")} + +

+
+
+ +
+
+

+ {tocItems[3].title} +

+

{t("page-ethereum-vs-bitcoin-differences-section-1")}

+ +
+
+ +
+
+

+ {t("page-ethereum-vs-bitcoin-purpose-title")} +

+

+ {t.rich("page-ethereum-vs-bitcoin-purpose-1", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-purpose-2", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-purpose-3")}

+

{t("page-ethereum-vs-bitcoin-purpose-4")}

+
+
+ +
+ Layer 2 Hub Hero +
+

+ {t("page-ethereum-vs-bitcoin-usecases-and-adoption-title")} +

+

+ {t.rich("page-ethereum-vs-bitcoin-usecases-and-adoption-1", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-usecases-and-adoption-2", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-usecases-and-adoption-3", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-usecases-and-adoption-4", { + strong: Strong, + })} +

+

+ + {t("page-ethereum-vs-bitcoin-usecases-and-adoption-5")} + +

+
+
+ +
+
+

+ {t("page-ethereum-vs-bitcoin-monetary-policy-title")} +

+

+ {t.rich("page-ethereum-vs-bitcoin-monetary-policy-1", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-monetary-policy-2")}

+

+ {t.rich("page-ethereum-vs-bitcoin-monetary-policy-3", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-monetary-policy-4")}

+
+
+ +
+ Guides Hub Hero +
+

+ {t("page-ethereum-vs-bitcoin-developer-ecosystem-title")} +

+

+ {t.rich("page-ethereum-vs-bitcoin-developer-ecosystem-1", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-developer-ecosystem-2")}

+

+ {t.rich("page-ethereum-vs-bitcoin-developer-ecosystem-3", { + strong: Strong, + })} +

+

+ + {t("page-ethereum-vs-bitcoin-developer-ecosystem-4")} + +

+
+
+ +
+
+

+ {t("page-ethereum-vs-bitcoin-security-and-consensus-title")} +

+

{t("page-ethereum-vs-bitcoin-security-and-consensus-1")}

+

+ {t.rich("page-ethereum-vs-bitcoin-security-and-consensus-2", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-security-and-consensus-3", { + strong: Strong, + })} +

+

+ + {t("page-ethereum-vs-bitcoin-security-and-consensus-4")} + +

+
+
+ +
+ Enterprise ETH +
+

+ {t("page-ethereum-vs-bitcoin-underlying-technology-title")} +

+

+ {t.rich("page-ethereum-vs-bitcoin-underlying-technology-1", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-underlying-technology-2")}

+

+ {t.rich("page-ethereum-vs-bitcoin-underlying-technology-3", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-underlying-technology-4")}

+

+ + {t("page-ethereum-vs-bitcoin-underlying-technology-5")} + +

+
+
+ +
+
+

+ {t("page-ethereum-vs-bitcoin-decentralization-title")} +

+

{t("page-ethereum-vs-bitcoin-decentralization-1")}

+

+ {t.rich("page-ethereum-vs-bitcoin-decentralization-2", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-decentralization-3", { + strong: Strong, + })} +

+

+ {t.rich("page-ethereum-vs-bitcoin-decentralization-4", { + strong: Strong, + })} +

+
+
+ +
+ Enterprise ETH +
+

+ {t("page-ethereum-vs-bitcoin-environmental-impact-title")} +

+

+ {t.rich("page-ethereum-vs-bitcoin-environmental-impact-1", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-environmental-impact-2")}

+

+ {t.rich("page-ethereum-vs-bitcoin-environmental-impact-3", { + strong: Strong, + })} +

+

{t("page-ethereum-vs-bitcoin-environmental-impact-4")}

+

+ + {t("page-ethereum-vs-bitcoin-environmental-impact-5")} + +

+
+
+ +
+
+

+ {t("page-ethereum-vs-bitcoin-future-outlook-title")} +

+

{t("page-ethereum-vs-bitcoin-future-outlook-1")}

+

{t("page-ethereum-vs-bitcoin-future-outlook-2")}

+

+ {t.rich("page-ethereum-vs-bitcoin-future-outlook-3", { + strong: Strong, + })} +

+

+ + {t("page-ethereum-vs-bitcoin-future-outlook-4")} + +

+
+
+
+
+ + ) +} + +export async function generateMetadata({ + params, +}: { + params: Promise<{ locale: string }> +}) { + const { locale } = await params + + const t = await getTranslations({ + locale, + namespace: "page-ethereum-vs-bitcoin", + }) + + return await getMetadata({ + locale, + slug: ["ethereum-vs-bitcoin"], + title: t("page-ethereum-vs-bitcoin-meta-title"), + description: t("page-ethereum-vs-bitcoin-meta-description"), + twitterDescription: t("page-ethereum-vs-bitcoin-twitter-meta-description"), + image: "/images/ethereum-vs-bitcoin/bitcoin-vs-ethereum-robots.png", + }) +} + +export default Page diff --git a/app/[locale]/founders/page.tsx b/app/[locale]/founders/page.tsx index a14f6c26418..25e1f441d3c 100644 --- a/app/[locale]/founders/page.tsx +++ b/app/[locale]/founders/page.tsx @@ -4,6 +4,7 @@ import { getTranslations } from "next-intl/server" import type { CommitHistory, Lang, SectionNavDetails } from "@/lib/types" +import CommentCard from "@/components/CommentCard" import ContentHero from "@/components/Hero/ContentHero" import { CheckCircle } from "@/components/icons/CheckCircle" import MainArticle from "@/components/MainArticle" @@ -509,27 +510,16 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
{stories.map(({ name, affiliation, content, className }) => ( - -
{content}
-
-
- {name[0].toUpperCase()} -
-
-

{name}

-

{affiliation}

-
-
-
+ /> ))}
diff --git a/app/[locale]/what-is-ethereum/page.tsx b/app/[locale]/what-is-ethereum/page.tsx index dadf2c1b9a0..abd391559bd 100644 --- a/app/[locale]/what-is-ethereum/page.tsx +++ b/app/[locale]/what-is-ethereum/page.tsx @@ -1,5 +1,4 @@ import { - ArrowRight, Castle, Landmark, LockKeyhole, @@ -7,7 +6,7 @@ import { SquareCode, User, } from "lucide-react" -import { getLocale, getTranslations } from "next-intl/server" +import { getTranslations } from "next-intl/server" import type { CommitHistory, Lang, ToCItem } from "@/lib/types" @@ -22,13 +21,12 @@ import MainArticle from "@/components/MainArticle" import TableOfContents from "@/components/TableOfContents" import { ButtonLink } from "@/components/ui/buttons/Button" import { Card, CardContent, CardTitle } from "@/components/ui/card" -import Link, { LinkProps } from "@/components/ui/Link" +import Link, { LinkWithArrow } from "@/components/ui/Link" import { ListItem, OrderedList, UnorderedList } from "@/components/ui/list" import { Section } from "@/components/ui/section" import { cn } from "@/lib/utils/cn" import { getAppPageContributorInfo } from "@/lib/utils/contributors" -import { getDirection } from "@/lib/utils/direction" import { getMetadata } from "@/lib/utils/metadata" import { screens } from "@/lib/utils/screen" @@ -86,23 +84,8 @@ const HighlightCardContent = ({
) -const LinkWithArrow = async ({ href, className, children }: LinkProps) => { - const locale = await getLocale() - const { twFlipForRtl } = getDirection(locale as Lang) - return ( - - -   - {children} - - ) -} - -const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { - const { locale } = await params +const Page = async ({ params }: { params: { locale: Lang } }) => { + const { locale } = params const t = await getTranslations({ locale, namespace: "page-what-is-ethereum", @@ -353,7 +336,7 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {
- + {t("page-what-is-ethereum-network-learn-more")} @@ -914,10 +897,9 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { - {/* // TODO: Re-enable when page ready */} - {/* + {t("page-what-is-ethereum-bitcoin-learn-more")} - */} + @@ -1152,9 +1134,9 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { export async function generateMetadata({ params, }: { - params: Promise<{ locale: string }> + params: { locale: string } }) { - const { locale } = await params + const { locale } = params const t = await getTranslations({ locale, diff --git a/app/[locale]/what-is-the-ethereum-network/page-jsonld.tsx b/app/[locale]/what-is-the-ethereum-network/page-jsonld.tsx new file mode 100644 index 00000000000..4fda7c13109 --- /dev/null +++ b/app/[locale]/what-is-the-ethereum-network/page-jsonld.tsx @@ -0,0 +1,125 @@ +import { getTranslations } from "next-intl/server" + +import { FileContributor, Lang } from "@/lib/types" + +import PageJsonLD from "@/components/PageJsonLD" + +import { normalizeUrlForJsonLd } from "@/lib/utils/url" + +export default async function WhatIsTheEthereumNetworkPageJsonLD({ + locale, + lastEditLocaleTimestamp, + contributors, +}: { + locale: Lang | undefined + lastEditLocaleTimestamp: string + contributors: FileContributor[] +}) { + const t = await getTranslations({ + namespace: "page-what-is-the-ethereum-network", + }) + + const url = normalizeUrlForJsonLd(locale, `/what-is-the-ethereum-network/`) + + const contributorList = contributors.map((contributor) => ({ + "@type": "Person", + name: contributor.login, + url: contributor.html_url, + })) + + // JSON-LD structured data for the What is the Ethereum Network page + const webPageJsonLd = { + "@context": "https://schema.org", + "@type": "WebPage", + "@id": url, + name: t("page-what-is-ethereum-network-meta-title"), + description: t("page-what-is-ethereum-network-meta-description"), + url: url, + inLanguage: locale, + contributor: contributorList, + author: [ + { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + }, + ], + breadcrumb: { + "@type": "BreadcrumbList", + itemListElement: [ + { + "@type": "ListItem", + position: 1, + name: "Home", + item: normalizeUrlForJsonLd(locale, "/"), + }, + { + "@type": "ListItem", + position: 2, + name: "Learn", + item: normalizeUrlForJsonLd(locale, "/learn/"), + }, + { + "@type": "ListItem", + position: 3, + name: t("page-what-is-ethereum-network-meta-title"), + item: url, + }, + ], + }, + publisher: { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + }, + reviewedBy: { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + logo: { + "@type": "ImageObject", + url: "https://ethereum.org/images/eth-home-icon.png", + }, + }, + } + + // JSON-LD for the ethereum network article content + const articleJsonLd = { + "@context": "https://schema.org", + "@type": "Article", + headline: t("page-what-is-ethereum-network-title"), + description: t("page-what-is-ethereum-network-meta-description"), + image: "https://ethereum.org/images/what-is-ethereum-network.png", + author: [ + { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + }, + ], + publisher: { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + }, + contributor: contributorList, + reviewedBy: { + "@type": "Organization", + name: "ethereum.org", + url: "https://ethereum.org", + logo: { + "@type": "ImageObject", + url: "https://ethereum.org/images/eth-home-icon.png", + }, + }, + about: { + "@type": "Thing", + name: "Ethereum Network", + description: + "Comprehensive guide to the Ethereum network, including fees, staking, layer 2 solutions, and live network data", + }, + dateModified: lastEditLocaleTimestamp, + } + + return +} diff --git a/app/[locale]/what-is-the-ethereum-network/page.tsx b/app/[locale]/what-is-the-ethereum-network/page.tsx new file mode 100644 index 00000000000..06816125fcc --- /dev/null +++ b/app/[locale]/what-is-the-ethereum-network/page.tsx @@ -0,0 +1,730 @@ +import { getTranslations } from "next-intl/server" + +import type { CommitHistory, Lang, ToCItem } from "@/lib/types" + +import CommentCard from "@/components/CommentCard" +import DocLink from "@/components/DocLink" +import FileContributors from "@/components/FileContributors" +import ContentHero, { ContentHeroProps } from "@/components/Hero/ContentHero" +import { Image } from "@/components/Image" +import { Strong } from "@/components/IntlStringElements" +import MainArticle from "@/components/MainArticle" +import TableOfContents from "@/components/TableOfContents" +import Link, { LinkWithArrow } from "@/components/ui/Link" +import { ListItem, UnorderedList } from "@/components/ui/list" +import { Section } from "@/components/ui/section" + +import { getAppPageContributorInfo } from "@/lib/utils/contributors" +import { getMetadata } from "@/lib/utils/metadata" +import { screens } from "@/lib/utils/screen" + +import WhatIsTheEthereumNetworkPageJsonLD from "./page-jsonld" + +import developersHubImg from "@/public/images/heroes/developers-hub-hero.png" +import layer2HubImg from "@/public/images/heroes/layer-2-hub-hero.png" +import layer2LearnHeroImg from "@/public/images/layer-2/learn-hero.png" +import manDogPlayingImg from "@/public/images/man-and-dog-playing.png" +import computerImg from "@/public/images/what-is-ethereum-network/computer_alone.png" +import heroImg from "@/public/images/what-is-ethereum-network/what-is-ethereum-network.png" + +const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { + const { locale } = await params + + const t = await getTranslations({ + namespace: "page-what-is-the-ethereum-network", + }) + + const commitHistoryCache: CommitHistory = {} + const { contributors, lastEditLocaleTimestamp } = + await getAppPageContributorInfo( + "what-is-ethereum-network", + locale as Lang, + commitHistoryCache + ) + + const heroProps: ContentHeroProps = { + breadcrumbs: { slug: "learn/what-is-the-ethereum-network", startDepth: 1 }, + heroImg, + title: t("page-what-is-ethereum-network-title"), + description: ( + <> +

{t("page-what-is-ethereum-network-description-1")}

+

{t("page-what-is-ethereum-network-description-2")}

+ + ), + } + + const tocItems: ToCItem[] = [ + { + title: t("page-what-is-ethereum-network-title"), + url: "#ethereum-network", + }, + { + title: t("page-what-is-ethereum-network-section-network-fees-title"), + url: "#network-fees", + }, + { + title: t("page-what-is-ethereum-network-section-staking-title"), + url: "#staking", + }, + { + title: t("page-what-is-ethereum-network-section-layer-2s-title"), + url: "#layer-2s", + }, + { + title: t("page-what-is-ethereum-network-section-live-network-data-title"), + url: "#live-network-data", + }, + ] + + const getId = (input: string) => { + const parts = input.split("#") + return parts.length > 1 ? parts[1] : "" + } + + return ( + <> + + + + +
+ +
+ +
+ + +
+ +
+
+

{t("page-what-is-ethereum-network-section-description-1")}

+

+ {t.rich("page-what-is-ethereum-network-section-description-2", { + strong: Strong, + })} +

+

+ {t.rich("page-what-is-ethereum-network-section-description-3", { + strong: Strong, + })} +

+ Computer +

{t("page-what-is-ethereum-network-section-description-4")}

+ + + {t("page-what-is-ethereum-network-section-description-5")} + + + {t("page-what-is-ethereum-network-section-description-6")} + + + {t("page-what-is-ethereum-network-section-description-7")} + + + {t("page-what-is-ethereum-network-section-description-8")} + + +

{t("page-what-is-ethereum-network-section-description-9")}

+

+ {t.rich("page-what-is-ethereum-network-section-description-10", { + a: (chunks) => {chunks}, + strong: Strong, + })} +

+

{t("page-what-is-ethereum-network-section-description-11")}

+

+ {t.rich("page-what-is-ethereum-network-section-description-12", { + strong: Strong, + })} +

+

{t("page-what-is-ethereum-network-section-description-13")}

+

{t("page-what-is-ethereum-network-section-description-14")}

+ + + {t("page-what-is-ethereum-network-section-description-15")} + + + {t("page-what-is-ethereum-network-section-description-16")} + + + {t("page-what-is-ethereum-network-section-description-17")} + + +

{t("page-what-is-ethereum-network-section-description-18")}

+

+ {t.rich("page-what-is-ethereum-network-section-description-19", { + strong: Strong, + })} +

+
+ +
+ Developers Hub +
+

+ {tocItems[1].title} +

+

+ {t("page-what-is-ethereum-network-gas-section-description-1")} +

+

+ {t.rich( + "page-what-is-ethereum-network-gas-section-description-2", + { + strong: Strong, + } + )} +

+ +

+ {t.rich( + "page-what-is-ethereum-network-gas-section-description-4", + { + strong: Strong, + } + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-gas-section-description-5", + { + strong: Strong, + } + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-gas-section-description-6", + { + blog: (chunks) => ( + + {chunks} + + ), + beaconchain: (chunks) => ( + {chunks} + ), + ultrasound: (chunks) => ( + {chunks} + ), + strong: Strong, + } + )} +

+

+ {t("page-what-is-ethereum-network-gas-section-description-7")} +

+

+ {t.rich( + "page-what-is-ethereum-network-gas-section-description-8", + { + strong: Strong, + } + )} +

+

+ {t("page-what-is-ethereum-network-gas-section-description-9")} +

+ + {t("page-what-is-ethereum-network-gas-section-description-10")} + +
+
+ +
+ Man and Dog Playing +
+

+ {tocItems[2].title} +

+

+ {t.rich( + "page-what-is-ethereum-network-staking-section-description-1", + { + strong: Strong, + } + )} +

+

+ {t( + "page-what-is-ethereum-network-staking-section-description-2" + )} +

+

+ {t( + "page-what-is-ethereum-network-staking-section-description-3" + )} +

+

+ {t( + "page-what-is-ethereum-network-staking-section-description-4" + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-staking-section-description-5", + { + strong: Strong, + } + )} +

+ +

+ {t.rich( + "page-what-is-ethereum-network-staking-section-description-7", + { + validators: (chunks) => ( + + {chunks} + + ), + stakedEther: (chunks) => ( + + {chunks} + + ), + strong: Strong, + } + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-staking-section-description-8", + { + strong: Strong, + } + )} +

+

+ {t( + "page-what-is-ethereum-network-staking-section-description-9" + )} +

+

+ {t( + "page-what-is-ethereum-network-staking-section-description-10" + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-staking-section-description-11", + { + lido: (chunks) => ( + {chunks} + ), + rocketpool: (chunks) => ( + {chunks} + ), + strong: Strong, + } + )} +

+
+ + {t( + "page-what-is-ethereum-network-staking-section-description-12" + )} + + + {t( + "page-what-is-ethereum-network-staking-section-description-13" + )} + +
+
+
+ +
+ Layer 2 Hub +
+

+ {tocItems[3].title} +

+

+ {t.rich( + "page-what-is-ethereum-network-layer-2s-section-description-1", + { + strong: Strong, + } + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-layer-2s-section-description-2", + { + strong: Strong, + } + )} +

+

+ {t( + "page-what-is-ethereum-network-layer-2s-section-description-3" + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-layer-2s-section-description-4", + { + strong: Strong, + } + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-layer-2s-section-description-5", + { + l2fees: (chunks) => ( + {chunks} + ), + strong: Strong, + } + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-layer-2s-section-description-6", + { + l2beat: (chunks) => ( + + {chunks} + + ), + } + )} +

+

+ {t( + "page-what-is-ethereum-network-layer-2s-section-description-7" + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-layer-2s-section-description-8", + { + robinhood: (chunks) => ( + + {chunks} + + ), + paypal: (chunks) => ( + + {chunks} + + ), + shopify: (chunks) => ( + + {chunks} + + ), + } + )} +

+

+ {t.rich( + "page-what-is-ethereum-network-layer-2s-section-description-9", + { + superbridge: (chunks) => ( + {chunks} + ), + portal: (chunks) => ( + + {chunks} + + ), + hop: (chunks) => ( + {chunks} + ), + across: (chunks) => ( + {chunks} + ), + } + )} +

+ + {t( + "page-what-is-ethereum-network-layer-2s-section-description-10" + )} + +
+
+ +
+ Layer 2 Learn Hero +
+

+ {tocItems[4].title} +

+

+ {t( + "page-what-is-ethereum-network-live-network-data-section-description-1" + )} +

+

+ {t( + "page-what-is-ethereum-network-live-network-data-section-description-2" + )} +

+ + + {t( + "page-what-is-ethereum-network-live-network-data-section-description-3" + )} + + + {t( + "page-what-is-ethereum-network-live-network-data-section-description-4" + )} + + + {t( + "page-what-is-ethereum-network-live-network-data-section-description-5" + )} + + +

+ {t( + "page-what-is-ethereum-network-live-network-data-section-description-6" + )} +

+

+ {t( + "page-what-is-ethereum-network-live-network-data-section-description-7" + )} +

+

+ {t( + "page-what-is-ethereum-network-live-network-data-section-description-8" + )} +

+ + + {t.rich( + "page-what-is-ethereum-network-live-network-data-section-description-9", + { + etherscan: (chunks) => ( + {chunks} + ), + } + )} + + + {t.rich( + "page-what-is-ethereum-network-live-network-data-section-description-10", + { + beaconcha: (chunks) => ( + {chunks} + ), + } + )} + + + {t.rich( + "page-what-is-ethereum-network-live-network-data-section-description-11", + { + ultrasound: (chunks) => ( + {chunks} + ), + } + )} + + + {t.rich( + "page-what-is-ethereum-network-live-network-data-section-description-12", + { + l2fees: (chunks) => ( + {chunks} + ), + } + )} + + + {t.rich( + "page-what-is-ethereum-network-live-network-data-section-description-13", + { + l2beat: (chunks) => ( + {chunks} + ), + } + )} + + + {t.rich( + "page-what-is-ethereum-network-live-network-data-section-description-14", + { + growthepie: (chunks) => ( + {chunks} + ), + } + )} + + + {t.rich( + "page-what-is-ethereum-network-live-network-data-section-description-15", + { + dune: (chunks) => ( + {chunks} + ), + } + )} + + + {t.rich( + "page-what-is-ethereum-network-live-network-data-section-description-16", + { + tokenterminal: (chunks) => ( + {chunks} + ), + } + )} + + + {t.rich( + "page-what-is-ethereum-network-live-network-data-section-description-17", + { + nansen: (chunks) => ( + {chunks} + ), + } + )} + + +

+ {t( + "page-what-is-ethereum-network-live-network-data-section-description-18" + )} +

+

+ {t( + "page-what-is-ethereum-network-live-network-data-section-description-19" + )} +

+ + {t( + "page-what-is-ethereum-network-live-network-data-section-description-20" + )} + +
+
+ +
+
+

+ {t("page-what-is-ethereum-network-read-next-title")} +

+ + + + {t("page-what-is-ethereum-network-read-next-item-1")} + + + + + {t("page-what-is-ethereum-network-read-next-item-2")} + + + + + {t("page-what-is-ethereum-network-read-next-item-3")} + + + + + {t("page-what-is-ethereum-network-read-next-item-4")} + + + +
+
+
+
+ + ) +} + +export async function generateMetadata({ + params, +}: { + params: Promise<{ locale: string }> +}) { + const { locale } = await params + + const t = await getTranslations({ + locale, + namespace: "page-what-is-the-ethereum-network", + }) + + return await getMetadata({ + locale, + slug: ["what-is-ethereum-network"], + title: t("page-what-is-ethereum-network-meta-title"), + description: t("page-what-is-ethereum-network-meta-description"), + twitterDescription: t( + "page-what-is-ethereum-network-twitter-meta-description" + ), + image: "/images/what-is-ethereum-network.png", + }) +} + +export default Page diff --git a/docs/applying-storybook.md b/docs/applying-storybook.md index 49b3ea8c348..fc47cbf8867 100644 --- a/docs/applying-storybook.md +++ b/docs/applying-storybook.md @@ -18,7 +18,7 @@ It's as easy as running `pnpm storybook` to boot up a dedicated localhost to see ## Setting up a component's stories -> 🚨 NOTE: This project uses Storybook v7, using the Component Story Format v3 and the `satisfies` keyword to define the type of the meta object. The following documentation outlines preferences in setup as it relates to this version. You can refer to the [main docs](https://storybook.js.org/docs/get-started) if you need any additional details +> 🚨 NOTE: This project uses Storybook v8.6+, using the Component Story Format v3 and the `satisfies` keyword to define the type of the meta object. The following documentation outlines preferences in setup as it relates to this version. You can refer to the [main docs](https://storybook.js.org/docs/get-started) if you need any additional details A Storybook "story" is an instance of a component in a certain state or with certain parameters applied to show an alternative version of the component. diff --git a/docs/best-practices.md b/docs/best-practices.md index 7542e54eaf8..fdb60a580a5 100644 --- a/docs/best-practices.md +++ b/docs/best-practices.md @@ -102,59 +102,52 @@ export default ComponentName ## Styling -We use [Chakra UI](https://chakra-ui.com/). +We use [Tailwind CSS](https://tailwindcss.com/) as our primary styling approach, combined with the [shadcn/ui](https://ui.shadcn.com/) component library built on [Radix UI](https://www.radix-ui.com/) primitives. -`src/@chakra-ui/theme.ts` - Holds all the theme configuration. This is where you can find the colors, fonts, component themes, variants, etc. +### Styling Approach -- Wrappers or layout divs +- **Primary**: Tailwind CSS utility classes +- **Component variants**: Use `class-variance-authority` (cva) for component variants +- **Dynamic classes**: Use `cn()` utility function (combines clsx + tailwind-merge) +- **Responsive design**: Mobile-first approach with Tailwind breakpoints (`sm:`, `md:`, `lg:`, `xl:`, `2xl:`) -Use the [native layouts components](https://chakra-ui.com/docs/components/box) +### Layout Components -```tsx - -``` - -Center things using the `
` component +Use standard HTML elements with Tailwind classes for layouts: ```tsx -
-``` +// Flexbox layouts +
+
-- Group buttons using `` or `` +// Grid layouts +
-```tsx - - - - - -// or - - - - +// Centering +
``` -- Breakpoints +### Component Styling -Use [the Chakra default breakpoints](https://www.chakra-ui.com/docs/theming/customization/breakpoints). +Use shadcn/ui components for interactive elements: ```tsx - +import { Button } from "@/components/ui/button" + + ``` -- Theme colors +### Colors and Theming + +Use CSS custom properties defined in the design system: ```tsx - +
+
``` -> Note the dotted notation. In Chakra, the values are referred to as "semantic tokens" and the new theme applies a nested structure of like tokens for better organization. See [semanticTokens.ts](../src/@chakra-ui/semanticTokens.ts) - -> Note 2: all the previous colors defined in the old theme `src/theme.ts` were -> ported into the new theme for compatibility reasons. Those colors will -> transition out of the codebase as we adopt the DS colors. - - [Framer Motion](https://www.framer.com/motion/) - An open source and production-ready motion library for React on the web, used for our animated designs - **Emojis**: We use [Twemoji](https://twemoji.twitter.com/), an open-source emoji set created by Twitter. These are hosted by us, and used to provide a consistent experience across operating systems. @@ -236,7 +229,7 @@ Wrap icon in a div for circular backgrounds, and color using background: ## Using custom `Image` component -[Next Image](https://nextjs.org/docs/pages/api-reference/components/image) is the component of choice to handle responsive images. However, we use a custom version of this component that is properly optimized with Chakra. This way we can use style props from Chakra but still be able to forward common or Next Image-specific props to the component for correct usage and rendering. +[Next.js Image](https://nextjs.org/docs/app/api-reference/components/image) is the component of choice to handle responsive images. We use a custom version of this component that integrates with our design system. ```tsx import { Image } from "@/components/Image" diff --git a/docs/code-conventions.md b/docs/code-conventions.md index 7f7e87c971c..635086abb00 100644 --- a/docs/code-conventions.md +++ b/docs/code-conventions.md @@ -39,16 +39,18 @@ const Component = ({ title, label, ...props }: ComponentProps) => { } /** - * Components using `forwardRef` from the Chakra UI package + * Components using `forwardRef` from React * - * The first argument of the generic types is the props type signature. - * - * For the second argument of the generic types, you are declaring the primary element type that the component will render. - * This could be a `div`, `span`, `button`, etc. or a custom component (typeof Button) if said component is being used in the return. + * Use React.forwardRef when you need to forward refs to DOM elements or child components. + * The ref type should match the element being rendered (HTMLDivElement, HTMLButtonElement, etc.) */ -const Component = forwardRef( +const Component = React.forwardRef( ({ title, label, ...props }, ref) => { - // Component code + return ( +
+ {/* Component code */} +
+ ) } ) ``` diff --git a/docs/stack.md b/docs/stack.md index 6d3b4107490..dfa41d6de0b 100644 --- a/docs/stack.md +++ b/docs/stack.md @@ -2,14 +2,16 @@ - [Node.js](https://nodejs.org/) - [pnpm](https://pnpm.io/) - Fast, disk space efficient package manager -- [NextJS](https://nextjs.org/) - - React framework that provides some goodies out of the box (pages router, SSG, SSR, i18n support, Image component, etc) +- [Next.js 14](https://nextjs.org/) + - React framework with App Router, SSG, SSR, i18n support, Image component, etc. - Configurable in `next.config.js` - [NextJS Tutorial](https://nextjs.org/learn) - [NextJS Docs](https://nextjs.org/docs) - [React](https://react.dev/) - A JavaScript library for building component-based user interfaces - [Typescript](https://www.typescriptlang.org/) - TypeScript is a strongly typed programming language that builds on JavaScript -- [Chakra UI](https://chakra-ui.com/) - A UI library (Migration in progress) +- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework +- [shadcn/ui](https://ui.shadcn.com/) - Component library built on Radix UI and Tailwind CSS +- [Radix UI](https://www.radix-ui.com/) - Accessible component primitives - [Algolia](https://www.algolia.com/) - Site indexing, rapid intra-site search results, and search analytics. [Learn more on how we implement Algolia for site search](./site-search.md). - Primary implementation: `/src/components/Search/index.ts` - [Crowdin](https://crowdin.com/) - crowdsourcing for our translation efforts (See "Translation initiative" below) @@ -31,8 +33,8 @@ | `/src/data` | General data files importable by components. | | `/src/hooks` | Custom React hooks. | | `/src/intl` | Language translation JSON files. | -| `/src/pages/api` | NextJS API Routes (https://nextjs.org/docs/pages/building-your-application/routing/api-routes) | -| `/src/pages` | React components that function as standalone pages. | +| `/app/api` | Next.js API Routes (https://nextjs.org/docs/app/building-your-application/routing/route-handlers) | +| `/app` | Next.js App Router pages and layouts. | | `/src/scripts`
`/src/lib/utils` | Custom utility scripts. | -| `src/@chakra-ui` | Stores `theme.ts` which contains our custom Chakra theme, along with src/@chakra-ui/`semanticTokens.ts` (dark/light mode tokens) and custom Chakra components styles. | -| `src/layouts` | NextJS layouts (https://nextjs.org/docs/pages/building-your-application/routing/pages-and-layouts#with-typescript) that define layouts of different regions of the site. | +| `/src/styles` | Global styles and Tailwind CSS configuration. | +| `/src/layouts` | Next.js layout components used throughout the site. | diff --git a/package.json b/package.json index 60aad609688..93632cbc2e4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ethereum-org-website", - "version": "10.14.0", + "version": "10.15.0", "license": "MIT", "private": true, "scripts": { diff --git a/public/content/decentralized-identity/index.md b/public/content/decentralized-identity/index.md index d8fba4c819c..166780609cd 100644 --- a/public/content/decentralized-identity/index.md +++ b/public/content/decentralized-identity/index.md @@ -57,7 +57,7 @@ Decentralized identity has many potential use-cases: Decentralized identity can help replace password-based logins with decentralized authentication. Service providers can issue attestations to users, which can be stored in an Ethereum wallet. An example attestation would be an [NFT](/glossary/#nft) granting the holder access to an online community. -A [Sign-In with Ethereum](https://login.xyz/) function would then enable servers to confirm the user's Ethereum account and fetch the required attestation from their account address. This means users can access platforms and websites without having to memorize long passwords and improves the online experience for users. +A [Sign-In with Ethereum](https://siwe.xyz/) function would then enable servers to confirm the user's Ethereum account and fetch the required attestation from their account address. This means users can access platforms and websites without having to memorize long passwords and improves the online experience for users. ### 2. KYC authentication {#kyc-authentication} @@ -158,6 +158,7 @@ Here's an example to show how onchain attestations might work in practice: There are many ambitious projects using Ethereum as a foundation for decentralized identity solutions: - **[Ethereum Name Service (ENS)](https://ens.domains/)** - _A decentralized naming system for onchain, machine-readable identifiers, like, Ethereum wallet addresses, content hashes, and metadata._ +- **[Sign in with Ethereum (SIWE)](https://siwe.xyz/)** - _Open standard for authentication with Ethereum accounts._ - **[SpruceID](https://www.spruceid.com/)** - _A decentralized identity project which allows users to control digital identity with Ethereum accounts and ENS profiles instead of relying on third-party services._ - **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _A decentralized ledger/protocol for making onchain or offchain attestations about anything._ - **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (or PoH) is a social identity verification system built on Ethereum._ @@ -186,6 +187,6 @@ There are many ambitious projects using Ethereum as a foundation for decentraliz ### Communities {#communities} - [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _Supporters of the ERC725 standard for managing identity on the Ethereum blockchain_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Community for enthusiasts and developers working on Sign-in with Ethereum_ +- [EthID Discord server](https://discord.com/invite/ZUyG3mSXFD) — _Community for enthusiasts and developers working on Sign-in with Ethereum, and Ethereum Follow Protocol_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _A community of developers contributing to building a framework for verifiable data for applications_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _A community of developers and builders working on decentralized identity use cases across various industries_ diff --git a/public/content/developers/docs/evm/index.md b/public/content/developers/docs/evm/index.md index 175b29698ae..a6e5aea68d9 100644 --- a/public/content/developers/docs/evm/index.md +++ b/public/content/developers/docs/evm/index.md @@ -56,7 +56,7 @@ _Diagrams adapted from [Ethereum EVM illustrated](https://takenobu-hs.github.io/ All implementations of the EVM must adhere to the specification described in the Ethereum Yellowpaper. -Over Ethereum's nine year history, the EVM has undergone several revisions, and there are several implementations of the EVM in various programming languages. +Over Ethereum's ten year history, the EVM has undergone several revisions, and there are several implementations of the EVM in various programming languages. [Ethereum execution clients](/developers/docs/nodes-and-clients/#execution-clients) include an EVM implementation. Additionally, there are multiple standalone implementations, including: diff --git a/public/content/developers/docs/gas/index.md b/public/content/developers/docs/gas/index.md index 348119bdba6..0c712b87870 100644 --- a/public/content/developers/docs/gas/index.md +++ b/public/content/developers/docs/gas/index.md @@ -46,7 +46,7 @@ The total fee would now be equal to: where the `base fee` is a value set by the protocol and the `priority fee` is a value set by the user as a tip to the validator. -i.e. `21,000 * (10 + 2) = 252,000 gwei` (0.000252 ETH). +e.g., `21,000 * (10 + 2) = 252,000 gwei` (0.000252 ETH). When Jordan sends the money, 1.000252 ETH will be deducted from Jordan's account. Taylor will be credited 1.0000 ETH. The validator receives the tip of 0.000042 ETH. The `base fee` of 0.00021 ETH is burned. @@ -89,7 +89,9 @@ To execute a transaction on the network, users can specify a maximum limit they ### Block size {#block-size} -Each block has a target size of 15 million gas, but the size of blocks will increase or decrease in accordance with network demand, up until the block limit of 30 million gas (2x the target block size). The protocol achieves an equilibrium block size of 15 million on average through the process of _tâtonnement_. This means if the block size is greater than the target block size, the protocol will increase the base fee for the following block. Similarly, the protocol will decrease the base fee if the block size is less than the target block size. The amount by which the base fee is adjusted is proportional to how far the current block size is from the target. [More on blocks](/developers/docs/blocks/). +Each block has a target size of 15 million gas, but the size of blocks will increase or decrease in accordance with network demand, up until the block limit of 30 million gas (2x the target block size). The protocol achieves an equilibrium block size of 15 million on average through the process of _tâtonnement_. This means if the block size is greater than the target block size, the protocol will increase the base fee for the following block. Similarly, the protocol will decrease the base fee if the block size is less than the target block size. The amount by which the base fee is adjusted is proportional to how far the current block size is from the target. + +[More on blocks](/developers/docs/blocks/) ### Calculating gas fees in practice {#calculating-fees-in-practice} @@ -99,7 +101,7 @@ You can explicitly state how much you are willing to pay to get your transaction In short, gas fees help keep the Ethereum network secure. By requiring a fee for every computation executed on the network, we prevent bad actors from spamming the network. In order to avoid accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas". -Although a transaction includes a limit, any gas not used in a transaction is returned to the user (i.e. `max fee - (base fee + tip)` is returned). +Although a transaction includes a limit, any gas not used in a transaction is returned to the user (e.g., `max fee - (base fee + tip)` is returned). ![Diagram showing how unused gas is refunded](../transactions/gas-tx.png) _Diagram adapted from [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ @@ -118,7 +120,9 @@ High gas fees are due to the popularity of Ethereum. If there's too much demand, The Ethereum [scalability upgrades](/roadmap/) should ultimately address some of the gas fee issues, which will, in turn, enable the platform to process thousands of transactions per second and scale globally. -Layer 2 scaling is a primary initiative to greatly improve gas costs, user experience and scalability. [More on layer 2 scaling](/developers/docs/scaling/#layer-2-scaling). +Layer 2 scaling is a primary initiative to greatly improve gas costs, user experience and scalability. + +[More on layer 2 scaling](/developers/docs/scaling/#layer-2-scaling) ## Monitoring gas fees {#monitoring-gas-fees} diff --git a/public/content/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/developers/docs/nodes-and-clients/client-diversity/index.md index 32f2f1d0f4c..b5d6daa0e10 100644 --- a/public/content/developers/docs/nodes-and-clients/client-diversity/index.md +++ b/public/content/developers/docs/nodes-and-clients/client-diversity/index.md @@ -46,7 +46,7 @@ _Diagram data from [ethernodes.org](https://ethernodes.org) and [clientdiversity The two pie charts above show snapshots of the current client diversity for the execution and consensus layers (at time of writing in January 2022). The execution layer is overwhelmingly dominated by [Geth](https://geth.ethereum.org/), with [Open Ethereum](https://openethereum.github.io/) a distant second, [Erigon](https://github.com/ledgerwatch/erigon) third and [Nethermind](https://nethermind.io/) fourth, with other clients comprising less than 1 % of the network. The most commonly used client on the consensus layer - [Prysm](https://prysmaticlabs.com/#projects) - is not as dominant as Geth but still represents over 60% of the network. [Lighthouse](https://lighthouse.sigmaprime.io/) and [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) make up ~20% and ~14% respectively, and other clients are rarely used. -The execution layer data were obtained from [Ethernodes](https://ethernodes.org) on 23-Jan-2022. Data for consensus clients was obtained from [Michael Sproul](https://github.com/sigp/blockprint). Consensus client data is more difficult to obtain because the consensus layer clients do not always have unambiguous traces that can be used to identify them. The data was generated using a classification algorithm that sometimes confuses some of the minority clients (see [here](https://twitter.com/sproulM_/status/1440512518242197516) for more details). In the diagram above, these ambiguous classifications are treated with an either/or label (e.g. Nimbus/Teku). Nevertheless, it is clear that the majority of the network is running Prysm. The data is a snapshot over a fixed set of blocks (in this case Beacon blocks in slots 2048001 to 2164916) and Prysm's dominance has sometimes been higher, exceeding 68%. Despite only being snapshots, the values in the diagram provide a good general sense of the current state of client diversity. +The execution layer data were obtained from [Ethernodes](https://ethernodes.org) on 23-Jan-2022. Data for consensus clients was obtained from [Michael Sproul](https://github.com/sigp/blockprint). Consensus client data is more difficult to obtain because the consensus layer clients do not always have unambiguous traces that can be used to identify them. The data was generated using a classification algorithm that sometimes confuses some of the minority clients (see [here](https://twitter.com/sproulM_/status/1440512518242197516) for more details). In the diagram above, these ambiguous classifications are treated with an either/or label (e.g., Nimbus/Teku). Nevertheless, it is clear that the majority of the network is running Prysm. The data is a snapshot over a fixed set of blocks (in this case Beacon blocks in slots 2048001 to 2164916) and Prysm's dominance has sometimes been higher, exceeding 68%. Despite only being snapshots, the values in the diagram provide a good general sense of the current state of client diversity. Up to date client diversity data for the consensus layer is now available at [clientdiversity.org](https://clientdiversity.org/). @@ -60,29 +60,20 @@ Addressing client diversity requires more than individual users to choose minori ### Execution clients {#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/) - -[Reth](https://reth.rs/) +- [Besu](https://www.hyperledger.org/use/besu) +- [Nethermind](https://downloads.nethermind.io/) +- [Erigon](https://github.com/ledgerwatch/erigon) +- [Go-Ethereum](https://geth.ethereum.org/) +- [Reth](https://reth.rs/) ### Consensus clients {#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://prysm.offchainlabs.com/docs/) - -[Grandine](https://docs.grandine.io/) +- [Nimbus](https://nimbus.team/) +- [Lighthouse](https://github.com/sigp/lighthouse) +- [Teku](https://consensys.io/teku) +- [Lodestar](https://github.com/ChainSafe/lodestar) +- [Prysm](https://prysm.offchainlabs.com/docs/) +- [Grandine](https://docs.grandine.io/) Technical users can help accelerate this process by writing more tutorials and documentation for minority clients and encouraging their node-operating peers to migrate away from the dominant clients. Guides for switching to a minority consensus client are available on [clientdiversity.org](https://clientdiversity.org/). diff --git a/public/content/developers/docs/nodes-and-clients/index.md b/public/content/developers/docs/nodes-and-clients/index.md index c81abc2b473..42ad023c945 100644 --- a/public/content/developers/docs/nodes-and-clients/index.md +++ b/public/content/developers/docs/nodes-and-clients/index.md @@ -214,7 +214,7 @@ Documentation can be found in [Lighthouse Book](https://lighthouse-book.sigmapri Lodestar is a production-ready consensus client implementation written in Typescript under the LGPL-3.0 license. It is maintained by ChainSafe Systems and is the newest of the consensus clients for solo-stakers, developers and researchers. Lodestar consists of a beacon node and validator client powered by JavaScript implementations of Ethereum protocols. Lodestar aims to improve Ethereum usability with light clients, expand accessibility to a larger group of developers and further contribute to ecosystem diversity. -More information can be found on our [Lodestar website](https://lodestar.chainsafe.io/) +More information can be found on the [Lodestar website](https://lodestar.chainsafe.io/) ### Nimbus {#nimbus} diff --git a/public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md index 09ebba54320..dea5013e395 100644 --- a/public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md +++ b/public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md @@ -169,20 +169,20 @@ Here is a list of some of the most popular Ethereum node providers, feel free to - Pay-per-hour pricing - Direct 24/7 support -- [**DRPC**](https://drpc.org/) - - [Docs](https://docs.drpc.org/) - - Features - - Decentralized RPC nodes - - 15+ Node providers - - Node balancing - - Unlimited compute units per month on the free tier - - Data verification - - Custom endpoints - - HTTP and WSS endpoints - - Unlimited keys (free and paid tier) - - Flexible fallback options - - [Public Endpoint](https://eth.drpc.org) - - Free shared archive nodes +- [**dRPC**](https://drpc.org/) + - [Docs](https://drpc.org/docs) + - NodeCloud: Plug-n-play RPC infra starting at $10 (USD)—full speed, no limits + - NodeCloud features: + - API support for 185 networks + - Distributed pool of 40+ providers + - Global coverage with nine (9) geo-clusters + - AI-powered load balancing system + - Pay-as-you-go flat pricing—no hikes, no expiry, no lock-ins + - Unlimited keys, granular key tweaks, team roles, front-end protection + - Methods flat rate at 20 compute units (CUs) per method + - [Public endpoint chainlist](https://drpc.org/chainlist) + - [Pricing calculator](https://drpc.org/pricing#calculator) + - NodeCore: open-source stack for organizations wanting full control - [**GetBlock**](https://getblock.io/) - [Docs](https://getblock.io/docs/get-started/authentication-with-api-key/) diff --git a/public/content/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/developers/docs/nodes-and-clients/run-a-node/index.md index 98e4440081f..6bea688c925 100644 --- a/public/content/developers/docs/nodes-and-clients/run-a-node/index.md +++ b/public/content/developers/docs/nodes-and-clients/run-a-node/index.md @@ -101,7 +101,7 @@ The sync mode and client you choose will affect space requirements, but we've es - Note: Erigon and Reth do not offer snap sync, but Full Pruning is possible (~2TB for Erigon, ~1.2TB for Reth) -For consensus clients, space requirement also depends on client implementation and enabled features (e.g. validator slasher) but generally count with another 200GB needed for beacon data. With a large number of validators, the bandwidth load grows as well. You can find [details on consensus client requirements in this analysis](https://mirror.xyz/0x934e6B4D7eee305F8C9C42b46D6EEA09CcFd5EDc/b69LBy8p5UhcGJqUAmT22dpvdkU-Pulg2inrhoS9Mbc). +For consensus clients, space requirement also depends on client implementation and enabled features (e.g., validator slasher) but generally count with another 200GB needed for beacon data. With a large number of validators, the bandwidth load grows as well. You can find [details on consensus client requirements in this analysis](https://mirror.xyz/0x934e6B4D7eee305F8C9C42b46D6EEA09CcFd5EDc/b69LBy8p5UhcGJqUAmT22dpvdkU-Pulg2inrhoS9Mbc). #### Plug-and-play solutions {#plug-and-play} @@ -177,7 +177,7 @@ It is also worth noting that client diversity is an [issue on the execution laye When downloading software from the internet, it's recommended to verify its integrity. This step is optional but especially with crucial infrastructure piece like the Ethereum client, it's important to be aware of potential attack vectors and avoid them. If you downloaded a pre-built binary, you need to trust it and risk that an attacker could swap the executable for a malicious one. -Developers sign released binaries with their PGP keys so you can cryptographically verify you are running exactly the software they created. You just need to obtain public keys used by developers, which can be found on client release pages or in documentation. After downloading the client release and its signature, you can use a PGP implementation, e.g. [GnuPG](https://gnupg.org/download/index.html) to easily verify them. Check out a tutorial on verifying open-source software using `gpg` on [linux](https://www.tecmint.com/verify-pgp-signature-downloaded-software/) or [Windows/MacOS](https://freedom.press/training/verifying-open-source-software/). +Developers sign released binaries with their PGP keys so you can cryptographically verify you are running exactly the software they created. You just need to obtain public keys used by developers, which can be found on client release pages or in documentation. After downloading the client release and its signature, you can use a PGP implementation, e.g., [GnuPG](https://gnupg.org/download/index.html) to easily verify them. Check out a tutorial on verifying open-source software using `gpg` on [linux](https://www.tecmint.com/verify-pgp-signature-downloaded-software/) or [Windows/MacOS](https://freedom.press/training/verifying-open-source-software/). Another form of verification is to make sure that the hash, a unique cryptographic fingerprint, of the software you downloaded matches the one provided by developers. This is even easier than using PGP, and some clients offer only this option. Just run the hash function on the downloaded software and compare it to the one from the release page. For example: @@ -191,9 +191,9 @@ sha256sum teku-22.6.1.tar.gz After installing, downloading, or compiling the client software, you are ready to run it. This only means it has to be executed with the proper configuration. Clients offer rich configuration options, which can enable various features. -Let's start with options that can significantly influence client performance and data usage. [Sync modes](/developers/docs/nodes-and-clients/#sync-modes) represent different methods of downloading and validating blockchain data. Before starting the node, you should decide what network and sync mode to use. The most important things to consider are the disk space, and sync time the client will need. Pay attention to the client's docs to determine which sync mode is the default. If that doesn't suit you, pick another one based on the level of security, available data, and cost. Apart from the synchronization algorithm, you can also set pruning of different kinds of old data. Pruning enables deleting outdated data, e.g. removing state trie nodes that are unreachable from recent blocks. +Let's start with options that can significantly influence client performance and data usage. [Sync modes](/developers/docs/nodes-and-clients/#sync-modes) represent different methods of downloading and validating blockchain data. Before starting the node, you should decide what network and sync mode to use. The most important things to consider are the disk space, and sync time the client will need. Pay attention to the client's docs to determine which sync mode is the default. If that doesn't suit you, pick another one based on the level of security, available data, and cost. Apart from the synchronization algorithm, you can also set pruning of different kinds of old data. Pruning enables deleting outdated data, i.e., removing state trie nodes that are unreachable from recent blocks. -Other basic configuration options are, e.g. choosing a network - Mainnet or testnets, enabling HTTP endpoint for RPC or WebSockets, etc. You can find all features and options in the client's documentation. Various client configurations can be set by executing the client with the corresponding flags directly in the CLI or config file. Each client is a bit different; please always refer to its official documentation or help page for details on config options. +Other basic configuration options are, e.g., choosing a network - Mainnet or testnets, enabling HTTP endpoint for RPC or WebSockets, etc. You can find all features and options in the client's documentation. Various client configurations can be set by executing the client with the corresponding flags directly in the CLI or config file. Each client is a bit different; please always refer to its official documentation or help page for details on config options. For testing purposes, you might prefer to run a client on one of the testnet networks. [See overview of supported networks](/developers/docs/nodes-and-clients/#execution-clients). @@ -228,11 +228,11 @@ This section will guide you through starting execution clients. It only serves a - Specifies network to connect to, Mainnet in our examples - You can instead choose [one of testnets](/developers/docs/networks/) for preliminary testing of your setup - Defines data directory, where all the data including blockchain will be stored - - Make sure to substitute the path with a real one, e.g. pointing to your external drive + - Make sure to substitute the path with a real one, e.g., pointing to your external drive - Enables interfaces for communicating with the client - Including JSON-RPC and Engine API for communication with consensus client - Defines path to `jwtsecret` for authenticated API - - Make sure to substitute the example path with a real one which can be accessed by clients, e.g. `/tmp/jwtsecret` + - Make sure to substitute the example path with a real one which can be accessed by clients, e.g., `/tmp/jwtsecret` Please keep in mind that this is just a basic example, all other settings will be set to default. Pay attention to the documentation of each client to learn about default values, settings, and features. For more features, for example for running validators, monitoring, etc., please refer to the documentation of the specific client. @@ -321,7 +321,7 @@ The consensus client must be started with the right port configuration to establ The consensus client also needs the path to the execution client's `jwt-secret` in order to authenticate the RPC connection between them. Similar to execution examples above, each consensus client has a configuration flag which takes the jwt token file path as an argument. This must be consistent with the `jwtsecret` path provided to the execution client. -If you plan to run a validator, make sure to add a configuration flag specifying the Ethereum address of the fee recipient. This is where ether rewards for your validator accumulate. Each consensus client has an option, e.g. `--suggested-fee-recipient=0xabcd1`, that takes an Ethereum address as an argument. +If you plan to run a validator, make sure to add a configuration flag specifying the Ethereum address of the fee recipient. This is where ether rewards for your validator accumulate. Each consensus client has an option, e.g., `--suggested-fee-recipient=0xabcd1`, that takes an Ethereum address as an argument. When starting a Beacon Node on a testnet, you can save significant syncing time by using a public endpoint for [Checkpoint sync](https://notes.ethereum.org/@launchpad/checkpoint-sync). @@ -403,9 +403,9 @@ Look into [staking page](/staking) for an overview about staking options. Execution clients offer [RPC API endpoints](/developers/docs/apis/json-rpc/) that you can use to submit transactions, interact with or deploy smart contracts on the Ethereum network in various ways: -- Manually calling them with a suitable protocol (e.g. using `curl`) -- Attaching a provided console (e.g. `geth attach`) -- Implementing them in applications using web3 libraries, e.g. [web3.py](https://web3py.readthedocs.io/en/stable/overview.html#overview), [ethers](https://github.com/ethers-io/ethers.js/) +- Manually calling them with a suitable protocol (e.g., using `curl`) +- Attaching a provided console (e.g., `geth attach`) +- Implementing them in applications using web3 libraries, e.g., [web3.py](https://web3py.readthedocs.io/en/stable/overview.html#overview), [ethers](https://github.com/ethers-io/ethers.js/) Different clients have different implementations of the RPC endpoints. But there is a standard JSON-RPC which you can use with every client. For an overview [read the JSON-RPC docs](/developers/docs/apis/json-rpc/). Applications that need information from the Ethereum network can use this RPC. For example, popular wallet MetaMask lets you [connect to your own RPC endpoint](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) which has strong privacy and security benefits. @@ -443,7 +443,7 @@ _This doesn't apply on consensus layer validator nodes._ Taking your node offlin #### Creating client services {#creating-client-services} -Consider creating a service to run your clients automatically on startup. For example, on Linux servers, good practice would be to create a service, e.g. with `systemd`, that executes the client with proper config, under a user with limited privileges and automatically restarts. +Consider creating a service to run your clients automatically on startup. For example, on Linux servers, good practice would be to create a service, e.g., with `systemd`, that executes the client with proper config, under a user with limited privileges and automatically restarts. #### Updating clients {#updating-clients} diff --git a/public/content/developers/docs/programming-languages/python/index.md b/public/content/developers/docs/programming-languages/python/index.md index 6d3aa1f9c86..08f88b42794 100644 --- a/public/content/developers/docs/programming-languages/python/index.md +++ b/public/content/developers/docs/programming-languages/python/index.md @@ -65,7 +65,7 @@ Need a more basic primer first? Check out [ethereum.org/learn](/learn/) or [ethe - [eth-utils](https://github.com/ethereum/eth-utils/) - _utility functions for working with Ethereum related codebases_ - [py-solc-x](https://pypi.org/project/py-solc-x/) - _Python wrapper around the solc solidity compiler with 0.5.x support_ - [pymaker](https://github.com/makerdao/pymaker) - _Python API for Maker contracts_ -- [siwe](https://github.com/spruceid/siwe-py) - _Sign in with Ethereum (siwe) for Python_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _Sign in with Ethereum (siwe) for Python_ - [Web3 DeFi for Ethereum integrations](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _A Python package with ready integrations for ERC-20, Uniswap and other popular projects_ - [Wake](https://getwake.io) - _All-in-one Python framework for contracts testing, fuzzing, deployment, vulnerability scanning and code navigation (language server - [Tools for Solidity](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/developers/docs/programming-languages/ruby/index.md b/public/content/developers/docs/programming-languages/ruby/index.md index b4f19688571..62a8ab7e436 100644 --- a/public/content/developers/docs/programming-languages/ruby/index.md +++ b/public/content/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ Need a more basic primer first? Check out [ethereum.org/learn](/learn/) or [ethe - [Finally understanding Ethereum accounts](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Finally Authenticating Rails Users with MetaMask](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Sign-In with Ethereum - Ruby Library and Rails Examples Release](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [How to connect to the Ethereum network using Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [How to generate a new Ethereum address in Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ Need a more basic primer first? Check out [ethereum.org/learn](/learn/) or [ethe - [eth.rb](https://github.com/q9f/eth.rb) - _Ruby library and RPC-client to handle Ethereum accounts, messages, and transactions_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _The Keccak (SHA3) hash used by Ethereum_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _Ruby implementation of Sign-In with Ethereum_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _Rails gem that adds SIWE local sign in routes_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _SIWE example using Ruby on Rails with custom controller_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _OmniAuth strategy for Sign In With Ethereum (SIWE)_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _Ruby implementation of Sign-In with Ethereum_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _Rails gem that adds SIWE local sign in routes_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _SIWE example using Ruby on Rails with custom controller_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _OmniAuth strategy for Sign In With Ethereum (SIWE)_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _OmniAuth strategy for authenticating via NFT ownership_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _Ethereum on Rails template which allows to connect MetaMask to Ruby on Rails_ diff --git a/public/content/developers/docs/standards/tokens/erc-721/index.md b/public/content/developers/docs/standards/tokens/erc-721/index.md index e8e3c335321..d618534b2b6 100644 --- a/public/content/developers/docs/standards/tokens/erc-721/index.md +++ b/public/content/developers/docs/standards/tokens/erc-721/index.md @@ -241,7 +241,7 @@ recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] f ## Popular NFTs {#popular-nfts} -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) list the top NFT on Ethereum by transfers volume. +- [Etherscan NFT Tracker](https://etherscan.io/nft-top-contracts) list the top NFT on Ethereum by transfers volume. - [CryptoKitties](https://www.cryptokitties.co/) is a game centered around breedable, collectible, and oh-so-adorable creatures we call CryptoKitties. - [Sorare](https://sorare.com/) is a global fantasy football game where you can collect limited editions collectibles, @@ -261,4 +261,4 @@ recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] f - [EIP-721: ERC-721 Non-Fungible Token Standard](https://eips.ethereum.org/EIPS/eip-721) - [OpenZeppelin - ERC-721 Docs](https://docs.openzeppelin.com/contracts/3.x/erc721) - [OpenZeppelin - ERC-721 Implementation](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) +- [Alchemy NFT API](https://www.alchemy.com/docs/reference/nft-api-quickstart) diff --git a/public/content/developers/docs/storage/index.md b/public/content/developers/docs/storage/index.md index ded3aaebe68..b8ad0b4cef7 100644 --- a/public/content/developers/docs/storage/index.md +++ b/public/content/developers/docs/storage/index.md @@ -42,7 +42,7 @@ In most cases, instead of storing all data onchain, the hash of where the data i Platforms with contract-based persistence: -- [Filecoin](https://docs.filecoin.io/about-filecoin/what-is-filecoin/) +- [Filecoin](https://docs.filecoin.io/basics/what-is-filecoin) - [Skynet](https://sia.tech/) - [Storj](https://storj.io/) - [Züs](https://zus.network/) @@ -147,7 +147,7 @@ Proof-of-stake based: **Züs - _Züs is a proof-of-stake dStorage platform with sharding and blobbers._** - [zus.network](https://zus.network/) -- [Documentation](https://0chaindocs.gitbook.io/zus-docs) +- [Documentation](https://docs.zus.network/zus-docs/) - [GitHub](https://github.com/0chain/) **Crust Network - _Crust is a dStorage platform on top of the IPFS._** @@ -159,7 +159,7 @@ Proof-of-stake based: **Swarm - _A distributed storage platform and content distribution service for the Ethereum web3 stack._** - [EthSwarm.org](https://www.ethswarm.org/) -- [Documentation](https://docs.ethswarm.org/docs/) +- [Documentation](https://docs.ethswarm.org/) - [GitHub](https://github.com/ethersphere/) **OrbitDB - _A decentralized peer to peer database on top of IPFS._** @@ -170,14 +170,14 @@ Proof-of-stake based: **Aleph.im - _Decentralized cloud project (database, file storage, computing and DID). A unique blend of offchain and onchain peer-to-peer technology. IPFS and multi-chain compatibility._** -- [Aleph.im](https://aleph.im/) -- [Documentation](https://aleph.im/#/developers/) +- [Aleph.im](https://aleph.cloud/) +- [Documentation](https://docs.aleph.cloud/) - [GitHub](https://github.com/aleph-im/) **Ceramic - _User-controlled IPFS database storage for data-rich and engaging applications._** - [Ceramic.network](https://ceramic.network/) -- [Documentation](https://developers.ceramic.network/learn/welcome/) +- [Documentation](https://developers.ceramic.network/) - [GitHub](https://github.com/ceramicnetwork/js-ceramic/) **Filebase - _S3-compatible decentralized storage and geo-redundant IPFS pinning service. All files uploaded to IPFS through Filebase are automatically pinned to the Filebase infrastructure with 3x replication across the globe._** @@ -206,7 +206,7 @@ Proof-of-stake based: ## Further reading {#further-reading} -- [What Is Decentralized Storage?](https://coinmarketcap.com/alexandria/article/what-is-decentralized-storage-a-deep-dive-by-filecoin) - _CoinMarketCap_ +- [What Is Decentralized Storage?](https://coinmarketcap.com/academy/article/what-is-decentralized-storage-a-deep-dive-by-filecoin) - _CoinMarketCap_ - [Busting Five Common Myths about Decentralized Storage](https://www.storj.io/blog/busting-five-common-myths-about-decentralized-storage) - _Storj_ _Know of a community resource that helped you? Edit this page and add it!_ diff --git a/public/content/developers/docs/web2-vs-web3/index.md b/public/content/developers/docs/web2-vs-web3/index.md index 2d81a672ba2..e7181d71a96 100644 --- a/public/content/developers/docs/web2-vs-web3/index.md +++ b/public/content/developers/docs/web2-vs-web3/index.md @@ -57,6 +57,6 @@ Note that these are general patterns that may not hold true in every network. Fu - [What is Web3?](/web3/) - _ethereum.org_ - [The Architecture of a Web 3.0 application](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) - _Preethi Kasireddy_ - [The Meaning of Decentralization](https://medium.com/@VitalikButerin/the-meaning-of-decentralization-a0c92b76a274) _Feb 6, 2017 - Vitalik Buterin_ -- [Why Decentralization Matters](https://medium.com/s/story/why-decentralization-matters-5e3f79f7638e) _Feb 18, 2018 - Chris Dixon_ +- [Why Decentralization Matters](https://onezero.medium.com/why-decentralization-matters-5e3f79f7638e) _Feb 18, 2018 - Chris Dixon_ - [What Is Web 3.0 & Why It Matters](https://medium.com/fabric-ventures/what-is-web-3-0-why-it-matters-934eb07f3d2b) _Dec 31, 2019 - Max Mersch and Richard Muirhead_ -- [Why We Need Web 3.0](https://medium.com/@gavofyork/why-we-need-web-3-0-5da4f2bf95ab) _Sep 12, 2018 - Gavin Wood_ +- [Why We Need Web 3.0](https://gavofyork.medium.com/why-we-need-web-3-0-5da4f2bf95ab) _Sep 12, 2018 - Gavin Wood_ diff --git a/public/content/developers/tutorials/all-you-can-cache/index.md b/public/content/developers/tutorials/all-you-can-cache/index.md index a6218cfcf24..ae557c7aeb8 100644 --- a/public/content/developers/tutorials/all-you-can-cache/index.md +++ b/public/content/developers/tutorials/all-you-can-cache/index.md @@ -12,7 +12,7 @@ When using rollups the cost of a byte in the transaction is a lot more expensive In this article you learn how to create and use a caching contract in such a way that any parameter value that is likely to be used multiple times will be cached and available for use (after the first time) with a much smaller number of bytes, and how to write offchain code that uses this cache. -If you want to skip the article and just see the source code, [it is here](https://github.com/qbzzt/20220915-all-you-can-cache). The development stack is [Foundry](https://book.getfoundry.sh/getting-started/installation). +If you want to skip the article and just see the source code, [it is here](https://github.com/qbzzt/20220915-all-you-can-cache). The development stack is [Foundry](https://getfoundry.sh/introduction/installation/). ## Overall design {#overall-design} @@ -53,7 +53,7 @@ These constants are used to interpret the special cases where we provide all the mapping(uint => uint) public val2key; ``` -A [mapping](https://www.geeksforgeeks.org/solidity-mappings/) between the values and their keys. This information is necessary to encode values before you send out the transaction. +A [mapping](https://www.geeksforgeeks.org/solidity/solidity-mappings/) between the values and their keys. This information is necessary to encode values before you send out the transaction. ```solidity // Location n has the value for key n+1, because we need to preserve @@ -305,7 +305,7 @@ If we get here it means we got a key that's not less than 16\*25615. ### Testing the cache {#testing-the-cache} -One of the advantages of Foundry is that [it lets you write tests in Solidity](https://book.getfoundry.sh/forge/tests), which makes it easier to write unit tests. The tests for the `Cache` class are [here](https://github.com/qbzzt/20220915-all-you-can-cache/blob/main/test/Cache.t.sol). Because the testing code is repetitive, as tests tend to be, this article only explains the interesting parts. +One of the advantages of Foundry is that [it lets you write tests in Solidity](https://getfoundry.sh/forge/tests/overview/), which makes it easier to write unit tests. The tests for the `Cache` class are [here](https://github.com/qbzzt/20220915-all-you-can-cache/blob/main/test/Cache.t.sol). Because the testing code is repetitive, as tests tend to be, this article only explains the interesting parts. ```solidity // SPDX-License-Identifier: UNLICENSED @@ -352,7 +352,7 @@ Tests are functions whose names start with `test`. This function checks the basi assertEq(cache.cacheRead(i), i*i); ``` -This is how you do the actual testing, using [`assert...` functions](https://book.getfoundry.sh/reference/forge-std/std-assertions). In this case, we check that the value we wrote is the one we read. We can discard the result of `cache.cacheWrite` because we know that cache keys are assigned linearly. +This is how you do the actual testing, using [`assert...` functions](https://getfoundry.sh/reference/forge-std/std-assertions/). In this case, we check that the value we wrote is the one we read. We can discard the result of `cache.cacheWrite` because we know that cache keys are assigned linearly. ```solidity } @@ -753,7 +753,7 @@ Since we use the low level `
.call()` function, we can't use `vm.expectR (_success,) = address(worm).call(_callInput); ``` -This is the way we verify that code [emits an event correctly](https://book.getfoundry.sh/cheatcodes/expect-emit) in Foundry. +This is the way we verify that code [emits an event correctly](https://getfoundry.sh/reference/cheatcodes/expect-emit/) in Foundry. ### The client {#the-client} One thing you don't get with Solidity tests is JavaScript code you can cut and paste into your own application. To write that code I deployed WORM to [Optimism Goerli](https://community.optimism.io/docs/useful-tools/networks/#optimism-goerli), [Optimism's](https://www.optimism.io/) new testnet. It is at address [`0xd34335b1d818cee54e3323d3246bd31d94e6a78a`](https://goerli-optimism.etherscan.io/address/0xd34335b1d818cee54e3323d3246bd31d94e6a78a). diff --git a/public/content/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md b/public/content/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md index 96cd2d20dfe..e4cd858de94 100644 --- a/public/content/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md +++ b/public/content/developers/tutorials/creating-a-wagmi-ui-for-your-contract/index.md @@ -95,7 +95,7 @@ The application is going inside [a `React.StrictMode` component](https://react.d ``` -The application is also inside [a `WagmiConfig` component](https://wagmi.sh/react/WagmiConfig). [The wagmi (we are going to make it) library](https://wagmi.sh/) connects the React UI definitions with [the viem library](https://viem.sh/) for writing an Ethereum decentralized application. +The application is also inside [a `WagmiConfig` component](https://wagmi.sh/react/api/WagmiProvider). [The wagmi (we are going to make it) library](https://wagmi.sh/) connects the React UI definitions with [the viem library](https://viem.sh/) for writing an Ethereum decentralized application. ```tsx @@ -134,7 +134,7 @@ This is the standard way to create a React component - define a function that is const { isConnected } = useAccount() ``` -Here we use [`useAccount`](https://wagmi.sh/react/hooks/useAccount) to check if we are connected to a blockchain through a wallet or not. +Here we use [`useAccount`](https://wagmi.sh/react/api/hooks/useAccount) to check if we are connected to a blockchain through a wallet or not. By convention, in React functions called `use...` are [hooks](https://www.w3schools.com/react/react_hooks.asp) that return some kind of data. When you use such hooks, not only does your component get the data, but when that data changes the component is re-rendered with the updated information. diff --git a/public/content/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md b/public/content/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md index 18ae61a95ae..6a6629e9556 100644 --- a/public/content/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md +++ b/public/content/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md @@ -31,7 +31,7 @@ In this guide, you will: [Kurtosis](https://www.kurtosis.com/) is a composable build system designed for configuring multi-container test environments. It specifically enables developers to create reproducible environments that require dynamic setup logic, such as blockchain testnets. -In this guide, the Kurtosis eth-network-package spins up a local Ethereum testnet with support for the [`geth`](https://geth.ethereum.org/) Execution Layer (EL) client, as well as [`teku`](https://consensys.net/knowledge-base/ethereum-2/teku/), [`lighthouse`](https://lighthouse.sigmaprime.io/), and [`lodestar`](https://lodestar.chainsafe.io/) Consensus Layer (CL) clients. This package serves as a configurable and composable alternative to networks in frameworks like Hardhat Network, Ganache, and Anvil. Kurtosis offers developers greater control and flexibility over the testnets they use, which is a major reason why the [Ethereum Foundation used Kurtosis to test the Merge](https://www.kurtosis.com/blog/testing-the-ethereum-merge) and continues to use it for testing network upgrades. +In this guide, the Kurtosis eth-network-package spins up a local Ethereum testnet with support for the [`geth`](https://geth.ethereum.org/) Execution Layer (EL) client, as well as [`teku`](https://consensys.io/teku), [`lighthouse`](https://lighthouse.sigmaprime.io/), and [`lodestar`](https://lodestar.chainsafe.io/) Consensus Layer (CL) clients. This package serves as a configurable and composable alternative to networks in frameworks like Hardhat Network, Ganache, and Anvil. Kurtosis offers developers greater control and flexibility over the testnets they use, which is a major reason why the [Ethereum Foundation used Kurtosis to test the Merge](https://www.kurtosis.com/blog/testing-the-ethereum-merge) and continues to use it for testing network upgrades. ## Setting up Kurtosis {#setting-up-kurtosis} diff --git a/public/content/developers/tutorials/eip-1271-smart-contract-signatures/index.md b/public/content/developers/tutorials/eip-1271-smart-contract-signatures/index.md index 5c60937ad63..ca341678640 100644 --- a/public/content/developers/tutorials/eip-1271-smart-contract-signatures/index.md +++ b/public/content/developers/tutorials/eip-1271-smart-contract-signatures/index.md @@ -34,7 +34,7 @@ In order to create a digital signature for use on Ethereum-based blockchains, yo Your Ethereum account (i.e. your externally-owned account/EOA) has a private key associated with it, and this is the private key that’s typically used when a website or dapp asks you for a signature (e.g. for “Log in with Ethereum”). -An app can [verify a signature](https://docs.alchemy.com/docs/how-to-verify-a-message-signature-on-ethereum) you create using a third-party library like ethers.js [without knowing your private key](https://en.wikipedia.org/wiki/Public-key_cryptography) and be confident that _you_ were the one that created the signature. +An app can [verify a signature](https://www.alchemy.com/docs/how-to-verify-a-message-signature-on-ethereum) you create using a third-party library like ethers.js [without knowing your private key](https://en.wikipedia.org/wiki/Public-key_cryptography) and be confident that _you_ were the one that created the signature. > In fact, because EOA digital signatures use public-key cryptography, they can be generated and verified **offchain**! This is how gasless DAO voting works — instead of submitting votes onchain, digital signatures can be created and verified offchain using cryptographic libraries. diff --git a/public/content/guides/how-to-use-a-bridge/index.md b/public/content/guides/how-to-use-a-bridge/index.md index eaecafab031..7a1ef528b4d 100644 --- a/public/content/guides/how-to-use-a-bridge/index.md +++ b/public/content/guides/how-to-use-a-bridge/index.md @@ -10,7 +10,7 @@ If there is a lot of traffic on Ethereum, it can become expensive. One solution **Prerequisite:** -- have a crypto wallet, you can follow this tutorial: [How to create an Ethereum account](/guides/how-to-create-an-ethereum-account/) +- have a crypto wallet—if you don't, follow this guide to [create an Ethereum account](/guides/how-to-create-an-ethereum-account/) - add funds to your wallet ## 1. Determine which layer 2 network you want to use @@ -39,7 +39,7 @@ Review the amount that you will get in return on the layer 2 network and the fee ## 5. Confirm the transaction in your wallet -You will have to pay a fee in form of ETH for processing the transaction. +You will have to pay a fee (called [gas](/glossary/#gas)) in form of ETH for processing the transaction. ![Common interface for bridging tokens](./bridge3.png) diff --git a/public/content/nft/index.md b/public/content/nft/index.md index 96d5972e81c..394a2a73c93 100644 --- a/public/content/nft/index.md +++ b/public/content/nft/index.md @@ -101,7 +101,7 @@ Security issues relating to NFTs are most often related to phishing scams, smart ## Further reading {#further-reading} - [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, January 2020_ -- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) +- [Etherscan NFT tracker](https://etherscan.io/nft-top-contracts) - [Blockscout NFT tracker](https://eth.blockscout.com/tokens?type=ERC-721,ERC-1155,ERC-404) - [ERC-721 token standard](/developers/docs/standards/tokens/erc-721/) - [ERC-1155 token standard](/developers/docs/standards/tokens/erc-1155/) diff --git a/public/content/roadmap/fusaka/average-blob-count-per-block.webp b/public/content/roadmap/fusaka/average-blob-count-per-block.webp new file mode 100644 index 00000000000..11709f65ecb Binary files /dev/null and b/public/content/roadmap/fusaka/average-blob-count-per-block.webp differ diff --git a/public/content/roadmap/fusaka/index.md b/public/content/roadmap/fusaka/index.md index 196b3855b0b..495fb6d6005 100644 --- a/public/content/roadmap/fusaka/index.md +++ b/public/content/roadmap/fusaka/index.md @@ -16,25 +16,25 @@ The Fusaka upgrade is only a single step in Ethereum's long-term development goa ## Improvements in Fusaka {#improvements-in-fusaka} -### Data availability & L2 scaling {#data-availability-and-l2-scaling} +### Scale blobs {#scale-blobs} #### PeerDAS {#peerdas} -Specification: https://eips.ethereum.org/EIPS/eip-7594 - -Resources: https://youtu.be/bONWd1x2TjQ?t=328 (dapplion on PeerDAS) - This is the _headliner_ of the Fusaka fork, the main feature added in this upgrade. Layer 2s currently post their data to Ethereum in blobs, the ephemeral data type created specifically for layer 2s. Pre-Fusaka, every full node has to store every blob to ensure that the data exists. As blob throughput rises, having to download all of this data becomes untenably resource-intensive. -With [data availability sampling](https://notes.ethereum.org/@fradamt/das-fork-choice) , instead of having to store all of the blob data, each node will be responsible for a subset of the blob data. Blobs are uniformly randomly distributed across nodes in the network with each full node holding only 1/8th of the data, therefore enabling theoretical scale up to 8x. To ensure availability of the data, any portion of the data can be reconstructed from any existing 50% of the whole with methods that drive down the probability of wrong or missing data to a cryptographically negligible level (~one in 10²⁰ to one in 10²⁴). +With [data availability sampling](https://notes.ethereum.org/@fradamt/das-fork-choice) , instead of having to store all of the blob data, each node will be responsible for a subset of the blob data. Blobs are uniformly randomly distributed across nodes in the network with each full node holding only 1/8th of the data, therefore enabling theoretical scale up to 8x. To ensure availability of the data, any portion of the data can be reconstructed from any existing 50% of the whole with methods that drive down the probability of wrong or missing data to a cryptographically negligible level (~one in 1020 to one in 1024). This keeps hardware and bandwidth requirements for nodes tenable while enabling blob scaling resulting in more scale with smaller fees for layer 2s. -In-depth: https://eprint.iacr.org/2024/1362.pdf +[Learn more about PeerDAS](/roadmap/fusaka/peerdas/) + +**Resources**: -#### Blob parameter only forks {#blob-parameter-only-forks} +- [EIP-7594 technical specification](https://eips.ethereum.org/EIPS/eip-7594) +- [DappLion on PeerDAS: Scaling Ethereum Today | ETHSofia 2024](https://youtu.be/bONWd1x2TjQ?t=328) +- [Academic: A Documentation of Ethereum’s PeerDAS (PDF)](https://eprint.iacr.org/2024/1362.pdf) -Specification: https://eips.ethereum.org/EIPS/eip-7892 +#### Blob-Parameter-Only forks {#blob-parameter-only-forks} Layer 2s scale Ethereum - as their networks grow, they need to post more data to Ethereum. This means that Ethereum will need to increase the number of blobs available to them as time goes on. Although PeerDAS enables scaling blob data, it needs to be done gradually and safely. @@ -44,11 +44,15 @@ These coordinated upgrades generally include a lot of changes, require a lot of Blob parameter only forks can be set by clients, similarly to other configuration like gas limit. Between major Ethereum upgrades, clients can agree to increase the `target` and `max` blobs to e.g. 9 and 12 and then node operators will update to take part in that tiny fork. These blob parameter only forks can be configured at any time. -#### Blob base-fee bounded by execution costs {#blob-base-fee-bounded-by-execution-costs} +When blobs were first added to the network in the Dencun upgrade, the target was 3. That was increased to 6 in Pectra and, after Fusaka, that can now be increased at a sustainable rate independently of these major network upgrades. + +![Chart showing average blob count per block and increasing targets with upgrades](./average-blob-count-per-block.webp) -Specification: https://eips.ethereum.org/EIPS/eip-7918 +Graph source: [Ethereum Blobs - @hildobby, Dune Analytics](https://dune.com/hildobby/blobs) -Storybook explainer: https://notes.ethereum.org/@anderselowsson/AIG +**Resources**: [EIP-7892 technical specification](https://eips.ethereum.org/EIPS/eip-7892) + +#### Blob base-fee bounded by execution costs {#blob-base-fee-bounded-by-execution-costs} Layer 2s pay two bills when they post data: the blob fee and the execution gas needed to verify those blobs. If execution gas dominates, the blob fee auction can spiral down to 1 wei and stop being a price signal. @@ -58,31 +62,42 @@ EIP-7918 pins a proportional reserve price under every blob. When the reserve is - layer 2s pay at least a meaningful slice of the compute they force on nodes - base-fee spikes on the EL can no longer strand the blob fee at 1 wei -### Gas limits, fees & DoS hardening {#gas-limits-fees-and-dos-hardening} +**Resources**: -#### Set upper bounds for MODEXP {#set-upper-bounds-for-modexp} +- [EIP-7918 technical specification](https://eips.ethereum.org/EIPS/eip-7918) +- [Storybook explainer](https://notes.ethereum.org/@anderselowsson/AIG) + +### Scale L1 {#scale-l1} -Specification: https://eips.ethereum.org/EIPS/eip-7823 +#### History expiry and simpler receipts {#history-expiry} + +In July 2025, Ethereum execution clients [began to support partial history expiry](https://blog.ethereum.org/2025/07/08/partial-history-exp). This dropped history older than [the Merge](https://ethereum.org/roadmap/merge/) in order to reduce the disk space required by node operators as Ethereum continues to grow. + +This EIP is in a section apart from the "Core EIPs" because the fork doesn't actually implement any changes - it's a notice that client teams must support history expiry by the Fusaka upgrade. Practically, clients can implement this any time but adding it to the upgrade concretely put it on their to-do list and enabled them to test Fusaka changes in conjunction with this feature. + +**Resources**: [EIP-7642 technical specification](https://eips.ethereum.org/EIPS/eip-7642) + +#### Set upper bounds for MODEXP {#set-upper-bounds-for-modexp} Until now, the MODEXP precompile accepted numbers of virtually any size. That made it hard to test, easy to abuse, and risky for client stability. EIP-7823 puts a clear limit in place: each input number can be at most 8192 bits (1024 bytes) long. Anything bigger is rejected, the transaction’s gas is burned, and no state changes occur. It very comfortably covers real-world needs while removing the extreme cases that complicated gas limit planning and security reviews. This change provides more security and DoS protection without affecting user or developer experience. -#### Transaction Gas Limit Cap {#transaction-gas-limit-cap} +**Resources**: [EIP-7823 technical specification](https://eips.ethereum.org/EIPS/eip-7823) -Specification: https://eips.ethereum.org/EIPS/eip-7825 +#### Transaction Gas Limit Cap {#transaction-gas-limit-cap} EIP-[7825](https://eips.ethereum.org/EIPS/eip-7825) adds a cap of 16,777,216 (2^24) gas per transaction. It’s proactive DoS hardening by bounding the worst-case cost of any single transaction as we raise the block gas limit. It makes validation and propagation easier to model to allow us to tackle scaling via raising the gas limit. Why exactly 2^24 gas? It’s comfortably smaller than today’s gas limit, is large enough for real contract deployments & heavy precompiles, and a power of 2 makes it easy to implement across clients. This new maximum transaction size is a similar to pre-Pectra average block size, making it a reasonable limit for any operation on Ethereum. -#### MODEXP Gas Cost Increase {#modexp-gas-cost-increase} +**Resources**: [EIP-7825 technical specification](https://eips.ethereum.org/EIPS/eip-7825) -Specification: https://eips.ethereum.org/EIPS/eip-7883 +#### `MODEXP` gas cost increase {#modexp-gas-cost-increase} MODEXP is a precompile built‑in function that calculates modular exponentiation, a type of large‑number math used in RSA signature verification and proof systems. It allows contracts to run these calculations directly without having to implement them themselves. Devs and client teams identified MODEXP as a major obstacle to increasing the block gas limit because the current gas pricing often underestimates how much computing power certain inputs require. This means one transaction using MODEXP could take up most of the time needed to process an entire block, slowing down the network. -EIP‑7883 changes the pricing to match real computational costs by: +This EIP changes the pricing to match real computational costs by: - raising the minimum charge from 200 to 500 gas and removing the one‑third discount from EIP-2565 on the general cost calculation - increasing the cost more sharply when the exponent input is very long. if the exponent (the “power” number you pass as the second argument) is longer than 32 bytes / 256 bits, the gas charge climbs much faster for each extra byte @@ -90,15 +105,28 @@ EIP‑7883 changes the pricing to match real computational costs by: By better matching costs to actual processing time, MODEXP can no longer cause a block to take too long to validate. This change is one of several aimed at making it safe to increase Ethereum’s block gas limit in the future. +**Resources**: [EIP-7883 technical specification](https://eips.ethereum.org/EIPS/eip-7883) + #### RLP Execution Block Size Limit {#rlp-execution-block-size-limit} -Specification: https://eips.ethereum.org/EIPS/eip-7934 +This creates a ceiling on how big a block is allowed to be - this is a limit on what's _sent_ over the network and is separate from the gas limit, which limits the _work_ inside a block. The block size cap is 10 MiB, with a small allowance (2 MiB) reserved for consensus data so that everything fits and propagates cleanly. If a block shows up bigger than that, the clients reject it. +This is needed because very large blocks take longer to spread and verify across the network and can create consensus issues or be abused as a DoS vector. Also, the consensus layer’s gossip already won’t forward blocks over ~10 MiB, so aligning the execution layer to that limit avoids weird “seen by some, dropped by others” situations. -Ethereum adds a hard cap on the [RLP](/developers/docs/data-structures-and-encoding/rlp/)-encoded execution block size: 10 MiB total, with a 2 MiB safety margin reserved for beacon-block framing. Practically, clients define `MAX_BLOCK_SIZE = 10,485,760` bytes and `SAFETY_MARGIN = 2,097,152` bytes, and reject any execution block whose RLP payload exceeds `MAX_RLP_BLOCK_SIZE = MAX_BLOCK_SIZE − SAFETY_MARGIN`. The goal is to bound worst-case propagation/validation time and align with CL gossip behavior (blocks over ~10 MiB aren’t propagated), reducing reorg/DoS risk without changing gas accounting. +The nitty-gritty: this is a cap on the [RLP](/developers/docs/data-structures-and-encoding/rlp/)-encoded execution block size. 10 MiB total, with a 2 MiB safety margin reserved for beacon-block framing. Practically, clients define -#### Set default gas limit to XX million {#set-default-gas-limit-to-xx-million} +`MAX_BLOCK_SIZE = 10,485,760` bytes and -Specification: https://eips.ethereum.org/EIPS/eip-7935 +`SAFETY_MARGIN = 2,097,152` bytes, + +and reject any execution block whose RLP payload exceeds + +`MAX_RLP_BLOCK_SIZE = MAX_BLOCK_SIZE − SAFETY_MARGIN` + +The goal is to bound worst-case propagation/validation time and align with consensus layer gossip behavior, reducing reorg/DoS risk without changing gas accounting. + +**Resources**: [EIP-7934 technical specification](https://eips.ethereum.org/EIPS/eip-7934) + +#### Set default gas limit to XX million {#set-default-gas-limit-to-xx-million} Prior to raising the gas limit from 30M to 36M in February 2025 (and subsequently to 45M), this value hadn’t changed since the Merge (September 2022). This EIP aims to make consistent scaling a priority. @@ -106,27 +134,25 @@ EIP-7935 coordinates EL client teams to raise the default gas-limit above today Devnet planning targets ~60M stress (full blocks with synthetic load) and iterative bumps; research says worst-case block-size pathologies shouldn’t bind below ~150M. Rollout should be paired with the transaction gas-limit cap (EIP-7825) so no single transaction can dominate as limits rise. -### Preconfirmation support {#preconfirmation-support} +**Resources**: [EIP-7935 technical specification](https://eips.ethereum.org/EIPS/eip-7935) -#### Deterministic proposer lookahead {#deterministic-proposer-lookahead} +### Improve UX {#improve-ux} -Specification: https://eips.ethereum.org/EIPS/eip-7917 +#### Deterministic proposer lookahead {#deterministic-proposer-lookahead} With EIP-7917, Beacon Chain will become aware of upcoming block proposers for the next epoch. Having a deterministic view on which validators will be proposing future blocks can enable [preconfirmations](https://ethresear.ch/t/based-preconfirmations/17353) - a commitment with the upcoming proposer that guarantees the user transaction will be included in their block without waiting for the actual block. This feature benefits client implementations and security of the network as it prevents edge cases where validators could manipulate the proposer schedule. The lookahead also allows for less complexity of the implementation. -### Opcodes & precompiles (developer goodies) {#opcodes-and-precomliles} +**Resources**: [EIP-7917 technical specification](https://eips.ethereum.org/EIPS/eip-7917) #### Count leading zeros (CLZ) opcode {#count-leading-zeros-opcode} -Specification: https://eips.ethereum.org/EIPS/eip-7939 - -EIP-7939 adds a small EVM instruction, CLZ (“count leading zeros”). Given a 256-bit value, it returns how many zero bits are at the front — and returns 256 if the value is entirely zero. This is a common feature in many instruction set architectures as it enables more efficient arithmetic operations. In practice this collapses today’s hand-rolled bit scans into one step, so finding the first set bit, scanning bytes, or parsing bitfields becomes simpler and cheaper. The opcode is low, fixed-cost and has been benchmarked to be on par with a basic add, which trims bytecode and saves gas for the same work. +This feature adds a small EVM instruction, **count leading zeroes (CLZ)**. Most everything in the EVM is represented as a 256-bit value—this new opcode returns how many zero bits are at the front. This is a common feature in many instruction set architectures as it enables more efficient arithmetic operations. In practice this collapses today’s hand-rolled bit scans into one step, so finding the first set bit, scanning bytes, or parsing bitfields becomes simpler and cheaper. The opcode is low, fixed-cost and has been benchmarked to be on par with a basic add, which trims bytecode and saves gas for the same work. -### Precompile for secp256r1 Curve Support {#secp256r1-precompile} +**Resources**: [EIP-7939 technical specification](https://eips.ethereum.org/EIPS/eip-7939) -Specification: https://eips.ethereum.org/EIPS/eip-7951 +#### Precompile for secp256r1 Curve Support {#secp256r1-precompile} Introduces a built-in, passkey-style secp256r1 (P-256) signature checker at the fixed address `0x100` using the same call format already adopted by many L2s and fixing edge cases, so contracts written for those environments work on L1 without changes. @@ -134,13 +160,32 @@ UX upgrade! For users, this unlocks device-native signing and passkeys. Wallets For developers, it takes a 160-byte input and returns a 32-byte output, making it easy to port existing libraries and L2 contracts. Under the hood, it includes point-at-infinity and modular-comparison checks to eliminate tricky edge cases without breaking valid callers. -[More about RIP-7212](https://www.alchemy.com/blog/what-is-rip-7212) _(Note that EIP-7951 superseded RIP-7212)_ +**Resources**: + +- [EIP-7951 technical specification](https://eips.ethereum.org/EIPS/eip-7951) +- [More about RIP-7212](https://www.alchemy.com/blog/what-is-rip-7212) _(Note that EIP-7951 superseded RIP-7212)_ + +### Meta {#meta} + +#### `eth_config` JSON-RPC method {#eth-config} + +This is a JSON-RPC call that allows you to ask your node what fork settings you're running. It returns three snapshots: `current`, `next`, & `last` so that validators and monitoring tools can verify that clients are lined up for an upcoming fork. + +Practically speaking, this is to address a shortcoming discovered when the Pectra fork went live on the Holesky testnet in early 2025 with minor misconfigurations which resulted in a non-finalizing state. This helps testing teams and developers ensure that major forks will behave as expected when moving from devnets to testnets, and from testnets to Mainnet. + +Snapshots include: `chainId`, `forkId`, planned fork activation time, which precompiles are active, precompile addresses, system contract dependencies, and the fork's blob schedule. + +This EIP is in a section apart from the "Core EIPs" because the fork doesn't actually implement any changes - it's a notice that client teams must implement this JSON-RPC method by the Fusaka upgrade. + +**Resources**: [EIP-7910 technical specification](https://eips.ethereum.org/EIPS/eip-7910) + +## FAQ {#FAQ} -## Does this upgrade affect all Ethereum nodes and validators? {#does-this-upgrade-affect-all-ethereum-nodes-and-validators} +### Does this upgrade affect all Ethereum nodes and validators? {#does-this-upgrade-affect-all-ethereum-nodes-and-validators} Yes, the Fusaka upgrade requires updates to both [execution clients and consensus clients](/developers/docs/nodes-and-clients/). All main Ethereum clients will release versions supporting the hard fork marked as high priority. You can keep up with when these releases will be available in client Github repos, their [Discord channels](https://ethstaker.org/support), the [EthStaker Discord](https://dsc.gg/ethstaker), or by subscribing to the Ethereum blog for protocol updates. To maintain synchronization with the Ethereum network post-upgrade, node operators must ensure they are running a supported client version. Note that the information about client releases is time-sensitive, and users should refer to the latest updates for the most current details. -## How can ETH be converted after the hard fork? {#how-can-eth-be-converted-after-the-hardfork} +### How can ETH be converted after the hard fork? {#how-can-eth-be-converted-after-the-hardfork} - **No Action Required for Your ETH**: Following the Ethereum Fusaka upgrade, there is no need to convert or upgrade your ETH. Your account balances will remain the same, and the ETH you currently hold will remain accessible in its existing form after the hard fork. - **Beware of Scams!**  **anyone instructing you to "upgrade" your ETH is trying to scam you.** There is nothing you need to do in relation to this upgrade. Your assets will stay completely unaffected. Remember, staying informed is the best defense against scams. diff --git a/public/content/roadmap/fusaka/peerdas/index.md b/public/content/roadmap/fusaka/peerdas/index.md new file mode 100644 index 00000000000..2325a2db209 --- /dev/null +++ b/public/content/roadmap/fusaka/peerdas/index.md @@ -0,0 +1,87 @@ +--- +title: PeerDAS +description: Learn about PeerDAS as part of the Fusaka Ethereum protocol upgrade +lang: en +--- + +# PeerDAS {#peer-das} + +The Ethereum protocol is undergoing its most significant scaling upgrade since the [introduction of blob transactions with EIP-4844](/roadmap/danksharding/). As part of the [Fusaka upgrade](/roadmap/fusaka/), PeerDAS introduces a new way of handling blob data, delivering roughly an order-of-magnitude increase in **[data availability (DA)](/developers/docs/data-availability/)** capacity for L2s. + +[More on blob scaling roadmap](https://blog.ethereum.org/2025/08/22/protocol-update-002) + +## Scalability {#scalability} + +[Ethereum’s vision](/roadmap/vision/) is to be a neutral, secure and decentralized platform available for everyone in the world. As network usage grows, this requires balancing the trilemma of scale, security, and decentralization of the network. If Ethereum simply increased the data handled by the network within its current design, it would run the risk of overwhelming the [nodes that Ethereum relies on for its decentralization](/developers/docs/nodes-and-clients/). Scalability requires rigorous mechanism design that minimizes trade-offs. + +One of the strategies to achieve this goal is to allow for a diverse ecosystem of layer 2 scaling solutions rather than processing all transactions on [layer 1 (L1)](/glossary/#layer-1) Mainnet. [Layer 2s (L2s)](/glossary/#layer-2) or [rollups](/glossary#rollups) process transactions on their own separate chains and use Ethereum for verification and security. Publishing only security-critical commitments and compressing payloads lets L2s use Ethereum’s DA capacity more efficiently. In turn, L1 carries less data without compromising security guarantees, while L2s onboard more users at lower gas costs. Initially, L2s published data as `calldata` in ordinary transactions, which competed with L1 transactions for gas and was impractical for bulk data availability. + +## Proto-Danksharding {#proto-danksharding} + +The first major step towards scaling L2 was the Dencun upgrade, which introduced [Proto-Danksharding](/roadmap/danksharding/) (EIP-4844). This upgrade created a new, specialized data type for rollups called blobs. [Blobs](/developers/docs/data-availability/blockchain-data-storage-strategies/#eip-4844-blobs), or binary large objects, are ephemeral pieces of arbitrary data that don’t need EVM execution and nodes store only for a limited amount of time. This more efficient processing allowed for L2s to publish more data to Ethereum and scale even further. + +Despite already having strong benefits for scaling, using blobs is only part of the end goal. In the current protocol, every node in the network still needs to download every blob. The bottleneck becomes the bandwidth required of individual nodes, with the amount of data that needs to be downloaded directly increasing with higher blob counts. + +Ethereum does not compromise on decentralization, and bandwidth is one of the most sensitive knobs. Even with powerful computing available widely to anyone who can afford it, [upload bandwidth limitations](https://www.speedtest.net/global-index) even in highly urban cities in developed nations (such as [Germany](https://www.speedtest.net/global-index/germany), [Belgium](https://www.speedtest.net/global-index/belgium), [Australia](https://www.speedtest.net/global-index/australia) or the [United States](https://www.speedtest.net/global-index/united-states)) could restrict nodes to only being able to run from data centers if bandwidth requirements aren’t carefully tuned. + +Node operators have increasingly high bandwidth and disk space requirements as blobs increase. The size and quantity of blobs are limited by these constraints. Each blob can carry up to 128kb of data with average of 6 blobs per block. This was only the first step towards a future design that uses blobs in an even more efficient way. + +## Data availability sampling {#das} + +[Data availability](/developers/docs/data-availability/) is the guarantee that all of the data needed to independently validate the chain are accessible to all network participants. It ensures that the data has been fully published and can be used to trustlessly verify the new state of the chain or incoming transactions. + +Ethereum blobs provide a strong data availability guarantee that ensures the security of L2s. To do this, Ethereum nodes need to download and store blobs in their entirety. But what if we can distribute blobs in the network more efficiently and avoid this limitation? + +A different approach to storing the data and ensure its availability is **data availability sampling (DAS)**. Instead of every computer that runs Ethereum fully storing every single blob, DAS introduces a decentralized division of labor. It breaks the burden of processing the data by distributing smaller, manageable tasks across the entire network of nodes. Blobs are divided into pieces and each node only downloads a few pieces using a mechanism for uniform random distribution across all nodes. + +This introduces a new problem—proving availability and integrity of the data. How can the network guarantee that the data is available and it’s all correct when individual nodes hold only small pieces? A malicious node could serve fake data and easily break strong data availability guarantees! This is where cryptography comes to help. + +To ensure the integrity of the data, EIP-4844 was already implemented with KZG commitments. These are cryptographic proofs created when a new blob is added to the network. A small proof is included in each block, and nodes can verify that received blobs correspond to the block’s KZG commitment. + +DAS is a mechanism that builds on top of this and ensures the data is both correct and available. Sampling is a process where a node queries only a small part of the data and verifies it against the commitment. KZG is a polynomial commitment scheme which means that any single point on the polynomial curve can be verified. By checking only a couple points on the polynomial, the client doing the sampling can have a strong probabilistic guarantee that the data is available. + +## PeerDAS {#peer-das} + +[PeerDAS (EIP-7594)](https://eips.ethereum.org/EIPS/eip-7594) is a specific proposal that implements the DAS mechanism in Ethereum, marking probably the biggest upgrade since The Merge. PeerDAS is designed to extend blob data, dividing it into columns and distributing a subset to nodes. + +Ethereum borrows some clever math to achieve this: it applies Reed-Solomon style erasure coding to blob data. Blob data are represented as a polynomial whose coefficients encode the data, then evaluate that polynomial at additional points to create an extended blob, doubling the number of evaluations. This added redundancy enables erasure recovery: even if some evaluations are missing, the original blob can be reconstructed as long as at least half of the total data, including extended pieces are available. + +![Extended polynomial](./polynomial.png) + +In reality, this polynomial has thousands of coefficients. KZG commits are values of few bytes, something like a hash, known to all nodes. Every node holding enough data points can [efficiently reconstruct a full set of blob data](https://arxiv.org/abs/2207.11079). + +> Fun fact: the same coding technique was used by DVDs. If you scratched a DVD, the player was still able to read it thanks to Reed-Solomon coding that adds missing pieces of the polynomial. + +Historically, data in blockchains, whether blocks or blobs, was broadcast to all nodes. With PeerDAS’s split-and-sample approach, broadcasting everything to everyone is no longer necessary. Post-Fusaka, consensus layer networking is organized into gossip topics/subnets: blob columns are assigned to specific subnets, and each node subscribes to a predetermined subsets and custodies only those pieces. + +With PeerDAS, extended blob data is divided into 128 pieces called columns. Data is distributed to these nodes via a dedicated gossip protocol on specific subnets that they subscribe to. Each regular node on the network participates in at least 8 randomly chosen column subnets. Receiving data from only 8 of 128 subnets means that this default node receives only 1/16 of all data, but because the data was extended this is 1/8th of the original data. + +This allows for a new theoretical scaling limit of 8x the current “everyone downloads everything” schema. With nodes subscribing to different random subnets serving blob columns, the probability is very high that they are uniformly distributed and therefore every piece of data exists somewhere in the network. Nodes running validators are required to subscribe to more subnets with each validator they run. + +> Each node has a unique randomly generated ID, it normally servers as it's public identity for connections. In PeerDAS, this number is used to determine random set subnets it has to subscribe to resulting in a uniform random distribution of all blob data. + +Once a node successfully reconstructs the original data, it then redistributes the recovered columns back into the network, actively healing any data gaps and enhancing overall system resilience. Nodes connected to validators with a combined balance ≥4096 ETH must be a supernode and therefore must subscribe to all data column subnets and custody all columns. These supernodes will continuously heal data gaps. The probabilistically self-healing nature of the protocol allows for strong availability guarantees while not limiting home operators holding only portions of the data. + +![Nodes subscribing to columns distributed via subnets](./subnets.png) + +Data availability can be confirmed by any node holding only small subset of the blob data thanks to the sampling mechanism described above. This availability is enforced: validators must follow new fork-choice rules, meaning they will only accept and vote for blocks after they have verified the availability of the data. + +The direct impact on users (particularly L2 users) is lower fees. With 8x more space for rollup data, user operations on their chain becomes even cheaper with time. But lower fees post-Fusaka will take time and depend on BPOs. + +## Blob-Parameter-Only (BPOs) {#bpo} + +The network will theoretically be able to process 8x more blobs, but blob increases are a change that need to be properly tested and executed safely in a stepwise manner. Testnets provide enough confidence to deploy the features on Mainnet but we need to ensure stability of the p2p network before enabling a significantly higher number of blobs. + +To gradually raise the target number of blobs per block without overwhelming the network, Fusaka introduces **[Blob-Parameter-Only (BPO)](https://ethereum-magicians.org/t/blob-parameter-only-bpo-forks/22623)** forks. Unlike regular forks that need broad ecosystem coordination, agreement, and software updates, [BPOs (EIP-7892)](https://eips.ethereum.org/EIPS/eip-7892) are pre-programmed upgrades that increase the maximum number of blobs over time without intervention. + +This means that immediately after Fusaka activates and PeerDAS goes live, the number of blobs will remain unchanged. The number of blobs will begin doubling every few weeks until it reaches a maximum of 48, while developers monitor to ensure the mechanism is working as expected and isn’t having adverse effects on the nodes running the network. + +## Future directions {#future-directions} + +PeerDAS is only a step [toward a greater scaling vision of FullDAS](https://ethresear.ch/t/fulldas-towards-massive-scalability-with-32mb-blocks-and-beyond/19529), or Danksharding. While PeerDAS uses 1D erasure coding to each blob individually, full Danksharding will use a more complete 2D erasure coding scheme across the entire matrix of blob data. Extending data in two dimensions creates even stronger redundancy properties and more efficient reconstruction and verification. Realizing FullDAS will require substantial network and protocol optimizations, along with additional research. + +## Further reading {#further-reading} + +- [PeerDAS Peer Data Availability sampling by Francesco D'Amato](https://www.youtube.com/watch?v=WOdpO1tH_Us) +- [A Documentation of Ethereum’s PeerDAS](https://eprint.iacr.org/2024/1362.pdf) +- [Proving the Security of PeerDAS without the AGM](https://eprint.iacr.org/2025/1683) diff --git a/public/content/roadmap/fusaka/peerdas/polynomial.png b/public/content/roadmap/fusaka/peerdas/polynomial.png new file mode 100644 index 00000000000..686df059aed Binary files /dev/null and b/public/content/roadmap/fusaka/peerdas/polynomial.png differ diff --git a/public/content/roadmap/fusaka/peerdas/subnets.png b/public/content/roadmap/fusaka/peerdas/subnets.png new file mode 100644 index 00000000000..ee86381ef93 Binary files /dev/null and b/public/content/roadmap/fusaka/peerdas/subnets.png differ diff --git a/public/content/social-networks/index.md b/public/content/social-networks/index.md index 065c481270b..8b5e89f525f 100644 --- a/public/content/social-networks/index.md +++ b/public/content/social-networks/index.md @@ -75,6 +75,8 @@ Users use the platform's native [ERC-20](/glossary/#erc-20) token $MIND to pay f - **[Mirror.xyz](https://mirror.xyz/)** - _Mirror is a decentralized, user-owned publishing platform built on Ethereum for users to crowdfund ideas, monetize content, and build high-value communities._ - **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol is a composable and decentralized social graph helping creators take ownership of their content wherever they go in the digital garden of the decentralized internet._ - **[Farcaster](https://farcaster.xyz/)** - _Farcaster is a sufficiently decentralized social network. It is an open protocol that can support many clients, just like email._ +- **[Ethereum Follow Protocol](https://efp.app/)** - _Ethereum Follow Protocol is a fully decentralized onchain social graph for Ethereum accounts, advancing the vision of a modular Ethereum identity stack, complementing ENS and SIWE._ +- **[Ethereum Comments Protocol](https://www.ethcomments.xyz/)** - _A new, programmable social content primitive on Ethereum to put your thoughts onchain._ ## Web2 social networks on Ethereum {#web2-social-networks-and-ethereum} diff --git a/public/content/translations/ar/decentralized-identity/index.md b/public/content/translations/ar/decentralized-identity/index.md index 016d646d2c1..acf6318b4d2 100644 --- a/public/content/translations/ar/decentralized-identity/index.md +++ b/public/content/translations/ar/decentralized-identity/index.md @@ -133,7 +133,7 @@ summaryPoint3: بفضل العملات الرقمية، أصبح لدى المس يمكن أن تساعد الهوية اللامركزية في استبدال عمليات تسجيل الدخول المستندة إلى كلمة المرور [بمصادقة لامركزية](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). يمكن لمقدمي الخدمات إصدار مصادقات للمستخدمين، والتي يمكن تخزينها في محفظة إثيريوم. ومن أمثلة المصادقة [NFT](/nft/) التي تمنح المالك حق الوصول إلى مجتمع ما على الإنترنت. -ستقوم وظيفة [تسجيل الدخول باستخدام إثيريوم](https://login.xyz/) حينئذ بتمكين الخوادم لتأكيد حساب المستخدم في إثيريوم والحصول على المصادقة المطلوبة من عنوان الحساب الخاص بهم. وهذا يعني أنه يمكن للمستخدمين الوصول إلى المنصات والمواقع دون الحاجة إلى حفظ كلمات المرور الطويلة وتحسين تجربة المستخدمين على الإنترنت. +ستقوم وظيفة [تسجيل الدخول باستخدام إثيريوم](https://siwe.xyz/) حينئذ بتمكين الخوادم لتأكيد حساب المستخدم في إثيريوم والحصول على المصادقة المطلوبة من عنوان الحساب الخاص بهم. وهذا يعني أنه يمكن للمستخدمين الوصول إلى المنصات والمواقع دون الحاجة إلى حفظ كلمات المرور الطويلة وتحسين تجربة المستخدمين على الإنترنت. ### ٢. مصادقة KYC {#kyc-authentication} @@ -181,5 +181,5 @@ summaryPoint3: بفضل العملات الرقمية، أصبح لدى المس ### المجتمعات {#communities} - [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _داعمو معيار ERC725 لإدارة الهوية على سلسلة كتل إثيريوم_ -- [خادم SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _مجتمع للمتحمسين والمبرجمين الذين يعملون على تسجيل الدخول من خلال إثيريوم _ +- [خادم EthID Discord](https://discord.com/invite/ZUyG3mSXFD) — _مجتمع للمتحمسين والمبرجمين الذين يعملون على تسجيل الدخول من خلال إثيريوم _ - [Veramo Labs](https://discord.gg/sYBUXpACh4) - _مجتمع من المبرجمين يساهم في بناء إطار عمل للبيانات القابلة للتحقق منها للتطبيقات_ diff --git a/public/content/translations/az/decentralized-identity/index.md b/public/content/translations/az/decentralized-identity/index.md index 0b8171e7967..b5a7e0be784 100644 --- a/public/content/translations/az/decentralized-identity/index.md +++ b/public/content/translations/az/decentralized-identity/index.md @@ -133,7 +133,7 @@ Mərkəzləşdirilməmiş kimlik bir çox potensial istifadə hallarına malikdi Mərkəzləşdirilməmiş kimlik parol əsaslı girişləri ilə əvəz etməyə kömək edə bilər [mərkəzləşdirilməmiş autentifikasiya](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/"). Xidmət təminatçıları istifadəçilərə Ethereum cüzdanında saxlanıla bilən sertifikatlar verə bilər. Misal attestasiya sahibinə onlayn icmaya giriş imkanı verən [NFT](/nft/) ola bilər. -[Ethereum ilə daxil olun](https://login.xyz/) funksiyası daha sonra serverlərə istifadəçinin Ethereum hesabını təsdiqləməyə və hesab ünvanından tələb olunan sertifikatı əldə etməyə imkan verəcək. Bu o deməkdir ki, istifadəçilər uzun parolları yadda saxlamadan platformalara və vebsaytlara daxil ola bilər ki, bu da istifadəçilər üçün onlayn təcrübəni yaxşılaşdırır. +[Ethereum ilə daxil olun](https://siwe.xyz/) funksiyası daha sonra serverlərə istifadəçinin Ethereum hesabını təsdiqləməyə və hesab ünvanından tələb olunan sertifikatı əldə etməyə imkan verəcək. Bu o deməkdir ki, istifadəçilər uzun parolları yadda saxlamadan platformalara və vebsaytlara daxil ola bilər ki, bu da istifadəçilər üçün onlayn təcrübəni yaxşılaşdırır. ### 2. KYC identifikasiyası {#kyc-authentication} @@ -184,6 +184,6 @@ Ethereum-dan mərkəzləşdirilməmiş kimlik həlləri üçün əsas kimi istif ### İcmalar {#communities} - [GitHub-da ERC-725 Alyansı](https://github.com/erc725alliance) — _Ethereum blokçeynində kimlik idarə etmək üçün ERC725 standartının tərəfdarları_ -- [SpruceID Discord serveri](https://discord.com/invite/Sf9tSFzrnt) — _Ethereum ilə Giriş üzərində işləyən həvəskarlar və tərtibatçılar üçün icma_ +- [EthID Discord serveri](https://discord.com/invite/ZUyG3mSXFD) — _Ethereum ilə Giriş üzərində işləyən həvəskarlar və tərtibatçılar üçün icma_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Tətbiqlər üçün yoxlanıla bilən məlumatlar üzrə çərçivənin qurulmasına töhfə verən tərtibatçılar icması_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Müxtəlif sənayelərdə mərkəzləşdirilməmiş kimlikdən istifadə halları üzərində işləyən tərtibatçılar və inşaatçılar icması_ diff --git a/public/content/translations/bn/decentralized-identity/index.md b/public/content/translations/bn/decentralized-identity/index.md index f8c97b75860..8c7bcd98565 100644 --- a/public/content/translations/bn/decentralized-identity/index.md +++ b/public/content/translations/bn/decentralized-identity/index.md @@ -133,7 +133,7 @@ summaryPoint3: ক্রিপ্টোকারেন্সির জন্য বিকেন্দ্রীভূত পরিচয় [বিকেন্দ্রীভূত প্রমাণীকরণের](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) মাধ্যমে পাসওয়ার্ড-ভিত্তিক লগইনগুলি প্রতিস্থাপন করতে সহায়তা করতে পারে। পরিষেবা প্রদানকারীরা ব্যবহারকারীদের প্রত্যয়ন জারি করতে পারে, যা একটি ইথেরিয়াম ওয়ালেটে সংরক্ষণ করা যেতে পারে। একটি উদাহরণ প্রত্যয়ন হবে একটি [NFT](/nft/) যা ধারককে একটি অনলাইন কমিউনিটিতে অ্যাক্সেস দেয়। -একটি [ইথেরিয়াম দিয়ে সাইন-ইন করুন](https://login.xyz/) ফাংশন তারপর সার্ভারগুলিকে ব্যবহারকারীর ইথেরিয়াম অ্যাকাউন্ট নিশ্চিত করতে এবং তাদের অ্যাকাউন্ট অ্যাড্রেস থেকে প্রয়োজনীয় প্রত্যয়ন আনতে সক্ষম করবে। এর মানে ব্যবহারকারীরা দীর্ঘ পাসওয়ার্ড মুখস্থ না করেই প্ল্যাটফর্ম এবং ওয়েবসাইটগুলি অ্যাক্সেস করতে পারে এবং ব্যবহারকারীদের জন্য অনলাইন অভিজ্ঞতা উন্নত করে। +একটি [ইথেরিয়াম দিয়ে সাইন-ইন করুন](https://siwe.xyz/) ফাংশন তারপর সার্ভারগুলিকে ব্যবহারকারীর ইথেরিয়াম অ্যাকাউন্ট নিশ্চিত করতে এবং তাদের অ্যাকাউন্ট অ্যাড্রেস থেকে প্রয়োজনীয় প্রত্যয়ন আনতে সক্ষম করবে। এর মানে ব্যবহারকারীরা দীর্ঘ পাসওয়ার্ড মুখস্থ না করেই প্ল্যাটফর্ম এবং ওয়েবসাইটগুলি অ্যাক্সেস করতে পারে এবং ব্যবহারকারীদের জন্য অনলাইন অভিজ্ঞতা উন্নত করে। ### 2. KYC প্রমাণীকরণ {#kyc-authentication} @@ -181,5 +181,5 @@ summaryPoint3: ক্রিপ্টোকারেন্সির জন্য ### কমিউনিটিগুলো {#communities} - [GitHub-এ ERC-725 জোট](https://github.com/erc725alliance) — _ইথেরিয়াম ব্লকচেইনে পরিচয় পরিচালনার জন্য ERC725 স্ট্যান্ডার্ডের সমর্থকগণ_ -- [SpruceID Discord সার্ভার](https://discord.com/invite/Sf9tSFzrnt) — _উৎসাহী এবং ডেভেলপারদের জন্য কমিউনিটি যারা ইথেরিয়ামের সাথে সাইন-ইন করে কাজ করছে_ +- [EthID Discord সার্ভার](https://discord.com/invite/ZUyG3mSXFD) — _উৎসাহী এবং ডেভেলপারদের জন্য কমিউনিটি যারা ইথেরিয়ামের সাথে সাইন-ইন করে কাজ করছে_ - [ Veramo Labs](https://discord.gg/sYBUXpACh4) — _অ্যাপ্লিকেশানগুলির জন্য যাচাইযোগ্য ডেটার জন্য একটি কাঠামো তৈরিতে অবদান রাখতে ডেভেলপারদের একটি কমিউনিটি_ diff --git a/public/content/translations/cs/decentralized-identity/index.md b/public/content/translations/cs/decentralized-identity/index.md index 0db37181c5b..f16a0110b64 100644 --- a/public/content/translations/cs/decentralized-identity/index.md +++ b/public/content/translations/cs/decentralized-identity/index.md @@ -57,7 +57,7 @@ Decentralizovaná identita má mnoho možných využití: Decentralizovaná identita může pomoci nahradit přihlašování založené na heslech decentralizovanou autentifikací. Poskytovatelé služeb mohou vydávat atestace uživatelům, které mohou být uloženy v Ethereum peněžence. Příkladem atestace by byl [NFT](/glossary/#nft) umožňující držiteli přístup k online komunitě. -Funkce [Přihlášení s Ethereem](https://login.xyz/) by pak umožnila serverům potvrdit uživatelův Ethereum účet a načíst požadovanou atestaci z jejich adresy účtu. To znamená, že uživatelé mohou přistupovat k platformám a webům, aniž by si museli zapamatovat dlouhá hesla, a tím zlepšili jejich online zážitek. +Funkce [Přihlášení s Ethereem](https://siwe.xyz/) by pak umožnila serverům potvrdit uživatelův Ethereum účet a načíst požadovanou atestaci z jejich adresy účtu. To znamená, že uživatelé mohou přistupovat k platformám a webům, aniž by si museli zapamatovat dlouhá hesla, a tím zlepšili jejich online zážitek. ### 2. Autentizace KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Existuje mnoho ambiciózních projektů, které využívají Ethereum jako zákl ### Komunity {#communities} - [Aliance ERC-725 na GitHubu](https://github.com/erc725alliance) – _Stoupenci normy ERC725 pro správu identity na blockchainu Ethereum_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) – _Komunita pro nadšence a vývojáře pracující na přihlášení s Ethereem_ +- [EthID Discord server](https://discord.com/invite/ZUyG3mSXFD) – _Komunita pro nadšence a vývojáře pracující na přihlášení s Ethereem_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) – _Komunita vývojářů podílejících se na budování rámce pro ověřitelná data pro aplikace_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Komunika vývojářů a builderů pracující na praktickém použití decentralizované identity napříč různými obory_ diff --git a/public/content/translations/de/decentralized-identity/index.md b/public/content/translations/de/decentralized-identity/index.md index 562a4e3f184..72abcbbc709 100644 --- a/public/content/translations/de/decentralized-identity/index.md +++ b/public/content/translations/de/decentralized-identity/index.md @@ -57,7 +57,7 @@ Dezentralisierte Identitäten haben viele potenzielle Nutzungsmöglichkeiten: Dezentralisierte Identitäten können dazu beitragen, Passwort-basierte Logins durch dezentrale Authentifizierung zu ersetzen. Dienstleister können Attestierungen an Benutzer verteilen, welche in einer Ethereum-Wallet gespeichert werden. Eine Beispielattestierung wäre ein [NFT](/glossary/#nft), welcher dem Inhaber Zugriff auf eine Online-Community gewährt. -Eine [Anmeldung über Ethereum](https://login.xyz/) würde es Servern ermöglichen, das Ethereum-Konto des Benutzers zu bestätigen und die erforderliche Attestierung von seiner Account-Adresse einzuholen. Das bedeutet, dass Benutzer auf Plattformen und Websites zugreifen können, ohne sich lange Passwörter merken und das Online-Erlebnis für Benutzer verbessern zu müssen. +Eine [Anmeldung über Ethereum](https://siwe.xyz/) würde es Servern ermöglichen, das Ethereum-Konto des Benutzers zu bestätigen und die erforderliche Attestierung von seiner Account-Adresse einzuholen. Das bedeutet, dass Benutzer auf Plattformen und Websites zugreifen können, ohne sich lange Passwörter merken und das Online-Erlebnis für Benutzer verbessern zu müssen. ### 2. KYC-Authentifizierung {#kyc-authentication} @@ -186,6 +186,6 @@ Es gibt viele ehrgeizige Projekte, die Ethereum als Grundlage für dezentrale Id ### Communities {#communities} - [ERC-725 Allianz auf GitHub](https://github.com/erc725alliance) — _Unterstützer des ERC725-Standards zur Identitätsverwaltung in der Ethereum-Blockchain_ -- [SpruceID Discord Server](https://discord.com/invite/Sf9tSFzrnt) — _Community für Enthusiasten und Entwickler, die am Anmelden mit Ethereum arbeiten_ +- [EthID Discord Server](https://discord.com/invite/ZUyG3mSXFD) — _Community für Enthusiasten und Entwickler, die am Anmelden mit Ethereum arbeiten_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Eine Community von Entwicklern, die zum Aufbau eines Rahmens für überprüfbare Daten für Anwendungen beitragen_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) – _Eine Gemeinschaft von Entwicklern und Erstellern, die an Anwendungsfällen für dezentrale Identität in verschiedenen Branchen arbeiten_ diff --git a/public/content/translations/de/developers/docs/programming-languages/python/index.md b/public/content/translations/de/developers/docs/programming-languages/python/index.md index 3277be071b6..0ba8e42c693 100644 --- a/public/content/translations/de/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/de/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ Sind Sie an einigen grundlegenden Informationen interessiert? Dann sehen Sie sic - [eth-utils](https://github.com/ethereum/eth-utils/) – _Dienstprogrammfunktionen für das Arbeiten mit Codebasen, die mit Ethereum verwandt sind_ - [py-solc-x](https://pypi.org/project/py-solc-x/) – _Python-Wrapper um den Solc Solidity-Compiler mit 0.5.x Unterstützung_ - [pymaker](https://github.com/makerdao/pymaker) – _Python-API für Maker-Verträge_ -- [siwe](https://github.com/spruceid/siwe-py) – _Mit Ethereum (siwe) für Python anmelden_ +- [siwe](https://github.com/signinwithethereum/siwe-py) – _Mit Ethereum (siwe) für Python anmelden_ - [Web3 DeFi für Ethereum-Integrationen](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _Ein Python-Paket mit fertigen Integrationen für ERC-20, Uniswap und andere populäre Projekte_ - [Wake](https://getwake.io) – _All-in-One-Python-Framework für das Testen von Contracts, Fuzzing, die Bereitstellung, Schwachstellenscans und die Code-Navigation (Sprachserver – [Tools for Solidity](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/de/developers/docs/programming-languages/ruby/index.md b/public/content/translations/de/developers/docs/programming-languages/ruby/index.md index 1696bb63c91..4324733ac0a 100644 --- a/public/content/translations/de/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/de/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ Sind Sie an einigen grundlegenden Informationen interessiert? Dann sehen Sie sic - [Endlich Ethereum-Konten verstehen](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Endlich Rails-Benutzer mit MetaMask authentifizieren](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Anmelden mit Ethereum – Ruby-Bibliothek und Beispiele für Rails-Release](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [So verbinden Sie sich über Ruby mit dem Ethereum-Netzwerk](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [So erzeugen Sie eine neue Ethereum-Adresse in Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ Sind Sie an einigen grundlegenden Informationen interessiert? Dann sehen Sie sic - [eth.rb](https://github.com/q9f/eth.rb) – _Ruby-Bibliothek und RPC-Client zur Verwaltung von Ethereum-Konten, Nachrichten und Transaktionen_ - [keccak.rb](https://github.com/q9f/keccak.rb) – _Der von Ethereum verwendete Keccak (SHA3) Hash_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) – _Ruby-Implementierung der Anmeldung mit Ethereum_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) – _Rails-Gem, das lokale SIWE-Anmelderouten hinzufügt_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) – _SIWE-Beispiel mit Ruby on Rails und benutzerdefiniertem Controller_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) – _OmniAuth-Strategie für Anmelden mit Ethereum (SIWE)_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) – _Ruby-Implementierung der Anmeldung mit Ethereum_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) – _Rails-Gem, das lokale SIWE-Anmelderouten hinzufügt_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) – _SIWE-Beispiel mit Ruby on Rails und benutzerdefiniertem Controller_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) – _OmniAuth-Strategie für Anmelden mit Ethereum (SIWE)_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) – _OmniAuth-Strategie für die Authentifizierung über NFT-Besitz_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) – _Ethereum on Rails-Vorlage, um MetaMask mit Ruby on Rails zu verbinden_ diff --git a/public/content/translations/el/decentralized-identity/index.md b/public/content/translations/el/decentralized-identity/index.md index 95f6bad83f1..a7c8020aa8b 100644 --- a/public/content/translations/el/decentralized-identity/index.md +++ b/public/content/translations/el/decentralized-identity/index.md @@ -57,7 +57,7 @@ summaryPoint3: Χάρη στα κρυπτονομίσματα, οι χρήστε Η αποκεντρωμένη ταυτότητα μπορεί να βοηθήσει στην αντικατάσταση των συνδέσεων με κωδικό πρόσβασης με την αποκεντρωμένη αυθεντικοποίηση. Οι πάροχοι υπηρεσιών μπορούν να εκδίδουν βεβαιώσεις στους χρήστες, οι οποίες μπορούν να αποθηκευτούν σε ένα πορτοφόλι Ethereum. Ένα παράδειγμα βεβαίωσης θα ήταν ένα [NFT](/glossary/#nft) που παρέχει στον κάτοχο πρόσβαση σε μια διαδικτυακή κοινότητα. -Μια λειτουργία [Σύνδεση με Ethereum](https://login.xyz/) θα επέτρεπε στους διακομιστές να επιβεβαιώσουν τον λογαριασμό Ethereum του χρήστη και να ανακτήσουν την απαιτούμενη βεβαίωση από τη διεύθυνση του λογαριασμού τους. Αυτό σημαίνει ότι οι χρήστες μπορούν να έχουν πρόσβαση σε πλατφόρμες και ιστότοπους χωρίς να χρειάζεται να απομνημονεύουν μεγάλους κωδικούς πρόσβασης βελτιώνοντας τη διαδικτυακή εμπειρία. +Μια λειτουργία [Σύνδεση με Ethereum](https://siwe.xyz/) θα επέτρεπε στους διακομιστές να επιβεβαιώσουν τον λογαριασμό Ethereum του χρήστη και να ανακτήσουν την απαιτούμενη βεβαίωση από τη διεύθυνση του λογαριασμού τους. Αυτό σημαίνει ότι οι χρήστες μπορούν να έχουν πρόσβαση σε πλατφόρμες και ιστότοπους χωρίς να χρειάζεται να απομνημονεύουν μεγάλους κωδικούς πρόσβασης βελτιώνοντας τη διαδικτυακή εμπειρία. ### 2. Πιστοποίηση KYC {#kyc-authentication} @@ -186,6 +186,6 @@ summaryPoint3: Χάρη στα κρυπτονομίσματα, οι χρήστε ### Κοινότητες {#communities} - [ERC-725 Alliance στο GitHub](https://github.com/erc725alliance) — _Υποστηρικτές του προτύπου ERC725 για τη διαχείριση ταυτότητας στο blockchain Ethereum_ -- [Διακομιστής SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _Κοινότητα για λάτρεις και προγραμματιστές που εργάζονται με τον τρόπο Σύνδεσης στο Ethereum_ +- [Διακομιστής EthID Discord](https://discord.com/invite/ZUyG3mSXFD) — _Κοινότητα για λάτρεις και προγραμματιστές που εργάζονται με τον τρόπο Σύνδεσης στο Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Μια κοινότητα προγραμματιστών που συμβάλλουν στη δημιουργία ενός πλαισίου για επαληθεύσιμα δεδομένα για εφαρμογές_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Μια κοινότητα προγραμματιστών και δημιουργών που εργάζονται σε περιπτώσεις αποκεντρωμένης χρήσης ταυτότητας σε διάφορες βιομηχανίες_ 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 9612ae475a6..d7db895bd0f 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 @@ -65,7 +65,7 @@ incomplete: true - [eth-utils](https://github.com/ethereum/eth-utils/) - _βοηθητικές λειτουργίες για την εργασία με βάσεις κώδικα που σχετίζονται με το Ethereum_ - [py-solc-x](https://pypi.org/project/py-solc-x/) - _Python wrapper γύρω από τον μεταγλωττιστή solidity με υποστήριξη 0.5.x_ - [pymaker](https://github.com/makerdao/pymaker) - _Συμβόλαια Python API για δημιουργούς_ -- [siwe](https://github.com/spruceid/siwe-py) - _Συνδεθείτε στο Ethereum (siwe) για Python_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _Συνδεθείτε στο Ethereum (siwe) για Python_ - [Web3 DeFi για ενσωματώσεις Ethereum](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _Ένα πακέτο Python με έτοιμες ενσωματώσεις για ERC-20, Uniswap και άλλα δημοφιλή έργα_ - [Wake](https://getwake.io) - _Πλαίσιο Python All-in-one για δοκιμή συμβάσεων, ασάφεια, ανάπτυξη, σάρωση ευπάθειας και πλοήγηση κώδικα (διακομιστής γλώσσας - [Εργαλεία για Solidity](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/el/developers/docs/programming-languages/ruby/index.md b/public/content/translations/el/developers/docs/programming-languages/ruby/index.md index a3bb3baf564..f5e2a6dfaf5 100644 --- a/public/content/translations/el/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/el/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ incomplete: false - [Επιτέλους κατανόηση των λογαριασμών Ethereum](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Επιτέλους έλεγχος ταυτότητας χρηστών Rails με MetaMask](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Είσοδος με το Ethereum - Βιβλιοθήκη Ruby και παραδείγματα Rails](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [Πώς να συνδεθείτε στο δίκτυο Ethereum χρησιμοποιώντας τη Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [Πώς να δημιουργήσετε μια νέα διεύθυνση Ethereum στη Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ incomplete: false - [eth.rb](https://github.com/q9f/eth.rb) - _Βιβλιοθήκη Ruby και πελάτης RPC για διαχείριση λογαριασμών, μηνυμάτων και συναλλαγών Ethereum_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _Ο κατακερματισμός Keccak (SHA3) που χρησιμοποιείται από το Ethereum_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _Εφαρμογή Ruby για σύνδεση με Ethereum_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _Χρήσιμο Rails που προσθέτει διαδρομές τοπικής σύνδεσης SIWE_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _Παράδειγμα SIWE με Ruby στο Rails με προσαρμοσμένο ελεγκτή_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _Στρατηγική OmniAuth για σύνδεση με Ethereum (SIWE)_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _Εφαρμογή Ruby για σύνδεση με Ethereum_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _Χρήσιμο Rails που προσθέτει διαδρομές τοπικής σύνδεσης SIWE_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _Παράδειγμα SIWE με Ruby στο Rails με προσαρμοσμένο ελεγκτή_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _Στρατηγική OmniAuth για σύνδεση με Ethereum (SIWE)_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _Στρατηγική OmniAuth για έλεγχο ταυτότητας μέσω ιδιοκτησίας NFT_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _Πρότυπο Ethereum στο Rails που επιτρέπει σύνδεση του MetaMask στο Ruby με Rails_ diff --git a/public/content/translations/es/decentralized-identity/index.md b/public/content/translations/es/decentralized-identity/index.md index 2ee4701fc09..0d1b798d67c 100644 --- a/public/content/translations/es/decentralized-identity/index.md +++ b/public/content/translations/es/decentralized-identity/index.md @@ -57,7 +57,7 @@ La identidad descentralizada tiene muchos casos potenciales de uso: La identidad descentralizada puede ayudar a reemplazar los inicios de sesión basados en contraseña con autenticación descentralizada. Los proveedores de servicios pueden emitir certificados a los usuarios, los cuales pueden ser almacenados en una cartera de Ethereum. Un certificado de ejemplo sería un [NFT](/glossary/#nft) que otorga al titular acceso a una comunidad en línea. -Una función [de inicio de sesión con Ethereum](https://login.xyz/) habilitaría entonces a los servidores para confirmar la cuenta de Ethereum del usuario y obtener la verificación necesaria desde la dirección de su cuenta. Esto significa que los usuarios pueden acceder a plataformas y sitios web sin tener que memorizar contraseñas largas y mejorar la experiencia en línea de los usuarios. +Una función [de inicio de sesión con Ethereum](https://siwe.xyz/) habilitaría entonces a los servidores para confirmar la cuenta de Ethereum del usuario y obtener la verificación necesaria desde la dirección de su cuenta. Esto significa que los usuarios pueden acceder a plataformas y sitios web sin tener que memorizar contraseñas largas y mejorar la experiencia en línea de los usuarios. ### 2. Autenticación KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Hay muchos proyectos ambiciosos que utilizan Ethereum como base para soluciones ### Comunidades {#communities} - [ERC-725 Alianza en GitHub](https://github.com/erc725alliance) — _Partidarios del estándar ERC725 para gestionar la identidad en la cadena de bloques Ethereum_ -- [Servidor SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _Comunidad para entusiastas y desarrolladores que trabajan en SpruceID con Ethereum_ +- [Servidor EthID Discord](https://discord.com/invite/ZUyG3mSXFD) — _Comunidad para entusiastas y desarrolladores que trabajan en Sign-in con Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Una comunidad de desarrolladores que contribuyen a la construcción de un marco para datos verificables para aplicaciones_ - [walt.id](https://discord.com/invite/AW8AgqJthZ): _una comunidad de desarrolladores y constructores que se ocupan de los casos de uso para las identidades descentralizadas en varias industrias._ diff --git a/public/content/translations/es/developers/docs/programming-languages/python/index.md b/public/content/translations/es/developers/docs/programming-languages/python/index.md index c6883c4230b..bf014fdc9dc 100644 --- a/public/content/translations/es/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/es/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ Utiliza Ethereum para crear aplicaciones descentralizadas (o "dapps"), que aprov - [eth-utils](https://github.com/ethereum/eth-utils/): _Funciones de utilidad para trabajar con bases de código relacionadas con Ethereum_ - [py-solc-x:](https://pypi.org/project/py-solc-x/) _wrapper de Python en torno al compilador de Solidity con soporte 0.5.x_ - [pymaker:](https://github.com/makerdao/pymaker) _API de Python para contratos de Maker_ -- [siwe:](https://github.com/spruceid/siwe-py) _inicio de sesión con Ethereum (siwe) para Python_ +- [siwe:](https://github.com/signinwithethereum/siwe-py) _inicio de sesión con Ethereum (siwe) para Python_ - [DeFi Web3 para integraciones Ethereum:](https://github.com/tradingstrategy-ai/web3-ethereum-defi) _paquete de Python con integraciones listas para ERC-20, Uniswap y otros proyectos populares_ - [Wake](https://getwake.io): _Un marco Python todo en uno para pruebas de contratos, fuzzing, implementación, análisis de vulnerabilidades y navegación de código (servidor de lenguajes, [Herramientas para Solidity](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/es/developers/docs/programming-languages/ruby/index.md b/public/content/translations/es/developers/docs/programming-languages/ruby/index.md index e2b76f39704..4e2ce3c3942 100644 --- a/public/content/translations/es/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/es/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ Utiliza Ethereum para crear aplicaciones descentralizadas (o "dapps"), que aprov - [Comprender finalmente las cuentas de Ethereum](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Autenticar finalmente usuarios de Rails con MetaMask](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Iniciar sesión con Ethereum: biblioteca de Ruby y ejemplos de Rails](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [Cómo conectarse a la red Ethereum usando Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [Cómo generar una nueva dirección de Ethereum en Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ Utiliza Ethereum para crear aplicaciones descentralizadas (o "dapps"), que aprov - [eth.rb](https://github.com/q9f/eth.rb): _Biblioteca de Ruby y cliente RPC para manejar cuentas de Ethereum, mensajes y transacciones_ - [keccak.rb](https://github.com/q9f/keccak.rb): _El hash Keccak (SHA3) usado por Ethereum_ -- [siwe-ruby:](https://github.com/spruceid/siwe-ruby) _Implementación de Ruby de acceso con Ethereum_ -- [siwe_rails:](https://github.com/spruceid/siwe_rails) _Rails gem que agrega rutas de inicio de sesión de SIWE_ -- [siwe-rails-examples:](https://github.com/spruceid/siwe-rails-examples) _ejemplos de SIWE usando Ruby on Rails con controlador personalizado_ -- [omniaut-siwe:](https://github.com/spruceid/omniauth-siwe) _Estrategia de OmniAuth para el acceso con Ethereum (SIWE)_ +- [siwe-ruby:](https://github.com/signinwithethereum/siwe-ruby) _Implementación de Ruby de acceso con Ethereum_ +- [siwe-rails:](https://github.com/signinwithethereum/siwe-rails) _Rails gem que agrega rutas de inicio de sesión de SIWE_ +- [siwe-rails-examples:](https://github.com/signinwithethereum/siwe-rails-examples) _ejemplos de SIWE usando Ruby on Rails con controlador personalizado_ +- [omniaut-siwe:](https://github.com/signinwithethereum/omniauth-siwe) _Estrategia de OmniAuth para el acceso con Ethereum (SIWE)_ - [omniauth-mft:](https://github.com/valthon/omniauth-nft) _Estrategia de OmniAuth para la autenticación mediante propiedad de NFT_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails): _Plantilla de Ethereum en Rails que permite conectar MetaMask con Ruby en Rails_ diff --git a/public/content/translations/fa/decentralized-identity/index.md b/public/content/translations/fa/decentralized-identity/index.md index 5c9214d1e3d..5e5a8f42c08 100644 --- a/public/content/translations/fa/decentralized-identity/index.md +++ b/public/content/translations/fa/decentralized-identity/index.md @@ -57,7 +57,7 @@ summaryPoint3: به لطف رمزنگاری، کاربران اکنون ابزا هویت غیرمتمرکز می‌تواند به جایگزینی ورودهای مبتنی بر رمز عبور با احراز هویت غیرمتمرکز کمک کند. ارائه دهندگان خدمات می توانند تصدیق هایی را برای کاربران صادر کنند که می توانند در کیف پول اتریوم ذخیره شوند. یک تایید نمونه، می تواند یک [NFT](/glossary/#nft) باشد که به دارنده اجازه دسترسی به یک انجمن آنلاین را می دهد. -سپس یک تابع [Sign-In with Ethereum](https://login.xyz/) سرورها را قادر می‌سازد تا حساب اتریوم کاربر را تأیید کنند و گواهی لازم را از آدرس حساب خود دریافت کنند. این بدان معناست که کاربران می توانند بدون نیاز به حفظ رمزهای عبور طولانی به پلتفرم ها و وب سایت ها دسترسی داشته باشند و این تجربه آنلاین را برای کاربران بهبود می بخشد. +سپس یک تابع [Sign-In with Ethereum](https://siwe.xyz/) سرورها را قادر می‌سازد تا حساب اتریوم کاربر را تأیید کنند و گواهی لازم را از آدرس حساب خود دریافت کنند. این بدان معناست که کاربران می توانند بدون نیاز به حفظ رمزهای عبور طولانی به پلتفرم ها و وب سایت ها دسترسی داشته باشند و این تجربه آنلاین را برای کاربران بهبود می بخشد. ### 2. احراز هویت KYC {#kyc-authentication} @@ -186,6 +186,6 @@ summaryPoint3: به لطف رمزنگاری، کاربران اکنون ابزا ### جوامع {#communities} - [اتحاد ERC-725 در GitHub](https://github.com/erc725alliance) — _حامی استاندارد ERC725 برای مدیریت هویت در بلاک چین اتریوم_ -- [سرور SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _انجمن برای علاقه مندان و توسعه دهندگانی که روی ورود به سیستم با اتریوم_کار می کنند +- [سرور EthID Discord](https://discord.com/invite/ZUyG3mSXFD) — _انجمن برای علاقه مندان و توسعه دهندگانی که روی ورود به سیستم با اتریوم_کار می کنند - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _جامعه ای از توسعه دهندگان که در ساخت چارچوبی برای داده های قابل تأیید برای برنامه ها مشارکت دارند_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _جامعه‌ای از توسعه‌دهندگان و سازندگان که بر روی موارد استفاده از هویت غیرمتمرکز در صنایع مختلف کار می‌کنند_ diff --git a/public/content/translations/fil/decentralized-identity/index.md b/public/content/translations/fil/decentralized-identity/index.md index 1ac69336c26..61233c1a7ff 100644 --- a/public/content/translations/fil/decentralized-identity/index.md +++ b/public/content/translations/fil/decentralized-identity/index.md @@ -133,7 +133,7 @@ Maraming posibleng use case ang decentralized identity: Makakatulong ang decentralized identity na palitan ang mga pag-log in gamit ang password ng [decentralized authentication](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Maaaring magbigay ang mga service provider ng mga attestation sa mga user, na maso-store sa Ethereum wallet. Ang isang halimbawa ng attestation ay isang [NFT](/nft/) na nagbibigay sa may-ari ng access sa isang online na komunidad. -Ang function na [Mag-sign in gamit ang Ethereum](https://login.xyz/) ay magbibigay-daan sa mga server na kumpirmahin ang Ethereum account ng user at kunin ang kinakailangang attestation mula sa account address niya. Ibig sabihin nito, maa-access ng mga user ang mga platform at website nang hindi kinakailangang tandaan ang mahahabang password at mapapahusay nito ang online experience ng mga user. +Ang function na [Mag-sign in gamit ang Ethereum](https://siwe.xyz/) ay magbibigay-daan sa mga server na kumpirmahin ang Ethereum account ng user at kunin ang kinakailangang attestation mula sa account address niya. Ibig sabihin nito, maa-access ng mga user ang mga platform at website nang hindi kinakailangang tandaan ang mahahabang password at mapapahusay nito ang online experience ng mga user. ### 2. KYC authentication {#kyc-authentication} @@ -181,5 +181,5 @@ Maraming malalaking proyekto ang gumagamit ng Ethereum bilang pundasyon para sa ### Mga Komunidad {#communities} - [ERC-725 Alliance sa GitHub](https://github.com/erc725alliance) — _Mga tagasuporta ng pamantayang ERC725 para sa pamamahala ng identity sa Ethereum blockchain_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Komunidad para sa mga tagahanga at developer na nagtatrabaho sa Mag-sign in gamit ang Ethereum_ +- [EthID Discord server](https://discord.com/invite/ZUyG3mSXFD) — _Komunidad para sa mga tagahanga at developer na nagtatrabaho sa Mag-sign in gamit ang Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Isang komunidad ng mga developer na tumutulong sa pagbuo ng framework para sa nave-verify na data para sa mga application_ diff --git a/public/content/translations/fr/decentralized-identity/index.md b/public/content/translations/fr/decentralized-identity/index.md index 9a6bb955cc8..b98754ae1cd 100644 --- a/public/content/translations/fr/decentralized-identity/index.md +++ b/public/content/translations/fr/decentralized-identity/index.md @@ -57,7 +57,7 @@ L'identité décentralisée propose de nombreux cas d'utilisation potentiels : L'identité décentralisée peut aider à remplacer les connexions par mot de passe par une authentification décentralisée. Les fournisseurs de services peuvent délivrer des attestations aux utilisateurs, qui peuvent être stockées dans un portefeuille Ethereum. Un exemple d'attestation serait un [NFT](/glossary/#nft) accordant au titulaire l'accès à une communauté en ligne. -Une fonction de [connexion avec Ethereum](https://login.xyz/) permettrait alors aux serveurs de confirmer le compte Ethereum de l'utilisateur et de récupérer l'attestation requise à partir de l'adresse de son compte. Cela signifie que les utilisateurs peuvent accéder aux plateformes et aux sites web sans avoir à mémoriser de longs mots de passe et améliore l'expérience en ligne des utilisateurs. +Une fonction de [connexion avec Ethereum](https://siwe.xyz/) permettrait alors aux serveurs de confirmer le compte Ethereum de l'utilisateur et de récupérer l'attestation requise à partir de l'adresse de son compte. Cela signifie que les utilisateurs peuvent accéder aux plateformes et aux sites web sans avoir à mémoriser de longs mots de passe et améliore l'expérience en ligne des utilisateurs. ### 2. Authentification KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Il existe de nombreux projets ambitieux utilisant Ethereum comme base pour des s ### Communautés {#communities} - [ERC-725 Alliance sur GitHub](https://github.com/erc725alliance) — _Supporters de la norme ERC725 pour la gestion d'identité sur la blockchain Ethereum_ -- [Serveur Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Communauté pour les adeptes et les développeurs travaillant sur la connexion avec Ethereum_ +- [Serveur Discord EthID](https://discord.com/invite/ZUyG3mSXFD) — _Communauté pour les adeptes et les développeurs travaillant sur la connexion avec Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Une communauté de développeurs contribuant à la construction d'un framework de données vérifiables pour les applications_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Une communauté de développeurs et constructeurs travaillant sur des cas d'utilisation d'identité décentralisée dans diverses industries._ diff --git a/public/content/translations/fr/developers/docs/programming-languages/python/index.md b/public/content/translations/fr/developers/docs/programming-languages/python/index.md index cd7d5974491..6f0bb4fc746 100644 --- a/public/content/translations/fr/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/fr/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ Besoin d’une approche plus élémentaire ? Consultez [ethereum.org/learn](/le - [eth-utils](https://github.com/ethereum/eth-utils/) - _Fonctions utilitaires pour travailler avec les bases de code liées à Ethereum_ - [py-solc-x](https://pypi.org/project/py-solc-x/) - _Wrapper Python autour du compilateur solc Solidity avec support 0.5.x_ - [pymaker](https://github.com/makerdao/pymaker) - _API Python pour les contrats Maker_ -- [siwe](https://github.com/spruceid/siwe-py) - _Connectez-vous avec Ethereum (siwe) pour Python_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _Connectez-vous avec Ethereum (siwe) pour Python_ - [Intégration Web3 DeFi pour Ethereum](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _Un paquet Python avec des intégrations prêtes à l'emploi pour ERC-20, Uniswap et d'autres projets populaires_ - [Wake](https://getwake.io) - _Cadre Python tout-en-un pour les tests de contrats, le fuzzing, le déploiement, les analyses de vulnérabilités et la navigation dans le code (serveur de langage - [Outils pour Solidity](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/fr/developers/docs/programming-languages/ruby/index.md b/public/content/translations/fr/developers/docs/programming-languages/ruby/index.md index 580bafbd716..fbb61e27b25 100644 --- a/public/content/translations/fr/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/fr/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ Besoin d’une approche plus élémentaire ? Consultez [ethereum.org/learn](/le - [Bien comprendre les comptes Ethereum](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Authentifier les utilisateurs Rails avec MetaMask](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Connexion avec Ethereum - Bibliothèque Ruby et exemples de Rails](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [Comment se connecter au réseau Ethereum en utilisant Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [Comment générer une nouvelle adresse Ethereum dans Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ Besoin d’une approche plus élémentaire ? Consultez [ethereum.org/learn](/le - [eth.rb](https://github.com/q9f/eth.rb) - _Bibliothèque Ruby et RPC-client pour gérer les comptes, messages et transactions Ethereum_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _L'empreinte numérique de Keccak (SHA3) utilisée par Ethereum_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _Implémentation Ruby de la connexion avec Ethereum_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _Rails gem qui ajoute SIWE à la connexion en local_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _Exemple de SIWE utilisant Ruby on Rails avec contrôleur personnalisé_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _Stratégie OmniAuth pour se connecter avec Ethereum (SIWE)_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _Implémentation Ruby de la connexion avec Ethereum_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _Rails gem qui ajoute SIWE à la connexion en local_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _Exemple de SIWE utilisant Ruby on Rails avec contrôleur personnalisé_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _Stratégie OmniAuth pour se connecter avec Ethereum (SIWE)_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _Stratégie OmniAuth pour l'authentification via la détention de NFT_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _Modèle d'Ethereum on Rails permettant de connecter MetaMask à Ruby on Rails_ diff --git a/public/content/translations/ga/decentralized-identity/index.md b/public/content/translations/ga/decentralized-identity/index.md index 300444cca8b..2fddf76c769 100644 --- a/public/content/translations/ga/decentralized-identity/index.md +++ b/public/content/translations/ga/decentralized-identity/index.md @@ -57,7 +57,7 @@ Tá go leor cásanna úsáide féideartha ag baint le céannacht dhíláraithe: Is féidir le céannacht dhíláraithe cuidiú le fíordheimhniú díláraithe a chur in ionad logáil isteach atá bunaithe ar phasfhocal. Is féidir le soláthraithe seirbhíse fianuithe a eisiúint d'úsáideoirí, ar féidir iad a stóráil i sparán Ethereum. Sampla de fhianú is ea [NFT](/glossary/#nft) a thugann rochtain don sealbhóir ar phobal ar líne. -Ansin chuirfeadh feidhm [Sínigh isteach le hEthereum](https://login.xyz/) ar chumas na bhfreastalaithe cuntas Ethereum an úsáideora a dhearbhú agus an fianú riachtanach a fháil óna seoladh cuntais. Ciallaíonn sé sin gur féidir le húsáideoirí rochtain a fháil ar ardáin agus ar shuímh ghréasáin gan pasfhocail fhada a chur de ghlanmheabhair agus feabhsaíonn sé an t‑eispéireas ar líne d'úsáideoirí. +Ansin chuirfeadh feidhm [Sínigh isteach le hEthereum](https://siwe.xyz/) ar chumas na bhfreastalaithe cuntas Ethereum an úsáideora a dhearbhú agus an fianú riachtanach a fháil óna seoladh cuntais. Ciallaíonn sé sin gur féidir le húsáideoirí rochtain a fháil ar ardáin agus ar shuímh ghréasáin gan pasfhocail fhada a chur de ghlanmheabhair agus feabhsaíonn sé an t‑eispéireas ar líne d'úsáideoirí. ### 2. Fíordheimhniú KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Tá go leor tionscadal uaillmhianach ag baint úsáide as Ethereum mar bhunús l ### Pobail {#communities} - [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _Tacaitheoirí chaighdeán ERC725 chun aitheantas a bhainistiú ar bhlocshlabhra Ethereum_ -- [freastalaí SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _Pobal do dhíograiseoirí agus d'fhorbróirí atá ag obair ar Sínigh isteach le hEthereum_ +- [freastalaí EthID Discord](https://discord.com/invite/ZUyG3mSXFD) — _Pobal do dhíograiseoirí agus d'fhorbróirí atá ag obair ar Sínigh isteach le hEthereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Pobal forbróirí a chuidíonn le creat a chruthú le haghaidh sonraí infhíoraithe d'fheidhmchláir_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Pobal forbróirí agus tógálaithe atá ag obair ar chásanna úsáide céannachta díláraithe ar fud tionscail éagsúla_ diff --git a/public/content/translations/hi/decentralized-identity/index.md b/public/content/translations/hi/decentralized-identity/index.md index 401a2c2f811..1b228848bf2 100644 --- a/public/content/translations/hi/decentralized-identity/index.md +++ b/public/content/translations/hi/decentralized-identity/index.md @@ -57,7 +57,7 @@ summaryPoint3: क्रिप्टो को धन्यवाद, उपय विकेंद्रीकृत पहचान, पासवर्ड आधारित लॉगिन को विकेंद्रीकृत प्रमाणीकरण से बदलने में मदद कर सकती है। सेवा प्रदाता उपयोगकर्ताओं को प्रमाण प्रदान कर सकते हैं, जिसे इथेरियम वॉलेट में संग्रहीत किया जा सकता है। साक्षी का एक उदाहरण [NFT](/glossary/#nft) होगा, जो धारक को ऑनलाइन समुदाय में पहुंच प्रदान करता है। -एक [इथेरियम के साथ साइन-इन](https://login.xyz/) फ़ंक्शन सर्वर को उपयोगकर्ता के इथेरियम खाते की पुष्टि करने और उनके खाता पते से आवश्यक प्रमाण प्राप्त करने में सक्षम करता है। इसका मतलब है कि उपयोगकर्ता लंबे पासवर्ड को याद रखे बिना प्लेटफार्म और वेबसाइट्स तक पहुंच सकते हैं और यह उपयोगकर्ताओं के लिए ऑनलाइन अनुभव को बेहतर करता है। +एक [इथेरियम के साथ साइन-इन](https://siwe.xyz/) फ़ंक्शन सर्वर को उपयोगकर्ता के इथेरियम खाते की पुष्टि करने और उनके खाता पते से आवश्यक प्रमाण प्राप्त करने में सक्षम करता है। इसका मतलब है कि उपयोगकर्ता लंबे पासवर्ड को याद रखे बिना प्लेटफार्म और वेबसाइट्स तक पहुंच सकते हैं और यह उपयोगकर्ताओं के लिए ऑनलाइन अनुभव को बेहतर करता है। ### २ KYC प्रमाणीकरण {#kyc-authentication} @@ -186,6 +186,6 @@ summaryPoint3: क्रिप्टो को धन्यवाद, उपय ### समुदाय {#communities} - [ERC-725 गठबंधन GitHub पर](https://github.com/erc725alliance) — _इथेरियम ब्लॉकचेन पर पहचान प्रबंधन के लिए ERC725 मानक के समर्थक_ -- [SpruceID Discord सर्वर](https://discord.com/invite/Sf9tSFzrnt) — _उत्साहित और डेवलपर्स के लिए समुदाय, जो इथेरियम के साथ साइन इन पर काम कर रहे हैं_ +- [EthID Discord सर्वर](https://discord.com/invite/ZUyG3mSXFD) — _उत्साहित और डेवलपर्स के लिए समुदाय, जो इथेरियम के साथ साइन इन पर काम कर रहे हैं_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _एप्लिकेशन के लिए सत्यापनीय डेटा के लिए एक फ्रेमवर्क बनाने में योगदान देने वाले डेवलपर्स का एक समुदाय_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _विभिन्न उद्योगों में विकेंद्रीकृत पहचान उपयोग के मामलों पर काम करने वाले डेवलपर्स और बिल्डरों का एक समुदाय_ diff --git a/public/content/translations/hu/decentralized-identity/index.md b/public/content/translations/hu/decentralized-identity/index.md index c5b99dd999d..0f807cce1b8 100644 --- a/public/content/translations/hu/decentralized-identity/index.md +++ b/public/content/translations/hu/decentralized-identity/index.md @@ -57,7 +57,7 @@ A decentralizált identitás számtalan esetben alkalmazható: A decentralizált identitás segíthet, hogy a jelszóalapú bejelentkezésk helyett decentralizált hitelesítés legyen. A szolgáltatók tanúsításokat bocsáthatnak ki a felhasználóknak, amelyet az Ethereum-tárcájukban tárolnak. Például egy olyan tanúsítvány, ami egy [NFT](/glossary/#nft), és hozzáférést biztosít egy online közösséghez. -Az [Ethereumba való bejelentkezés](https://login.xyz/) funkció ekkor lehető tenné a szervereknek, hogy megerősítsék a felhasználó Ethereum-számláját és lekérdezzék az ehhez szükséges tanúsításokat a számlacímükről. Ezáltal a felhasználónak nem kell hosszú jelszavakat megjegyeznie ahhoz, hogy különböző platformokat és weboldalakat érjen el, és így jobb felhasználói élményben lehet része. +Az [Ethereumba való bejelentkezés](https://siwe.xyz/) funkció ekkor lehető tenné a szervereknek, hogy megerősítsék a felhasználó Ethereum-számláját és lekérdezzék az ehhez szükséges tanúsításokat a számlacímükről. Ezáltal a felhasználónak nem kell hosszú jelszavakat megjegyeznie ahhoz, hogy különböző platformokat és weboldalakat érjen el, és így jobb felhasználói élményben lehet része. ### 2. Ügyfél-azonosítás (KYC) {#kyc-authentication} @@ -186,6 +186,6 @@ Számtalan ambiciózus projekt használja az Ethereumot a decentralizált identi ### Közösségek {#communities} - [ERC-725 szövetség a GitHubon](https://github.com/erc725alliance) — _Az ERC725 szabvány támogatói, mely az Ethereum-blokkláncon való identitáskezelést célozza_ -- [SpruceID Discord-szerver](https://discord.com/invite/Sf9tSFzrnt) — _Rajongók és fejlesztők közössége, akik az Ethereumba való bejelentkezés funkcióján dolgoznak_ +- [EthID Discord-szerver](https://discord.com/invite/ZUyG3mSXFD) — _Rajongók és fejlesztők közössége, akik az Ethereumba való bejelentkezés funkcióján dolgoznak_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Fejlesztői közösség, melynek célja az alkalmazásokhoz szükséges igazolható adatok keretrendszerének kidolgozása_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) – _Fejlesztők és építők közössége, akik a decentralizált identitás számtalan iparágban való felhasználási területeivel foglalkoznak_ diff --git a/public/content/translations/hu/developers/docs/programming-languages/python/index.md b/public/content/translations/hu/developers/docs/programming-languages/python/index.md index 2ac739389b2..ade1001f3e8 100644 --- a/public/content/translations/hu/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/hu/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ Szükséged van egy méginkább kezdőknek szóló alapozóra? Tekintsd meg az [ - [eth-utils](https://github.com/ethereum/eth-utils/) - _használati funkciók Ethereumhoz kapcsolódó kódbázisokkal való munkához_ - [py-solc-x](https://pypi.org/project/py-solc-x/) – _Python wrapper a solc solidity fordító köré 0.5.x támogatással_ - [pymaker](https://github.com/makerdao/pymaker) – _Python API Maker szerződésekre_ -- [siwe](https://github.com/spruceid/siwe-py) – _Bejelentkezés az Ethereummal (siwe) Pythonra_ +- [siwe](https://github.com/signinwithethereum/siwe-py) – _Bejelentkezés az Ethereummal (siwe) Pythonra_ - [Web3 decentralizált pénzügyek (DeFi) Ethereum integrációhoz](https://github.com/tradingstrategy-ai/web3-ethereum-defi) – _Egy Python csomag, mely készen áll az ERC-20, Uniswap és más népszerű projektekkel való integrációra_ - [Wake](https://getwake.io) - _Minden az egyben Python keretrendszer a szerződéseknek a teszteléshez, fuzzinghoz, telepítéshez, sebezhetőségi vizsgálathoz és kódnavigációhoz (nyelvi szerver - [eszközök a Solidity-hez](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/hu/developers/docs/programming-languages/ruby/index.md b/public/content/translations/hu/developers/docs/programming-languages/ruby/index.md index 2cacd55e59f..9e634fee5c8 100644 --- a/public/content/translations/hu/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/hu/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ Szükséged van egy méginkább kezdőknek szóló alapozóra? Tekintsd meg az [ - [Az Ethereum-számlák megértése](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Rails-felhasználók hitelesítése a MetaMask használatával](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Bejelentkezés az Ethereummal – Ruby-könyvtár és Rails-példák kiadása](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [Hogyan lehet az Ethereum-hálózathoz kapcsolódni a Ruby-val](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [Hogyan lehet új Ethereum-címet létrehozni a Ruby-val](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ Szükséged van egy méginkább kezdőknek szóló alapozóra? Tekintsd meg az [ - [eth.rb](https://github.com/q9f/eth.rb) – _Ruby könyvtár és RPC-kliens az Ethereum-számlák, üzenetek és tranzakciók kezelésére_ - [keccak.rb](https://github.com/q9f/keccak.rb) – _Az Ethereum által használt keccak (SHA3) hash_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) – _Ruby általi implementáció az Ethereummal való bejelentkezéshez_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) – _SIWE lokális bejelentkezési utakat adó Rails gem_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) – _SIWE-példa Ruby használatával a Railsen személyre szabott irányítóval_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) – _OmniAuth-stratégia az Ethereummal (SIWE) való bejelentkezéshez_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) – _Ruby általi implementáció az Ethereummal való bejelentkezéshez_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) – _SIWE lokális bejelentkezési utakat adó Rails gem_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) – _SIWE-példa Ruby használatával a Railsen személyre szabott irányítóval_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) – _OmniAuth-stratégia az Ethereummal (SIWE) való bejelentkezéshez_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) – _OmniAuth stratégia az NFT tulajdonjogon keresztüli hitelesítésre_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) – _Ethereum a Rails-en sablon, mellyel a MetaMaskot a Ruby-hoz lehet kapcsolni a Rails-en_ diff --git a/public/content/translations/id/decentralized-identity/index.md b/public/content/translations/id/decentralized-identity/index.md index cbefc8899b7..58474ec31fe 100644 --- a/public/content/translations/id/decentralized-identity/index.md +++ b/public/content/translations/id/decentralized-identity/index.md @@ -57,7 +57,7 @@ Identitas yang terdesentralisasi memiliki berbagai pontesi yang dapat dimanfaatk Identitas terdesentralisasi dapat membantu menggantikan login berdasarkan kata sandi menjadi autentikasi terdesentralisasi. Penyedia layanan dapat menerbitkan pengesahan pada pengguna, yang dapat disimpan dalam dompet Ethereum. Sebuah contoh pengesahan adalah [NFT](/glossary/#nft) menyetujui akses kepemilikan pada komunitas daring. -Sebuah fungsi [Sign-in dengan Ethereum](https://login.xyz/) akan memungkinkan server untuk mengonfirmasi akun ethereum pengguna dan mencocokkan pengesahan yang dibutuhkan dari alamat akun mereka. Ini dimaksudkan bahwa pengguna dapat mengakses banyak platform dan situs web tanpa harus mengingat kata sandi yang panjang dan meningkatkan pengalaman daring pada para pengguna. +Sebuah fungsi [Sign-in dengan Ethereum](https://siwe.xyz/) akan memungkinkan server untuk mengonfirmasi akun ethereum pengguna dan mencocokkan pengesahan yang dibutuhkan dari alamat akun mereka. Ini dimaksudkan bahwa pengguna dapat mengakses banyak platform dan situs web tanpa harus mengingat kata sandi yang panjang dan meningkatkan pengalaman daring pada para pengguna. ### 2. Autentikasi KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Ada banyak proyek ambisius yang menggunakan Ethereum sebagai landasan untuk solu ### Komunitas {#communities} - [Aliansi ERC-725 di GitHub](https://github.com/erc725alliance) — _Pendukung standar ERC725 untuk mengelola identitas pada rantai blok Ethereum_ -- [Server Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Komunitas untuk para penggemar dan pengembang yang bekerja pada sign-in dengan Ethereum_ +- [Server Discord EthID](https://discord.com/invite/ZUyG3mSXFD) — _Komunitas untuk para penggemar dan pengembang yang bekerja pada sign-in dengan Ethereum_ - [Lab Veramo](https://discord.gg/sYBUXpACh4) — _Komunitas developer yang berkontribusi membangun kerangka kerja untuk memungkinkan verifikasi data untuk aplikasi_ - [wailt.id](https://discord.com/invite/AW8AgqJthZ) — _Komunitas pengembang dan pembuat sistem mengerjakan berbagai kasus penggunaan identitas terdesentralisasi pada berbagai industri_ diff --git a/public/content/translations/it/decentralized-identity/index.md b/public/content/translations/it/decentralized-identity/index.md index 2f5c99d66cc..75457fe89fd 100644 --- a/public/content/translations/it/decentralized-identity/index.md +++ b/public/content/translations/it/decentralized-identity/index.md @@ -57,7 +57,7 @@ L'identità decentralizzata ha molti possibili casi d'uso: L'identità decentralizzata può contribuire a sostituire gli accessi basati su password con l'autenticazione decentralizzata. I fornitori di servizi possono emettere attestazioni agli utenti, memorizzabili in un portafoglio di Ethereum. Un esempio di attestazione potrebbe essere un [NFT](/glossary/#nft) che concede al titolare l'accesso a una community online. -Una funzionalità "[Accedi con Ethereum](https://login.xyz/)", consentirebbe poi ai server di confermare il conto di Ethereum dell'utente, e di recuperare l'attestazione necessaria dal relativo indirizzo del conto. Ciò significa che gli utenti possono accedere a piattaforme e siti web, senza dover memorizzare lunghe password, migliorando l'esperienza online degli utenti. +Una funzionalità "[Accedi con Ethereum](https://siwe.xyz/)", consentirebbe poi ai server di confermare il conto di Ethereum dell'utente, e di recuperare l'attestazione necessaria dal relativo indirizzo del conto. Ciò significa che gli utenti possono accedere a piattaforme e siti web, senza dover memorizzare lunghe password, migliorando l'esperienza online degli utenti. ### 2. Autenticazione KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Esistono molti progetti ambiziosi che utilizzano Ethereum come base per le soluz ### Community {#communities} - [ERC-725 Alliance su GitHub](https://github.com/erc725alliance) — _Sostenitori dello standard ERC-725 per la gestione dell'identità sulla blockchain di Ethereum_ -- [Server Discord di SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Community per appassionati e sviluppatori, al lavoro su "Accedi con Ethereum"_ +- [Server Discord di EthID](https://discord.com/invite/ZUyG3mSXFD) — _Community per appassionati e sviluppatori, al lavoro su "Accedi con Ethereum"_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Una community di sviluppatori, che contribuiscono alla creazione di un quadro per i dati verificabili per le applicazioni_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) -- _Una comunità di sviluppatori e costruttori che lavorano a casi d'uso dell'identità decentralizzata che coinvolgono diversi settori_ diff --git a/public/content/translations/it/developers/docs/programming-languages/python/index.md b/public/content/translations/it/developers/docs/programming-languages/python/index.md index e1a89fd5717..8f7dab77ec9 100644 --- a/public/content/translations/it/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/it/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ Hai prima bisogno di nozioni di base? Dai un'occhiata a [ethereum.org/learn](/le - [eth-utils](https://github.com/ethereum/eth-utils/) - _Funzioni di utilità per lavorare con le basi di codice legate a Ethereum_ - [py-solc-x](https://pypi.org/project/py-solc-x/) - _Wrapper Python per il compilatore Solidity solc con supporto per 0.5.x_ - [pymaker](https://github.com/makerdao/pymaker) - _API Python per i contratti Maker_ -- [siwe](https://github.com/spruceid/siwe-py) - _Accesso con Ethereum (siwe) per Python_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _Accesso con Ethereum (siwe) per Python_ - [DeFi di Web3 per le integrazioni di Ethereum](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _Un pacchetto di Python con integrazioni pronte per l'ERC-20, Uniswap e altri progetti popolari_ - [Wake](https://getwake.io) - _Assetto completo di Python per testare i contratti, fuzzing, distribuzione, scansione delle vulnerabilità e navigazione del codice (server del linguaggio: [Tools for Solidity](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/it/developers/docs/programming-languages/ruby/index.md b/public/content/translations/it/developers/docs/programming-languages/ruby/index.md index cf552e2e358..78b485b302f 100644 --- a/public/content/translations/it/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/it/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ Ti servono prima le nozioni di base? Dai un'occhiata a [ethereum.org/learn](/lea - [Comprendere definitivamente i conti di Ethereum](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Autenticare definitivamente gli utenti di Rails con Metamask](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Accesso con Ethereum - Rilascio di esempi di Rail e libreria di Ruby](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [Come connettersi alla rete di Ethereum usando Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [Come generare un nuovo indirizzo di Ethereum in Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ Ti servono prima le nozioni di base? Dai un'occhiata a [ethereum.org/learn](/lea - [eth.rb](https://github.com/q9f/eth.rb): _Libreria di Ruby e client RPC per gestire conti, messaggi e transazioni di Ethereum_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _L'hash di The Keccak (SHA3) usato da Ethereum_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _Implementazione in Ruby dell'Accesso con Ethereum_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _Gemma di Rails che aggiunge la firma locale SIWE nei percorsi_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _Esempio di SIWE usando Ruby on Rails con un controller personalizzato_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _Strategia di OmniAuth per l’Accesso con Ethereum (SIWE)_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _Implementazione in Ruby dell'Accesso con Ethereum_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _Gemma di Rails che aggiunge la firma locale SIWE nei percorsi_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _Esempio di SIWE usando Ruby on Rails con un controller personalizzato_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _Strategia di OmniAuth per l’Accesso con Ethereum (SIWE)_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _Strategia di OmniAuth per autenticarsi tramite il possesso di NFT_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _Modello di Ethereum on Rails che consente di connettere MetaMask a Ruby on Rails_ diff --git a/public/content/translations/ja/decentralized-identity/index.md b/public/content/translations/ja/decentralized-identity/index.md index ac1fcdceda4..9818baaf876 100644 --- a/public/content/translations/ja/decentralized-identity/index.md +++ b/public/content/translations/ja/decentralized-identity/index.md @@ -57,7 +57,7 @@ summaryPoint3: 暗号技術により、今や再び自分自身のIDとアテス 分散型アイデンティティは、パスワードベースのログインを分散型認証に置き換えるのに役立ちます。 サービスプロバイダーは、アテステーションを発行することができ、ユーザーはそれをイーサリアムのウォレットに保存できます。 アテステーションの例としては、[非代替性トークン(NFT)](/glossary/#nft)保有者にオンラインコミュニティへのアクセスを許可することなどが挙げられます。 -[イーサリアムでサインイン](https://login.xyz/)機能を使うと、サーバはユーザーのイーサリアムアカウントを確認し、アカウントアドレスから必要なアテステーションを取得することができます。 これにより、ユーザーは長いパスワードを記憶することなくプラットフォームやウェブサイトにアクセスでき、オンライン・エクスペリエンスを向上させることができます。 +[イーサリアムでサインイン](https://siwe.xyz/)機能を使うと、サーバはユーザーのイーサリアムアカウントを確認し、アカウントアドレスから必要なアテステーションを取得することができます。 これにより、ユーザーは長いパスワードを記憶することなくプラットフォームやウェブサイトにアクセスでき、オンライン・エクスペリエンスを向上させることができます。 ### 2. KYC認証 {#kyc-authentication} @@ -186,6 +186,6 @@ summaryPoint3: 暗号技術により、今や再び自分自身のIDとアテス ### コミュニティ {#communities} - [GitHub上のERC-725アライアンス](https://github.com/erc725alliance) — _イーサリアムのブロックチェーン上でIDを管理するための規格「ERC725」のサポーターコミュニティ_ -- [SpruceID Discordサーバ](https://discord.com/invite/Sf9tSFzrnt) — _「イーサリアムでサインイン」に取り組むファンやデベロッパーのためのコミュニティ_ +- [EthID Discordサーバ](https://discord.com/invite/ZUyG3mSXFD) — _「イーサリアムでサインイン」に取り組むファンやデベロッパーのためのコミュニティ_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _アプリケーション向けの検証可能なデータのフレームワークの構築に貢献するデベロッパーのコミュニティ_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _さまざまな業界にわたる分散型IDのユースケースに取り組むデベロッパーおよびビルダーのコミュニティ_ diff --git a/public/content/translations/ja/developers/docs/programming-languages/python/index.md b/public/content/translations/ja/developers/docs/programming-languages/python/index.md index e56c725944c..1f015531774 100644 --- a/public/content/translations/ja/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/ja/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ incomplete: true - [eth-utils](https://github.com/ethereum/eth-utils/) - _イーサリアム関連のコードベースを操作するためのユーティリティ関数_ - [py-solc-x](https://pypi.org/project/py-solc-x/) - _solc SolidityコンパイラのPythonラッパー (Solidity 0.5xをサポート)_ - [pymaker](https://github.com/makerdao/pymaker) - _MakerコントラクトのためのPython API_ -- [siwe](https://github.com/spruceid/siwe-py) - _Pythonのためのイーサリアムによるサインイン (siwe)_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _Pythonのためのイーサリアムによるサインイン (siwe)_ - [イーサリアムの統合のためのWeb3 DeFi](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _ERC-20、Uniswap、その他の一般的なプロジェクトのための、すぐに統合を行えるPythonパッケージ_ - [Wake -](https://getwake.io) _コントラクトのテスト、ファジング、デプロイ、脆弱性スキャン、コードナビゲーションが可能なオールインワンPythonフレームワーク(言語サーバー - [Tools for Solidity](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/ja/developers/docs/programming-languages/ruby/index.md b/public/content/translations/ja/developers/docs/programming-languages/ruby/index.md index 57722f7a0be..72462686867 100644 --- a/public/content/translations/ja/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/ja/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ incomplete: false - [いよいよイーサリアムアカウントを理解する](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [いよいよMetaMaskを使用してRails Usersを認証する](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [イーサリアムによるサインイン - RubyライブラリとRailsのサンプルリリース](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [Rubyを使用してイーサリアムネットワークに接続する方法](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [Rubyで新しいイーサリアムアドレスを生成する方法](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ incomplete: false - [eth.rb](https://github.com/q9f/eth.rb) - _イーサリアムアカウント、メッセージ、トランザクションを扱うためのRubyライブラリとRPCクライアント_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _イーサリアムによって使用されるKeccak (SHA3) ハッシュ_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _イーサリアムによるサインインのRuby実装_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _siweローカルサインインのルートを追加するRails gem_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _カスタムコントローラでRuby on Railsを使用したsiweの例_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _イーサリアムによるサインイン (siwe) のためのOmniAuthストラテジー_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _イーサリアムによるサインインのRuby実装_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _siweローカルサインインのルートを追加するRails gem_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _カスタムコントローラでRuby on Railsを使用したsiweの例_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _イーサリアムによるサインイン (siwe) のためのOmniAuthストラテジー_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _NFT所有権による認証のためのOmniAuthストラテジー_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _MetaMaskをRuby on Railsに接続できるようにする、Railsでのイーサリアムテンプレート_ diff --git a/public/content/translations/kn/decentralized-identity/index.md b/public/content/translations/kn/decentralized-identity/index.md index ce1ae3068b5..c9ee4f03425 100644 --- a/public/content/translations/kn/decentralized-identity/index.md +++ b/public/content/translations/kn/decentralized-identity/index.md @@ -133,7 +133,7 @@ DIDs ಡಿಐಡಿಗಳನ್ನು ಬ್ಲಾಕ್‍ಚೈನ್‍ನ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಪಾಸ್‍ವರ್ಡ್ ಆಧಾರಿತ ಲಾಗಿನ್‍ಗಳನ್ನು [ವಿಕೇಂದ್ರೀಕೃತ ದೃಢೀಕರಣದೊಂದಿಗೆ](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) ಬದಲಾಯಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಸೇವಾ ಪೂರೈಕೆದಾರರು ಬಳಕೆದಾರರಿಗೆ ದೃಢೀಕರಣಗಳನ್ನು ನೀಡಬಹುದು, ಇದನ್ನು ಇಥಿರಿಯಮ್ ವ್ಯಾಲೆಟ್‍ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಬಹುದು. ಆನ್‍ಲೈನ್ ಸಮುದಾಯಕ್ಕೆ ಹೋಲ್ಡರ್ ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡುವ [NFT](/nft/) ಒಂದು ಉದಾಹರಣೆ ದೃಢೀಕರಣವಾಗಿದೆ. -[ಇಥಿರಿಯಮ್ ಕಾರ್ಯದೊಂದಿಗೆ ಸೈನ್-ಇನ್](https://login.xyz/) ನಂತರ ಬಳಕೆದಾರರ ಇಥಿರಿಯಮ್ ಖಾತೆಯನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ಅವರ ಖಾತೆ ವಿಳಾಸದಿಂದ ಅಗತ್ಯ ದೃಢೀಕರಣವನ್ನು ಪಡೆಯಲು ಸರ್ವರ್ಗಳಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದರರ್ಥ ಬಳಕೆದಾರರು ದೀರ್ಘ ಪಾಸ್‍ವರ್ಡ್‍ಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳದೆ ಪ್ಲಾಟ್ಫಾರ್ಮ್‍ಗಳು ಮತ್ತು ವೆಬ್‍ಸೈಟ್‍ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಆನ್‍ಲೈನ್ ಅನುಭವವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. +[ಇಥಿರಿಯಮ್ ಕಾರ್ಯದೊಂದಿಗೆ ಸೈನ್-ಇನ್](https://siwe.xyz/) ನಂತರ ಬಳಕೆದಾರರ ಇಥಿರಿಯಮ್ ಖಾತೆಯನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ಅವರ ಖಾತೆ ವಿಳಾಸದಿಂದ ಅಗತ್ಯ ದೃಢೀಕರಣವನ್ನು ಪಡೆಯಲು ಸರ್ವರ್ಗಳಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದರರ್ಥ ಬಳಕೆದಾರರು ದೀರ್ಘ ಪಾಸ್‍ವರ್ಡ್‍ಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳದೆ ಪ್ಲಾಟ್ಫಾರ್ಮ್‍ಗಳು ಮತ್ತು ವೆಬ್‍ಸೈಟ್‍ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಆನ್‍ಲೈನ್ ಅನುಭವವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ### 2. KYC ದೃಢೀಕರಣ {#kyc-authentication} @@ -181,5 +181,5 @@ DIDs ಡಿಐಡಿಗಳನ್ನು ಬ್ಲಾಕ್‍ಚೈನ್‍ನ ### ಸಮುದಾಯಗಳು {#communities} - [GitHub ನಲ್ಲಿ ERC-725 ಮೈತ್ರಿ](https://github.com/erc725alliance) - _ ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ಗುರುತನ್ನು ನಿರ್ವಹಿಸಲು ERC725 ಮಾನದಂಡದ ಬೆಂಬಲಿಗರು_ -- [SpruceID Discord ಸರ್ವರ್](https://discord.com/invite/Sf9tSFzrnt) - _ಇಥಿರಿಯಮ್ ನೊಂದಿಗೆ ಸೈನ್-ಇನ್ ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಉತ್ಸಾಹಿಗಳು ಮತ್ತು ಡೆವಲಪರ್ ಗಳಿಗೆ ಸಮುದಾಯ_ +- [EthID Discord ಸರ್ವರ್](https://discord.com/invite/ZUyG3mSXFD) - _ಇಥಿರಿಯಮ್ ನೊಂದಿಗೆ ಸೈನ್-ಇನ್ ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಉತ್ಸಾಹಿಗಳು ಮತ್ತು ಡೆವಲಪರ್ ಗಳಿಗೆ ಸಮುದಾಯ_ - [ವೆರಾಮೊ ಲ್ಯಾಬ್ಸ್](https://discord.gg/sYBUXpACh4) - _ಅಪ್ಲಿಕೇಶನ್‍ಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಬಹುದಾದ ಡೇಟಾಕ್ಕಾಗಿ ಚೌಕಟ್ಟನ್ನು ನಿರ್ಮಿಸಲು ಕೊಡುಗೆ ನೀಡುವ ಡೆವಲಪರ್ ಗಳ ಸಮುದಾಯ_ diff --git a/public/content/translations/ko/decentralized-identity/index.md b/public/content/translations/ko/decentralized-identity/index.md index 258a3c2eb17..864dd4ccc00 100644 --- a/public/content/translations/ko/decentralized-identity/index.md +++ b/public/content/translations/ko/decentralized-identity/index.md @@ -133,7 +133,7 @@ DID는 블록체인에 저장되기 때문에 누구든지 이더리움에서 분산형 신원 증명은 비밀번호 기반 로그인을 [탈중앙화 인증](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/)으로 대체할 수 있게 합니다. 서비스 제공자는 사용자에게 증명을 발행할 수 있으며, 해당 증명은 이더리움 지갑에 저장됩니다. 증명의 예시로, 소유자가 특정 온라인 커뮤니티에 액세스할 수 있게 하는 [NFT](/nft/)가 있을 수 있습니다. -그 후 [이더리움 로그인](https://login.xyz/) 기능은 서버가 사용자의 이더리움 계정을 확인하고 해당 계정 주소로부터 필요한 증명 정보를 가져올 수 있도록 합니다. 즉, 사용자는 긴 비밀번호를 기억하지 않고도 플랫폼이나 웹사이트에 액세스할 수 있으며, 이는 사용자의 온라인 환경을 향상합니다. +그 후 [이더리움 로그인](https://siwe.xyz/) 기능은 서버가 사용자의 이더리움 계정을 확인하고 해당 계정 주소로부터 필요한 증명 정보를 가져올 수 있도록 합니다. 즉, 사용자는 긴 비밀번호를 기억하지 않고도 플랫폼이나 웹사이트에 액세스할 수 있으며, 이는 사용자의 온라인 환경을 향상합니다. ### 2. KYC 인증 {#kyc-authentication} @@ -181,5 +181,5 @@ DID는 블록체인에 저장되기 때문에 누구든지 이더리움에서 ### 커뮤니티 {#communities} - [GitHub의 ERC-725 연합](https://github.com/erc725alliance): *이더리움 블록체인에서 신원 관리를 위한 ERC 725 표준의 지원자* -- [SpruceID 디스코드 서버](https://discord.com/invite/Sf9tSFzrnt): *이더리움 로그인을 개발 중인 개발자와 매니아의 커뮤니티* +- [EthID 디스코드 서버](https://discord.com/invite/ZUyG3mSXFD): *이더리움 로그인을 개발 중인 개발자와 매니아의 커뮤니티* - [Veramo Labs](https://discord.gg/sYBUXpACh4): *애플리케이션의 검증 가능한 데이터를 위한 프레임워크 개발자의 커뮤니티* diff --git a/public/content/translations/mr/decentralized-identity/index.md b/public/content/translations/mr/decentralized-identity/index.md index 59e677a2739..27b31447679 100644 --- a/public/content/translations/mr/decentralized-identity/index.md +++ b/public/content/translations/mr/decentralized-identity/index.md @@ -133,7 +133,7 @@ Ethereum ब्लॉकचेनवरील [स्मार्ट कॉन विकेंद्रीकृत ओळख पासवर्ड-आधारित लॉगिन [विकेंद्रित प्रमाणीकरण](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) सह बदलण्यात मदत करू शकते. सेवा प्रदाते वापरकर्त्यांना साक्ष्यीकरण देऊ शकतात, जे Ethereum वॉलेटमध्ये संग्रहित केले जाऊ शकतात. धारकास ऑनलाइन समुदायामध्ये प्रवेश प्रदान करणारे एक उदाहरण प्रमाणीकरण हे [NFT](/nft/) असेल. -[Ethereum सह साइन-इन](https://login.xyz/) फंक्शन नंतर सर्व्हरला वापरकर्त्याच्या Ethereum खात्याची पुष्टी करण्यास आणि त्यांच्या खात्याच्या पत्त्यावरून आवश्यक प्रमाणीकरण आणण्यास सक्षम करेल. याचा अर्थ वापरकर्ते लांब पासवर्ड लक्षात ठेवल्याशिवाय प्लॅटफॉर्म आणि वेबसाइट्समध्ये प्रवेश करू शकतात आणि वापरकर्त्यांसाठी ऑनलाइन अनुभव सुधारतात. +[Ethereum सह साइन-इन](https://siwe.xyz/) फंक्शन नंतर सर्व्हरला वापरकर्त्याच्या Ethereum खात्याची पुष्टी करण्यास आणि त्यांच्या खात्याच्या पत्त्यावरून आवश्यक प्रमाणीकरण आणण्यास सक्षम करेल. याचा अर्थ वापरकर्ते लांब पासवर्ड लक्षात ठेवल्याशिवाय प्लॅटफॉर्म आणि वेबसाइट्समध्ये प्रवेश करू शकतात आणि वापरकर्त्यांसाठी ऑनलाइन अनुभव सुधारतात. ### 2. KYC प्रमाणीकरण {#kyc-authentication} @@ -181,5 +181,5 @@ Ethereum ब्लॉकचेनवरील [स्मार्ट कॉन ### समुदाय {#communities} - [ERC-725 GitHub वर अलायन्स](https://github.com/erc725alliance) — _Ethereum ब्लॉकचेन वर ओळख व्यवस्थापित करण्यासाठी ERC725 मानकांचे समर्थक_ -- [SpruceID Discord सर्व्हर](https://discord.com/invite/Sf9tSFzrnt) — _Ethereum सह साइन-इनवर काम करणाऱ्या उत्साही आणि विकासकांसाठी समुदाय_ +- [EthID Discord सर्व्हर](https://discord.com/invite/ZUyG3mSXFD) — _Ethereum सह साइन-इनवर काम करणाऱ्या उत्साही आणि विकासकांसाठी समुदाय_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _अनुप्रयोगांसाठी पडताळणी करण्यायोग्य डेटासाठी फ्रेमवर्क तयार करण्यात योगदान देणारा विकासकांचा समुदाय_ diff --git a/public/content/translations/ms/decentralized-identity/index.md b/public/content/translations/ms/decentralized-identity/index.md index d16a0972c22..826b18603b1 100644 --- a/public/content/translations/ms/decentralized-identity/index.md +++ b/public/content/translations/ms/decentralized-identity/index.md @@ -57,7 +57,7 @@ Identiti teragih mempunyai banyak kegunaan berpotensi: Identiti teragih boleh membantu menggantikan log masuk berasaskan kata laluan dengan pengesahan teragih. Penyedia perkhidmatan boleh mengeluarkan pengesahan kepada pengguna, yang boleh disimpan dalam dompet Ethereum. Contoh pengesahan adalah [NFT](/glossary/#nft) yang memberikan pemegang akses ke komuniti dalam talian. -Fungsi [Daftar Masuk dengan Ethereum](https://login.xyz/) kemudian membolehkan pelayan untuk mengesahkan akaun Ethereum pengguna dan mendapatkan pengesahan yang diperlukan dari alamat akaun mereka. Ini bermakna pengguna boleh mengakses platform dan laman web tanpa perlu menghafal kata laluan panjang dan meningkatkan pengalaman dalam talian untuk pengguna. +Fungsi [Daftar Masuk dengan Ethereum](https://siwe.xyz/) kemudian membolehkan pelayan untuk mengesahkan akaun Ethereum pengguna dan mendapatkan pengesahan yang diperlukan dari alamat akaun mereka. Ini bermakna pengguna boleh mengakses platform dan laman web tanpa perlu menghafal kata laluan panjang dan meningkatkan pengalaman dalam talian untuk pengguna. ### 2. Pengesahan KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Terdapat banyak projek bercita-cita tinggi menggunakan Ethereum sebagai asas unt ### Komuniti {#communities} - [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _Penyokong standard ERC725 untuk mengurus identiti pada blok rantai Ethereum_ -- [Pelayan Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Komuniti untuk peminat dan pembangun yang bekerja pada Daftar Masuk dengan Ethereum_ +- [Pelayan Discord EthID](https://discord.com/invite/ZUyG3mSXFD) — _Komuniti untuk peminat dan pembangun yang bekerja pada Daftar Masuk dengan Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Komuniti pembangun yang menyumbang untuk membina rangka kerja untuk data yang boleh disahkan untuk aplikasi_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Komuniti pembangun dan pembina yang mengusahakan kes penggunaan identiti teragih merentas pelbagai industri_ diff --git a/public/content/translations/nl/decentralized-identity/index.md b/public/content/translations/nl/decentralized-identity/index.md index f823eaa3b05..ddf44c4b03e 100644 --- a/public/content/translations/nl/decentralized-identity/index.md +++ b/public/content/translations/nl/decentralized-identity/index.md @@ -57,7 +57,7 @@ Gedecentraliseerde identiteit heeft vele potentiële use-cases: Gedecentraliseerde identiteit kan wachtwoordgebaseerde logins vervangen door gedecentraliseerde authenticatie. Dienstverleners kunnen attesten uitgeven aan gebruikers, die kunnen worden opgeslagen in een Ethereum-portemonnee. Een voorbeeld hiervan is: een [NFT](/glossary/#nft) die de houder toegang geeft tot een online community. -Een functie [Aanmelden met Ethereum](https://login.xyz/) zou dan de servers in staat stellen om het Ethereum-account van de gebruiker te bevestigen en het vereiste attest op te halen van zijn/haar accountadres. Dit betekent dat gebruikers toegang hebben tot platformen en websites zonder lange wachtwoorden te hoeven onthouden, en het verbetert de online ervaring voor gebruikers. +Een functie [Aanmelden met Ethereum](https://siwe.xyz/) zou dan de servers in staat stellen om het Ethereum-account van de gebruiker te bevestigen en het vereiste attest op te halen van zijn/haar accountadres. Dit betekent dat gebruikers toegang hebben tot platformen en websites zonder lange wachtwoorden te hoeven onthouden, en het verbetert de online ervaring voor gebruikers. ### 2. KYC-verificatie {#kyc-authentication} @@ -186,6 +186,6 @@ Er zijn veel ambitieuze projecten die Ethereum als basis voor gedecentraliseerde ### Gemeenschappen {#communities} - [ERC-725-alliantie op GitHub](https://github.com/erc725alliance) — _Voorstanders van de ERC725-standaard voor het beheer van identiteit op de Ethereum-blockchain_ -- [SpruceID Discord-server](https://discord.com/invite/Sf9tSFzrnt) — _Gemeenschap voor enthousiastelingen en ontwikkelaars die werken aan Aanmelden met Ethereum_ +- [EthID Discord-server](https://discord.com/invite/ZUyG3mSXFD) — _Gemeenschap voor enthousiastelingen en ontwikkelaars die werken aan Aanmelden met Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Een gemeenschap van ontwikkelaars die bijdraagt aan het bouwen van een kader om gegevens te verifieren voor applicaties_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) - _Een community van ontwikkelaars en bouwers die werken aan toepassingsscenario's voor gedecentraliseerde identiteiten in verschillende sectoren_ diff --git a/public/content/translations/pl/decentralized-identity/index.md b/public/content/translations/pl/decentralized-identity/index.md index b2c3f617f25..cf2dd42e402 100644 --- a/public/content/translations/pl/decentralized-identity/index.md +++ b/public/content/translations/pl/decentralized-identity/index.md @@ -57,7 +57,7 @@ Zdecentralizowana tożsamość ma wiele potencjalnych zastosowań: Zdecentralizowana tożsamość może pomóc w zastąpieniu logowania opartego na haśle zdecentralizowanym uwierzytelnianiem. Dostawcy usług mogą wydawać użytkownikom poświadczenia, które można przechowywać w portfelu Ethereum. Przykładowym poświadczeniem może być token [NFT](/glossary/#nft) przyznający posiadaczowi dostęp do społeczności internetowej. -Funkcja [logowania z Ethereum](https://login.xyz/) umożliwiłaby wtedy serwerom potwierdzenie konta Ethereum użytkownika i pobranie wymaganego poświadczenia z adresu jego konta. Oznacza to, że użytkownicy mogą uzyskać dostęp do platform i stron internetowych bez konieczności zapamiętywania długich haseł, co znacząco poprawia komfort działania w Internecie. +Funkcja [logowania z Ethereum](https://siwe.xyz/) umożliwiłaby wtedy serwerom potwierdzenie konta Ethereum użytkownika i pobranie wymaganego poświadczenia z adresu jego konta. Oznacza to, że użytkownicy mogą uzyskać dostęp do platform i stron internetowych bez konieczności zapamiętywania długich haseł, co znacząco poprawia komfort działania w Internecie. ### 2. Uwierzytelnianie KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Istnieje wiele ambitnych projektów wykorzystujących Ethereum jako podstawę zd ### Społeczności {#communities} - [Sojusz ERC-725 na GitHub](https://github.com/erc725alliance) — _zwolennicy standardu ERC725 do zarządzania tożsamością w łańcuchu bloków Ethereum._ -- [Serwer Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _społeczność dla entuzjastów i programistów pracujących nad logowaniem za pomocą Ethereum._ +- [Serwer Discord EthID](https://discord.com/invite/ZUyG3mSXFD) — _społeczność dla entuzjastów i programistów pracujących nad logowaniem za pomocą Ethereum._ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _społeczność programistów uczestniczących w budowaniu struktury weryfikowalnych danych dla aplikacji._ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _społeczność deweloperów i twórców pracujących nad przypadkami użycia zdecentralizowanej tożsamości w różnych branżach_ diff --git a/public/content/translations/pt-br/decentralized-identity/index.md b/public/content/translations/pt-br/decentralized-identity/index.md index 353f427a090..0ac4e34597e 100644 --- a/public/content/translations/pt-br/decentralized-identity/index.md +++ b/public/content/translations/pt-br/decentralized-identity/index.md @@ -57,7 +57,7 @@ A identidade descentralizada tem muitos casos de uso em potencial: A identidade descentralizada pode ajudar a substituir os logins baseados em senha pela autenticação descentralizada. Os provedores de serviços podem emitir atestados aos usuários, aos que podem ser armazenados em uma carteira Ethereum. Um exemplo de atestado seria uma [NFT](/glossary/#nft) concedendo ao titular acesso a uma comunidade on-line. -Uma função [Entrar com Ethereum](https://login.xyz/) permitiria que os servidores confirmassem a conta Ethereum do usuário e buscassem o atestado necessário de seu endereço de conta. Isso significa que os usuários podem acessar plataformas e sites sem precisar memorizar senhas longas e melhorar a experiência on-line dos usuários. +Uma função [Entrar com Ethereum](https://siwe.xyz/) permitiria que os servidores confirmassem a conta Ethereum do usuário e buscassem o atestado necessário de seu endereço de conta. Isso significa que os usuários podem acessar plataformas e sites sem precisar memorizar senhas longas e melhorar a experiência on-line dos usuários. ### 2. Autenticação KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Existem muitos projetos ambiciosos usando Ethereum como base para soluções de ### Comunidades {#communities} - [Aliança ERC-725 no GitHub](https://github.com/erc725alliance) — _Apoiadores do padrão ERC725 para gerenciamento de identidade no blockchain Ethereum_ -- [Servidor do Discord do SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Comunidade para entusiastas e desenvolvedores que trabalham no Entrar com Ethereum_ +- [Servidor do Discord do EthID](https://discord.com/invite/ZUyG3mSXFD) — _Comunidade para entusiastas e desenvolvedores que trabalham no Entrar com Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Uma comunidade de desenvolvedores contribuindo para criar um framework de dados verificáveis para aplicativos_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _ Uma comunidade de desenvolvedores e construtores trabalhando em casos de uso de identidade descentralizada em vários setores_ diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/python/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/python/index.md index de023899096..e77a11c7eec 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth - [eth-utils](https://github.com/ethereum/eth-utils/) - _funções de utilidade para trabalhar com bases de código relacionadas com a Ethereum_ - [py-solc-x](https://pypi.org/project/py-solc-x/) - _wrapper em Python em cima do compilador solc solidity com suporte à versão 0.5.x_ - [pymaker](https://github.com/makerdao/pymaker) - _API em Python para contratos Maker_ -- [siwe](https://github.com/spruceid/siwe-py) - _Registre-se com Ethereum (siwe) para Python_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _Registre-se com Ethereum (siwe) para Python_ - [Web3 DeFi para integrações Ethereum](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _Um pacote Python com integrações prontas para ERC-20, Uniswap e outros projetos populares_ - [Wake](https://getwake.io) - _Framework Python completo para teste de contratos, fuzzing, implantação, varredura de vulnerabilidades e navegação de código (servidor de linguagem - [Ferramentas para Solidez](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/pt-br/developers/docs/programming-languages/ruby/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/ruby/index.md index adaaa635747..bdc3eddfb5f 100644 --- a/public/content/translations/pt-br/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/pt-br/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth - [Finalmente entendendo as contas Ethereum](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Finalmente autenticando usuários Rails com MetaMask](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Entrar com Ethereum - Biblioteca Ruby e Exemplos Rails de Lançamento](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [Como se conectar à rede Ethereum usando Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [Como gerar um novo endereço Ethereum em Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ Precisa de uma introdução geral? Confira [ethereum.org/learn](/learn/) ou [eth - [eth.rb](https://github.com/q9f/eth.rb) - _Biblioteca Ruby e cliente RPC para lidar com contas, mensagens e transações Ethereum_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _O hash Keccak (SHA3) usado pela Ethereum_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _Implementação Ruby de Login com Ethereum_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _Gem do Rails que adiciona rotas de login local da SIWE_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _Exemplo SIWE usando Ruby on Rails com controlador_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _Estratégia OmniAuth para login com Ethereum (SIWE)_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _Implementação Ruby de Login com Ethereum_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _Gem do Rails que adiciona rotas de login local da SIWE_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _Exemplo SIWE usando Ruby on Rails com controlador_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _Estratégia OmniAuth para login com Ethereum (SIWE)_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _Estratégia OmniAuth para autenticação via propriedade NFT_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _Modelo Ethereum on Rails que permite conectar MetaMask para Ruby on Rails_ diff --git a/public/content/translations/pt/decentralized-identity/index.md b/public/content/translations/pt/decentralized-identity/index.md index 7098edaa53d..7adfc399db0 100644 --- a/public/content/translations/pt/decentralized-identity/index.md +++ b/public/content/translations/pt/decentralized-identity/index.md @@ -57,7 +57,7 @@ A identidade descentralizada tem muitos exemplos potenciais de utilização: A identidade descentralizada pode ajudar a substituir os logins baseados em palavra-passe por autenticação descentralizada. Os prestadores de serviços podem emitir certificados para os utilizadores, que podem ser armazenados numa carteira Ethereum. Um exemplo de certificado seria um [NFT](/glossary/#nft) que concede ao titular acesso a uma comunidade online. -Uma função [Sign-In com Ethereum](https://login.xyz/) permitiria então aos servidores confirmar a conta Ethereum do utilizador e obter o certificado necessário a partir do endereço da sua conta. Isto significa que os utilizadores podem aceder a plataformas e websites sem terem de memorizar palavras-passe longas e permite melhorar a experiência online dos utilizadores. +Uma função [Sign-In com Ethereum](https://siwe.xyz/) permitiria então aos servidores confirmar a conta Ethereum do utilizador e obter o certificado necessário a partir do endereço da sua conta. Isto significa que os utilizadores podem aceder a plataformas e websites sem terem de memorizar palavras-passe longas e permite melhorar a experiência online dos utilizadores. ### 2. Autenticação KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Existem muitos projetos ambiciosos que utilizam o Ethereum como base para soluç ### Comunidades {#communities} - [Aliança ERC-725 no GitHub](https://github.com/erc725alliance) - _Apoiantes da norma ERC725 para a gestão da identidade na blockchain Ethereum_ -- [Servidor Discord do SpruceID](https://discord.com/invite/Sf9tSFzrnt) - _Comunidade para entusiastas e programadores que trabalham no Sign-in com Ethereum_ +- [Servidor Discord do EthID](https://discord.com/invite/ZUyG3mSXFD) - _Comunidade para entusiastas e programadores que trabalham no Sign-in com Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) - _Uma comunidade de programadores que contribui para a criação de uma estrutura de dados verificáveis para aplicações_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _ Uma comunidade de programadores e criadores que trabalham em casos de uso para identidade descentralizada entre várias industrias_ diff --git a/public/content/translations/ro/developers/docs/programming-languages/python/index.md b/public/content/translations/ro/developers/docs/programming-languages/python/index.md index 0ec92b95ab2..34c779506a2 100644 --- a/public/content/translations/ro/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/ro/developers/docs/programming-languages/python/index.md @@ -58,7 +58,7 @@ Aveţi nevoie de o scurtă introducere? Accesaţi [ethereum.org/learn](/learn/) - [py-wasm](https://github.com/ethereum/py-wasm) - _implementare Python pentru interpretorul Web Assembly_ - [pydevp2p](https://github.com/ethereum/pydevp2p) - _implementarea stivei P2P Ethereum_ - [pymaker](https://github.com/makerdao/pymaker) - _API Python pentru contracte Maker_ -- [siwe](https://github.com/spruceid/siwe-py) - _Sign in with Ethereum (siwe) for Python_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _Sign in with Ethereum (siwe) for Python_ - [Smart contracts for testing](https://github.com/tradingstrategy-ai/smart-contracts-for-testing) - _A Python package that comes with ERC-20, Uniswap and other common contracts for writing tests with Web3.py_ ### Arhivate/Neîntreținute: {#archived--no-longer-maintained} diff --git a/public/content/translations/ro/developers/docs/programming-languages/ruby/index.md b/public/content/translations/ro/developers/docs/programming-languages/ruby/index.md index d03f840b2e7..917c6bd66d4 100644 --- a/public/content/translations/ro/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/ro/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ Aveţi nevoie de o scurtă introducere? Accesaţi [ethereum.org/learn](/learn/) - [Finally understanding Ethereum accounts](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Finally Authenticating Rails Users with MetaMask](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Sign-In with Ethereum - Ruby Library and Rails Examples Release](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [How to connect to the Ethereum network using Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [How to generate a new Ethereum address in Ruby](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ Aveţi nevoie de o scurtă introducere? Accesaţi [ethereum.org/learn](/learn/) - [eth.rb](https://github.com/q9f/eth.rb) - _Ruby library and RPC-client to handle Ethereum accounts, messages, and transactions_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _The Keccak (SHA3) hash used by Ethereum_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _Ruby implementation of Sign-In with Ethereum_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _Rails gem that adds SIWE local sign in routes_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _SIWE example using Ruby on Rails with custom controller_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _OmniAuth strategy for Sign In With Ethereum (SIWE)_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _Ruby implementation of Sign-In with Ethereum_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _Rails gem that adds SIWE local sign in routes_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _SIWE example using Ruby on Rails with custom controller_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _OmniAuth strategy for Sign In With Ethereum (SIWE)_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _OmniAuth strategy for authenticating via NFT ownership_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _Ethereum on Rails template which allows to connect MetaMask to Ruby on Rails_ diff --git a/public/content/translations/ru/decentralized-identity/index.md b/public/content/translations/ru/decentralized-identity/index.md index bd4769e450e..a3658b24b7a 100644 --- a/public/content/translations/ru/decentralized-identity/index.md +++ b/public/content/translations/ru/decentralized-identity/index.md @@ -57,7 +57,7 @@ summaryPoint3: Благодаря криптовалюте у пользоват Децентрализованная аутентификация может заменить вход по паролю. Поставщики услуг могут выдавать пользователям аттестаты, которые можно хранить в кошельке Ethereum. Примером аттестации может быть [NFT](/glossary/#nft), предоставляющий владельцу доступ к онлайн-сообществу. -Затем функция [Войти с помощью Ethereum](https://login.xyz/) позволит серверам подтвердить учетную запись Ethereum пользователя и получить требуемое подтверждение с адреса его учетной записи. Это означает, что пользователи могут получать доступ к платформам и веб-сайтам, не запоминая длинные пароли, и улучшает работу пользователей в Интернете. +Затем функция [Войти с помощью Ethereum](https://siwe.xyz/) позволит серверам подтвердить учетную запись Ethereum пользователя и получить требуемое подтверждение с адреса его учетной записи. Это означает, что пользователи могут получать доступ к платформам и веб-сайтам, не запоминая длинные пароли, и улучшает работу пользователей в Интернете. ### 2. Аутентификация KYC {#kyc-authentication} @@ -186,6 +186,6 @@ summaryPoint3: Благодаря криптовалюте у пользоват ### Сообщества {#communities} - [ERC-725 Альянс на GitHab](https://github.com/erc725alliance) — _сторонники стандарта ERC725 для управления идентификацией на блокчейне Ethereum_ -- [Сервер SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _сообщество для энтузиастов и разработчиков, работающих над регистрацией в Ethereum_ +- [Сервер EthID Discord](https://discord.com/invite/ZUyG3mSXFD) — _сообщество для энтузиастов и разработчиков, работающих над регистрацией в Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _сообщество разработчиков, содействующих созданию фреймворка для проверяемых данных для приложений_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _сообщество разработчиков, работающих над вариантами использования децентрализованных идентификаторов в различных отраслях_ diff --git a/public/content/translations/sk/decentralized-identity/index.md b/public/content/translations/sk/decentralized-identity/index.md index c723820f9b8..b9cb329b8a2 100644 --- a/public/content/translations/sk/decentralized-identity/index.md +++ b/public/content/translations/sk/decentralized-identity/index.md @@ -57,7 +57,7 @@ Decentralizovaná identita má mnoho potenciálnych prípadov použitia: Decentralizovaná identita môže pomôcť nahradiť prihlasovanie na základe hesla decentralizovanou autentifikáciou. Poskytovatelia služieb môžu používateľom vydávať atestácie, ktoré môžu byť uložené v Ethereum peňaženke. Príkladom atestácie môže byť [NFT](/glossary/#nft), ktoré držiteľovi poskytuje prístup do online komunity. -Funkcia [Prihlásenie cez Ethereum](https://login.xyz/) potom umožní serverom potvrdiť používateľský účet Ethereum a získať požadované povolenie z adresy jeho účtu. To znamená, že používatelia môžu pristupovať k platformám a webovým stránkam bez toho, aby si museli pamätať dlhé heslá, čo zlepšuje online zážitok pre používateľov. +Funkcia [Prihlásenie cez Ethereum](https://siwe.xyz/) potom umožní serverom potvrdiť používateľský účet Ethereum a získať požadované povolenie z adresy jeho účtu. To znamená, že používatelia môžu pristupovať k platformám a webovým stránkam bez toho, aby si museli pamätať dlhé heslá, čo zlepšuje online zážitok pre používateľov. ### 2. Autentifikácia KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Existuje mnoho ambicióznych projektov, ktoré využívajú Ethereum ako základ ### Komunity {#communities} - [Aliancia ERC-725 na GitHube](https://github.com/erc725alliance) – _stúpenci normy ERC725 pre správu identity na blockchaine Ethereum_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) – _komunita pre nadšencov a vývojárov pracujúcich na prihlásení s Ethereom_ +- [EthID Discord server](https://discord.com/invite/ZUyG3mSXFD) – _komunita pre nadšencov a vývojárov pracujúcich na prihlásení s Ethereom_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) – _komunita vývojárov podieľajúcich sa na budovaní rámca pre overiteľné dáta pre aplikácie_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) – _komunita vývojárov a programátorov pracujúca na použití decentralizovanej identity naprieč rôznymi odbormi_ diff --git a/public/content/translations/sr/decentralized-identity/index.md b/public/content/translations/sr/decentralized-identity/index.md index e36e2f663b2..01768186276 100644 --- a/public/content/translations/sr/decentralized-identity/index.md +++ b/public/content/translations/sr/decentralized-identity/index.md @@ -57,7 +57,7 @@ Decentralizovani identitet ima mnogo potencijalnih načina primene: Decentralizovani identitet može zameniti prijavljivanje uz pomoć lozinke sa prijavljivanjem uz pomoć decentralizovane autentifikacije. Pružaoci usluga mogu izdati potvrde korisnicima koje mogu biti čuvane u Ethereum novčaniku. Primer potvrda bi bio [NFT](/glossary/#nft) koji garantuje da korisnik koji ga poseduje ima pristup zajednici na mreži. -[Prijava sa Ethereumom](https://login.xyz/) bi omogućila serverima da potvrde korisnički Ethereum nalog i preuzmu potrebnu potvrdu sa njihove adrese naloga. Ovo znači da korisnici mogu da pristupe platformama i veb-sajtovima bez potrebe da pamte svoje duge šifre i na taj način poboljšava korisničko iskustvo. +[Prijava sa Ethereumom](https://siwe.xyz/) bi omogućila serverima da potvrde korisnički Ethereum nalog i preuzmu potrebnu potvrdu sa njihove adrese naloga. Ovo znači da korisnici mogu da pristupe platformama i veb-sajtovima bez potrebe da pamte svoje duge šifre i na taj način poboljšava korisničko iskustvo. ### 2. KYC autentifikacija {#kyc-authentication} @@ -186,6 +186,6 @@ Postoji mnogo ambicioznih projekata koji koriste Ethereum kao osnovu za rešenja ### Zajednice {#communities} - [ERC-725 Alijansa na GitHubu](https://github.com/erc725alliance) — _Podržavaoci ERC725 standarda za upravljanje identitetom na Ethereum lancu blokova_ -- [SpruceIS Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Zajednica za entuzijaste i programere koji rade na Sign-in sistemu sa Ethereumom_ +- [EthID Discord server](https://discord.com/invite/ZUyG3mSXFD) — _Zajednica za entuzijaste i programere koji rade na Sign-in sistemu sa Ethereumom_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Zajednica programera koji doprinose građenju okvira (framework) za za podatke koji se mogu verifikovati za aplikacije_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Zajednica programera i tvoraca koji rade na slučajevima upotrebe decentralizovanih identiteta u različitim industrijama_ diff --git a/public/content/translations/tl/decentralized-identity/index.md b/public/content/translations/tl/decentralized-identity/index.md index d949d48bf19..5dbf31e21f3 100644 --- a/public/content/translations/tl/decentralized-identity/index.md +++ b/public/content/translations/tl/decentralized-identity/index.md @@ -57,7 +57,7 @@ Maraming posibleng use case ang desentralisadong pagkakakilanlan: Makakatulong ang desentralisadong pagkakakilanlan na palitan ang mga pag-log in gamit ang password ng desentralisadong authentication. Maaaring magbigay ang mga service provider ng mga attestation sa mga user, na maso-store sa Ethereum wallet. Ang isang halimbawa ng attestation ay isang [NFT](/glossary/#nft) na nagbibigay sa may-ari ng access sa isang online na komunidad. -Ang function na [Mag-sign in gamit ang Ethereum](https://login.xyz/) ay magbibigay-daan sa mga server na kumpirmahin ang Ethereum account ng user at kunin ang kinakailangang attestation mula sa account address niya. Ibig sabihin nito, maa-access ng mga user ang mga platform at website nang hindi kinakailangang tandaan ang mahahabang password at mapapahusay nito ang online experience ng mga user. +Ang function na [Mag-sign in gamit ang Ethereum](https://siwe.xyz/) ay magbibigay-daan sa mga server na kumpirmahin ang Ethereum account ng user at kunin ang kinakailangang attestation mula sa account address niya. Ibig sabihin nito, maa-access ng mga user ang mga platform at website nang hindi kinakailangang tandaan ang mahahabang password at mapapahusay nito ang online experience ng mga user. ### 2. KYC authentication {#kyc-authentication} @@ -186,6 +186,6 @@ Maraming malalaking proyekto ang gumagamit ng Ethereum bilang pundasyon para sa ### Mga Komunidad {#communities} - [ERC-725 Alliance sa GitHub](https://github.com/erc725alliance) — _Mga tagasuporta ng pamantayang ERC725 para sa pamamahala ng identity sa Ethereum blockchain_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Komunidad para sa mga tagahanga at developer na nagtatrabaho sa Mag-sign in gamit ang Ethereum_ +- [EthID Discord server](https://discord.com/invite/ZUyG3mSXFD) — _Komunidad para sa mga tagahanga at developer na nagtatrabaho sa Mag-sign in gamit ang Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Isang komunidad ng mga developer na tumutulong sa pagbuo ng framework para sa nave-verify na data para sa mga application_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Isang komunidad ng mga developer at builders na nagtutulungan sa mga decentralized identity use cases sa iba't ibang industriya_ diff --git a/public/content/translations/tr/decentralized-identity/index.md b/public/content/translations/tr/decentralized-identity/index.md index e6dd79fa66b..516c12bc540 100644 --- a/public/content/translations/tr/decentralized-identity/index.md +++ b/public/content/translations/tr/decentralized-identity/index.md @@ -57,7 +57,7 @@ Merkeziyetsiz kimliğin birçok potansiyel kullanım örneği vardır: Merkeziyetsiz kimlik, şifre bazlı giriş yöntemlerinin merkeziyetsiz doğrulama ile değiştirilmesine yardımcı olabilir. Hizmet sağlayıcılar, kullanıcılara tasdik verebilir, bu tasdikler bir Ethereum cüzdanında saklanabilir. Bir tasdik örneği, sahibinin çevrimiçi topluluğa erişimini sağlayan bir [NFT](/glossary/#nft) olabilir. -[Ethereum ile Oturum Açma](https://login.xyz/) işlevi, sunucuların kullanıcının Ethereum hesabını onaylamasını ve hesap adreslerinden gerekli tasdiği almasına olanak tanır. Bu, kullanıcıların uzun şifreleri ezberlemek zorunda kalmadan platformlara ve web sitelerine erişebileceği ve kullanıcılar için çevrimiçi deneyimi iyileştirebileceği anlamına gelir. +[Ethereum ile Oturum Açma](https://siwe.xyz/) işlevi, sunucuların kullanıcının Ethereum hesabını onaylamasını ve hesap adreslerinden gerekli tasdiği almasına olanak tanır. Bu, kullanıcıların uzun şifreleri ezberlemek zorunda kalmadan platformlara ve web sitelerine erişebileceği ve kullanıcılar için çevrimiçi deneyimi iyileştirebileceği anlamına gelir. ### 2. KYC kimlik doğrulaması {#kyc-authentication} @@ -186,6 +186,6 @@ Merkeziyetsiz kimlik çözümlerinin temeli olarak Ethereum'u kullanan çok say ### Topluluklar {#communities} - [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _Ethereum blok zincirinde kimlik yönetimi için ERC725 standardının destekçileri_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Ethereum ile oturum açma üzerinde çalışan meraklılar ve geliştiriciler için topluluk_ +- [EthID Discord server](https://discord.com/invite/ZUyG3mSXFD) — _Ethereum ile oturum açma üzerinde çalışan meraklılar ve geliştiriciler için topluluk_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Uygulamalar için doğrulanabilir veriler için bir çerçeve oluşturmaya katkıda bulunan bir geliştiriciler topluluğu_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Çeşitli sektörlerde merkezi olmayan kimlik kullanım örnekleri üzerinde çalışan geliştiricilerden ve derleyicilerden oluşan bir topluluk_ diff --git a/public/content/translations/tr/developers/docs/programming-languages/python/index.md b/public/content/translations/tr/developers/docs/programming-languages/python/index.md index 4a67dca6c24..e2a4bd6e1d1 100644 --- a/public/content/translations/tr/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/tr/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ Başlamadan önce temel bilgilere mi ihtiyacınız var? [ethereum.org/learn](/le - [eth-utils](https://github.com/ethereum/eth-utils/) - _Ethereum ile ilgili kod tabanlarıyla çalışmak için yardımcı işlevler_ - [py-solc-x](https://pypi.org/project/py-solc-x/) - _0.5.x desteği ile solc solidity derleyicisine yönelik Python paketleyici_ - [pymaker](https://github.com/makerdao/pymaker) - _Maker sözleşmeleri için Python API_ -- [siwe](https://github.com/spruceid/siwe-py) - _Python için Ethereum (siwe) ile oturum açın_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _Python için Ethereum (siwe) ile oturum açın_ - [Ethereum entegrasyonları için Web3 DeFi](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _ERC-20, Uniswap ve diğer popüler projeler için hazır entegrasyonlar içeren bir Python paketi_ - [Wake](https://getwake.io) - _Sözleşme testleri, bulanıklaştırma, dağıtım, güvenlik açığı taraması ve kodda gezinme için hepsi bir arada Python çerçevesi (dil sunucusu - [Solidity Araçları](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/tr/developers/docs/programming-languages/ruby/index.md b/public/content/translations/tr/developers/docs/programming-languages/ruby/index.md index 83250310a1c..226c92da670 100644 --- a/public/content/translations/tr/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/tr/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ Başlamadan önce daha temel bir bilgiye mi ihtiyacınız var? [ethereum.org/lea - [Sonunda Ethereum hesaplarını anlamak](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [Sonunda MetaMask ile Rails Kullanıcılarının Doğrulanması](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Ethereum ile Oturum Açma - Ruby Kitaplığı ve Rails Örnekleri Sürümü](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [Ruby kullanarak Ethereum ağına nasıl bağlanılır](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [Ruby'de yeni bir Ethereum adresi nasıl oluşturulur](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ Başlamadan önce daha temel bir bilgiye mi ihtiyacınız var? [ethereum.org/lea - [eth.rb](https://github.com/q9f/eth.rb) - _Ethereum hesaplarını, mesajlarını ve işlemlerini işlemek için Ruby kitaplığı ve RPC istemcisi_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _Ethereum tarafından kullanılan Keccak (SHA3) hash değeri_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _Ethereum ile Oturum Açmanın Ruby uygulaması_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _SIWE yerel oturum açma rotalarını ekleyen Rails gem_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _Özel denetleyiciyle Ruby on Rails kullanan SIWE örneği_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _Ethereum ile Oturum Açma (SIWE) için OmniAuth stratejisi_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _Ethereum ile Oturum Açmanın Ruby uygulaması_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _SIWE yerel oturum açma rotalarını ekleyen Rails gem_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _Özel denetleyiciyle Ruby on Rails kullanan SIWE örneği_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _Ethereum ile Oturum Açma (SIWE) için OmniAuth stratejisi_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _NFT sahipliği aracılığıyla kimlik doğrulama için OmniAuth stratejisi_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _MetaMask'i Ruby on Rails'e bağlamayı sağlayan Ethereum on Rails şablonu_ diff --git a/public/content/translations/uk/decentralized-identity/index.md b/public/content/translations/uk/decentralized-identity/index.md index b46418480ee..70d59709bf4 100644 --- a/public/content/translations/uk/decentralized-identity/index.md +++ b/public/content/translations/uk/decentralized-identity/index.md @@ -57,7 +57,7 @@ summaryPoint3: Завдяки криптовалюті користувачі з Децентралізована ідентичність може допомогти замінити парольні входи на децентралізовану автентифікацію. Постачальники послуг можуть видавати користувачам атестати, які можуть зберігатися в гаманці Ethereum. Прикладом атестації може бути [NFT](/glossary/#nft), що надає власнику доступ до онлайн-спільноти. -Функція [Увійти за допомогою Ethereum](https://login.xyz/) дасть серверам змогу підтвердити обліковий запис користувача Ethereum і отримати необхідне підтвердження з адреси його облікового запису. Це означає, що користувачі можуть отримати доступ до платформ і вебсайтів без необхідності запам'ятовувати довгі паролі й покращує онлайн-досвід для користувачів. +Функція [Увійти за допомогою Ethereum](https://siwe.xyz/) дасть серверам змогу підтвердити обліковий запис користувача Ethereum і отримати необхідне підтвердження з адреси його облікового запису. Це означає, що користувачі можуть отримати доступ до платформ і вебсайтів без необхідності запам'ятовувати довгі паролі й покращує онлайн-досвід для користувачів. ### 2. Автентифікація KYC {#kyc-authentication} @@ -186,6 +186,6 @@ summaryPoint3: Завдяки криптовалюті користувачі з ### Спільноти {#communities} - [Альянс ERC-725 на GitHub](https://github.com/erc725alliance) — _Прихильники стандарту ERC725 для керування ідентифікацією в блокчейні Ethereum_ -- [Сервер Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Спільнота для ентузіастів і розробників, які працюють над входом за допомогою Ethereum_ +- [Сервер Discord EthID](https://discord.com/invite/ZUyG3mSXFD) — _Спільнота для ентузіастів і розробників, які працюють над входом за допомогою Ethereum_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _спільнота розробників, які роблять внесок у створення основи для перевірених даних для програм_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Спільнота розробників і будівельників, які працюють над децентралізованими випадками використання ідентичностей у різних галузях_ diff --git a/public/content/translations/yo/decentralized-identity/index.md b/public/content/translations/yo/decentralized-identity/index.md index ca3f4fa4fbe..1a60374b1a5 100644 --- a/public/content/translations/yo/decentralized-identity/index.md +++ b/public/content/translations/yo/decentralized-identity/index.md @@ -57,7 +57,7 @@ Aṣèdámọ̀ jẹ́ ǹkan ti àlàyé tí ó ṣiṣẹ́ bíi ìtọ́ka sí Ìdánimò tí kò ní àkóso le ṣe ìrànlọ́wọ́ ìrọ́pò fún àwọn ìgbaniwọlé oní ọ̀rọ̀-aṣínà pẹ̀lú ìfàṣẹsí tí kò ní àkóso. Àwọn Olùpèsè iṣẹ́ le fún àwọn ìjẹ́ẹ̀rísí sí àwọn olùmúlò, èyí tí ó le wà ní ìpamọ́ sínú àpò àpamọ́wọ́ Ẹ̀tẹ́ríọ̀mù. Àpẹrẹ ìjẹ́ẹ̀rísí yóò jẹ́ [NFT](/glossary/#nft) fífún ẹni tí ó ni ààyè sí àgbègbè orí ayélujára. -Iṣẹ́ [ìwọlé pẹ̀lú Ẹ̀tẹ́ríọ̀mù](https://login.xyz/) yóò jẹ́kí àwọn apèsè láti ṣe jẹ́ẹ̀rísí àkọ́ọ́lẹ̀ Ẹ̀tẹ́ríọ̀mù olùmúlò àti mú ẹ̀rí tí ò nílò láti inú àdírẹ́ẹ̀sì àkọ́ọ́lẹ̀ wọn. Èyí túmò sí pé àwọn olùmúlò le wọlé sí àwọn ojú ẹ̀rọ àti àwọn ojú òpó ayélujára láìsí níní láti ṣe àkọ́sórí àwọn ọ̀rọ̀ aṣínà gígùn àti ṣíṣe ìmúdárasí ìrírí orí ayélujára fún àwọn olùmúlò. +Iṣẹ́ [ìwọlé pẹ̀lú Ẹ̀tẹ́ríọ̀mù](https://siwe.xyz/) yóò jẹ́kí àwọn apèsè láti ṣe jẹ́ẹ̀rísí àkọ́ọ́lẹ̀ Ẹ̀tẹ́ríọ̀mù olùmúlò àti mú ẹ̀rí tí ò nílò láti inú àdírẹ́ẹ̀sì àkọ́ọ́lẹ̀ wọn. Èyí túmò sí pé àwọn olùmúlò le wọlé sí àwọn ojú ẹ̀rọ àti àwọn ojú òpó ayélujára láìsí níní láti ṣe àkọ́sórí àwọn ọ̀rọ̀ aṣínà gígùn àti ṣíṣe ìmúdárasí ìrírí orí ayélujára fún àwọn olùmúlò. ### 2. Ìfàṣẹsí KYC {#kyc-authentication} @@ -186,6 +186,6 @@ Lábẹ́ ètò yií àwọn ìjẹ́ẹ̀rísí di yíyípadà sí àwọn fá ### Àwọn àwùjọ {#communities} - [Àjọṣe ERC-725 lórí GitHub](https://github.com/erc725alliance) - _ Awọn alatilẹyin ti boṣewa ERC725 fun iṣakoso idanimọ lori blockchain Ethereum_ -- [Ikanni Disikọdu SpruceID](https://discord.com/invite/Sf9tSFzrnt) - _Awujọ fun awọn ololufẹ ati awọn olupilẹṣẹ ti n ṣiṣẹ lori Wiwọle pẹlu Ethereum_ +- [Ikanni Disikọdu EthID](https://discord.com/invite/ZUyG3mSXFD) - _Awujọ fun awọn ololufẹ ati awọn olupilẹṣẹ ti n ṣiṣẹ lori Wiwọle pẹlu Ethereum_ - [Laabu Veramo](https://discord.gg/sYBUXpACh4) - _Awujọ àwọn olùṣe tí ó ń kópa nínú kíkọ́ àgbékalẹ̀ fún àwọn ìsọfúnni tí a lè ṣàyẹ̀wò fún àwọn ohun èlò_ - [wait.id](https://discord.com/invite/AW8AgqJthZ) - _ Awujọ àwọn olùdàgbàsókè àti àwọn olùgbèrú tó ń ṣiṣẹ́ lórí àwọn ọ̀ràn lílo ìdánimọ̀ tí kò dáwọ́ lé ní oríṣiríṣi ẹ̀ka-iṣẹ́_ diff --git a/public/content/translations/zh-tw/decentralized-identity/index.md b/public/content/translations/zh-tw/decentralized-identity/index.md index 08668d578f9..c7f3555470d 100644 --- a/public/content/translations/zh-tw/decentralized-identity/index.md +++ b/public/content/translations/zh-tw/decentralized-identity/index.md @@ -57,7 +57,7 @@ summaryPoint3: 多虧了加密技術,使用者現在擁有了再次發行、 去中心化身分可以使用去中心化驗證,有助於替代基於密碼的登入方式。 服務提供商可以向使用者簽發身分證明,這些證明可以儲存在以太坊錢包中。 一個身分證明範例是[非同質化代幣](/glossary/#nft),可以授予持有者訪問線上社群的權利。 -[使用以太坊登入](https://login.xyz/)功能將允許伺服器能夠確認使用者的以太坊帳戶,並從他們的帳戶地址中獲取所需的身分證明。 這意味著使用者無需記住冗長的密碼,就能夠訪問平台和網站,進而改善使用者的線上體驗。 +[使用以太坊登入](https://siwe.xyz/)功能將允許伺服器能夠確認使用者的以太坊帳戶,並從他們的帳戶地址中獲取所需的身分證明。 這意味著使用者無需記住冗長的密碼,就能夠訪問平台和網站,進而改善使用者的線上體驗。 ### 2. 「認識客戶」驗證 {#kyc-authentication} @@ -186,6 +186,6 @@ summaryPoint3: 多虧了加密技術,使用者現在擁有了再次發行、 ### 社群 {#communities} - [GitHub 上的 ERC-725 聯盟](https://github.com/erc725alliance) — _在以太坊區塊鏈上管理身分的 ERC725 標準的支持者_ -- [SpruceID Discord 伺服器](https://discord.com/invite/Sf9tSFzrnt) — _研究使用以太坊登錄的愛好者和開發者社群_ +- [EthID Discord 伺服器](https://discord.com/invite/ZUyG3mSXFD) — _研究使用以太坊登錄的愛好者和開發者社群_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) — _一個開發人員社區,致力於為應用程式構建可驗證資料的框架_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _由開發者和構建者組成的社區,致力於開發各個行業的去中心化身份應用案例_ diff --git a/public/content/translations/zh-tw/developers/docs/programming-languages/python/index.md b/public/content/translations/zh-tw/developers/docs/programming-languages/python/index.md index 1cc55207439..fc8b819c749 100644 --- a/public/content/translations/zh-tw/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/zh-tw/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ incomplete: true - [eth-utils](https://github.com/ethereum/eth-utils/) - _使用 Ethereum 相關程式碼庫的公用程式函數_ - [py-solc-x](https://pypi.org/project/py-solc-x/) - _適用於 solc solidity 編譯器(支援 0.5.x)的 Python 包裝函式_ - [pymaker](https://github.com/makerdao/pymaker) - _用於 Maker 合約的 Python 應用程式介面_ -- [siwe](https://github.com/spruceid/siwe-py) - _用於 Python 的以太坊 (siwe) 登入_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _用於 Python 的以太坊 (siwe) 登入_ - [用於以太坊整合的 Web3 去中心化金融](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _一個預先整合 ERC-20、Uniswap 和其他受歡迎專案的 Python 包_ - [Wake](https://getwake.io) - _用於合約測試、初略模糊、部署、漏洞掃描和程式碼導航的一體化 Python 框架(語言伺服器 - [Solidity 工具](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/zh-tw/developers/docs/programming-languages/ruby/index.md b/public/content/translations/zh-tw/developers/docs/programming-languages/ruby/index.md index d9865a9bfde..76702f11a09 100644 --- a/public/content/translations/zh-tw/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/zh-tw/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ incomplete: false - [終於理解以太坊帳戶](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [使用 MetaMask 最終驗證 Rails 使用者](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Sign-In with Ethereum - Ruby 程式庫和 Rails 範例發佈](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [如何使用 Ruby 連接到以太坊網路](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [如何使用 Ruby 產生新的以太坊地址](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ incomplete: false - [eth.rb](https://github.com/q9f/eth.rb) - _Ruby 程式庫與遠端程序呼叫用戶端,用於處理以太坊帳戶、訊息以及交易_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _以太坊使用的 Keccak (SHA3) 雜湊值_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _Sign-In with Ethereum的 Ruby 實作_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _添加 SIWE 本地登入路由的 Rails gem_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _使用 Ruby on Rails 的 SIWE 範例(含自訂控製器)_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _面向 Sign In With Ethereum (SIWE) 的 OmniAuth 策略_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _Sign-In with Ethereum的 Ruby 實作_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _添加 SIWE 本地登入路由的 Rails gem_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _使用 Ruby on Rails 的 SIWE 範例(含自訂控製器)_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _面向 Sign In With Ethereum (SIWE) 的 OmniAuth 策略_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _面向通過非同質化代幣所有權進行身份驗證的 OmniAuth 策略_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _Ethereum on Rails 範本,允許將 MetaMask 連結到 Ruby on Rails_ diff --git a/public/content/translations/zh/decentralized-identity/index.md b/public/content/translations/zh/decentralized-identity/index.md index 30276cc1683..2a2cf200b11 100644 --- a/public/content/translations/zh/decentralized-identity/index.md +++ b/public/content/translations/zh/decentralized-identity/index.md @@ -57,7 +57,7 @@ summaryPoint3: 多亏了加密技术,用户现在拥有了再次发布、持 去中心化身份有助于实现去中心化身份验证替代密码登录。 服务提供商可以向用户发布认证,这些认证可以存储在以太坊钱包中。 身份证明的一个示例是[非同质化代币](/glossary/#nft),可授予持有者访问在线社区的权限。 -然后,[使用以太坊登录](https://login.xyz/)功能将使服务器能够确认用户的以太坊帐户,并从他们的帐户地址获取所需的身份证明。 这意味着用户无需记住冗长的密码即可访问平台和网站,从而改善用户的线上体验。 +然后,[使用以太坊登录](https://siwe.xyz/)功能将使服务器能够确认用户的以太坊帐户,并从他们的帐户地址获取所需的身份证明。 这意味着用户无需记住冗长的密码即可访问平台和网站,从而改善用户的线上体验。 ### 2. “了解你的客户”身份验证 {#kyc-authentication} @@ -186,6 +186,6 @@ summaryPoint3: 多亏了加密技术,用户现在拥有了再次发布、持 ### 社区 {#communities} - [GitHub 上的 ERC-725 联盟](https://github.com/erc725alliance) — _支持 ERC725 标准管理以太坊区块链上的身份_ -- [SpruceID Discord 服务器](https://discord.com/invite/Sf9tSFzrnt) — _使用以太坊登录的爱好者和开发者社区_ +- [EthID Discord 服务器](https://discord.com/invite/ZUyG3mSXFD) — _使用以太坊登录的爱好者和开发者社区_ - [Veramo Labs](https://discord.gg/sYBUXpACh4) - _开发者社区,帮助为应用程序构建可验证数据框架_ - [walt.id](https://discord.com/invite/AW8AgqJthZ) — _一个由开发者和构建者组成的社区,致力于研究跨各种行业的去中心化身份用例_ diff --git a/public/content/translations/zh/developers/docs/programming-languages/python/index.md b/public/content/translations/zh/developers/docs/programming-languages/python/index.md index 5b2b8efb332..f82619eca24 100644 --- a/public/content/translations/zh/developers/docs/programming-languages/python/index.md +++ b/public/content/translations/zh/developers/docs/programming-languages/python/index.md @@ -56,7 +56,7 @@ incomplete: true - [eth-utils](https://github.com/ethereum/eth-utils/) - _使用以太坊相关代码库的实用程序函数_ - [py-solc-x](https://pypi.org/project/py-solc-x/) - _适用于 solc Solidity 编译器(支持 0.5.x)的 Python 装饰器_ - [pymaker](https://github.com/makerdao/pymaker) - _面向 Maker 合约的 Python 应用程序接口_ -- [siwe](https://github.com/spruceid/siwe-py) - _面向 Python 的以太坊登录服务 (siwe)_ +- [siwe](https://github.com/signinwithethereum/siwe-py) - _面向 Python 的以太坊登录服务 (siwe)_ - [用于以太坊集成的 Web3 去中心化金融](https://github.com/tradingstrategy-ai/web3-ethereum-defi) - _一个 Python 包,具有适用于 ERC-20、Uniswap 和其他流行项目的现成集成_ - [Wake](https://getwake.io) - _用于合约测试、模糊测试、部署、漏洞扫描和代码导航的一体化 Python 框架(语言服务器 - [Solidity 工具](https://marketplace.visualstudio.com/items?itemName=AckeeBlockchain.tools-for-solidity))_ diff --git a/public/content/translations/zh/developers/docs/programming-languages/ruby/index.md b/public/content/translations/zh/developers/docs/programming-languages/ruby/index.md index 2d979891d29..f8f4e4a6b25 100644 --- a/public/content/translations/zh/developers/docs/programming-languages/ruby/index.md +++ b/public/content/translations/zh/developers/docs/programming-languages/ruby/index.md @@ -24,7 +24,6 @@ incomplete: false - [终于明白以太坊帐户了](https://dev.to/q9/finally-understanding-ethereum-accounts-1kpe) - [使用 MetaMask 对 Rails 用户进行最终身份验证](https://dev.to/q9/finally-authenticating-rails-users-with-metamask-3fj) -- [Sign-In with Ethereum - Ruby 库与 Rails 示例发布](https://blog.spruceid.com/sign-in-with-ethereum-ruby-library-release-and-rails-examples/) - [如何使用 Ruby 连接到以太坊网络](https://www.quicknode.com/guides/web3-sdks/how-to-connect-to-the-ethereum-network-using-ruby) - [如何使用 Ruby 生成新的以太坊地址](https://www.quicknode.com/guides/web3-sdks/how-to-generate-a-new-ethereum-address-in-ruby) @@ -39,10 +38,10 @@ incomplete: false - [eth.rb](https://github.com/q9f/eth.rb) - _Ruby 库和远程过程调用客户端,用于处理以太坊帐户、消息和交易_ - [keccak.rb](https://github.com/q9f/keccak.rb) - _以太坊使用的 Keccak (SHA3) 哈希_ -- [siwe-ruby](https://github.com/spruceid/siwe-ruby) - _使用 Ruby 实现 Sign-In with Ethereum_ -- [siwe_rails](https://github.com/spruceid/siwe_rails) - _添加 SIWE 本地登录路由的 Rails gem_ -- [siwe-rails-examples](https://github.com/spruceid/siwe-rails-examples) - _使用 Ruby on Rails 的 SIWE 示例(含自定义控制器)_ -- [omniauth-siwe](https://github.com/spruceid/omniauth-siwe) - _面向 Sign In With Ethereum (SIWE) 的 OmniAuth 策略_ +- [siwe-ruby](https://github.com/signinwithethereum/siwe-ruby) - _使用 Ruby 实现 Sign-In with Ethereum_ +- [siwe-rails](https://github.com/signinwithethereum/siwe-rails) - _添加 SIWE 本地登录路由的 Rails gem_ +- [siwe-rails-examples](https://github.com/signinwithethereum/siwe-rails-examples) - _使用 Ruby on Rails 的 SIWE 示例(含自定义控制器)_ +- [omniauth-siwe](https://github.com/signinwithethereum/omniauth-siwe) - _面向 Sign In With Ethereum (SIWE) 的 OmniAuth 策略_ - [omniauth-nft](https://github.com/valthon/omniauth-nft) - _面向通过非同质化代币所有权进行身份验证的 OmniAuth 策略_ - [ethereum-on-rails](https://github.com/q9f/ethereum-on-rails) - _Ethereum on Rails 模板,允许连接 MetaMask 到 Ruby on Rails_ diff --git a/public/content/zero-knowledge-proofs/index.md b/public/content/zero-knowledge-proofs/index.md index c6bb6f15a8a..4951766a414 100644 --- a/public/content/zero-knowledge-proofs/index.md +++ b/public/content/zero-knowledge-proofs/index.md @@ -90,7 +90,7 @@ Defined as “coordinating to limit open competition by deceiving, defrauding, a Bribery and collusion limit the effectiveness of any process that uses voting as a signaling mechanism (especially where users can prove how they voted). This can have significant consequences, especially where the votes are responsible for allocating scarce resources. -For example, [quadratic funding mechanisms](https://www.radicalxchange.org/concepts/plural-funding/) rely on donations to measure preference for certain options among different public good projects. Each donation counts as a "vote" for a specific project, with projects that receive more votes getting more funds from the matching pool. +For example, [quadratic funding mechanisms](https://www.radicalxchange.org/wiki/plural-funding/) rely on donations to measure preference for certain options among different public good projects. Each donation counts as a "vote" for a specific project, with projects that receive more votes getting more funds from the matching pool. Using onchain voting makes quadratic funding susceptible to collusion: blockchain transactions are public, so bribers can inspect a bribee’s onchain activity to see how they “voted”. This way quadratic funding ceases to be an effective means for allocating funds based on the aggregated preferences of the community. @@ -218,3 +218,4 @@ ZK-STARK is considered immune to the threat of quantum computing, as it only rel - [An approximate introduction to how zk-SNARKs are possible](https://vitalik.eth.limo/general/2021/01/26/snarks.html) — _Vitalik Buterin_ - [Why Zero Knowledge Proofs (ZKPs) is a Game Changer for Self-Sovereign Identity](https://frankiefab.hashnode.dev/why-zero-knowledge-proofs-zkps-is-a-game-changer-for-self-sovereign-identity) — _Franklin Ohaegbulam_ - [EIP-7503 Explained: Enabling Private Transfers On Ethereum With ZK Proofs](https://research.2077.xyz/eip-7503-zero-knowledge-wormholes-for-private-ethereum-transactions#introduction) — _Emmanuel Awosika_ +- [ZK Card Game: game to learn ZK fundamentals and real-life use cases](https://github.com/ZK-card/zk-cards) - _ZK-Cards_ diff --git a/public/images/ethereum-vs-bitcoin/bitcoin-vs-ethereum-robots.png b/public/images/ethereum-vs-bitcoin/bitcoin-vs-ethereum-robots.png new file mode 100644 index 00000000000..3f0a8c0eff6 Binary files /dev/null and b/public/images/ethereum-vs-bitcoin/bitcoin-vs-ethereum-robots.png differ diff --git a/public/images/exchanges/coinmate.png b/public/images/exchanges/coinmate.png new file mode 100644 index 00000000000..b537ed916bb Binary files /dev/null and b/public/images/exchanges/coinmate.png differ diff --git a/public/images/exchanges/zkp2p.png b/public/images/exchanges/zkp2p.png new file mode 100644 index 00000000000..93288740eab Binary files /dev/null and b/public/images/exchanges/zkp2p.png differ diff --git a/public/images/man-and-dog-playing.png b/public/images/man-and-dog-playing.png index 14e75d2156e..aa966b93b15 100644 Binary files a/public/images/man-and-dog-playing.png and b/public/images/man-and-dog-playing.png differ diff --git a/public/images/wallets/cakewallet.png b/public/images/wallets/cakewallet.png new file mode 100644 index 00000000000..6ca5ae9967d Binary files /dev/null and b/public/images/wallets/cakewallet.png differ diff --git a/public/images/what-is-ethereum-network/computer_alone.png b/public/images/what-is-ethereum-network/computer_alone.png new file mode 100644 index 00000000000..c5097e1c766 Binary files /dev/null and b/public/images/what-is-ethereum-network/computer_alone.png differ diff --git a/public/images/what-is-ethereum-network/what-is-ethereum-network.png b/public/images/what-is-ethereum-network/what-is-ethereum-network.png new file mode 100644 index 00000000000..9eba947f905 Binary files /dev/null and b/public/images/what-is-ethereum-network/what-is-ethereum-network.png differ diff --git a/src/components/CommentCard/index.tsx b/src/components/CommentCard/index.tsx new file mode 100644 index 00000000000..4c2bbbd0f68 --- /dev/null +++ b/src/components/CommentCard/index.tsx @@ -0,0 +1,44 @@ +import { ReactNode } from "react" + +import { Card } from "@/components/ui/card" + +import { cn } from "@/lib/utils/cn" + +const CommentCard = ({ + description, + name, + title, + className, +}: { + description: string | ReactNode + name: string + title: string + className?: string +}) => { + return ( + +
+

{description}

+
+
+
+ {name.charAt(0)} +
+
+

{name}

+

{title}

+
+
+
+ ) +} + +export default CommentCard diff --git a/src/components/ui/Link.tsx b/src/components/ui/Link.tsx index 4477f74e19b..b284db06acf 100644 --- a/src/components/ui/Link.tsx +++ b/src/components/ui/Link.tsx @@ -1,7 +1,7 @@ "use client" import { AnchorHTMLAttributes, ComponentProps, forwardRef } from "react" -import { ExternalLink, Mail } from "lucide-react" +import { ArrowRight, ExternalLink, Mail } from "lucide-react" import NextLink from "next/link" import { VisuallyHidden } from "@radix-ui/react-visually-hidden" @@ -197,6 +197,27 @@ export const BaseLink = forwardRef(function Link( }) BaseLink.displayName = "BaseLink" +export const LinkWithArrow = forwardRef( + ({ children, className, ...props }: LinkProps, ref) => { + const { twFlipForRtl } = useRtlFlip() + return ( + + +   + {children} + + ) + } +) +LinkWithArrow.displayName = "LinkWithArrow" + const InlineLink = forwardRef( (props: LinkProps, ref) => { return ( diff --git a/src/components/ui/table.tsx b/src/components/ui/table.tsx index 7d85a07e776..6b52cbe87fb 100644 --- a/src/components/ui/table.tsx +++ b/src/components/ui/table.tsx @@ -57,6 +57,11 @@ const tableVariants = tv({ th: "text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0", td: "align-middle p-4 [&:has([role=checkbox])]:pr-0", }, + "highlight-first-column": { + ...baseStyles, + thead: "bg-background-highlight", + td: `${baseStyles.td} first:bg-background-highlight first:font-bold`, + }, }, }, defaultVariants: { diff --git a/src/data/exchangesByCountry.ts b/src/data/exchangesByCountry.ts index 0a971b372ce..d7e6cc531aa 100644 --- a/src/data/exchangesByCountry.ts +++ b/src/data/exchangesByCountry.ts @@ -33,6 +33,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "kraken", "mtpelerin", "wazirx", @@ -59,6 +60,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -77,6 +79,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -108,6 +111,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -126,6 +130,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -148,6 +153,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -166,6 +172,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -184,6 +191,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "kraken", "gemini", "binance", @@ -207,6 +215,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "kraken", "gemini", "cryptocom", @@ -228,6 +237,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -262,6 +272,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "rain", @@ -329,6 +340,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -351,6 +363,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -368,6 +381,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -386,6 +400,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -404,6 +419,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "gemini", "itezcom", @@ -436,6 +452,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -453,6 +470,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -484,6 +502,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -506,6 +525,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "gemini", "cryptocom", @@ -525,6 +545,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -543,6 +564,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -582,6 +604,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "wazirx", @@ -613,6 +636,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -632,6 +656,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -651,6 +676,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -686,6 +712,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "itezcom", "wazirx", "okx", @@ -700,6 +727,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -718,6 +746,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -750,6 +779,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -768,6 +798,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -790,6 +821,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -820,6 +852,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -839,6 +872,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "cryptocom", @@ -886,6 +920,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -909,6 +944,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -927,6 +963,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -950,6 +987,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -966,6 +1004,7 @@ const exchangesByCountry = { "bitfinex", "bybit", "matrixport", + "coinmate", ], // Denmark DK: [ @@ -973,6 +1012,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -995,6 +1035,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1012,6 +1053,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1030,6 +1072,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "cryptocom", @@ -1064,6 +1107,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "gemini", "binance", @@ -1083,6 +1127,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1103,6 +1148,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1121,6 +1167,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "itezcom", "mtpelerin", "okx", @@ -1137,6 +1184,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1159,6 +1207,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "itezcom", "mtpelerin", "wazirx", @@ -1174,6 +1223,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1189,6 +1239,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1204,6 +1255,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "cryptocom", "itezcom", @@ -1223,6 +1275,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1246,6 +1299,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "binance", @@ -1262,12 +1316,14 @@ const exchangesByCountry = { "bitfinex", "bybit", "matrixport", + "zkp2p", ], // French Guiana (France) GF: [ "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "bitvavo", @@ -1285,6 +1341,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1301,6 +1358,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1318,6 +1376,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1335,6 +1394,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1353,6 +1413,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "cryptocom", @@ -1368,6 +1429,7 @@ const exchangesByCountry = { "bitfinex", "bybit", "matrixport", + "zkp2p", ], // Ghana GH: [ @@ -1388,6 +1450,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1409,6 +1472,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1432,6 +1496,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1449,6 +1514,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1466,6 +1532,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "bitvavo", @@ -1485,6 +1552,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "cryptocom", @@ -1504,6 +1572,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1524,6 +1593,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "itezcom", "wazirx", "kucoin", @@ -1539,6 +1609,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "okx", "kucoin", "huobiglobal", @@ -1553,6 +1624,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1583,6 +1655,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "cryptocom", @@ -1603,6 +1676,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1621,6 +1695,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1665,6 +1740,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1687,6 +1763,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "binance", @@ -1722,6 +1799,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1744,6 +1822,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -1762,6 +1841,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "kraken", "gemini", "binance", @@ -1783,6 +1863,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1838,6 +1919,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -1857,6 +1939,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "cryptocom", @@ -1876,6 +1959,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "binance", @@ -1895,6 +1979,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "cryptocom", @@ -1914,6 +1999,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1946,6 +2032,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "rain", @@ -1966,6 +2053,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "mtpelerin", @@ -1981,6 +2069,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -1998,6 +2087,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2021,6 +2111,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "okx", "kucoin", @@ -2035,6 +2126,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2068,6 +2160,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "okx", "huobiglobal", @@ -2081,6 +2174,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2104,6 +2198,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2127,6 +2222,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2149,6 +2245,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2166,6 +2263,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2183,6 +2281,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "kraken", "cryptocom", "itezcom", @@ -2201,6 +2300,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -2220,6 +2320,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "okx", @@ -2253,6 +2354,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2270,6 +2372,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "bitvavo", @@ -2288,6 +2391,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2321,6 +2425,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "binance", @@ -2342,6 +2447,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2359,6 +2465,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2376,6 +2483,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -2410,6 +2518,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -2427,6 +2536,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2458,6 +2568,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2488,6 +2599,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -2506,6 +2618,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2523,6 +2636,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "okx", "kucoin", @@ -2535,6 +2649,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "mtpelerin", @@ -2553,6 +2668,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "kraken", "gemini", "cryptocom", @@ -2573,6 +2689,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2590,6 +2707,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2627,6 +2745,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2644,6 +2763,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "gemini", "binance", @@ -2663,6 +2783,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2679,6 +2800,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2697,6 +2819,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2716,6 +2839,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2738,6 +2862,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "rain", @@ -2772,6 +2897,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2788,6 +2914,7 @@ const exchangesByCountry = { PS: [ "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2822,6 +2949,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2840,6 +2968,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "cryptocom", @@ -2860,6 +2989,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2882,6 +3012,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2903,6 +3034,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -2920,6 +3052,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2944,6 +3077,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -2963,12 +3097,21 @@ const exchangesByCountry = { "matrixport", ], // Puerto Rico (USA) - PR: ["simplex", "moonpay", "kraken", "kucoin", "huobiglobal", "bybit"], + PR: [ + "simplex", + "moonpay", + "kraken", + "kucoin", + "huobiglobal", + "bybit", + "zkp2p", + ], // Qatar QA: [ "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "cryptocom", "itezcom", @@ -2987,6 +3130,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3027,6 +3171,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -3044,6 +3189,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3060,6 +3206,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3076,6 +3223,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "cryptocom", "itezcom", @@ -3093,6 +3241,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "gemini", "itezcom", @@ -3110,6 +3259,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "bitvavo", @@ -3128,6 +3278,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3144,6 +3295,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "gemini", "itezcom", @@ -3161,6 +3313,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "mtpelerin", "wazirx", @@ -3176,6 +3329,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -3194,6 +3348,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3211,6 +3366,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "binance", "rain", @@ -3247,6 +3403,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "cryptocom", @@ -3264,6 +3421,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3280,6 +3438,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "itezcom", "mtpelerin", "okx", @@ -3296,6 +3455,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "gemini", "cryptocom", @@ -3312,6 +3472,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3329,6 +3490,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3348,6 +3510,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3372,6 +3535,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3394,6 +3558,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3412,6 +3577,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "okx", "kucoin", @@ -3427,6 +3593,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3448,6 +3615,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3464,6 +3632,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "gemini", "cryptocom", "itezcom", @@ -3498,6 +3667,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3522,6 +3692,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3540,6 +3711,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3558,6 +3730,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3581,6 +3754,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3606,6 +3780,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3627,6 +3802,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3645,6 +3821,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3662,6 +3839,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "kraken", "cryptocom", "itezcom", @@ -3680,6 +3858,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3696,6 +3875,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3713,6 +3893,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3730,6 +3911,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3764,6 +3946,7 @@ const exchangesByCountry = { "bittrex", "simplex", "moonpay", + "zkp2p", "coinbase", "itezcom", "mtpelerin", @@ -3781,6 +3964,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3802,6 +3986,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3818,6 +4003,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3834,6 +4020,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -3861,6 +4048,7 @@ const exchangesByCountry = { "bitfinex", "bybit", "matrixport", + "zkp2p", ], // Ukraine UA: [ @@ -3885,6 +4073,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "binance", "rain", @@ -3899,12 +4088,14 @@ const exchangesByCountry = { "bitfinex", "bybit", "matrixport", + "zkp2p", ], // United Kingdom (UK) GB: [ "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "gemini", "cryptocom", @@ -3920,22 +4111,26 @@ const exchangesByCountry = { "bitfinex", "bybit", "matrixport", + "zkp2p", ], // United States of America (USA) US: [ "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "gemini", "binanceus", "bitflyer", + "zkp2p", ], // Uruguay UY: [ "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "gemini", @@ -3967,6 +4162,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", @@ -4013,6 +4209,7 @@ const exchangesByCountry = { "simplex", "wyre", "moonpay", + "zkp2p", "gemini", "binance", "cryptocom", @@ -4032,6 +4229,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "okx", "kucoin", @@ -4042,6 +4240,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "kraken", "itezcom", "mtpelerin", @@ -4069,6 +4268,7 @@ const exchangesByCountry = { "coinmama", "simplex", "moonpay", + "zkp2p", "coinbase", "kraken", "itezcom", diff --git a/src/data/placeholders/content-roadmap-fusaka-data.json b/src/data/placeholders/content-roadmap-fusaka-data.json new file mode 100644 index 00000000000..3cef8ff6b67 --- /dev/null +++ b/src/data/placeholders/content-roadmap-fusaka-data.json @@ -0,0 +1,6 @@ +{ + "/content/roadmap/fusaka/average-blob-count-per-block.webp": { + "hash": "4d42e3c9", + "base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAKCAIAAAAy3EnLAAAACXBIWXMAAAPoAAAD6AG1e1JrAAABPUlEQVR4nGPo7+1pa2nZunnL2dNnfn7/gYbu376DLP7l4weGL58+/8cNLt+4fv/Zk/dfv3z//fv///8/v/9g+Pn9B6a63bt379+/f+3atbcf3IeIPHv2DKrhy6fP8+fPb25unjhx4rZt2379+vX///9z587t37//3Llzl29c37hxY0xMzMSJExE23LlzB252VVVVY30dxNpHjx55+vlyc3MrKyvPmjXr0aNH8+fPB2lYuXr109cvw6IjFy5fevbSRQYw4OHjExQWkldUVAaDWbNmvX3z9siRIyAnQdyjrKwsIyMDIRUUFJSVlSEkXAPCSU5OThISEnA5BTDAp8Ha2hqiCAIgNiAzFBQUpk6dCtVweN/eQ/v2P7r/4NKFi4/uPzh7+gyEfPXixanjx9+/fQch37999+rFizPnTwEA0aM5TfhJOKYAAAAASUVORK5CYII=" + } +} \ No newline at end of file diff --git a/src/data/placeholders/content-roadmap-fusaka-peerdas-data.json b/src/data/placeholders/content-roadmap-fusaka-peerdas-data.json new file mode 100644 index 00000000000..aac01609e0a --- /dev/null +++ b/src/data/placeholders/content-roadmap-fusaka-peerdas-data.json @@ -0,0 +1,10 @@ +{ + "/content/roadmap/fusaka/peerdas/polynomial.png": { + "hash": "1ad252b8", + "base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHCAYAAAABIM1CAAAACXBIWXMAAAsTAAALEwEAmpwYAAABdElEQVR4nGNYtWoV85kzZ7gYGBgYQletYmZABYxQDAf/GRgYQRgusH//fpanT59yMdQzcBgvn6lsuq5CWHSKKI/KRDM+hnoGJlwGIUz8/5/50bFjnCpzbUSNZ97lN565ScRsUbOi1pRQHuOl9SL606dLo6jv7OT9X1Eh+H/mTFa4YMraiTLGC5Yrp236z+Uy8z+/x9xboqYLl6u5zNkl5bpop5jJ0qVK9f31Av8LCzn/t7aK/q+qkv5fX8/zf+JEdob/9fVMyauOCVnM/i9kP/+/gPfS/4Iei//x2a/6zwPCzgv/C9tM+yDY2bmB9399Fg/YFWlprP+Li7n/9/ZyMvy/f59j27lbomlLn4pUbnsmWrntk2juqmcQvO2ZaPKyF+LZ6z4Kx6x9Lha56ZNI5pYPgiBvg8IOFAEMx1at4tx//rzAop3PuXfuvMC96cxTrkU7L3DPPPOUa+amM1z799/nuHLlChsMnzlzhhWEr6xaBWYDAGapqmw1xthOAAAAAElFTkSuQmCC" + }, + "/content/roadmap/fusaka/peerdas/subnets.png": { + "hash": "20d6c013", + "base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAACXBIWXMAAAsTAAALEwEAmpwYAAABwklEQVR4nIVPQUsbQRidaCoJxsTYaEzUxJRa1Agq/i0R2kvBHgJ6SIsW0QZLPGhB9jKK7tIhazQyRMMmgSm72czupoFlNZQsVhF7scctYy305oPH93h8fN97AAAAMMaearU6SCntgxB2AgBcjuN0EEKepVKpDrbDPEppF/PB/3Acx9VsNv2GYUQJIaFKpeKXZblX1/XntVptWNf1CPNVVQ3Lsjykqmrw8YGLTWBZloeZjKVSqYelsW27W7GVbkqpjxASME0zIElSHzvSaDRClFKWNkYIiQBFURKarCW1b1q8Xq+PtFotL3gCLKVhGKOKogywCm6hXAijcxR8DT96UzDjW8/t+tNoM4gp9hk838N4hf/qliR5rZ0dz0WxGMEYu9mBzq3TL8nVk61XK7nPk+/FTHIDZ8eXjtLT22Vu7DtCE+2Dgwk7n5+6OzycuxTF5M+9vdkf+fyMbFm9Dwn2z/dfLH5dHJoX3iUWTt7G/uk3xeURE8LYPYSxm1xu+DeEL21BSPziuLF2oTBJTDPw0GkTcUEOc6EP/KdoVsxGhLIQTotroyunmbiGUPwWofj18XGU8QqhwWuej7bPzvqx47j/AMHQBZ0EglQEAAAAAElFTkSuQmCC" + } +} \ No newline at end of file diff --git a/src/data/published.json b/src/data/published.json index e241b575d80..a49532e84ad 100644 --- a/src/data/published.json +++ b/src/data/published.json @@ -1 +1 @@ -{"date":"2025-09-17"} +{"date":"2025-09-24"} diff --git a/src/data/translationProgress.json b/src/data/translationProgress.json index 8cd43c1e1e5..7dbcbf2b2d2 100644 --- a/src/data/translationProgress.json +++ b/src/data/translationProgress.json @@ -44,7 +44,7 @@ { "languageId": "bg", "words": { - "approved": 14975, + "approved": 15855, "total": 312825 } }, @@ -212,7 +212,7 @@ { "languageId": "gu-IN", "words": { - "approved": 2558, + "approved": 2736, "total": 312825 } }, @@ -527,7 +527,7 @@ { "languageId": "sn", "words": { - "approved": 4820, + "approved": 7540, "total": 312825 } }, diff --git a/src/data/wallets/wallet-data.ts b/src/data/wallets/wallet-data.ts index 55358b8866f..c82086aee6f 100644 --- a/src/data/wallets/wallet-data.ts +++ b/src/data/wallets/wallet-data.ts @@ -11,6 +11,7 @@ import BlockWalletImage from "@/public/images/wallets/blockwallet.png" import BraavosImage from "@/public/images/wallets/braavos_wallet.png" import BridgeWalletImage from "@/public/images/wallets/bridge.png" import BurnerImage from "@/public/images/wallets/burner.png" +import CakeWalletImage from "@/public/images/wallets/cakewallet.png" import ClearWallet from "@/public/images/wallets/clearwallet.png" import Coin98Image from "@/public/images/wallets/coin98.png" import CoinbaseImage from "@/public/images/wallets/coinbase.png" @@ -2274,6 +2275,75 @@ export const walletsData: WalletData[] = [ documentation: "https://github.com/Cypherock/x1_wallet_firmware", supported_chains: ["Ethereum Mainnet"], }, + { + last_updated: "2025-05-16", + name: "Cake Wallet", + image: CakeWalletImage, + twBackgroundColor: "bg-[#61C5FF]", + twGradiantBrandColor: "from-[#61C5FF]", + url: "https://cakewallet.com/", + active_development_team: true, + languages_supported: [ + "en", + "es", + "fr", + "de", + "it", + "pt", + "nl", + "pl", + "hr", + "ru", + "uk", + "hi", + "ja", + "zh", + "ko", + "th", + "ar", + "tr", + "ur", + "bg", + "cs", + "id", + "ha", + "yo", + ], + twitter: "https://x.com/cakewallet", + discord: "https://discord.gg/BqJdjAjUN7", + reddit: "https://www.reddit.com/r/cakewallet/", + telegram: "https://t.me/cakewalletannouncements", + ios: true, + android: true, + linux: true, + windows: true, + macOS: true, + firefox: false, + chromium: false, + hardware: false, + open_source: true, + repo_url: "https://github.com/cake-tech/cake_wallet", + non_custodial: true, + security_audit: [], + scam_protection: true, + hardware_support: true, + rpc_importing: true, + nft_support: true, + connect_to_dapps: true, + staking: false, + swaps: true, + layer_2: false, + gas_fee_customization: true, + ens_support: true, + erc_20_support: true, + buy_crypto: true, + withdraw_crypto: true, + multisig: false, + social_recovery: false, + onboard_documentation: "https://docs.cakewallet.com/", + documentation: "https://docs.cakewallet.com/", + supported_chains: ["Ethereum Mainnet"], + }, { last_updated: "2024-10-31", name: "Clear Wallet", diff --git a/src/hooks/useCentralizedExchanges.ts b/src/hooks/useCentralizedExchanges.ts index ce79f54db76..0ae3fcf6ca0 100644 --- a/src/hooks/useCentralizedExchanges.ts +++ b/src/hooks/useCentralizedExchanges.ts @@ -30,6 +30,7 @@ import bitvavo from "@/public/images/exchanges/bitvavo.png" import bybit from "@/public/images/exchanges/bybit.png" import coinbase from "@/public/images/exchanges/coinbase.png" import coinmama from "@/public/images/exchanges/coinmama.png" +import coinmate from "@/public/images/exchanges/coinmate.png" import coinspot from "@/public/images/exchanges/coinspot.png" import cryptocom from "@/public/images/exchanges/crypto.com.png" import easycrypto from "@/public/images/exchanges/easycrypto.png" @@ -47,6 +48,7 @@ import okx from "@/public/images/exchanges/okx.png" import rain from "@/public/images/exchanges/rain.png" import shakepay from "@/public/images/exchanges/shakepay.png" import wazirx from "@/public/images/exchanges/wazirx.png" +import zkp2p from "@/public/images/exchanges/zkp2p.png" type ExchangeKey = | "binance" @@ -61,6 +63,7 @@ type ExchangeKey = | "bybit" | "coinbase" | "coinmama" + | "coinmate" | "coinspot" | "cryptocom" | "easycrypto" @@ -78,6 +81,7 @@ type ExchangeKey = | "rain" | "shakepay" | "wazirx" + | "zkp2p" type ExchangeDetail = { name: string @@ -199,6 +203,12 @@ const exchanges: ExchangeDetails = { image: coinmama, usaExceptions: ["CT", "FL", "IA", "NY"], }, + coinmate: { + name: "Coinmate", + url: "https://coinmate.io/en", + image: coinmate, + usaExceptions: [], + }, coinspot: { name: "CoinSpot", url: "https://www.coinspot.com.au/", @@ -301,6 +311,12 @@ const exchanges: ExchangeDetails = { image: korbit, usaExceptions: [], }, + zkp2p: { + name: "ZKP2P", + url: "https://zkp2p.xyz", + image: zkp2p, + usaExceptions: [], + }, } export const useCentralizedExchanges = () => { diff --git a/src/intl/en/common.json b/src/intl/en/common.json index a0e784f4624..7f5ead165ae 100644 --- a/src/intl/en/common.json +++ b/src/intl/en/common.json @@ -107,6 +107,7 @@ "ethereum-privacy": "Privacy on Ethereum", "ethereum-support": "Ethereum support", "ethereum-upgrades": "Ethereum upgrades", + "ethereum-vs-bitcoin": "Ethereum vs Bitcoin", "ethereum-wallets": "Ethereum wallets", "ethereum-whitepaper": "Ethereum Whitepaper", "events": "Events", @@ -272,6 +273,7 @@ "nav-ethereum-org-description": "This website is community driven—join us and contribute too", "nav-ethereum-networks": "Ethereum networks", "nav-ethereum-networks-description": "Cheaper and faster transactions for Ethereum", + "nav-ethereum-vs-bitcoin-description": "Understand the differences between Ethereum and Bitcoin", "nav-ethereum-wallets-description": "An app to interact with your Ethereum account", "nav-events-description": "Decentralization and freedom to participate for anyone", "nav-events-irl-description": "Every month there are major Ethereum events in-person and online", @@ -364,6 +366,7 @@ "nav-use-cases-label": "Use cases", "nav-what-is-ether-description": "The currency of Ethereum apps", "nav-what-is-ethereum-description": "Understand what makes Ethereum special", + "nav-what-is-ethereum-network-description": "Understand what the Ethereum network is", "nav-what-is-web3-description": "An alternative to centralized monopolies dictating the rules", "nav-what-is-web3-label": "What is Web3?", "nav-whitepaper-description": "The original Ethereum whitepaper written by Vitalik Buterin in 2014", @@ -472,6 +475,7 @@ "what-are-apps": "What are apps?", "what-is-ether": "What is ether (ETH)?", "what-is-ethereum": "What is Ethereum?", + "what-is-the-ethereum-network": "What is the Ethereum network?", "withdrawals": "Staking withdrawals", "wrapped-ether": "Wrapped Ether", "yes": "Yes", diff --git a/src/intl/en/page-ethereum-vs-bitcoin.json b/src/intl/en/page-ethereum-vs-bitcoin.json new file mode 100644 index 00000000000..aa59ca248fc --- /dev/null +++ b/src/intl/en/page-ethereum-vs-bitcoin.json @@ -0,0 +1,101 @@ +{ + "page-ethereum-vs-bitcoin-meta-title": "Ethereum vs Bitcoin: what is the difference? | ethereum.org", + "page-ethereum-vs-bitcoin-meta-description": "Learn the differences between Bitcoin and Ethereum, including use cases, network performance, security, token economics, level of decentralisation and more.", + "page-ethereum-vs-bitcoin-twitter-meta-description": "Learn the differences between Bitcoin and Ethereum, including use cases, network performance, token economics and more.", + "page-ethereum-vs-bitcoin-title": "Ethereum vs Bitcoin: what is the difference?", + "page-ethereum-vs-bitcoin-description-1": "Bitcoin and Ethereum are two of the best-known decentralized blockchain networks, but they serve very different purposes.", + "page-ethereum-vs-bitcoin-section-1": "Bitcoin (with a big B) is a blockchain designed for a digital currency called bitcoin (small b). Ethereum is designed to be a decentralized platform for applications and assets, powered by its native cryptocurrency ether (ETH).", + "page-ethereum-vs-bitcoin-section-2": "Both use blockchain technology, are open-source, and are maintained by global communities, but their goals and features are distinct. In this guide, we will walk through what each network is, what they have in common, and how they differ across areas like technology, culture, and future outlook.", + "page-ethereum-vs-bitcoin-bitcoin-section-title": "Bitcoin—a quick primer", + "page-ethereum-vs-bitcoin-bitcoin-section-1": "Bitcoin is a decentralized digital currency network. It was created in 2009 by an anonymous entity using the name Satoshi Nakamoto, shortly after the 2008 financial crisis. The idea was for Bitcoin to be a peer-to-peer electronic cash system.", + "page-ethereum-vs-bitcoin-bitcoin-section-2": "Bitcoin allows anyone to send and receive bitcoin over the internet without relying on a central authority like a bank. All transactions are recorded on a public ledger known as the blockchain.", + "page-ethereum-vs-bitcoin-bitcoin-section-3": "Bitcoin uses proof-of-work to secure its network. Computers around the world race to solve cryptographic puzzles that let them add new blocks. These specialized computers are called miners and receive bitcoin as a block reward for \"mining\" new blocks.", + "page-ethereum-vs-bitcoin-bitcoin-section-4": "Bitcoin has a fixed max supply of 21 million coins. This design choice is a key reason why Bitcoin is often referred to as digital gold.", + "page-ethereum-vs-bitcoin-ethereum-section-title": "Ethereum—a quick primer", + "page-ethereum-vs-bitcoin-ethereum-section-1": "Like Bitcoin, Ethereum is also a decentralized blockchain network, but it was designed to do more than just record payments. Launched in 2015 by a software developer called Vitalik Buterin and his co-founders, Ethereum was built to be a smart contract and decentralized application platform.", + "page-ethereum-vs-bitcoin-ethereum-section-2": "Ethereum lets anyone send and receive value like Bitcoin, but it also acts as a platform that anyone can use for applications. The Ethereum network runs across thousands of nodes and is not controlled by a single entity.", + "page-ethereum-vs-bitcoin-ethereum-section-3": "Anyone can create and deploy applications to Ethereum. These programs are called smart contracts, and they are Ethereum's core innovation.", + "page-ethereum-vs-bitcoin-ethereum-section-4": "Once the smart contract is deployed, it runs deterministically when interacted with. This makes it possible to build apps for things like lending, trading, games, and digital collectibles that run all day, every day, for millions of users worldwide.", + "page-ethereum-vs-bitcoin-ethereum-section-5": "In the same way bitcoin is used to pay transaction fees on the Bitcoin network, Ethereum's native currency, ether, is used to pay transaction fees, publish and use smart contracts, and secure the network. Ether acts both as fuel for running programs and as a store of value.", + "page-ethereum-vs-bitcoin-ethereum-section-6": "Learn more about Ethereum and how it works", + "page-ethereum-vs-bitcoin-differences-section-title": "The key differences", + "page-ethereum-vs-bitcoin-differences-section-1": "Bitcoin and Ethereum use blockchain technology to maintain decentralized networks, but they differ in their design, purpose, and capabilities.", + "page-ethereum-vs-bitcoin-differences-table-area": "Area", + "page-ethereum-vs-bitcoin-differences-table-bitcoin": "Bitcoin", + "page-ethereum-vs-bitcoin-differences-table-ethereum": "Ethereum", + "page-ethereum-vs-bitcoin-differences-table-row-1-1": "Primary purpose", + "page-ethereum-vs-bitcoin-differences-table-row-1-2": "Peer-to-peer digital currency", + "page-ethereum-vs-bitcoin-differences-table-row-1-3": "Platform for apps and digital economies", + "page-ethereum-vs-bitcoin-differences-table-row-2-1": "Smart contracts", + "page-ethereum-vs-bitcoin-differences-table-row-2-2": "Not supported", + "page-ethereum-vs-bitcoin-differences-table-row-2-3": "Core functionality", + "page-ethereum-vs-bitcoin-differences-table-row-3-1": "Supply", + "page-ethereum-vs-bitcoin-differences-table-row-3-2": "Bitcoin is issued every block at a fixed/predetermined rate dictated by the original and unchanged protocol, with an eventual fixed limit of 21 million.", + "page-ethereum-vs-bitcoin-differences-table-row-3-3": "Ether is burned every block proportional to activity/demand, and issued every epoch proportional to total ETH staked. No fixed limit, but the rate of issuance is limited by total ETH staked.", + "page-ethereum-vs-bitcoin-differences-table-row-4-1": "Consensus mechanism", + "page-ethereum-vs-bitcoin-differences-table-row-4-2": "Proof-of-work", + "page-ethereum-vs-bitcoin-differences-table-row-4-3": "Proof-of-stake", + "page-ethereum-vs-bitcoin-differences-table-row-5-1": "Speed", + "page-ethereum-vs-bitcoin-differences-table-row-5-2": "Considered by most to be irreversible after six blocks, averaging 60 minutes", + "page-ethereum-vs-bitcoin-differences-table-row-5-3": "Around 15 minutes to finality", + "page-ethereum-vs-bitcoin-differences-table-row-6-1": "Energy usage", + "page-ethereum-vs-bitcoin-differences-table-row-6-2": "High", + "page-ethereum-vs-bitcoin-differences-table-row-6-3": "Low", + "page-ethereum-vs-bitcoin-differences-table-row-7-1": "Governance", + "page-ethereum-vs-bitcoin-differences-table-row-7-2": "Conservative, slow-moving", + "page-ethereum-vs-bitcoin-differences-table-row-7-3": "Flexible, community-driven", + "page-ethereum-vs-bitcoin-differences-table-row-8-1": "Developer ecosystem", + "page-ethereum-vs-bitcoin-differences-table-row-8-2": "Smaller", + "page-ethereum-vs-bitcoin-differences-table-row-8-3": "Large and active", + "page-ethereum-vs-bitcoin-differences-table-row-9-1": "Upgrades", + "page-ethereum-vs-bitcoin-differences-table-row-9-2": "Rare", + "page-ethereum-vs-bitcoin-differences-table-row-9-3": "Frequent and iterative", + "page-ethereum-vs-bitcoin-purpose-title": "Purpose of Bitcoin vs Ethereum", + "page-ethereum-vs-bitcoin-purpose-1": "Bitcoin was created in 2009 in the wake of the global financial crisis. Its goal was to offer a peer-to-peer form of money that operated without banks or governments. It's simple by design. The network aims to moves value from one person to another without a middleman. This narrow focus has helped it become widely known as a form of digital gold, a scarce and durable store of value that can also be used as a medium of exchange.", + "page-ethereum-vs-bitcoin-purpose-2": "Ethereum launched in 2015 with a broader vision. Its creators wanted to take the security and decentralization of blockchain and make it programmable. Rather than limiting itself to payments, Ethereum allows anyone to write and publish self-executing programs called smart contracts. This opens the door to an entirely new category of applications, from decentralized finance (DeFi) and stablecoins to non-fungible tokens (NFTs), games and decentralized social media.", + "page-ethereum-vs-bitcoin-purpose-3": "The technical designs reflect these purposes. Bitcoin's scripting language is limited, which reduces complexity and helps keep the network secure. Ethereum's programming language is more expressive, allowing it to store and manage more complex states and interactions between applications. This flexibility is a strength, but it also means the network evolves more quickly, with regular upgrades and new features.", + "page-ethereum-vs-bitcoin-purpose-4": "Both play distinct roles in the wider digital economy. Bitcoin focuses on being a stable and decentralized store of value. Ethereum aims to be a global settlement layer for decentralized applications and programmable assets.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-title": "Use cases and adoption", + "page-ethereum-vs-bitcoin-usecases-and-adoption-1": "Bitcoin is commonly used as a store of value. Many investors see it as a hedge against inflation or economic instability. In some countries, it is used as an alternative currency or as a way for people to save outside of the traditional banking system.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-2": "Ether serves as a store of value too, but its primary role is to power a broad ecosystem of applications and assets. Developers can use Ethereum to create new protocols, launch tokens, run decentralized exchanges, mint NFTs, build games, and develop social platforms that run without centralized control.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-3": "Ethereum supports thousands of decentralized applications for new forms of finance, crowdfunding, and digital ownership. Some use cases even connect both networks. For example, Bitcoin can be “wrapped” and used on Ethereum for activities like lending, borrowing, and trading in DeFi.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-4": "Institutional adoption reflects these differences. Bitcoin the cryptocurrency is widely held as a long-term store of value, while Ethereum is seen as decentralized infrastructure. Its programmability appeals to fintech platforms and payment providers.", + "page-ethereum-vs-bitcoin-usecases-and-adoption-5": "Learn more about what Ethereum is used for", + "page-ethereum-vs-bitcoin-monetary-policy-title": "Monetary policy", + "page-ethereum-vs-bitcoin-monetary-policy-1": "Bitcoin's supply will cap at 21 million coins. This hard limit is enforced by the protocol and is one of the reasons Bitcoin is compared to gold. New bitcoin enter circulation through mining rewards, which cut in half every 210,000 blocks, which takes roughly 4 years to mine, in an event called the halving. The reward started at 50 bitcoin per block in 2009, dropped to 25 in 2012, then 12.5 in 2016, and so on. At this rate, the last bitcoin is expected to be mined around the year 2140.", + "page-ethereum-vs-bitcoin-monetary-policy-2": "Bitcoin's mining rewards and transaction fees pay for the network and are used to secure it. However, as the block reward halves, the network is more dependent on transaction fees to pay for itself. Currently network fees make up a small portion of the network's income, <5%, meaning the long-term security of the network may be at risk as the Bitcoin network issuance goes to 0.", + "page-ethereum-vs-bitcoin-monetary-policy-3": "Ethereum does not have a fixed supply cap. Instead, its issuance is determined by protocol rules, and recent upgrades have introduced mechanisms that can reduce supply over time. The most notable is the EIP-1559 upgrade, which burns a portion of transaction fees. When network activity is high, more ETH can be burned than issued, making the supply deflationary during those periods.", + "page-ethereum-vs-bitcoin-monetary-policy-4": "Ethereum's monetary approach guarantees a security budget in perpetuity, with transaction fees and block rewards providing the network's security budget.", + "page-ethereum-vs-bitcoin-developer-ecosystem-title": "Developer ecosystem", + "page-ethereum-vs-bitcoin-developer-ecosystem-1": "Ethereum has one of the largest blockchain developer communities. Building on Ethereum gives you access to a wide range of tools, frameworks, grants, and hackathons. The Ethereum Virtual Machine (EVM) is Ethereum's runtime environment and has become a common standard, with many other blockchains using it to ensure compatibility.", + "page-ethereum-vs-bitcoin-developer-ecosystem-2": "Token standards like ERC-20 and ERC-721 have become the foundation for much of the broader blockchain economy. Many Layer 2 networks and other blockchains use the EVM so that apps, wallets, and smart contracts can code can be used across blockchains with minimal changes.", + "page-ethereum-vs-bitcoin-developer-ecosystem-3": "Bitcoin's developer community is smaller and more focused. Most activity centers on maintaining and improving the core protocol, as well as developing Layer 2 solutions like the Lightning Network for faster and cheaper payments.", + "page-ethereum-vs-bitcoin-developer-ecosystem-4": "Learn more about Ethereum developer resources", + "page-ethereum-vs-bitcoin-security-and-consensus-title": "Security and consensus", + "page-ethereum-vs-bitcoin-security-and-consensus-1": "Bitcoin and Ethereum are both secured by large, distributed networks of independent nodes, but they use different methods to agree on the state of the network.", + "page-ethereum-vs-bitcoin-security-and-consensus-2": "Bitcoin uses a system called proof-of-work. Computers called miners compete to solve cryptographic puzzles. The first to solve one gets to add the next block of transactions to the blockchain and earns a reward in bitcoin. This approach gives Bitcoin what is known as probabilistic finality, meaning a transaction is only considered highly secure after several more blocks are added on top of it. For Bitcoin, this is often around six confirmations, or about one hour.", + "page-ethereum-vs-bitcoin-security-and-consensus-3": "Ethereum uses proof-of-stake. In this model, validators lock up, or stake, ETH for the chance to be selected to propose and confirm new blocks. The selection is random, but the probability of being chosen increases with the amount of ETH staked. Validators who act dishonestly risk losing their stake. This allows Ethereum to achieve economic finality, where finalized blocks are extremely difficult to reverse, often within about 15 minutes. Ethereum also uses checkpoints to mark blocks as irreversible once enough validators agree.", + "page-ethereum-vs-bitcoin-security-and-consensus-4": "Learn more about Ethereum's consensus mechanism", + "page-ethereum-vs-bitcoin-underlying-technology-title": "Underlying technology", + "page-ethereum-vs-bitcoin-underlying-technology-1": "Bitcoin uses what is known as the unspent transaction output model, or UTXO. In this system, the blockchain does not track account balances. Instead, it records outputs from previous transactions that have not yet been spent. When you spend bitcoin, you use these outputs as inputs for a new transaction, creating new outputs in the process.", + "page-ethereum-vs-bitcoin-underlying-technology-2": "You can think of this like using cash. If you have two five-dollar bills and want to spend seven dollars, you hand over both bills and receive three dollars in change. Bitcoin records the bills and the change, not your total balance.", + "page-ethereum-vs-bitcoin-underlying-technology-3": "Ethereum uses an account-based model. Instead of tracking individual outputs, it keeps a record of account balances like a bank account does. This approach makes it easier to manage smart contracts and complex logic, since accounts can store data and interact with one another like programs.", + "page-ethereum-vs-bitcoin-underlying-technology-4": "Each model has tradeoffs. UTXOs can offer greater privacy and make it easier to track individual coins. Account-based systems are more straightforward for building applications.", + "page-ethereum-vs-bitcoin-underlying-technology-5": "Read more in the Ethereum developer documentation", + "page-ethereum-vs-bitcoin-decentralization-title": "Decentralization", + "page-ethereum-vs-bitcoin-decentralization-1": "Bitcoin and Ethereum are both designed to be decentralized, but they measure and approach it in different ways.", + "page-ethereum-vs-bitcoin-decentralization-2": "Bitcoin's decentralization is supported by its simple technical design, long-term stability, and wide distribution of nodes. Its low-resource requirements make it easier for people to run full nodes at home, which helps preserve the network’s independence and censorship resistance.", + "page-ethereum-vs-bitcoin-decentralization-3": "Ethereum also has a large and growing node network. It places strong emphasis on client diversity, meaning multiple versions of the software are maintained by independent teams. This reduces reliance on any single client and helps protect against bugs or failures that could affect the network.", + "page-ethereum-vs-bitcoin-decentralization-4": "Ethereum has a broader number of participants involved in activities like staking, upgrades, and governance discussions, but both networks aim to remain open and resilient. Bitcoin keeps node requirements unchanged, relying on fewer software clients. Ethereum encourages different contributors, each bringing their own perspective.", + "page-ethereum-vs-bitcoin-environmental-impact-title": "Environmental impact", + "page-ethereum-vs-bitcoin-environmental-impact-1": "One of the most significant changes in Ethereum's history was the switch from proof-of-work to proof-of-stake in 2022. Known as the Merge, this transition reduced the network's energy consumption by more than 99 percent.", + "page-ethereum-vs-bitcoin-environmental-impact-2": "Under proof of stake, Ethereum no longer relies on energy-intensive mining. Instead, validators are selected at random, with the likelihood of selection increasing with the amount of ETH they have staked. This shift has made Ethereum one of the more energy-efficient blockchain networks.", + "page-ethereum-vs-bitcoin-environmental-impact-3": "Bitcoin continues to use proof-of-work, which requires large amounts of electricity as miners compete to solve cryptographic puzzles. Some of this energy comes from renewable sources, and there are ongoing discussions in the Bitcoin community about ways to improve sustainability.", + "page-ethereum-vs-bitcoin-environmental-impact-4": "The difference in energy use has become an important point of comparison between the two networks. Ethereum's lower energy footprint makes it more appealing in contexts where environmental impact is a priority.", + "page-ethereum-vs-bitcoin-environmental-impact-5": "Read the full report on Ethereum's energy use", + "page-ethereum-vs-bitcoin-future-outlook-title": "What does the future look like", + "page-ethereum-vs-bitcoin-future-outlook-1": "Bitcoin is increasingly being adopted as a store of value and reserve asset. It is unlikely to change significantly, and this stability is part of its appeal.", + "page-ethereum-vs-bitcoin-future-outlook-2": "Ethereum is positioning itself as an application platform in the new digital economy. With the growth of Layer 2 networks and ongoing upgrades, it aims to support global-scale applications, infrastructure, and assets.", + "page-ethereum-vs-bitcoin-future-outlook-3": "For many users, the two networks are not in direct competition. They serve different purposes and can complement each other in a diversified approach to digital assets.", + "page-ethereum-vs-bitcoin-future-outlook-4": "Learn more about Ethereum's roadmap" +} \ No newline at end of file diff --git a/src/intl/en/page-what-is-the-ethereum-network.json b/src/intl/en/page-what-is-the-ethereum-network.json new file mode 100644 index 00000000000..1b69d05c970 --- /dev/null +++ b/src/intl/en/page-what-is-the-ethereum-network.json @@ -0,0 +1,89 @@ +{ + "page-what-is-ethereum-network-meta-title": "What is the Ethereum network? | ethereum.org", + "page-what-is-ethereum-network-meta-description": "Understand what the Ethereum network is, staking and security, network fees (aka gas), layer 2 scaling networks and how to explore live network data.", + "page-what-is-ethereum-network-twitter-meta-description": "Understand what the Ethereum network is, staking and security, network fees, layer 2 scaling networks and how to explore live network data.", + "page-what-is-ethereum-network-title": "What is the Ethereum network?", + "page-what-is-ethereum-network-description-1": "The Ethereum network is the physical and digital infrastructure that underpins Ethereum.", + "page-what-is-ethereum-network-description-2": "This includes nodes that store data, validators that process transactions, software that executes smart contracts, and Layer 2 networks that scale Ethereum beyond the main chain.", + "page-what-is-ethereum-network-section-network-fees-title": "What are Ethereum network fees (aka gas fees)?", + "page-what-is-ethereum-network-section-staking-title": "What is staking and how does it secure the network?", + "page-what-is-ethereum-network-section-layer-2s-title": "What are Ethereum Layer 2s and how do they scale the network?", + "page-what-is-ethereum-network-section-live-network-data-title": "How to explore live Ethereum network data", + "page-what-is-ethereum-network-read-next-title": "Read next", + "page-what-is-ethereum-network-read-next-item-1": "What are wallets?", + "page-what-is-ethereum-network-read-next-item-2": "What is ether (ETH)?", + "page-what-is-ethereum-network-read-next-item-3": "What is web3?", + "page-what-is-ethereum-network-read-next-item-4": "Learn more about the Ethereum network", + "page-what-is-ethereum-network-section-description-1": "When people talk about Ethereum, they're usually talking about a few different things. There's the ecosystem of apps and digital assets, the open-source software platform, and the native currency ether (ETH).", + "page-what-is-ethereum-network-section-description-2": "But underneath it all is the Ethereum network; the physical and digital foundation that ties everything together.", + "page-what-is-ethereum-network-section-description-3": "At its core, the Ethereum network is a collection of thousands of independent computers called nodes. These nodes are run by people all over the world. They work together to store data, execute smart contracts, and record every transaction on an open, public ledger.", + "page-what-is-ethereum-network-section-description-4": "The Ethereum network handles several key tasks, like:", + "page-what-is-ethereum-network-section-description-5": "updating user accounts and balances", + "page-what-is-ethereum-network-section-description-6": "executing smart contracts (programs running apps)", + "page-what-is-ethereum-network-section-description-7": "tracking ownership of digital assets (like stablecoins and NFTs)", + "page-what-is-ethereum-network-section-description-8": "processing all transactions that flow through Ethereum every day", + "page-what-is-ethereum-network-section-description-9": "Fortunately, you don't need to understand how the network works to use it.", + "page-what-is-ethereum-network-section-description-10": "Most people simply use the network via a digital wallet. A wallet is usually a web or mobile app that lets you send and receive ETH, manage your assets, and use apps.", + "page-what-is-ethereum-network-section-description-11": "Other types of users like developers and businesses building on Ethereum might use APIs, node software, or deploy smart contracts.", + "page-what-is-ethereum-network-section-description-12": "The Ethereum network is different from traditional systems because of how it's designed. Ethereum's code and data is stored on decentralized nodes around the world, so no one can block your access or shut down your app.", + "page-what-is-ethereum-network-section-description-13": "And because anyone can join, it opens the door to global access and innovation.", + "page-what-is-ethereum-network-section-description-14": "These qualities enable things that weren't possible before, like:", + "page-what-is-ethereum-network-section-description-15": "data ownership", + "page-what-is-ethereum-network-section-description-16": "social media without de-platforming", + "page-what-is-ethereum-network-section-description-17": "open and transparent financial systems", + "page-what-is-ethereum-network-section-description-18": "At its core, the Ethereum network is a foundation for digital ownership and open participation.", + "page-what-is-ethereum-network-section-description-19": "You may hear people refer to Ethereum Mainnet. This is the same Ethereum network millions use every day, where real assets are exchanged and real apps live. But “Mainnet” helps to distinguish it from Ethereum layer 2 networks, and test networks (testnets) which developers use to try out new features before going live.", + "page-what-is-ethereum-network-gas-section-description-1": "Every transaction on Ethereum costs a small fee called a gas fee. Whether you send ETH, swap tokens, or use an app, you pay a small amount of gas each time you write data to the blockchain.", + "page-what-is-ethereum-network-gas-section-description-2": "Gas fees keep Ethereum running smoothly. Without it, bad actors could spam the network with empty transactions and make it impossible to use through heavy congestion, since there'd be no way to prioritize transactions by the fee users are willing to pay.", + "page-what-is-ethereum-network-gas-section-description-3": "Ethereum gas fees cover the cost of the many different resources a transaction can consume, such as compute, bandwidth, or storage. All of this gets abstracted into a single value for users, but extensive R&D goes into determining how much each operation should cost relative to the others.", + "page-what-is-ethereum-network-gas-section-description-4": "So, what happens when you pay gas? A part of it is paid to the validator who adds your transaction to a “block” of transactions. Another part gets “burned”, removing it from the supply.", + "page-what-is-ethereum-network-gas-section-description-5": "This helps balance supply and demand, because when the network is busy, fees go up. When things are quieter, fees go down.", + "page-what-is-ethereum-network-gas-section-description-6": "Since the network introduced fee burning in August 2021, millions of ETH have been been burned. You can explore the latest numbers using network dashboards and explorers built by the Ethereum community.", + "page-what-is-ethereum-network-gas-section-description-7": "So, how much does a transaction cost?", + "page-what-is-ethereum-network-gas-section-description-8": "Well, fees vary depending on what you're doing. Simply sending ETH might cost less than a dollar. Swapping tokens on a decentralized exchange (DEX) can be a few dollars or more, especially if the network is busy. The more complex the transaction the more gas it costs.", + "page-what-is-ethereum-network-gas-section-description-9": "Gas fees are one of the most visible parts of using Ethereum, especially for new users, but it all goes toward making the network more reliable and secure.", + "page-what-is-ethereum-network-gas-section-description-10": "Learn more about Ethereum network fees", + "page-what-is-ethereum-network-staking-section-description-1": "The Ethereum network is secured by a system called staking. This is how Ethereum verifies transactions, adds new blocks, and keeps the network safe from attacks.", + "page-what-is-ethereum-network-staking-section-description-2": "When Ethereum started out, it used a consensus mechanism (a way to agree on who owns what) called proof-of-work. This is the same mechanism Bitcoin uses today.", + "page-what-is-ethereum-network-staking-section-description-3": "In September 2022, Ethereum upgraded to a more secure and energy-efficient proof-of-stake consensus mechanism.", + "page-what-is-ethereum-network-staking-section-description-4": "So, how does it work?", + "page-what-is-ethereum-network-staking-section-description-5": "In simple terms, people lock up some ETH (put their ETH at stake), as a deposit so that they can help secure the network. These people are called validators. When you stake ETH, your validator gets chosen to check and add new transactions. If you do it honestly, you earn rewards. If you try to cheat, you lose part of your stake.", + "page-what-is-ethereum-network-staking-section-description-6": "Staking is how Ethereum credibly commits to its service quality. All of this money at stake has the best interest for Ethereum to remain secure—would you bet against it?", + "page-what-is-ethereum-network-staking-section-description-7": "Just two years after launching proof-of-stake, Ethereum attracted over a million validators who stake millions of ETH to secure Ethereum. This makes Ethereum extremely expensive and difficult to attack. This is because, to attack the network, an entity needs at least 1/3 of all staked ETH to begin attacking the network. Today, that amounts to tens of billions of dollars, and even then, the attack would likely fail because more than 1/3 disagreeing with the rest of the network would prevent finalization, but the chain would keep growing with the other version considered the source-of-truth. More than 1/2 changes which version is considered truth, and more than 2/3 would allow finalizing something the rest don't agree with.", + "page-what-is-ethereum-network-staking-section-description-8": "This is what gives Ethereum “economic security”. It's not just about having the right technology. It's about making attacks too costly to even try.", + "page-what-is-ethereum-network-staking-section-description-9": "To help secure the Ethereum network, you can do this in two main ways.", + "page-what-is-ethereum-network-staking-section-description-10": "The first way is running a node. Nodes store the entire history of the blockchain, including all transactions and smart contract data. By syncing with other nodes, they can agree on the state of the network, making sure transactions are legit and smart contract data is available.", + "page-what-is-ethereum-network-staking-section-description-11": "The second way is staking your ETH. The easiest way is through a staking provider like Lido or Rocketpool. but if you have the know-how, try running validator software at home.", + "page-what-is-ethereum-network-staking-section-description-12": "Learn more about staking and how to do it", + "page-what-is-ethereum-network-staking-section-description-13": "Learn how to run a node", + "page-what-is-ethereum-network-layer-2s-section-description-1": "As Ethereum gets more popular, the network gets busier. When demand is high, gas fees go up and transactions take longer. To fix this, developers have built a series of companion networks called layer 2s.", + "page-what-is-ethereum-network-layer-2s-section-description-2": "Layer 2s, also referred to as L2s, are other networks that run on top of Ethereum. They process transactions separately, then send a summary to be stored on Ethereum.", + "page-what-is-ethereum-network-layer-2s-section-description-3": "You can think of them like express lanes on a highway. Instead of every single transaction going through Ethereum Mainnet, many of them use these faster, cheaper roads.", + "page-what-is-ethereum-network-layer-2s-section-description-4": "Some of the most popular L2s include Base, Arbitrum, Optimism, zkSync and Starknet. Each of them work slightly differently, but the idea is the same—scale Ethereum without compromising on security.", + "page-what-is-ethereum-network-layer-2s-section-description-5": "A simple ETH transfer on Optimism or zkSync can cost as little as $0.04, compared to $0.3-$1 on Ethereum Mainnet. Other transactions like swapping tokens can be as little as $0.20. For users, this means faster transactions at a fraction of the price.", + "page-what-is-ethereum-network-layer-2s-section-description-6": "As a result, L2s are growing fast. Together, they hold billions of dollars in digital assets.", + "page-what-is-ethereum-network-layer-2s-section-description-7": "Since L2s benefit from Ethereum's security, companies looking to create global payments and applications started building on top of Ethereum.", + "page-what-is-ethereum-network-layer-2s-section-description-8": "For example, Robinhood recently launched its own L2 to explore faster settlement for stocks. PayPal moved its stablecoin PYUSD to Ethereum L2 Arbitrum. Shopify now lets merchants accept stablecoin USDC on Base.", + "page-what-is-ethereum-network-layer-2s-section-description-9": "For users, moving assets between Ethereum and L2s is straightforward. You can use bridges, built by L2s like Superbridge by Optimism or Portal by ZKsync to move ETH and other assets. You can even use third-party tools like Hop and Across that are built by independent teams.", + "page-what-is-ethereum-network-layer-2s-section-description-10": "Learn more about Ethereum Layer 2 networks", + "page-what-is-ethereum-network-live-network-data-section-description-1": "Ethereum is transparent by design. Every action on the network, from sending ETH to running a validator, is recorded on an open, public ledger that anyone can access.", + "page-what-is-ethereum-network-live-network-data-section-description-2": "This is a sharp contrast to how most systems work today:", + "page-what-is-ethereum-network-live-network-data-section-description-3": "banks and institutions publish their internal numbers", + "page-what-is-ethereum-network-live-network-data-section-description-4": "app usage figures are closely guarded by tech companies", + "page-what-is-ethereum-network-live-network-data-section-description-5": "economic data often arrives late and gets revised later", + "page-what-is-ethereum-network-live-network-data-section-description-6": "With Ethereum, you don't have to trust. You can verify.", + "page-what-is-ethereum-network-live-network-data-section-description-7": "You don't need to understand any of this to use Ethereum. But if you're curious about how many transactions were settled in 2024, or how many new Ethereum addresses were created in the last six months, there are tools that let anyone explore the network in real time.", + "page-what-is-ethereum-network-live-network-data-section-description-8": "Here are a few of the most useful data sources, and what you might use them for:", + "page-what-is-ethereum-network-live-network-data-section-description-9": "Etherscan: Check transactions, wallet activity, and smart contracts", + "page-what-is-ethereum-network-live-network-data-section-description-10": "beaconcha.in: View validator stats, staking levels, and network health", + "page-what-is-ethereum-network-live-network-data-section-description-11": "ultrasound.money: Track ETH supply, issuance, and burn in real-time", + "page-what-is-ethereum-network-live-network-data-section-description-12": "l2fees.info: Compare current transaction costs on Ethereum and L2s", + "page-what-is-ethereum-network-live-network-data-section-description-13": "L2Beat: See value secured and security models across all major L2s", + "page-what-is-ethereum-network-live-network-data-section-description-14": "growthepie: See all onchain activity and growth across Ethereum", + "page-what-is-ethereum-network-live-network-data-section-description-15": "Dune: Explore custom dashboards on all digital assets across Ethereum", + "page-what-is-ethereum-network-live-network-data-section-description-16": "Token Terminal: Compare dapp revenue, usage, and protocol performance", + "page-what-is-ethereum-network-live-network-data-section-description-17": "Nansen: Follow wallet flows, stablecoin movements, and smart money trends.", + "page-what-is-ethereum-network-live-network-data-section-description-18": "All of these tools are there if you need them.", + "page-what-is-ethereum-network-live-network-data-section-description-19": "Whether you're a developer, researcher, investor, or just someone who wants to check a transaction, Ethereum's open network gives you the data—live, permissionless, and verifiable.", + "page-what-is-ethereum-network-live-network-data-section-description-20": "Browse Ethereum network dashboards and block explorers" +} \ No newline at end of file diff --git a/src/lib/nav/buildNavigation.ts b/src/lib/nav/buildNavigation.ts index edd279ab126..6aa7f938f87 100644 --- a/src/lib/nav/buildNavigation.ts +++ b/src/lib/nav/buildNavigation.ts @@ -24,11 +24,21 @@ export const buildNavigation = (t: TranslateFn): NavSections => { description: t("nav-what-is-ethereum-description"), href: "/what-is-ethereum/", }, + { + label: t("what-is-the-ethereum-network"), + description: t("nav-what-is-ethereum-network-description"), + href: "/what-is-the-ethereum-network/", + }, { label: t("what-is-ether"), description: t("nav-what-is-ether-description"), href: "/eth/", }, + { + label: t("ethereum-vs-bitcoin"), + description: t("nav-ethereum-vs-bitcoin-description"), + href: "/ethereum-vs-bitcoin/", + }, { label: t("ethereum-wallets"), description: t("nav-ethereum-wallets-description"), diff --git a/src/lib/utils/contributors.ts b/src/lib/utils/contributors.ts index 6222e0d887a..ba2ddd66fe8 100644 --- a/src/lib/utils/contributors.ts +++ b/src/lib/utils/contributors.ts @@ -92,11 +92,14 @@ export const getAppPageContributorInfo = async ( const latestCommitDate = getAppPageLastCommitDate(gitHubContributors) const lastEditLocaleTimestamp = getLocaleTimestamp(locale, latestCommitDate) - if (!uniqueGitHubContributors.length || !lastEditLocaleTimestamp) { - throw new Error( - `No contributors found, path: ${pagePath}, locale: ${locale}` - ) - } + // if ( + // (!uniqueGitHubContributors.length || !lastEditLocaleTimestamp) && + // process.env.NODE_ENV === "production" + // ) { + // throw new Error( + // `No contributors found, path: ${pagePath}, locale: ${locale}` + // ) + // } return { contributors: uniqueGitHubContributors, lastEditLocaleTimestamp } } diff --git a/src/lib/utils/metadata.ts b/src/lib/utils/metadata.ts index 5c3002c8c15..13ea37cf538 100644 --- a/src/lib/utils/metadata.ts +++ b/src/lib/utils/metadata.ts @@ -39,6 +39,7 @@ export const getMetadata = async ({ slug, title, description: descriptionProp, + twitterDescription, image, author, }: { @@ -46,6 +47,7 @@ export const getMetadata = async ({ slug: string[] title: string description?: string + twitterDescription?: string image?: string author?: string }): Promise => { @@ -94,7 +96,7 @@ export const getMetadata = async ({ }, twitter: { title, - description, + description: twitterDescription || description, card: "summary_large_image", creator: author || siteTitle, site: author || siteTitle,